F147_PR

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

Parameter

Eingang

s_Start (WORD, INT, UINT)

16-Bit-Speicherbereich (Anfangsadresse) um 12 Byte (6 Worte) zu speichern

Ausgang

d (WORD)

Ausgabe des ASCII-Codes

Anmerkungen

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

Fehleralarmmerker

sys_bIsOperationErrorHold (wird auf TRUE gesetzt und bleibt TRUE)
  • 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

sys_bIsOperationErrorNonHold (wird für einen Zyklus auf TRUE gesetzt)
  • 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

Kommunikationsbeispiel

  1.  (1) Transistorausgangstyp (Ausgänge: 9 oder mehr)
  2.  (2) Drucker (Centronics-Schnittstelle)

Beispiel

Globale Variablen

In der globalen Variablenliste können Sie Variablen festlegen, die von allen POEs des Projekts verwendet werden können.

  1.  (1) Quelle: ASCII-Code für 12 Zeichen A, B, C, D, E, F, G, H, I und J
  2.  (2) Betriebsart des Druckers
  3.  (3) ASCII-Code
  4.  (4) start: TRUE
  5.  (5) Ziel
  6.  (6) Y9 bis YF: nicht verwendet
  7.  (7) Y8: für Strobe-Signal des Druckers
  8.  (8) Y0 bis YF: für Datensignale des Druckers (Y0 bis Y7 entsprechen DA A1 bis DA A8 des Druckers)

POE-Kopf

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

KOP-Rumpf

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

ST-Rumpf

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

Letzte Änderung am: 2022-02-01Feedback zu dieser SeitePanasonic Hotline