Обёртка над uniset.modbus, повторяющая команды mbtester/mbtcptester. Даёт удобный объектный API для Modbus/TCP.
Загрузка и создание клиента
load("uniset2-modbus-client.js");
const mb = uniset_createModbusClient();
Фабрика проверяет наличие всех нативных методов и бросает исключение, если движок собран без поддержки Modbus.
API и примеры
connectTCP(opts)
Подключается к Modbus/TCP устройству.
Параметры:
- host — IP/домен (строка, обязательно);
- port — номер порта (по умолчанию 502);
- timeout — (опц.) таймаут в мс;
- forceDisconnect — (опц.) true, чтобы разрывать прежнее соединение.
mb.connectTCP({ host: "192.168.1.10", port: 502, timeout: 2000 });
disconnect()
Разрывает TCP-соединение.
read01(opts)
Читает coils (функция 0x01). opts содержит slave, reg, count.
const coils = mb.read01({ slave: 1, reg: 0, count: 8 });
// -> [0,1,0,0,1,1,0,0]
read02(opts)
Читает discrete inputs (0x02).
const inputs = mb.read02({ slave: 1, reg: 100, count: 4 });
read03(opts)
Читает holding registers (0x03).
const hold = mb.read03({ slave: 1, reg: 0, count: 2 }); // -> [123, 456]
read04(opts)
Читает input registers (0x04).
const analog = mb.read04({ slave: 1, reg: 10, count: 6 });
write05(opts)
Устанавливает coil (0x05). value приводится к булеву.
mb.write05({ slave: 1, reg: 0, value: true });
write06(opts)
Пишет одиночный holding register (0x06).
mb.write06({ slave: 1, reg: 20, value: 250 });
write0F(opts)
Записывает набор coils (0x0F). values — массив булевых.
mb.write0F({ slave: 1, reg: 0, values: [1,0,1,1,0,0,1,0] });
write10(opts)
Записывает несколько holding registers (0x10). values — массив чисел 0..65535.
mb.write10({ slave: 1, reg: 30, values: [1000, 2000, 3000] });
diag08(opts)
Диагностическая функция 0x08.
Параметры: slave, subfunc (код подфункции), data (опционально).
const resp = mb.diag08({ slave: 1, subfunc: 0x0000 }); // Return Query Data
read4314(opts)
Читает идентификаторы устройства (Modbus Encapsulated Interface, 0x2B/0x0E). Параметры: slave, devID, objID.
const info = mb.read4314({ slave: 1, devID: 0x01, objID: 0x00 }); // Basic device identification
Полный пример
load("uniset2-modbus-client.js");
const mb = uniset_createModbusClient();
mb.connectTCP({ host: "192.168.1.50", port: 1502, timeout: 3000 });
const coils = mb.read01({ slave: 2, reg: 0, count: 16 });
mb.write06({ slave: 2, reg: 5, value: 1234 });
mb.disconnect();