Hallo,
es gibt Neuigkeiten: Ich war in meinem Programm zu optimistisch/ungeduldig mit dem Timing. Korrekt muss der Ablauf mit einem (langsamen) TCP-RTU Gateway so aussehen:
Hat mich ein paar Nerven und Tassen Kaffee gekostet, um da drauf zu kommen, aber eigentlich ist es logisch, das Gateway kann die Daten ja gar nicht sofort parat haben...
es gibt Neuigkeiten: Ich war in meinem Programm zu optimistisch/ungeduldig mit dem Timing. Korrekt muss der Ablauf mit einem (langsamen) TCP-RTU Gateway so aussehen:
Code Auswählen
MB_CLIENT und IP_CONTROL2 in jedem SPS-Zyklus abfragen
IP_Control2 wird mit der Gateway-IP/Port vorkonfiguriert, kurzes Timeout
Step 1:
MB_CLIENT mit den Daten (FC, Unit-ID, Lese/Schreib-Adressen) füttern, kurzes Delay (bei mir t#15ms) einstellen
Step 2:
Auf erstes /BUSY warten -> jetzt ist die Abfrage im Gateway
-- hier läuft jetzt das interne Delay von MB_CLIENT.
Step 3:
Auf zweites /BUSY warten -> jetzt kommen die Daten zurück
jetzt liegen die Abgerufenen Daten im DATA[..] Array
Step 4:
MB_CLIENT kann jetzt neu gefüttert werden
-> zurück auf Step 1, und wiederholen bis alle Unit-IDs abgearbeitet sind
Hat mich ein paar Nerven und Tassen Kaffee gekostet, um da drauf zu kommen, aber eigentlich ist es logisch, das Gateway kann die Daten ja gar nicht sofort parat haben...