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.
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
Speichert die zu übertragende Zeichenfolge
Das in den Systemregistern ausgewählte Endezeichen wird nicht an die zu übertragende Zeichenfolge angehängt.
Ein-/Ausgang
Speichert die zu übertragende Zeichenfolge vorübergehend
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.
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.
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.
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
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
if (DF(bSend)) then
SendCharacters(Port := 1, sString := sSendData, bSuppressEndCode := bSuppressEndCode, SendBuffer := awSendBuffer);
end_if;