连接到 Modbus 时出现 PortNotOpenError

问题描述 投票:0回答:1

我正在尝试使用 JavaScript 的 modbus-serial 库连接到 Modbus TCP。我已确认我使用的是正确的 IP 地址和端口。我的网络没有防火墙,如果有的话,使用另外 2 个替代方案,我能够将我的 Modbus 连接到设备并使其他设备执行许多操作。但是,我仍然收到此错误:

端口未打开错误{ name: '端口未打开错误', 消息:'端口未打开', 错误号:'ECONNREFUSED' }

这是我的代码:

const ModbusRTU = require("modbus-serial");
console.log("Imported Library");

const client = new ModbusRTU();
console.log("Defined Client");

client.connectTCP("", { port: });
console.log("Connected to Modbus TCP server");

console.log("");

client.writeCoil(2000, 0x01, function (err) {
  if (err) {
    console.error(err);
  } else {
    console.log("Coil successfully set!");
  }
});

我已经删除了这个问题中的IP和端口。

我希望代码能够打开我大厅的空调,但它显示了错误。

另外,第一个应用程序太贵了,所以我无法使用它,第二个应用程序是免费的,但它的图形无法自定义,我不得不求助于我当前的选项,NodeJS(v20.10.0)和一些插件自定义视图。

另外,我尝试使用 2000 和 2001。我不知道这个库的偏移量(如何检查)?

https://github.com/yaacov/node-modbus-serial/issues/115 - 在此,他们使用 RS485。我正在使用 TCP IP。

这是否是因为我暂时使用Replit造成的?我是否应该使用另一个 JS 库(哪个库,如何使用它?)?我的代码是否不正确(我从找到了代码并进行了编辑)?

node.js raspberry-pi4 modbus modbus-tcp
1个回答
0
投票

在 Replit 中运行代码时,它将在他们的服务器上运行,而不是在您的 PC 上运行。这意味着它将无法直接访问您 LAN 上的内容。

注:评论中提出了这个建议,但没有回应。 OP 似乎在 Reddit 上提出了同样的问题,并表示这就是问题所在。

© www.soinside.com 2019 - 2024. All rights reserved.