S7-200 RCV und XMT

Küffel

Level-1
Beiträge
137
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

nach langer Zeit melde ich mich nochmal zurück und brauche euren Rat:

ich versuche derzeit mit einer 226 eine serielle Kommunikation zu implementieren.

Dabei möchte ich Meldungen von der SPS aus bei einem Slave anfragen und die Antwort auswerten. Dazu verwende ich die Befehle XMT und RCV.

Wenn ich eine Anfrage verschickt habe (mit XMT) setze ich im zugehörigen Sendeinterrupt den Befehl RCV um die anstehende Antwort zu empfangen.

Dies Funktioniert erst mal wunderbar.

Mein Problem ist nun, falls der Slave einmal nicht antwortet, wird keine Anfrage mehr versendet, da RCV noch aktiv auf eine Antwort wartet und ein XMT dann nicht mehr ausgeführt wird (Fehler gleichzeitiges ausführen von XMT und RCV).

Wie bekomme ich das RCV auf Timeout überwacht?

Die Siemens Beispiele habe ich mir bereits alle angesehen, aber was richtig passendes konnte ich nicht entdecken.

Danke für eure Tipps!
 
Hi,

bevor du den XMT ausführst, rufe noch mal die RCV aus und setze die Merker SM87.7 (Port 0) oder SM187.7 (Port 1) zurück, danach kannst du die XMT problemlos ausführen.


Gruß
com
 

Anhänge

  • RCV_XMT.JPG
    RCV_XMT.JPG
    11,2 KB · Aufrufe: 10
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke com,

ich glaube das hatte ich gestern auch schon probiert!
Ich habe mittlerweile alles umgebaut und verzichte gänzlich auf RCV. Ich werte alles selbst im Interrupt (für jedes empfangene Zeichen) aus.

Funktioniert soweit prima, auch wenn ich die andere Lösung eleganter gefunden hätte.

Aber auch bei der jetzigen Lösung ist mir aufgefallen, dass man XMT nicht zu schnell nacheinander callen sollte. Ansonsten wird Müll gesendet. Ich habe jetzt mind. 20ms zwischen zwei XMT Calls eingebaut und es funktioniert.

Danke und Gruß
 
Zuletzt bearbeitet:
jep, richtig.
generell etwas warten ist empfehlenswert.


gruss
 
Zuletzt bearbeitet:
Zurück
Oben