F147_PR

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.

Parámetros

Entrada

s_Start (WORD, INT, UINT)

Área inicial de 16 bits para almacenar 12 bytes (6 palabras) de códigos ASCII (fuente)

Salida

d (WORD)

Palabra de salida para enviar los códigos ASCII (destino)

Observaciones

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

Banderas de error

sys_bIsOperationErrorHold (pasa a TRUE y permanece TRUE)
  • 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

sys_bIsOperationErrorNonHold (pasa a TRUE para un ciclo de scan)
  • 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

Ejemplo de conexión

  1.  (1) Tipo salida a transistor (salida: 9 o más)
  2.  (2) Impresora (interfaz Centronics)

Ejemplo

Variables Globales

En la Lista de Variables Globales, se definen las variables a las que pueden acceder todas las POUs del proyecto.

  1.  (1) Fuente: código ASCII de 12 caracteres A, B, C, D, E, F, G, H, I y J
  2.  (2) Datos de control de la impresora
  3.  (3) Códigos ASCII
  4.  (4) start: ON
  5.  (5) Destino
  6.  (6) De Y9 a YF: no utilizado
  7.  (7) Y8: para la señal estroboscópica de la impresora
  8.  (8) Y0 a YF: para las señales de datos de la impresora (Y0 a Y7 corresponden a DA A1 a DA A8 de la impresora)

Cabecera de la POU

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

Cuerpo 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

Cuerpo en ST

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

Modificado el: 2022-02-01Comentarios sobre esta páginaLínea directa de Panasonic