aardio 文档

wsock.tcp.modbusClient 库模块帮助文档

示例

示例:

import wsock.tcp.modbusClient;

//创建 Modbus TCP 客户端
var client = wsock.tcp.modbusClient("127.0.0.1", 502, 1);

//连接服务器(可选指定超时秒数)
var ok, err = client.connect(3);
if(!ok){
    print("连接失败:", err);
    return;
}

print("已连接到 Modbus TCP 服务器");

//读取保持寄存器
var registers, err = client.readHoldingRegisters(0, 10);
if(registers){
    print("保持寄存器值:");
    for(i=1;#registers){
        print("  地址", i-1, "=", registers[i]);
    }
}
else {
    print("读取失败:", err);
}

//写入单个寄存器
var ok, err = client.writeSingleRegister(0, 1234);
print("写入寄存器:", ok ? "成功" : err);

//读取线圈状态
var coils, err = client.readCoils(0, 8);
if(coils){
    print("线圈状态:");
    for(i=1;#coils){
        print("  线圈", i-1, "=", coils[i]);
    }
}

//写入多个寄存器
var ok, err = client.writeMultipleRegisters(10, [100, 200, 300]);
print("写入多个寄存器:", ok ? "成功" : err);

//关闭连接
client.close();

wsock.tcp.modbusClient 成员列表 #

Modbus TCP 协议库。

相关库: wsock.udp.modbusClient ( Modbus UDP 协议 )。
相关库: sio.modbus ( Modbus RTU 串口协议 )。

wsock.tcp.modbusClient.exceptionMessages #

Modbus 异常码对照表

WsockTcpModbusObject 成员列表 #

WsockTcpModbusObject.client #

wsock.tcp.client 对象

返回对象:tcpclientObject

WsockTcpModbusObject.close() #

关闭连接

WsockTcpModbusObject.connect() #

连接服务器,成功返回 true,失败返回 null,错误信息

WsockTcpModbusObject.connect(超时秒数) #

连接服务器,可指定超时时间(秒),成功返回 true

WsockTcpModbusObject.host #

服务器地址

WsockTcpModbusObject.isConnected() #

检查是否已连接,返回布尔值

WsockTcpModbusObject.maskWriteRegister(地址,AND掩码,OR掩码) #

掩码写寄存器(功能码0x16),
结果=(当前值 AND 掩码) OR (OR掩码 AND (NOT AND掩码))

WsockTcpModbusObject.port #

服务器端口

WsockTcpModbusObject.readCoils(起始地址,数量) #

读线圈状态(功能码0x01),
返回布尔值数组,失败返回 null,错误信息

WsockTcpModbusObject.readDiscreteInputs(起始地址,数量) #

读离散输入(功能码0x02),
返回布尔值数组,失败返回 null,错误信息

WsockTcpModbusObject.readHoldingRegisters(起始地址,数量) #

读保持寄存器(功能码0x03),
返回16位整数数组,失败返回 null,错误信息

WsockTcpModbusObject.readInputRegisters(起始地址,数量) #

读输入寄存器(功能码0x04),
返回16位整数数组,失败返回 null,错误信息

WsockTcpModbusObject.readWriteMultipleRegisters(读起始地址,读数量,写起始地址,写值数组) #

读写多个寄存器(功能码0x17),
返回读取的16位整数数组

WsockTcpModbusObject.sendRaw(PDU数据,期望长度) #

发送原始 PDU 数据,
返回原始响应 PDU

WsockTcpModbusObject.setSlaveId(从站地址) #

设置从站地址(1-247),setUnitId 的别名

WsockTcpModbusObject.setTimeout(毫秒) #

设置通信超时时间,默认1000毫秒

WsockTcpModbusObject.setUnitId(单元标识符) #

设置单元标识符(1-255)

WsockTcpModbusObject.timeout #

超时时间(毫秒)

WsockTcpModbusObject.transactionId #

当前事务ID

WsockTcpModbusObject.unitId #

单元标识符

WsockTcpModbusObject.writeMultipleCoils(起始地址,值数组) #

写多个线圈(功能码0x0F),
参数@2为布尔值数组,成功返回true

WsockTcpModbusObject.writeMultipleRegisters(起始地址,值数组) #

写多个寄存器(功能码0x10),
参数@2为16位整数数组,成功返回true

WsockTcpModbusObject.writeSingleCoil(地址,值) #

写单个线圈(功能码0x05),
参数@2为布尔值,成功返回true

WsockTcpModbusObject.writeSingleRegister(地址,值) #

写单个寄存器(功能码0x06),
参数@2为16位整数,成功返回true

wsock.tcp 成员列表 #

wsock.tcp.modbusClient("192.168.1.1",502,1) #

创建 Modbus TCP 客户端,
参数 @1 为服务器 IP 或域名,
参数 @2 为端口号(默认502),
参数 @3 为单元标识符(默认为1),
返回客户端对象

wsock.tcp.modbusClient() #

返回对象:WsockTcpModbusObject

Markdown 格式