UNPKG

jsmodbus

Version:

Implementation for the Serial/TCP Modbus protocol.

76 lines (53 loc) 1.97 kB
'use strict' const net = require('net') const modbus = require('../..') const netServer = new net.Server() const holding = Buffer.alloc(10000) const server = new modbus.server.TCP(netServer, { holding: holding }) server.on('connection', function (client) { console.log('New Connection') }) server.on('readCoils', function (request, response, send) { /* Implement your own */ response.body.coils[0] = true response.body.coils[1] = false send(response) }) server.on('readHoldingRegisters', function (request, response, send) { /* Implement your own */ }) server.on('preWriteSingleRegister', function (value, address) { console.log('Write Single Register') console.log('Original {register, value}: {', address, ',', server.holding.readUInt16BE(address), '}') }) server.on('WriteSingleRegister', function (value, address) { console.log('New {register, value}: {', address, ',', server.holding.readUInt16BE(address), '}') }) server.on('writeMultipleCoils', function (value) { console.log('Write multiple coils - Existing: ', value) }) server.on('postWriteMultipleCoils', function (value) { console.log('Write multiple coils - Complete: ', value) }) /* server.on('writeMultipleRegisters', function (value) { console.log('Write multiple registers - Existing: ', value) }) */ server.on('postWriteMultipleRegisters', function (value) { console.log('Write multiple registers - Complete: ', holding.readUInt16BE(0)) }) server.on('connection', function (client) { /* work with the modbus tcp client */ }) server.coils.writeUInt16BE(0x0000, 0) server.coils.writeUInt16BE(0x0000, 2) server.coils.writeUInt16BE(0x0000, 4) server.coils.writeUInt16BE(0x0000, 6) server.discrete.writeUInt16BE(0x5678, 0) server.holding.writeUInt16BE(0x0000, 0) server.holding.writeUInt16BE(0x0000, 2) server.input.writeUInt16BE(0xff00, 0) server.input.writeUInt16BE(0xff00, 2) console.log(process.argv[2]) netServer.listen(process.argv[2] || 8502)