IsReceptionDone

Merker "Empfangen beendet" auswerten

Die Funktion liefert den Wert des Merkers "Empfangen beendet". Er is TRUE wenn das Endezeichen an der Kommunikationsschnittstelle empfangen wurde, die durch Port festgelegt wurde.

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

Ausgang

IsDone (BOOL)

Wird auf TRUE gesetzt, wenn das Endezeichen empfangen wurde. Der Endcode wird im entsprechenden Systemregister unter COM-Schnittstellen-Einstellungen angegeben.

Anmerkungen

Auswertung des Merkers "Empfangen beendet"

Wenn für die angegebene Zeit keine weiteren Bytes empfangen werden oder der Befehl ClearReceiveBuffer ausgeführt wird, wird der Ausgang IsDone auf TRUE gesetzt. Weiterer Datenempfang ist unmöglich. Mit F159_MTRN oder ClearReceiveBuffer wird der Merker "IsDone" auf FALSE gesetzt. Diese Funktion kann für FP7 oder MCU auch für den Zeitüberschreitungs-Modus verwendet werden. Der Merker "Empfangen beendet" kann mit den folgenden Befehle oder Systemvariablen ausgewertet werden:

  • IsReceptionDone

  • IsReceptionDoneByTimeOut

  • sys_bIsComPort1ReceptionDone, sys_bIsComPort2ReceptionDone, sys_bIsToolPortReceptionDone (je nach Kommunikationsschnittstelle)

Das Empfangsende lässt sich auch durch Auswertung des Empfangspufferinhalts feststellen. Die Anzahl der empfangenen Bytes kann sich innerhalb eines Zyklus ändern. Zum Beispiel, wenn die Anzahl der empfangenen Bytes mehr als einmal gelesen wurde, existieren eventuell verschiedene Status innerhalb eines Zyklus.

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
		iPort: INT:=0;
		bIsDone: 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 := 5 ;
        NETWORK_BODY
B(B_F,IsReceptionDone!,,5,0,14,3,,?DPort?CIsDone);
B(B_VARIN,,iPort,3,1,5,3,);
B(B_VAROUT,,bIsDone,14,1,16,3,);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST-Rumpf

bIsDone:=IsReceptionDone(Port := iPort);

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