-
Notifications
You must be signed in to change notification settings - Fork 126
Open
Description
Hey! I'm working with your node on node-red for reading from a plc S7-1200, rack 0 and slot 1 with external functions. But every time I send a readAllItems I get the response I want but the connection resets every time and never closes, even with dropConnection and connectionCleanup... I've been trying to solve it for a few days now, if anyone has any ideas...
var devices = msg.payload; // devices example: {"delta":0,"name":"10.255.3.214","rack":0,"slot":1,"data":"Q0.0","ip":"10.255.3.214","port":102}
msg = [];
let nodes7 = global.get('nodes7');
var conn = new nodes7({ globalTimeout: 2000 });
var doneReading = false;
devices.forEach((/** @type {{ modbus_id: any; modbus_ip: any; modbus_port: any; address: any; quantity: any; }} */ dev) => {
var variables = {
DATA: dev.data
};
conn.initiateConnection({ port: dev.port, host: dev.ip, rack: dev.rack, slot: dev.slot, debug: false }, connected);
function connected(err) {
if (typeof (err) !== "undefined") {
// PLC FORA DO ALCANCE
//console.log(err);
node.error({
"ip": dev.ip,
"port": dev.port,
"message": "ERRO! Falha na leitura do host " + dev.ip + "!",
"error": err.code
});
flow.set("aguarda", false);
conn.dropConnection();
conn.connectionCleanup();
}
conn.setTranslationCB(function (tag) { return variables[tag]; });
conn.addItems('DATA');
conn.readAllItems(valuesReady);
}
function valuesReady(anythingBad, values) {
if (anythingBad) { console.log("ERRO! Falha na leitura do host."); flow.set("aguarda", false); conn.dropConnection(); conn.connectionCleanup(); }
//console.log(values);
if (values.DATA != "BAD 255") {
node.send({
"topic": "TCP Response",
"host": dev.ip,
"port": dev.port,
"rack": dev.rack,
"slot": dev.slot,
"data": dev.data,
"payload": values.DATA
});
}
doneReading = true;
conn.dropConnection();
conn.connectionCleanup();
}
});
return msg;Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels