ubuntu下Qt开发西门子PLC上位机

一条流水线,因为下位机PLC比较固定,用的是1200和1500和倍福IO模块,重要的是逻辑,没什么好写,就写写上位机吧,虽然也就是集成各功能,但作为记录下历程也不错的,也算是新公司一个小小的里程碑了,很有参考价值,涉及的通讯对象都是很常见的。

总体来说各个部分通讯、代码都很成熟。有个大纲、有方向、知道要查的关键词(几乎没有百度查不到的),就可以去做了,关键是逻辑要通,知道方案可行。最近在写上位机的开发手册和下位机的标准化,等有时间了,再从中摘录一些资料,慢慢完善博文,本文算是一个概述吧。

本上位机系统涉及的通讯有:西门子S7通讯、数据库sql2012通讯、4个tcp客户端、10个ModbusTcp客户端。

  1. 西门子S7通讯是好东西,网上资料是很成熟的,可以读写任意数据存储区,300ms读取一次。但是写数据,注意不要重复写,只有变量变化的时候才写,这样可降低开销;
  2. 数据库sql2012通讯需要配置freeTDS和unixODBC,虽然有些麻烦,但网上的资料挺多的,但要注意网路中断的处理;win系统下用Qt连接sql2012是很简单的,数据源设置很方便,但是Linux开源的,对我们这样批量生产项目来说是个很好的选择,可以节省一笔费用。
  3. tcp就更简单了,网上参考代码一堆;
  4. ModbutTCP是给RFID通讯用的,Qt例程直接有相关代码,各种异常处理很全,直接参考就行。

因为还有MES专门做产量和稼动率展示,所以上位机画面就做的简单点,给工程师操作的,主要突出的是功能,比较难看。

Qt的按钮分组、样式表真是个好东西。按钮分组QButtonGroup能减少代码量,样式表可以实现很多功能,如按钮实现自锁功能。还有正则限制功能的灵活应用。

上张图
ubuntu下Qt开发西门子PLC上位机_第1张图片

你可能感兴趣的:(ubuntu,qt5,sql,linux)