Impression de caractères ASCII
Sortie des codes ASCII pour 12 caractères sauvegardés dans la zone de 6 mots désignée par s_Start via la sortie en mots indiquée par d lorsque le déclencheur EN est TRUE. Si une imprimante est connectée à la sortie désignée par d, un caractère correspondant au code ASCII est imprimé.
Entrée
Zone de départ de 16 bits pour sauvegarder les 12 octets (6 mots) des codes ASCII (source)
Sortie
Sortie en mots utilisée pour la sortie des codes ASCII (destination)
Seules les positions des bits 0 à 8 de d sont utilisées dans l’impression actuelle. Le code ASCII est sorti en séquence à partir de l’octet de poids faible de la zone de départ. Trois scrutations sont nécessaires pour la sortie d’un caractère. Par conséquent, 37 scrutations sont nécessaires jusqu’à ce que tous les caractères soient renvoyés en sortie.
Il est impossible d’exécuter plusieurs instructions F147_PR pendant une scrutation. Aussi, utilisez le drapeau d’impression sys_bIsActive_F147_PR pour être sûr qu’elles ne sont pas exécutées simultanément. Si les caractères sont convertis en code ASCII, il est recommandé d’utiliser l’instruction F95_ASC.
Si la zone de fin de sauvegarde des codes ASCII est en dehors des limites
Si le déclencheur d’une autre instruction F147_PR est TRUE pendant qu’une instruction F147_PR est exécutée
Si la zone de fin de sauvegarde des codes ASCII est en dehors des limites
Si le déclencheur d’une autre instruction F147_PR est TRUE pendant qu’une instruction F147_PR est exécutée
Dans la liste des variables globales, vous définissez des variables qui sont accessibles par tous les POU dans le projet.
Toutes les variables d’entrée et de sortie utilisées pour programmer cette fonction ont été déclarées dans l’en-tête du POU. Le même en-tête de POU est utilisé pour tous les langages de programmation.
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;