触屏里自带的标准MODBUSRTU规约上命令码对应的数据地址都被定死了,比如:命令03读寄存器对应的地址就是0x3001开始。我想用03命令都0001地址怎么办?
用以下设备命令!SetDevice Read()或ReadP试试,直接设置地址,举例如下:
1)!SetDevice(设备0,6, "Read(0,1,BT00=Data00;1,10,BT00=Data01) ")
读取0区地址为1,1区地址10的继电器值,放入MCGS变量Data00,Data01中。
2) !SetDevice(设备0,6,"ReadP(4,10,WUB,2,Data00,Data01,nReturn)")
表示读取4区寄存器从地址10开始的两个16位无符号数值,放入
MCGS变量Data00,Data01中, 执行结果存入变量nReturn中。
ReadP(寄存器名称, 起始地址, 数据类型,数据个数n, 数据1, …..数据n [,返回状态])
参数说明:
寄存器名称:字符型变量,表示当前操作的寄存器,值为”1”,”0”,”3”,”4”,分别对应[1区]输入继电器、[0区]输出继电器、[3区]输入寄存器、[4区]输出寄存器。
寄存器地址:数值型变量,表示当前操作的寄存器地址,不同的设备地址范围不同,查阅相关手册确定。
数据类型:字符型变量,表示当前操作的寄存器数据类型附录2
数据:数值型变量、开关量,它是用来存储设备命令数据的MCGS变量。
返回状态:返回批量读写设备命令的执行状态(当设备命令格式错误时无效), 具体返回值意义请参见通讯状态说明, 返回状态为可选参数(以[]标记), 用户也可通过通讯状态通道判断返回结果。