我试着用这段代码,但不能得到值,有人能帮我吗?对不起,因为我是NodeJS的新手。我不明白为什么代码不能返回值。
const ModbusRTU = require("modbus-serial");
var client = new ModbusRTU();
client.connectRTUBuffered("COM3", { baudRate: 9600 });
var async = require("async");
setInterval(function(callback) {
async.parallel({
async_modbus_1_1: function(clbk) {
client.writeFC3(1, 4103, 2, function(err, data) {
console.log(data);
});
},
async_modbus_1_2: function(clbk) {
client.writeFC3(1, 4106, 2, function(err, data) {
console.log(data);
});
},
async_modbus_2_1: function(clbk) {
client.writeFC3(3, 4103, 2, function(err, data) {
console.log(data);
});
},
async_modbus_2_2: function(clbk) {
client.writeFC3(3, 4106, 2, function(err, data) {
console.log(data);
});
}
},
function(error, result) {
if (error) {
console.log(error);
}
if (result) {
console.log(result);
}
});
}, 1000);
我尝试使用该代码连接到modbus从站,当我试图运行从modbus从站返回的I‘t get value时,在modbus从站中,我只是在没有Tx值的情况下获得此值
000781-Rx:01 03 10 07 00 02 71 0A 01 03 10 0A 00 02 E0 C9 03 03 10 07 00 02 70 E8 03 03 10 0A 00 02 E1 2B
发布于 2019-08-06 11:12:36
不知道您是否仍然需要帮助,但此问题是由于尝试并行发送命令而导致的。由于您正在进行Modbus串行通信,因此在发送另一个命令之前,必须等待接收到响应。您不能使用异步,因为它将通过串行连接并行发送命令。
https://stackoverflow.com/questions/50146939
复制相似问题