F147_PR

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é.

Paramètres

Entrée

s_Start (WORD, INT, UINT)

Zone de départ de 16 bits pour sauvegarder les 12 octets (6 mots) des codes ASCII (source)

Sortie

d (WORD)

Sortie en mots utilisée pour la sortie des codes ASCII (destination)

Remarques

  • 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.

Drapeaux d’erreur

sys_bIsOperationErrorHold (passe à TRUE et reste TRUE)
  • 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

sys_bIsOperationErrorNonHold (passe à TRUE pendant un cycle)
  • 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

Exemple de connexion

  1.  (1) Version sorties transistor (sortie : 9 sorties min.)
  2.  (2) Imprimante (interface Centronics)

Exemple

GVL

Dans la liste des variables globales, vous définissez des variables qui sont accessibles par tous les POU dans le projet.

  1.  (1) Source : code ASCII pour 12 caractères A, B, C, D, E, F, G, H, I et J
  2.  (2) Données de contrôle pour l’imprimante
  3.  (3) Codes ASCII
  4.  (4) start : TRUE
  5.  (5) Destination
  6.  (6) Y9 à YF : non utilisé
  7.  (7) Y8 : pour les signaux d’échantillonnage de l’imprimante
  8.  (8) Y0 à YF : pour les signaux de données de l’imprimante (Y0 à Y7 correspondent à DA A1 à DA A8 de l’imprimante)

En-tête du POU

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

Corps en LD

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

Corps en ST

IF DF(start) OR PrintOutFlag then
    F147_PR( Adr_Of_VarOffs( PrintOutString, 2), Printer);
END_IF;

Modifié le : 2022-02-01Commentaires sur cette pageAssistance téléphonique