modbus 0.3.0

Modbus protocol


To use this package, run the following command in your project's root directory:

Manual usage
Put the following dependency into your project's dependences section:

Modbus protocol

Library provides modbus wrapper over RTU and TCP connections. By default using serialport package.

Simple usage:

auto mbus = new ModbusRTU(new SerialPort("/dev/ttyUSB0", 19200));

mbus.writeTimeout = 100.msecs;
mbus.readTimeout = 2.seconds;
mbus.readFrameGap = 5.msecs; // use for detect end of data pack

For tcp connection using std.socket.TcpSocket.

auto addr = "device_IP";
ushort port = 502; // or 503
auto mbs = new ModbusTCP(new InternetAddress(addr, port));
writeln(mbs.readInputRegisters(1, 17, 1));

ModbusRTU and ModbusTCP close serial port and socket in destructors.

You can configure library with custom serialport realization. For this past subConfiguration "modbus" "custom" to your dub.sdl or "subConfigurations": { "modbus": "custom" } to your dub.json. In this case Modbus don't manage your serial port or tcp connection. They uses through simple interfaces with read and write methods and you must close opened connections by yourself.

Example:

import myserialport;
import modbus;
import modbus.backend;

auto com = new MySerialPort();

auto mbus = new Modbus(new RTU(new class Connection{
            override:
                void write(const(void)[] msg) { com.write(msg); }
                void[] read(void[] buffer) { return com.read(buffer); }
            }));

auto registers = mbus.readInputRegisters(device, address, count);
Authors:
  • Oleg Butko (deviator)
Dependencies:
none
Versions:
0.20.2 2021-Dec-02
0.20.1 2020-Sep-04
0.20.0 2020-Aug-26
0.19.5 2020-Aug-24
0.19.4 2020-Jul-27
Show all 49 versions
Download Stats:
  • 0 downloads today

  • 0 downloads this week

  • 1 downloads this month

  • 975 downloads total

Score:
1.2
Short URL:
modbus.dub.pm