TIA SENDDP und RCVDP, Position in F-Main

Mecha2211

Level-2
Beiträge
249
Reaktionspunkte
47
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin Zusammen,

ich bin gerade auf eine irritierende Aussage in der TIA-Doku über die sicheren Kommunikationsbausteine gestolpert.
Dort heißt es wie folgt:

Platzierung

Sie müssen die Anweisung RCVDP entweder am Anfang des Main-Safety-Blocks oder (bei F-CPUs S7-1200/1500) in einen direkt am Anfang des Main-Safety-Blocks aufgerufenen F-FB/F-FC einfügen. Im Main-Safety-Block dürfen sich davor, im F-FB/F-FC dürfen sich davor und danach keine anderen Anweisungen befinden.

Sie müssen die Anweisung SENDDP entweder am Ende des Main-Safety-Blocks oder (bei F-CPUs S7-1200/1500) in einen direkt am Ende des Main-Safety-Blocks aufgerufenen F-FB/F-FC einfügen. Im Main-Safety-Block dürfen sich danach, im F-FB/F-FC dürfen sich davor und danach keine anderen Anweisungen befinden.

Was, wenn ich nun zwei Verbindungen aufbauen möchte? Dann müsste ich ja zwei RCVDP Bausteine in meinem F-Main haben. Nacheinander. Einer davon ist dann eine Anweisung vor dem RCVDP.

Was meint Ihr dazu?
 
Moin Mecha2312,

es dürfen beliebig viele RCVDP und SENDDP Baustein aufgerufen werden. Sie sollen am Anfang bzw. Ende des F-Main programmiert werden. Wenn Du eine ununterbrochene Folge von RCVDP-Bausteinen hast, meckert TIA auch nicht. Das gleiche gilt für den SENDDP.
 
die beschreibung von siemens könnte etwas verwirren

erlaubt:
call RCVDP
call RCVDP
call RCVDP

call sonstigen teil

call SENDDP
call SENDDP
call SENDDP


nicht erlaubt:
call irgendwas
call RCVDP

call SENDDP
call irgendwas
 
Danke Euch für Eure Antworten.
Ich habe das auch so gesehen und gehandhabt, finde nur die Formulierung etwas irritierend, wenn man pingelig ist.

Was zum Beispiel auch gut VOR einem RCVDP aufgehoben wäre, ist ein ACK_OP, um den RCVDP wiedereinzugliedern.
Das wäre der Doku nach ja nicht erlaubt. Dann muss ich das ACK-Signal einen Zyklus lang mitschleppen um den am Anfang befindlichen RCVDP zu quittieren...
Ich frage mich nur, warum es so beschränkt ist. Damit man nicht mit Reaktionszeiten in Bedrängnis kommt, weil man ein Stopp-Signal erst am Ende des F-Main bekommt?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich frage mich nur, warum es so beschränkt ist. Damit man nicht mit Reaktionszeiten in Bedrängnis kommt, weil man ein Stopp-Signal erst am Ende des F-Main bekommt?

Vermutlich eher weil es aufwendig ist, die parallel laufende Logik, die zum gleichen Ergebnis wie die erste Logik kommen soll, synchronisiert zu bekommen. Aus diesem Grund soll auch wenn möglich auf Timer im Safety Teil verzichtet werden, Microsekunden entscheiden ob der Timer schon fertig ist oder gerade noch nicht, ergibt demzufolge am Ende des Programmzyklus möglicherweise Unterschiede, die eigentlich nicht sein dürfen.
 
Hmm okay. nun gut, ich geb mich mal damit zufrieden, dass es einfach so ist.
@Oberchefe, ich verstehe was Du meinst, aber für diesen Fall kann ich mir da keine Auswirkung vorstellen. Die Kommunikationsdaten werden doch aus einem Abbild verarbeitet in den beiden Parallelen Logiken.. da ändert sich ja nichts.

Aber wie gesagt, ich nehme es einfach so hin.
 
Zurück
Oben