https://github.com/dresende/node-modbus-tcp
NodeJS Modbus TCP/IP
https://github.com/dresende/node-modbus-tcp
modbus modbus-tcp tcp
Last synced: 9 months ago
JSON representation
NodeJS Modbus TCP/IP
- Host: GitHub
- URL: https://github.com/dresende/node-modbus-tcp
- Owner: dresende
- License: mit
- Created: 2013-12-06T23:23:14.000Z (about 12 years ago)
- Default Branch: master
- Last Pushed: 2018-07-09T16:40:27.000Z (over 7 years ago)
- Last Synced: 2025-04-10T01:08:06.733Z (9 months ago)
- Topics: modbus, modbus-tcp, tcp
- Language: JavaScript
- Size: 52.7 KB
- Stars: 118
- Watchers: 10
- Forks: 48
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
- License: LICENSE
Awesome Lists containing this project
README
## Modbus TCP/IP Stream
[](http://travis-ci.org/dresende/node-modbus-tcp)
This is a very simple module that uses NodeJS Streams2 to read Modbus TCP data and convert it to JSON and vice-versa.
## Install
If you're just starting or just trying to use this library, **I advise you to try [modbus-stream](http://github.com/node-modbus/stream)**. It's more complete (it supports all standard function codes) and it was designed to work with TCP, RTU and ASCII modes.
```sh
npm install modbus-tcp
```
## Example
```js
var modbus = require("modbus-tcp");
var client = new modbus.Client();
var server = new modbus.Server();
// link client and server streams together
client.writer().pipe(server.reader());
server.writer().pipe(client.reader());
// if you have a socket (stream) you can just
// call client.pipe(socket) or server.pipe(socket)
server.on("read-coils", function (from, to, reply) {
return reply(null, [ 1, 0, 1, 1 ]);
});
// read coils from unit id = 0, from address 10 to 13
client.readCoils(0, 10, 13, function (err, coils) {
// coils = [ 1, 0, 1, 1 ]
});
```
## Client Methods
All of the following read methods have the form `method(unitId, from, to, next)` and write methods have the form `method(unitId, addr, val, next)`, where `next` is an **optional** function called if the server replies (with the same transactionId) to the sent message.
- readCoils
- readDiscreteInputs
- readHoldingRegisters
- readInputRegisters
- writeSingleCoil
- writeSingleRegister
- writeMultipleCoils
- writeMultipleRegisters
Addresses are exactly as is in protocol, so if you see a paper talking about address `40001` this usually means first record address of that function so it means address `0`.
## Server Events
- read-coils
- read-discrete-inputs
- read-holding-registers
- read-input-registers
- write-single-coil
- write-single-register
- write-multiple-coils
- write-multiple-registers
- data
This last event is triggered when an unknown function code is received.