现在对Modbus RTU做一个分析,Modbus RTU是一种国际的、开放的现场总线标准。MODBUS RTU 通讯协议的报文功能码如下:
01H 读取线圈状态。 从执行机构上读取线圈(单个位)的内容;
02H 读取离散量输入。 从执行机构上读取离散量输入(多个位)的内容;
03H 读取保持寄存器。 从执行机构上读取保持寄存器(16位字)的内容;
04H 读取输入寄存器。 从执行机构上读取输入寄存器(16位字)的内容;
05H 强置单线圈。 写数据到执行机构的线圈(单个位)为“通”(“1”)或
“断”(“0”);
06H 预置单寄存器。 写数据到执行机构的单个保持寄存器(16位字);
0FH 强置多线圈。 写数据到执行机构的几个连续线圈(单个位)为“通”(“1”)
或“断”(“0”);
10H 预置多寄存器。 写数据到执行机构的几个连续的保持寄存器(16位字)。
EB8000软件中MODBUS协议的设备类型为0x、1x、3x、4x、5x、6x,还有3x_bit,4x_bit,6x_bit,0x_multi_coils等,06x功能码介绍如下:
6x:是一个可读可写的设备类型,读取数据的时候,发出的功能码也是03H,与4x不同之处在于写数据的时候发出的功能码时06H,即写单个寄存器的数据。
楼主用的是06x功能码,就是预置单寄存器的值,意思是可以在选定的变频器地址里预置写入一个数值,现在就是在变频器8193地址里面写入一个常数18。
至于那个点动常数应该怎么写,要看具体的变频器里面的控制参数了,那个地址对不对还是两说呢,具体的细节,在下收集查询资料后再来细说。