如题,如何能保证下发成功呢?读取也不超时。有时候还会出现 “CRC error”,最多的就是“Timed out”
下面是我的代码
const ModbusRTU = require("modbus-serial");
var rodClient = new ModbusRTU();
rodClient.connectRTUBuffered(“com1”, { baudRate: 9600, dataBits: 8, stopBits: 1, parity: "none" })
rodClient.setID(1)
rodClient.setTimeout(1000)
//循环读取设备信息
ipcMain.on("COM1", (event, args) => {
if(roditem){
clearInterval(roditem);
}
roditem = setInterval(() => {
rodClient.readHoldingRegisters(com1Obj.readAddress, com1Obj.quantity).then(res => {
event.reply('COM1msg', res.data)
}, rej => {
log.error("读取" + com1Obj.port + ':' + rej.message)
}).then(blackBoxInstuctions).catch(err => {
log.error('COM1ERR,黑盒' + err)
})
}, 100);
})
//写数据
function closeOff(){
rodClient.writeCoils(com1Obj.stopWriteAddress, com1Obj.stopValue).then(
res => {
},
rej => {
log.error("停止异常"+rej.message);
}
);
}