Zeichen senden und Zeichenfolge löschen
Dieser Befehl führt den Befehl F159_MTRN zum Senden der Daten aus. Die Daten sind in der zu übertragenden Zeichenfolge sString einer VAR_IN_OUT-Variable, enthalten. Wenn bSuppressEndCode auf TRUE gesetzt wird, wird das in den Systemregistern ausgewählte Endezeichen nicht an die zu übertragende Zeichenfolge angehängt.
Im Gegensatzt zu SendCharacters sind hier keine zusätzlichen Sendepuffer erforderlich. Die sString zugewiesene Variable wird nach der Ausführung gelöscht.
Eingang
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
Das in den Systemregistern ausgewählte Endezeichen wird nicht an die zu übertragende Zeichenfolge angehängt.
Ein-/Ausgang
Speichert die zu übertragende Zeichenfolge, die nach Ausführung des Befehls gelöscht wird
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.
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
sSendData: STRING[30]:='ABCDEFGH';
(*up to 30 chars*)
bSuppressEndCode: BOOL:=FALSE;
END_VAR
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,SendCharactersAndClearString!,,14,0,29,5,,?DPort?DbDSuppressEndCode?DsString?AsString);
B(B_VARIN,,1,12,1,14,3,);
B(B_VARIN,,sSendData,12,3,14,5,);
B(B_VARIN,,bSuppressEndCode,12,2,14,4,);
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
END_BODY
SendCharactersAndClearString(Port := 1,
bSuppressEndCode := bSuppressEndCode,
sString := sSendData);