发表于:2019/7/30 17:33:10
#0楼
Modbus通讯编程实例(二)
继续上编程实例。请结合前面讲到的Modbus协议内容,就很容易理解这些数值设定。
实例二:读取N字(功能码03)
-图-
其中在EMIS数组中第一个字,低字节为功能码03,高字节为读取字的起始地址1
第二个字,低字节为读取字的起始地址1,高字节为读取字的长度6
第三个字,低字节为读取字的长度6
最后要在交换管理表的第四个字中定义这个报文字节的长度,为1个字节的功能码,2个字节的数据起始地址,2个字节的读取字的长度,所以长度为1+2+2=5
在TWIDO中赋值如下
-图-
在RECP中第一个字为返回码
第二个字开始为读取的数据
-图-
实例三:写单字(功能码06)
-图-
其中在EMIS数组中第一个字,低字节为功能码06,高字节为从站要写入字的地址11
第二个字,低字节为从站要写入字的地址11,高字节为主站写出字的地址90
第三个字,低字节为主站写出字的地址90
最后要在交换管理表的第四个字中定义这个报文字节的长度,为1个字节的功能码,2个字节的从站写入字地址,2个字节的主站写出字地址,所以长度为1+2+2=5
在主站赋值如下
-图-
在TWIDO中显示如下:
-图-
继续上编程实例。请结合前面讲到的Modbus协议内容,就很容易理解这些数值设定。
实例二:读取N字(功能码03)
-图-
其中在EMIS数组中第一个字,低字节为功能码03,高字节为读取字的起始地址1
第二个字,低字节为读取字的起始地址1,高字节为读取字的长度6
第三个字,低字节为读取字的长度6
最后要在交换管理表的第四个字中定义这个报文字节的长度,为1个字节的功能码,2个字节的数据起始地址,2个字节的读取字的长度,所以长度为1+2+2=5
在TWIDO中赋值如下
-图-
在RECP中第一个字为返回码
第二个字开始为读取的数据
-图-
实例三:写单字(功能码06)
-图-
其中在EMIS数组中第一个字,低字节为功能码06,高字节为从站要写入字的地址11
第二个字,低字节为从站要写入字的地址11,高字节为主站写出字的地址90
第三个字,低字节为主站写出字的地址90
最后要在交换管理表的第四个字中定义这个报文字节的长度,为1个字节的功能码,2个字节的从站写入字地址,2个字节的主站写出字地址,所以长度为1+2+2=5
在主站赋值如下
-图-
在TWIDO中显示如下:
-图-