昆仑通态的MODBUS-RTU规约地址和命令能根据需要定吗?

2025-04-09 00:15:07
推荐回答(2个)
回答1:

用以下设备命令!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变量。
返回状态:返回批量读写设备命令的执行状态(当设备命令格式错误时无效), 具体返回值意义请参见通讯状态说明, 返回状态为可选参数(以[]标记), 用户也可通过通讯状态通道判断返回结果。

回答2:

标准的rtu ,03功能功能码,对应输出寄存器0X4-----, 起始地址如果是从0000开始的话,需要协议地址加1.
选择4区,地址01,对应功能码03的0000。
4区地址02,对应功能码03的0001