ioBroker.beckhoff icon indicating copy to clipboard operation
ioBroker.beckhoff copied to clipboard

adsClientGetSymbolsError: timeout

Open christian9712 opened this issue 1 year ago • 3 comments

Describe the bug
Hallo zusammen,

ich habe ein Problem mit dem Ads Adapter für Beckhoff in IOBroker. Ich habe bereits zwei Instanzen vom Adapter im Einsatz und habe keine Probleme damit. Allerdings bekomme ich bei der dritten Instanz immer wieder folgende Fehlermeldung:

IoBroker Log

Ich habe bereits die Konfiguration meines IOBroker-Systems sowie die Route zur Verbindung mit dem Beckhoff-Steuerungssystem überprüft und konnte keine Fehler feststellen. Allerdings muss ich erwähnen, dass ich für diese Verbindung einen nicht ganz so schnellen VPN nutze. Aufgrund dessen vermute ich, dass das Timeout-Problem mit der VPN-Verbindung zusammenhängen könnte, bin mir jedoch nicht sicher.

Aus dem Quellcode vom "node-ads-api" konnte ich entnehmen, dass es die Timeout-Variable "timeout" gibt, welche nicht im adapter überschrieben wird.

var options = {
    //The IP or hostname of the target machine
    host: "10.0.0.2",
    //The NetId of the target machine
    amsNetIdTarget: "5.1.204.160.1.1",
    //The NetId of the source machine.
    //You can choose anything in the form of x.x.x.x.x.x,
    //but on the target machine this must be added as a route.
    amsNetIdSource: "192.168.137.50.1.1",

    //OPTIONAL: (These are set by default)
    //The tcp destination port
    //port: 48898
    //The ams source port
    //amsPortSource: 32905
    //The ams target port for TwinCat 2 Runtime 1 
    //amsPortTarget: 801 
    //The ams target port for TwinCat 3 Runtime 1
    //amsPortTarget: 851 
    //The timeout for PLC requests
    //timeout: 500
    //The Local address the socket should connect from
    //localAddress: "192.168.137.50"
    //The Local port the socket should connect from
    //localPort: 50000
    //Version of IP stack. Must be 4, 6, or 0. The value 0 indicates that both IPv4 and IPv6 addresses are allowed. Default: 0
    //family: 4
}

Ich vermute, dass mein Problem damit zusammenhängen könnte. Deshalb würde ich gerne wissen, ob es möglich ist, die Timeout-Variable in der "node-ads-api" von 500 ms auf 10000 ms zu erhöhen, um zu testen, ob dies das Problem lösen kann.

Versions:

  • Adapter version: 1.5.2
  • Node version: 5.1.25
  • Operating system: linux

christian9712 avatar Apr 20 '23 07:04 christian9712

Hallo, diese Variable wird im Adapter nicht beschrieben und kann somit aktuell auch nicht einfach zum Testen erhöht werden. Das müsste man implementieren.

Aber je nach Situation könnte es theoretisch dein Problem lösen wobei ich 500ms jetzt nicht so wenig finde. Aber kommt auf die Verbindung und natürlich auf die Größe des Programmes in der PLC an.

dkleber89 avatar Apr 27 '23 17:04 dkleber89

Hallo, diese Variable wird im Adapter nicht beschrieben und kann somit aktuell auch nicht einfach zum Testen erhöht werden. Das müsste man implementieren.

Aber je nach Situation könnte es theoretisch dein Problem lösen wobei ich 500ms jetzt nicht so wenig finde. Aber kommt auf die Verbindung und natürlich auf die Größe des Programmes in der PLC an.

Hallo zusammen,

ich habe jetzt die Änderung der Timeout-Variable mit einer Kopie des Adapters in meinem iobroker umgesetzt. Es hat sofort funktioniert.

image

Zur Info ich habe einen Ping zwischen den beiden Standorten von c.a 60ms allerdings ist die Bandbreite mit DSL16(11Down/3Up) nicht so das wahre. Eine Anpassung in meinem Fall auf 2000 hat den Fehler bereits behoben. Ich wäre sehr dankbar, wenn in zukünftigen Versionen die Funktion zur Anpassung dieser Variable in der Konfigurationsoberfläche implementiert werden könnte.

Liebe Grüße

christian9712 avatar Apr 28 '23 09:04 christian9712