UniSet 2.44.3
(JScript) Modbus TCP клиент (uniset2-modbus-client.js)

Обёртка над 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-соединение.

mb.disconnect();

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();