示例:示例
import wsock.udp.modbusClient;
//创建 Modbus UDP 客户端
var client = wsock.udp.modbusClient("127.0.0.1", 502, 1);
//可选:调整超时和重试次数
client.setTimeout(500);
client.setRetryCount(3);
//打开客户端(可选,首次请求会自动打开)
var ok, err = client.open();
if(!ok){
return print("打开失败:", err);
}
//读取保持寄存器
var registers, err = client.readHoldingRegisters(0, 10);
if(registers){
print("保持寄存器值:");
for(i=1;#registers){
print(" 地址", i-1, "=", registers[i]);
}
}
else {
print("读取失败:", err);
}
//关闭客户端
client.close();
Modbus UDP 协议库。
相关库: wsock.tcp.modbusClient ( Modbus TCP 协议 )。
相关库: sio.modbus ( Modbus RTU 串口协议 )。
Modbus 异常码对照表
wsock.udp.client 对象
关闭客户端
服务器地址
检查客户端是否已打开,返回布尔值
掩码写寄存器(功能码0x16),
结果=(当前值 AND 掩码) OR (OR掩码 AND (NOT AND掩码))
打开客户端,成功返回 true,失败返回 null,错误信息
服务器端口
读线圈状态(功能码0x01),
返回布尔值数组,失败返回 null,错误信息
读离散输入(功能码0x02),
返回布尔值数组,失败返回 null,错误信息
读保持寄存器(功能码0x03),
返回16位整数数组,失败返回 null,错误信息
读输入寄存器(功能码0x04),
返回16位整数数组,失败返回 null,错误信息
读写多个寄存器(功能码0x17),
返回读取的16位整数数组
重试次数
发送原始 PDU 数据,
返回原始响应 PDU
设置重试次数,默认3次
设置从站地址(1-247),setUnitId 的别名
设置通信超时时间,默认1000毫秒
设置单元标识符(1-255)
超时时间(毫秒)
当前事务ID
单元标识符
写多个线圈(功能码0x0F),
参数@2为布尔值数组,成功返回true
写多个寄存器(功能码0x10),
参数@2为16位整数数组,成功返回true
写单个线圈(功能码0x05),
参数@2为布尔值,成功返回true
写单个寄存器(功能码0x06),
参数@2为16位整数,成功返回true
创建 Modbus UDP 客户端,
参数 @1 为服务器 IP 或域名,
参数 @2 为端口号(默认502),
参数 @3 为单元标识符(默认为1),
返回客户端对象