簡體   English   中英

Node.js-如何充當Modbus RTU服務器

[英]Nodejs - How to act as modbus rtu server

我正在嘗試設置一個接受modbus RTU輪詢的偵聽器。

我發現了很多與Modbus相關的npm庫,但它們都與從其他Modbus從站輪詢或充當Modbus TCP服務器有關。 我需要模擬modbus從站,而不是輪詢器(充當modbus RTU服務器)

編輯:我發現了這個庫https://github.com/Cloud-Automation/node-modbus

源代碼中有一個modbus-rtu-server.js文件,因此我一直在嘗試使用它。 但是,我在沒有文檔的情況下難以理解和使用該庫。 這是我嘗試過的:

const modbus = require('jsmodbus')
const SerialPort = require('serialport')
const options = {
    baudRate: 9600
}
const socket = new SerialPort("/dev/ttyUSB0", options)
const server = new modbus.server.RTU(socket)
server.on('connect', function (client) {
    console.log(client);
});

到目前為止,這是我所擁有的,但是“連接”事件從未發生,我在做什么錯?

服務器只是在等待客戶端連接。 為了使connect事件發生,您必須從客戶端啟動查詢。 這意味着您需要將第二個串行端口連接到/dev/ttyUSB0並從中啟動Modbus查詢。 為此,您可以使用相同的庫或任何其他工具,例如modpollQModMaster

您還需要開發一些服務器,因為現在它沒有定義任何寄存器,因此不會有太大用處。

查看TCP示例,尤其是SimpleServer 如您所見,您需要在服務器上定義Modbus寄存器或線圈,如下所示:

server.on('readCoils', function (request, response, send) {
/* Implement your own */

response.body.coils[0] = true
response.body.coils[1] = false

send(response)
})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM