首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Nodejs -如何充当modbus rtu服务器

Nodejs -如何充当modbus rtu服务器
EN

Stack Overflow用户
提问于 2019-07-08 04:24:29
回答 1查看 4.3K关注 0票数 1

我正在尝试设置一个接受modbus RTU投票的侦听器。

我已经发现了很多与modbus相关的npm库,但它们都与来自其他modbus从服务器的轮询有关,或者充当modbus服务器。我需要模拟modbus从服务器,而不是计票器(充当modbus RTU服务器)

编辑:我找到了这个库https://github.com/Cloud-Automation/node-modbus

源代码中有一个modbus-rtu-server.js文件,所以我一直试图使用这个文件。但是,在没有文档的情况下,我很难理解和使用这个库。以下是我尝试过的:

代码语言:javascript
运行
复制
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);
});

到目前为止,这就是我所拥有的,但是“连接”事件从来没有发生过,我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-08 07:05:33

服务器只是在等待一个客户端连接。要使connect事件发生,必须从客户端启动查询。这意味着您需要有第二个串行端口连接到您的/dev/ttyUSB0并从它启动一个Modbus查询。为此,您可以使用相同的库或任何其他工具,如modpoll或QModMaster

您还需要开发一些您的服务器,因为现在它还没有定义任何寄存器,所以它不会有多大用处。

查看TCP示例,特别是SimpleServer。如您所见,您需要在服务器上定义Modbus寄存器或线圈,如下所示:

代码语言:javascript
运行
复制
server.on('readCoils', function (request, response, send) {
/* Implement your own */

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

send(response)
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56928400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档