我认为“又爱又恨的Modbus通信”这个题目就有些纠结,爱和恨应该是不同对象。爱,Modbus通讯用着简单、方便,很多仪表、设备都支持Modbus协议,我们只需要按照仪表说明书把得到的数据进行简单处理就可以恢复成工程量。恨,是恨自己掌握Modbus通讯及数据组织太晚,用得还不够娴熟。
大约是2007年,我们一个空调系统循环泵控制项目,就提出与办公系统联网采用Modbus协议。那时候对这个通讯协议没有概念,只是知道S7-200具备Modbus通讯的功能,就硬着头皮答应下来。当办公系统调试时跟我们要地址表时,我们真的很为难。对Modbus,感到恐惧和无奈,不晓得如何组织、编排。甲方后来让步了,只要求给他几个运行状态的干触点,以监视水泵运行状态。如今回忆起来,仍然感觉对不住甲方,水流量、压差等参数没法在办公系统上显示。
我们的工程项目上,用过PPI协议、MPI协议、USS协议、自由口等,普遍采用Modbus协议是在2011年之后。起因还是为了读取模拟量通讯采集模块,用S7-200,以19.2k波特率,按Modbus协议读取16路模拟量采集模块。参照模块说明书,编写了PLC端口设置、读数、分拆数据等程序,突然发现,Modbus协议,使用起来竟如此方便。接着我们把使用高速计数器读流量计脉冲数的方案也改为通讯采集。
现在我们的项目中,能通讯解决的输入输出问题,都优先采用通讯方式。而通讯协议,首选当然是Modbus。