上一篇介绍了modbus协议的基本概念,这一篇主要介绍最近做的一个小项目:STM3210ZET6与昆仑屏(TPC)的通信。在该项目中最关键的技术就是下位机modbus协议的解析。
首先介绍下昆仑屏(TPC),项目中用到的触摸屏采用的RS232接口,modbus协议。
采用的驱动是:莫迪康ModbusRTU;本驱动支持 01、02、03、04、05、06、15、16 常用功能码。
本驱动构件支持的寄存器及功能码说明如下:
1、设备构件参数设置:
“莫迪康 ModbusRTU”子设备参数设置如下:
“莫迪康 ModbusRTU”子设备参数设置如下:
(2)最小采集周期:MCGS对设备进行操作的时间周期, 单位为 ms, 默认为100ms,根据采集数据量的大小,设置值可适当调整
(3)设备地址:必须和实际设备的地址相一致,范围为0-255,默认值为 0。
(4)通讯等待时间:通讯数据接收等待时间,默认设置为 200ms,根据采集数据量的大小,设置值可适当调整。
(5)快速采集次数:对选择了快速采集的通道进行快采的频率(已不使用,为与老驱动兼容,故保留,无需设置) 。
(6)16位整数解码顺序:调整字元件的解码顺序,对于Modicon PLC 及标准 PLC设备,使用默认值即可。
16 位整数解码顺序 举例:0x0001
0―12 表示字元件高低字节不颠倒(默认值) 表示 1
1―21 表示字元件高低字节颠倒 表示 256
16 位整数解码顺序 举例:0x0001
0―12 表示字元件高低字节不颠倒(默认值) 表示 1
1―21 表示字元件高低字节颠倒 表示 256
(7)32位整数解码顺序:调整双字元件的解码顺序,对于Modicon PLC,请设置为“2-3412”顺序解码。
32 位整数解码顺序 举例: 0x0000 0001
0―1234 表示双字元件不做处理直接解码(默认值) 表示 1
1―2143 表示双字元件高低字不颠倒,但字内高低字节颠倒 表示256
2—3412表示双字元件高低字颠倒,但字内高低字节不颠倒 表示65536
3—4321表示双字元件内4 个字节全部颠倒 表示 1677 7216
32 位整数解码顺序 举例: 0x0000 0001
0―1234 表示双字元件不做处理直接解码(默认值) 表示 1
1―2143 表示双字元件高低字不颠倒,但字内高低字节颠倒 表示256
2—3412表示双字元件高低字颠倒,但字内高低字节不颠倒 表示65536
3—4321表示双字元件内4 个字节全部颠倒 表示 1677 7216