9.3.2
Daten empfangen
Das folgende Flussdiagramm beschreibt die Sequenz zum Empfangen von Daten.
IF Receive complete := True
IF Receive complete := FALSE
Abb. 73: Empfangssequenz
Empfangssequenz
Initial-Zustand: „Empfangsbestätigung" (Receive complete) ist FALSE (1.).
Ausgangsprozesswert „Empfangen" (Receive) auf TRUE setzen (startet den Empfänger) (2.).
Warten bis der Eingangsprozesswert „Empfangsbestätigung" (Receive complete) = TRUE ist,
oder ein Fehler signalisiert wird (3.).
Fehlerbehandlung durchführen, falls ein Fehler signalisiert wurde und weiter bei (5.).
Empfangene Daten vom Empfangspuffer lesen und verarbeiten (5.).
Ausgangsprozesswert „Empfangen" (Receive) auf FALSE setzen (stoppt den Empfänger) (6.).
Warten bis der Eingangsprozesswert „Empfangsbestätigung" (Receive complete) = FALSE ist.
Springe zu 1 für die nächste Empfangssequenz.
Folgende Punkte beim Empfangen beachten:
Zwischen zwei Sendevorgängen muss der Empfänger zeitweise deaktiviert werden (vgl. Schritte
5...8). Die Dauer der Deaktivierung hängt von der eingestellten protokollspezifischen Aktualisie-
rungszeit und der SPS-Zykluszeit ab. In dieser Zeit können keine Daten empfangen werden.
Der Empfang ist auf 192 Bytes pro Telegramm
2018/03
1. Init
2. Start receiving
Receiver frame length := [expected frame length]1
Receive := TRUE
WHILE(Receive complete = FALSE
AND Frame error = FALSE
AND parity/format error = FALSE
AND Buffer overflow = FALSE
AND Timeout = FALSE
3. Wait for data
AND invalid RX length = FALSE
IF(Frame error = TRUE
OR parity/format error = TRUE
OR Buffer overflow = TRUE
OR Timeout = TRUE
OR invalid RX length = TRUE
4. Error handling
5. Process received data
6. Reset receiver
Receive := FALSE
limitiert.
141