Skip to content

TCP ECCONRESET #129

@anacarolina-ms

Description

@anacarolina-ms

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;

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions