我已经用谷歌搜索并搜索了很多我的问题,但没有受到任何使用威胁。我有与https://github.com/yaacov/node-modbus-serial/issues/115相同的问题,但我使用的是 Windows 10 操作系统。我尝试了建议的解决方案,但仍然是同样的问题。我认为这应该很简单,但现在卡住了好几天
var path = "COM3";
var ModbusRTU = require("modbus-serial");
var client = new ModbusRTU();
client.connectRTUBuffered(path, { baudRate: 9600, stopbits: 1, databits: 8, parity: 'none' }, false, read());
client.setID(1);
function read() {
// read the 20 registers starting at address 0
// on device number 1.
var data = client.readHoldingRegisters(0, 20)
console.log(data)
}
使用此代码,我没有得到端口权限/权限被拒绝错误。通过设备管理器端口属性的端口信息
- 每秒比特数:9600
- 数据位:8
- 奇偶校验:无
- 停止位:1
- 流量控制:无
输出 1:(节点:10784)UnhandledPromiseRejectionWarning:错误:打开 COM3:访问被拒绝
尝试手动打开端口
var x = setInterval(function () {
if (client.isOpen) {
client.setID(1);
//console.log("WORKING WORKING");
try {
client.readHoldingRegisters(0, 10, function (err, data) {
console.log(data);
});
} catch (err) {
console.log("Error Encountered: " + err)
}
} else {
console.log("ERROR ERROR ERROR");
}
}, 1000);