JSPM

  • Created
  • Published
  • Downloads 38
  • Score
    100M100P100Q32971F
  • License MIT

Sum of implementations for the Serial/TCP Modbus protocol.

Package Exports

  • node-modbus

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (node-modbus) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

NPM version Build Status Standard - JavaScript Style Guide NPM download

nodemodbus64

node-modbus

NODE-MODBUS is a simple Modbus TCP/Serial Client/Server API.

Install

Run the following command in the root directory of your Node-RED install

npm install node-modbus

Run the following command for global install

npm install -g node-modbus

Testing

The test files are implemented using mocha and sinon. Simply use npm-update.sh in the source code project. To run the tests type from the projects root folder mocha test/*. Please feel free to fork and add your own tests.

Examples

Server TCP

let node_modbus = require('node-modbus')
let server = node_modbus.server.tcp.complete({ port : 502, responseDelay: 200 })

Client TCP

const node_modbus = require('node-modbus')

const client = node_modbus.client.tcp.complete({
    'host': 'modbus.server.local', /* IP or name of server host */
    'port': 502, /* well known Modbus port */
    'unitId': 1, 
    'timeout': 2000, /* 2 sec */
    'autoReconnect': true, /* reconnect on connection is lost */
    'reconnectTimeout': 15000, /* wait 15 sec if auto reconnect fails to often */
    'logLabel' : 'ModbusClientTCP', /* label to identify in log files */
    'logLevel': 'debug', /* for less log use: info, warn or error */
    'logEnabled': true
})

const time_interval = 1000
client.connect()
client.on('connect', function () {
  setInterval( function () {
     client.readCoils(0, 13).then((response) => console.log(response.payload))
  }, time_interval) /* reading coils every second */
})

Server Serial

TBD

Client Serial

const node_modbus = require('node-modbus')

const client = modbus.client.serial.complete({
    'portName': '/dev/ttyS0', /* COM1 */
    'baudRate': '9600', /* */
    'dataBits': '8', /* 5, 6, 7 */
    'stopBits': '1', /* 1.5, 2 */
    'parity': 'none', /* even, odd, mark, space */
    'connectionType': 'RTU', /* RTU or ASCII */
    'connectionDelay': 250, /* 250 msec - sometimes you need more on windows */
    'timeout': 2000, /* 2 sec */
    'autoReconnect': true, /* reconnect on connection is lost */
    'reconnectTimeout': 15000, /* wait 15 sec if auto reconnect fails to often */
    'logLabel' : 'ModbusClientTCP', /* label to identify in log files */
    'logLevel': 'debug', /* for less log use: info, warn or error */
    'logEnabled': true
})

/* here we need none connect call */

const time_interval = 1000
client.on('connect', function () {
  setInterval( function () {
     client.readCoils(0, 13).then((response) => console.log(response.payload))
  }, time_interval) /* reading coils every second */
})

License

MIT

Based on jsmodbus