Recibir datos (enlace MEWNET)
Esta instrucción recibe datos de otra estación a través de los módulos de enlace en la red.
Entrada
Área de 32 bits para almacenar los datos de control
Tipo de operandos fuente para almacenar los datos en la estación destino. Seleccionar el área en la dirección 0 (por ejemplo, DT0 ó WR0, ...) (área de datos en la estación origen)
Dirección inicial (área de 16 bits) para el operando origen especificado en s2_AdrType (área de datos en la estación origen)
Dirección de inicio (área de 16 bits) para guardar los datos recibidos (área de datos en la estación de destino), debe ser una constante
Las variables s2_AdrType, s2_AdrOffs y d_Start tienen que ser del mismo tipo de datos.
Especificación de s1_Control:
s1 byte más significativo |
s1 byte menos significativo |
|
---|---|---|
1. Selección del N° de enlace (LK: de 1 a 3, la propia estación) |
1. Unidad de envío: palabra |
|
Se pueden conectar hasta 3 unidades de enlace a 1 CPU. |
F = 0 |
Especifica la unidad de palabra |
n2 = 0 |
Especificar "0" para seleccionar la unidad de palabra |
|
(LK) Especifica la unidad de enlace origen. |
n1 = 11–16 |
Especificar el número de palabras a enviar |
2. Selección del número de estación de enlace (UN: de 1 a 63, otra estación) |
2. Unidad de envío: bit |
|
Se pueden conectar hasta 63 estaciones a 1 unidad de enlace. |
F = 1 |
Especifica la unidad de bit |
(UN) Especifica el N° de estación destino. |
n2 = 0–15 |
N° de bit destino |
n1 = 0–15 |
N° de bit origen |
Para obtener una información más detallada, consultar el manual técnico de la propia unidad inteligente.
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.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 8 ;
NETWORK_BODY
B(B_VARIN,,control_value,7,3,9,5,);
B(B_VARIN,,start_address,7,4,9,6,);
B(B_VARIN,,offset,7,5,9,7,);
B(B_VARIN,,output_value,7,6,9,8,);
B(B_CONTACT,,start,3,2,5,4,);
B(B_F,F146_RECV!,Instance,9,1,17,8,,?DEN?Ds1_Control?Ds2_AdrType?Ds2_AdrOffs?Dd_Start?AENO);
L(1,3,3,3);
L(5,3,9,3);
L(1,0,1,8);
END_NETWORK_BODY
END_NET_WORK
END_BODY
Cuando la variable start está ajustada a TRUE, se ejecuta la función.
VAR
start: BOOL:=FALSE;
(*activates the function*)
control_value: DWORD:=0;
(*32-bit area for storing
control data*)
start_address: WORD:=0;
(*Starting 16-bit area
address for the source
operand specified in s2*)
output_value: WORD:=0;
(*Starting 16-bit area
address for storing data
received*)
offset: INT:=0;
END_VAR
IF start then
F146_RECV( s1_Control:= control_value, s2_AdrType:= start_address, n_AdrOffs:= offset,
d_Start:= output_value);
END_IF;