ubuntu下Qt开发西门子PLC上位机
一条流水线,因为下位机PLC比较固定,用的是1200和1500和倍福IO模块,重要的是逻辑,没什么好写,就写写上位机吧,虽然也就是集成各功能,但作为记录下历程也不错的,也算是新公司一个小小的里程碑了。
本上位机系统涉及的通讯有:西门子S7通讯、数据库sql2012通讯、4个tcp客户端、10个ModbusTcp客户端。西门子S7通讯是好东西,网上资料是很成熟的,可以读写任意数据存储区,300ms读取一次。但是写数据,注意不要重复写,只有变量变化的时候才写,这样可降低开销;数据库sql2012通讯需要配置freeTDS和unixODBC,虽然有些麻烦,但网上的资料挺多的,但要注意网路中断的处理;tcp就更简单了,网上参考代码一堆;ModbutTCP是给RFID通讯用的,Qt例程直接有相关代码,各种异常处理很全,直接参考就行。
因为还有MES专门做产量和稼动率展示,所以上位机画面就做的简单点,给工程师操作的,主要突出的是功能,比较难看。
Qt的按钮分组、样式表真是个好东西。按钮分组QButtonGroup能减少代码量,样式表可以实现很多功能,如按钮实现自锁功能,还有正则限制功能。
上张图