hacker-cb / modbus-dart

BSD 3-Clause "New" or "Revised" License
38 stars 23 forks source link

modbus-dart

Simple Modbus client library for dart. Currently only the TCP connection is supported.

pub package

Usage

Single slave (Modbus RTU)

import 'package:modbus/modbus.dart' as modbus;

main(List<String> arguments) async {

  var client = modbus.createTcpClient(
    '10.170.1.20',
    port: 1001,
    mode: modbus.ModbusMode.rtu,
  );

  try {
    await client.connect();

    var slaveIdResponse = await client.reportSlaveId();

    print("Slave ID: " + slaveIdResponse);
  } finally {
    client.close();
  }
}

Multi slaves with one connection (Modbus RTU)

import 'package:modbus/modbus.dart' as modbus;

main(List<String> arguments) async {

  var client = modbus.createTcpClient(
    '10.170.1.20',
    port: 1001,
    mode: modbus.ModbusMode.rtu,
  );

  try {
    await client.connect();

    client.setUnitId(100);
    var slaveIdResponse = await client.reportSlaveId();

    print("Slave ID: " + slaveIdResponse);

    client.setUnitId(150);
    var slaveIdResponse = await client.reportSlaveId();

    print("Slave ID: " + slaveIdResponse);
  } finally {
    client.close();
  }
}

Limitations

SerialConnector is not implemented yet.