Devuelve la dirección de la entrada o salida
Esta función devuelve la dirección de una variable a la entrada o a la salida de una instrucción de sistema no sobrecargada.
Entrada
Este pin debe estar conectado a la entrada o salida de una función básica para la que estén permitidos los tipos de datos INT, WORD
Proporciona la dirección de inicio de 16 bits de las variables de entrada/salida
Salida
Variable de entrada/salida para la que se necesita la dirección de inicio
Se devuelve una dirección de inicio de 16 bits en Adr según las variables de entrada/salida Var. Esta entrada/salida tiene que estar directamente conectada a la entrada o salida de 16 bits de una instrucción de sistema no sobrecargada.
Solo para los editores LD y FBD: Para insertar la instrucción en la ventana de programación, seleccionar Instrucción de entrada o Instrucción de salida desde el panel Instrucciones.
En DUTs, se declara un tipo de datos estructurados cuyos elementos son diversas variables no booleanas.
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;
DutNonBoolean: @'Dut_NonBoolean';
END_VAR
En este caso se declara la variable DutNonBoolean del tipo de dato DUT. No se asigna ningún valor a los elementos de la variable DutNonBoolean puesto que les valores de la variable DutNonBoolean se sobrescriben después de ejecutar la función F12_ICRD.
Cuando la variable start pasa a TRUE, se ejecuta la función F12_ICRD. La función lee los valores de la tarjeta IC a partir de la dirección 100 y escribe la información en la variable DutNonBoolean. No olvidar que la tarjeta IC tiene que estar debidamente formateada a través del menú y debe contener los valores a partir de la dirección 100.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 12 ;
NETWORK_BODY
B(B_COMMENT,,It reads the values on the IC card from address 100 and writes theø^information to the variable DutNonBoolean,2,0,27,2,);
B(B_F,P12_ICRD!,Instance,9,2,17,7,,?DEN?Ds1_Start?Ds2_Number?AENO?Cd_Start);
B(B_VARIN,,start,7,3,9,5,);
B(B_VARIN,,100,7,4,9,6,);
B(B_VAROUT,,DutNonBoolean,26,4,28,6,);
B(B_F,Adr_Of_Var_O!,Instance,18,4,26,6,,?D?C);
B(B_F,Size_Of_Var!,Instance,10,10,17,12,,?D?C);
B(B_VARIN,,DutNonBoolean,8,10,10,12,);
B(B_F,INT_TO_DINT!,Instance,17,10,25,12,,?D?C);
L(17,5,18,5);
L(1,0,1,12);
L(7,6,9,6);
L(7,6,7,9);
L(7,9,26,9);
L(26,9,26,11);
L(25,11,26,11);
END_NETWORK_BODY
END_NET_WORK
END_BODY
Se pueden obtener más ejemplos desde el directorio "Ejemplos" del CD de instalación del FPWIN :
Lectura, escritura en la tarjeta IC
Lectura, escritura en la memoria compartida