ClearReceiveBuffer

Empfangspuffer zurücksetzen

Dieser Befehl setzt den Empfangspuffer an der durch Port festgelegten Kommunikationsschnittstelle zurück.

Parameter

Eingang

Port (WORD, INT, UINT)

Legt die Kommunikationsschnittstellen fest (je nach SPS-Typ):

  • COM-Schnittstelle z.B. SYS_COM0_PORT

  • Ethernet-Schnittstelle z.B. SYS_ETHERNET_USER_CONNECTION_1

  • MCU/SCU z.B. 16#xx01 (xx = Steckplatznummer) in COM01

Anmerkungen

Bei der Ausführung eines Sendebefehls wird der Empfangspuffer automatisch zurückgesetzt. Um den Empfangspuffer ohne das Senden von weiteren Daten zurückzusetzen, verwenden Sie diesen Befehl. Alternativ können Sie auch F159_MTRN mit n_Number = 0 verwenden. Beim Zurücksetzen des Empfangspuffers wird die Anzahl der empfangenen Bytes in Offset 0 auf Null und der Zeiger zurück auf Offset 1 gesetzt. Neue Daten werden ab Offset 1 in den Puffer geschrieben; vorhandene Daten werden überschrieben. Der Merker "Empfangen beendet" wird auf FALSE gesetzt.

Fehleralarmmerker

sys_bIsOperationErrorHold (wird auf TRUE gesetzt und bleibt TRUE)
  • wenn die durch Port angegebene Kommunikationsschnittstelle nicht vorhanden ist

sys_bIsOperationErrorNonHold (wird für einen Zyklus auf TRUE gesetzt)
  • wenn die durch Port angegebene Kommunikationsschnittstelle nicht vorhanden ist

Beispiel

POE-Kopf

Im POE-Kopf werden alle Ein- und Ausgangsvariablen deklariert, die für die Programmierung dieser Funktion verwendet werden. Für alle Programmiersprachen wird der gleiche POE-Kopf verwendet.

	VAR
		bClearReceiveBuffer: BOOL:=FALSE;
	END_VAR

KOP-Rumpf

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 4 ;
        NETWORK_BODY
B(B_CONTACT,,bClearReceiveBuffer,5,1,7,3,R);
B(B_F,E_ClearReceiveBuffer!,,11,0,21,4,,?DEN?DPort?AENO);
B(B_VARIN,,1,9,2,11,4,);
L(1,2,5,2);
L(7,2,11,2);
L(1,0,1,4);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST-Rumpf

if (DF(bClearReceiveBuffer)) then
    ClearReceiveBuffer(1);
end_if;

Letzte Änderung am: 2022-04-19Feedback zu dieser SeitePanasonic Hotline