Impresión paralelo
Envía los códigos ASCII de 12 caracteres almacenados en un área de 6 palabras especificados por s_Start a través la palabra de salida especificada por d si la entrada de trigger EN está a TRUE. Si se conecta una impresora a la salida especificada por d, se imprimirán los caracteres correspondientes al código ASCII.
Entrada
Área inicial de 16 bits para almacenar 12 bytes (6 palabras) de códigos ASCII (fuente)
Salida
Palabra de salida para enviar los códigos ASCII (destino)
En la impresión solo se utilizan los bits del 0 al 8 de d. El código ASCII se envía de forma secuencial empezando por el byte menos significativo del área de inicio. Se necesitan tres ciclos de scan para enviar 1 constante de tipo carácter. Por lo tanto, se necesitan 37 ciclos de scan para enviar todos los caracteres.
Puesto que no se pueden ejecutar varias instrucciones F147_PR en un ciclo de scan, utilizar la bandera de estado sys_bIsActive_F147_PR para comprobar que no se está ejecutando otra instrucción igual al mismo tiempo. Para convertir las constante tipo carácter a código ASCII, se recomienda utilizar la instrucción F95_ASC.
si el área final para almacenar los códigos ASCII excede el límite
si la condición de ejecución de una instrucción F147_PR pasa a TRUE cuando se está ejecutando otra instrucción F147_PR
si el área final para almacenar los códigos ASCII excede el límite
si la condición de ejecución de una instrucción F147_PR pasa a TRUE cuando se está ejecutando otra instrucción F147_PR
En la Lista de Variables Globales, se definen las variables a las que pueden acceder todas las POUs del proyecto.
Todas las variables de entrada y de salida utilizadas para la programación de esta función han sido declaradas en la Cabecera de la POU. Se utiliza la misma cabecera de la POU para todos los lenguajes de programación.
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;