S7 und PoKeys?

Hallo,
ich möchte einen PoKeys56E mit einer Siemens S7 (TIA v13) über Modbus TCP verbinden.
Dafür Nutze ich den „MB_CLIENT“ Baustein von Siemens.
Das einlesen der PoKeys-Eingänge funktioniert.
Beim Ausgänge schreiben habe ich Schwirigkeiten, dass die Verbindung regelmäßig abbricht.

Was muss ich beachten wenn ich von einem PoKeys lesen UND schreiben möchte?

  • Ich habe den Baustein „MB_CLIENT“ kopiert - also einen für Eingänge vom PoKeys lesen und einen um die Ausgänge vom PoKeys zu schreiben:
  • „MB_CLIENT“ ist bei mir FB1084 (beide)
  • jeder „MB_CLIENT“ hat einen eigenen DB
  • MB_MODE ist einmal 0 und einmal 1 (lesen/schreiben)
  • MB_DATA_PTR ist jeweils ein eigener DB (Eingänge/Ausgänge)
  • CONNECT ist bei beiden der selbe DB -> also auch die Netzwerk ID
  • DONE, BUSY, ERROR, STATUS sind alle einzeln

Der STATUS wechselt bei beiden Bausteinen unter anderem jeweils auf 16#80A3
Dieser Wert steht nicht in der Hilfe…?
Google sagt: ID is used by a connection created by the user program, which uses the same connection description at the CONNECT parameter.

Ist es überhaupt richtig mit zwei Bausteinen? Oder geht es nur mit einem und ich muss den umschalten? Und wenn ja, wie? Der nächte Schritt wäre dann, wie ich zusätzlich noch die analogen Eingänge einlese?

Vielen Dank,
Tobi

Bei der S7 Seite kann ich nicht helfen aber Du weißt sicher:
Bei der Modbus configuration sollte der Zeitwert höher sein, als das Abfrageintervall, sonst wird die Verbindung gelöst.

Gruß Helmut

Das Abfrageintervall…
also ich habe kein Intervall eingestellt, d.h. es wird theoretisch mit Zykluszeit abgefragt - also im mS Bereich…
Wobei, wenn ich nur die Eingänge Abfrage klappt es problemlos.
Ich kann ja mal testen, was passiert, wenn ich nur alle 500mS abfrage…

So ist es jetzt:
MB_CLIENT.JPG

Ich meinte in der Pokeys Software, Deine Abfrageinterval in der SPS muss Die nicht extra eingestellt werden?
Und Die muß kleiner sein als Die im Pokeys Modbus config

Gruß Helmut

Hat denn keiner einen Vorschlag für mich?
Die „Connection Time Out“ steht auf 10 Sekunden - das sollte reichen, bzw. reicht bei mir für IPS aus. Zum Testen habe ich die Zeit auf 20 Sekunden erhöht, es ändert nichts.

Es bleibt die Frage an die S7 Nutzer:
Wie baue ich mehrere Verbindungen auf? Also einen „MB_CLIENT“ Baustein für Eingänge und einen für die Ausgänge(selbe IP-Adresse)?

Im Pokeys die Modbus Connection timeout auf 10 Sekunden?

Du darfst nicht vergessen: wird der Pokeys nicht angesprochen (Slave-Prinzip), dann löst er die Verbindung.
Man muß also dafür sorgen, dass eine Anfrage innerhalb dieser Zeit von der S7, regelmäßig, kommt.
Gruß Helmut

Ich würde sagen das abfragen sobald der Baustein fertig ist lässt kein Fenster für die Schreibanfrage. Und es sollte auch nur ein client pro verbindungspartner sein. Sonst versuchen sich ja zwei Partner auf den Modbus Server zu verbinden.

Sent from my SM-G935F using Tapatalk

Ich bin raus ich kann Dir nicht helfen…
Gruß Helmut

aha…
also ich habe jetzt nur einen Baustein genommen und schalte zum testen nur den Eingang „MB_MODE“ für lesen und schreiben um, sobald der Ausgang „BUSY“ auf 0 wechselt und damit anzeigt, dass keine Modbusanfrage in Bearbeitung ist.
Zum Testen beschreibe ich einen Ausgang am PoKeys (mit LED dran) mit 5Hz. Das Blinken sieht regelmäßig aus - gemessen habe ich es nicht. Bei 10Hz scheint es mal kurzzeitig zu „stottern“ - da werden wohl gerade Eingänge eingelesen(oder ich bilde es mir ein…). Ich lass das mal ein paar Stunden laufen - mal sehen ob Fehler auftauchen.

Vielen Dank,
Tobi

Na also…
Das ist ja genau dass, was ich erhofft habe, Du forderst das Pokeysmodul innerhalb dieser (Pokeys-Modbuszyklus) Zeit.

Dann wird Deine Verbindung aus diesem Grund nicht mehr gekappt, allerdings finde ich 5 Hz recht heftig.

Warum nicht 1 Sekunde für den Test, auch das „Eingängeabfragen“ also einzeln hätte ich nie so schnell (Zykluszeit) gemacht, wenn Dir Das so wichtig ist, dann baue Dir eine oder mehrere S0 Variable/n aus allen Eingängen und frage mit einer Anfrage alle ab.

Gruß Helmut

Hallo Helmut,
der Siemensbaustein hat einen Eingang für den „Startadressbereich“ und einen für die „Länge des Bereiches“ welcher abgefragt werden soll. Versucht man einzelne Bits abzufragen - also nur den S0 - dann wird die Bausteinbeschaltung aufwendig. So kann ich in einem Schwung alles 55 IOs abfragen :slight_smile:

Gruß,
Tobi

Da muss ich Helmut zustimmen, Modbus TCP ist für 10Hz glaub ich nicht so ideal. Aber schön dass es geht. Ich hatte bei Wago mit Wago bus kopplern auch Probleme bei hohen Update raten. Mein Modbus Kram wird alle 8s abgefragt.

Sent from my SM-G935F using Tapatalk

Solange alles funktioniert und nicht nur im Testbetrieb ist alles möglich. Ich erkenne, dass das Problem nicht der Abfragebaustein ist, sondern, dass eine Abfrage des Pokeys nicht innerhalb der Pokeysmodbuszeit war.

Wenn jetzt innerhalb in einem Takt unterhalb dieser Zeit dieser Baustein abgefragt wird, dürfte es auch keinen Abbruch geben. Wenn doch und es hilft eine Blinkerei : auch gut :wink:

Und mit S0 Variable meinte ich keine Bit Variable :wink: Man kann viel machen mit PoBlock auch das Zusammenführen von Bit’s zu Byte und Word und und

Gruß Helmut

naja, ich schrieb ja auch zum testen.
Aber schön zu wissen, dass es geht.
Meine Lichtschalter werde ich nicht mit 5 Hz abfragen :wink:

Gruß,
Tobi