Drucken von ASCII-Zeichen
Es werden insgesamt 12 Zeichen im ASCII-Code ausgegeben. Die Zeichen sind in 6 Datenworten ab der Adresse s_Start gespeichert. Die Ausgabe erfolgt über das Ausgangswort d, wenn der Trigger EN auf TRUE gesetzt ist. Wenn ein Drucker an Ausgang d angeschlossen ist, wird ein dem ASCII-Code entsprechendes Zeichen ausgedruckt
Eingang
16-Bit-Speicherbereich (Anfangsadresse) um 12 Byte (6 Worte) zu speichern
Ausgang
Ausgabe des ASCII-Codes
Nur die Bits 0 bis 8 in d werden für den aktuellen Ausdruck verwendet. Der ASCII-Code wird beginnend mit dem niedrigstwertigen Byte des Anfangsbereichs ausgegeben. Es werden drei Zyklen für die Übertragung eines Zeichens benötigt. Es sind daher 37 Zyklen für die Übertragung aller 12 möglichen Zeichen erforderlich.
Da es nicht möglich ist, den Befehl F147_PR innerhalb eines Zyklus mehrfach auszuführen, verwenden Sie den Sondermerker sys_bIsActive_F147_PR, damit kein weiterer PR-Befehl ausgeführt wird Wenn die Zeichenkonstanten in den ASCII-Code konvertiert werden, wird die Verwendung des Befehls F95_ASC empfohlen.
wenn die Endadresse für die Speicherung des ASCII-Codes die Grenzen überschreitet
wenn der Trigger eines anderen F147_PR-Befehls auf TRUE gesetzt wird, während ein F147_PR-Befehl ausgeführt wird
wenn die Endadresse für die Speicherung des ASCII-Codes die Grenzen überschreitet
wenn der Trigger eines anderen F147_PR-Befehls auf TRUE gesetzt wird, während ein F147_PR-Befehl ausgeführt wird
In der globalen Variablenliste können Sie Variablen festlegen, die von allen POEs des Projekts verwendet werden können.
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
Start: BOOL:=FALSE;
END_VAR
VAR_EXTERNAL
PrintOutFlag: BOOL:=FALSE;
END_VAR
VAR
PrintOutString: STRING[12]:='ABCDEFGHIJ$L$R';
END_VAR
VAR_EXTERNAL
Printer: WORD:=0;
END_VAR
VAR
@'': @'';
END_VAR
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 13 ;
NETWORK_BODY
B(B_CONTACT,,Start,4,2,6,4,R);
B(B_F,F147_PR!,Instance,19,1,25,5,,?DEN?Ds_Start?AENO?Cd);
B(B_CONTACT,,PrintOutFlag,4,5,6,7,);
B(B_VAROUT,,Printer,25,3,27,5,);
B(B_F,Adr_Of_VarOffs_I!,Instance,9,7,18,11,,?D@'Var'?DOffs?CAdr);
B(B_VARIN,,2,7,9,9,11,);
B(B_VARIN,,PrintOutString,7,8,9,10,);
L(1,3,4,3);
L(6,3,19,3);
L(1,6,4,6);
L(6,6,10,6);
L(10,3,10,6);
L(19,4,19,9);
L(18,9,19,9);
L(1,0,1,13);
END_NETWORK_BODY
END_NET_WORK
END_BODY
IF DF(start) OR PrintOutFlag then
F147_PR( Adr_Of_VarOffs( PrintOutString, 2), Printer);
END_IF;