Devuelve la dirección de la entrada o salida con offset
Esta función devuelve la dirección de una variable con un offset a la entrada o a la salida de una función básica.
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 offset de 16 bits de las variables de entrada/salida
Variable de entrada/salida para la que se necesita la dirección de offset
Salida
Variable de salida para la que se necesita la dirección final
A partir de la variable de entrada/salida Var, se muestra en la entrada/salida Offs, la dirección de 16 bits, que alcanza el valor dado en la entrada/salida Adr, Esta entrada o salida tiene que estar directamente conectada a la entrada o la salida de 16 bits de una función básica. Esta función solo se puede utilizar para trabajar con los datos de una cadena de caracteres, es decir, con los caracteres sin la cabecera.
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 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_EXTERNAL
ReceiveBuffer: ARRAY [0..15] OF WORD:=[16(0)];
END_VAR
VAR
Receive: BOOL:=FALSE;
ReceiveString: STRING[30]:='';
END_VAR
VAR CONSTANT
StringTotLenPos: INT:=0;
StringActLenPos: INT:=1;
StringHeaderSize: INT:=2;
END_VAR
VAR
@'': @'';
END_VAR
Cuando se activa Receive y se recibe el carácter de fin de recepción, es decir, se activa R9038, los caracteres recibidos en el buffer ReceiveBuffer a través del interfaz serie, se copian en el área de datos ReceiveString. El número de caracteres recibidos se almacena en ReceiveBuffer[0]; y a continuación, los caracteres de la cadena recibida. Por lo tanto, ReceiveBuffer se puede copiar directamente en este área a partir de esta posición.(Consultar tipo de Datos STRING). En la lista de variables globales se tiene que asignar la posición del buffer ReceiveBuffer según la configuración de los registros del sistema 417 y 418 (para obtener información más detallada, consultar Configuración del buffer de recepción de la CPU).
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 10 ;
NETWORK_BODY
B(B_COIL,,sys_bIsComPort1ReceptionDone,7,1,9,3,);
B(B_CONTACT,,Receive,16,1,18,3,);
B(B_F,F10_BKMV!,Instance,20,0,28,5,,?DEN?Ds1_Start?Ds2_End?AENO?Cd_Start);
B(B_VARIN,,ReceiveBuffer[0],18,2,20,4,);
B(B_VARIN,,ReceiveBuffer[15],18,3,20,5,);
B(B_F,Adr_Of_VarOffs_I!,Instance,20,6,29,10,,?D@'Var'?DOffs?CAdr);
B(B_VARIN,,StringActLenPos,18,8,20,10,);
B(B_VAROUT,,ReceiveString,29,7,31,9,);
L(1,2,7,2);
L(9,2,16,2);
L(18,2,20,2);
L(28,3,28,6);
L(20,6,28,6);
L(20,6,20,8);
L(1,0,1,10);
END_NETWORK_BODY
END_NET_WORK
END_BODY