SendCharacters

Zeichen an CPU- oder MCU-Schnittstelle senden

Dieser Befehl füllt den Sendepuffer und führt F159_MTRN aus, um die Daten zu senden. Die zu sendenden Daten werden sString zugewiesen. Der Sendepuffer ist eine VAR_IN_OUT-Variable, die SendBuffer zugewiesen wird. Wenn bSuppressEndCode auf TRUE gesetzt wird, wird das in den Systemregistern ausgewählte Endezeichen nicht an die zu übertragende Zeichenfolge angehängt.

Im Gegensatz zum Befehl SendCharactersAndClearString bleibt hier die zugewiesene Zeichenfolgenvariable sString unverändert.

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

sString (STRING)

Speichert die zu übertragende Zeichenfolge

bSuppressEndCode (BOOL)

Das in den Systemregistern ausgewählte Endezeichen wird nicht an die zu übertragende Zeichenfolge angehängt.

Ein-/Ausgang

SendBuffer (ANY)

Speichert die zu übertragende Zeichenfolge vorübergehend

Anmerkungen

Wenn die angegebene Anzahl von Bytes gesendet wurde, wird der Merker "Senden beendet" auf TRUE gesetzt. Weitere Daten können gesendet oder empfangen werden. Jeder Sendebefehl setzt den Merker "Senden beendet" auf FALSE; es ist dann kein Datenempfang mehr möglich. Eine Auswertung des Merkers "Senden beendet" empfiehlt sich dann, wenn keine Antwort erwartet wird, z.B. bei Broadcast-Meldungen.

Fehleralarmmerker

sys_bIsOperationErrorHold (wird auf TRUE gesetzt und bleibt TRUE)
  • wenn das MCU-Modul sich nicht im angegebenen Steckplatz befindet oder null Byte gesendet werden sollen.

  • wenn 16#8000 im MEWTOCOL-COM Master/Slave-Modus festlegt wird.

sys_bIsOperationErrorNonHold (wird für einen Zyklus auf TRUE gesetzt)
  • wenn das MCU-Modul sich nicht im angegebenen Steckplatz befindet oder null Byte gesendet werden sollen.

  • wenn 16#8000 im MEWTOCOL-COM Master/Slave-Modus festlegt wird.

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
		bSend: BOOL:=FALSE;
			(*activates function*)
		sSendData: STRING[30]:='ABCDEFGH';
			(*up to 30 chars*)
		awSendBuffer: ARRAY [0..15] OF WORD:=[16(0)];
			(*for 30 chars + 1 word*)
		bSuppressEndCode: BOOL:=FALSE;
	END_VAR

KOP-Rumpf

Wenn bSend von FALSE auf TRUE wechselt, sendet der Befehl die Zeichen von sSendData an die MCU-Schnittstelle 1. Die Zeichen werden in den Array awSendBuffer kopiert. awSendBuffer[0] ist für die Länge der zu sendenden Zeichenfolge reserviert.

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 7 ;
        NETWORK_BODY
B(B_CONTACT,,bSend,9,1,11,3,R);
B(B_VARIN,,1,11,2,13,4,);
B(B_VARIN,,sSendData,11,3,13,5,);
B(B_VARIN,,awSendBuffer,11,5,13,7,);
B(B_VARIN,,bSuppressEndCode,11,4,13,6,);
B(B_F,E_SendCharacters!,,13,0,24,7,,?DEN?DPort?DsString?DbSuppressEndCode?DSendBuffer?ASendBuffer?AENO);
L(1,2,9,2);
L(11,2,13,2);
L(1,0,1,7);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST-Rumpf

if (DF(bSend)) then
    SendCharacters(Port := 1, sString := sSendData, bSuppressEndCode := bSuppressEndCode, SendBuffer := awSendBuffer);
end_if;

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