Escribir parámetros de posicionamiento
Esta instrucción se utiliza para escribir los siguientes parámetros de posicionamiento y datos de la tabla de posicionamiento con programas de usuario:
Información general como canales/ejes utilizados, números de repetición y códigos de error
Información del eje, como el estado de ejecución y el número de repetición actuales
Información de ajuste del eje, como los códigos de control de la salida de pulsos, los ajustes de retorno al origen y los ajustes de velocidad, aceleración y deceleración
Datos de la tabla de posicionamiento, como códigos y patrones de control, ajustes de velocidad, aceleración y deceleración
Esta instrucción escribe el número de palabras (n_Number) de los datos guardados en el área de memoria de operación que empieza por s2_Start, y lo guarda en el área de memoria de posicionamiento que empieza por d_Offset.
Entrada
Número de canal
Configurator PMX: SYS_PMX_CHANNEL_0–SYS_PMX_CHANNEL_3
Configurator PM7: SYS_PM7_AXIS_1–SYS_PM7_AXIS_8
Dirección de inicio de las áreas de la memoria de operación de la unidad de control donde se va a escribir (dirección origen)
Número de palabras a escribir
Área de memoria de posicionamiento:
0: SYS_POSITIONING_AREA_COMMON_DATA
1: SYS_POSITIONING_AREA_AXIS_INFORMATION
2: SYS_POSITIONING_AREA_AXIS_SETTING
3:
SYS_POSITIONING_AREA_TABLE_DATA (FP-XH modelo estándar)
SYS_POSITIONING_AREA_CAM_PATTERN (solamente para el FP-XH M4T16T, FP-XH M8N16T)
4: SYS_POSITIONING_AREA_SYNCRONOUS_CONTROL (solamente para el FP-XH M4T16T, FP-XH M8N16T)
5: SYS_POSITIONING_AREA_OPERATION_CHANGE (solamente para el FP-XH M4T16T, FP-XH M8N16T)
6: SYS_POSITIONING_AREA_RTEX_PARAMETER (solamente para el FP-XH M4T16T, FP-XH M8N16T)
Dirección de desplazamiento inicial de la memoria de posicionamiento de la unidad de control donde se van a guardar los datos escritos (dirección destino)
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
bWriteData: BOOL:=FALSE;
awData: ARRAY [0..9] OF WORD:=[10(0)];
END_VAR
Cuando la variable bWriteData pasa a TRUE, se ejecuta la función.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 7 ;
NETWORK_BODY
B(B_COMMENT,,ø^Settings for s1_Channel:ø^ PMX-Configurator: SYS_PMX_CHANNEL_0 ... SYS_PMX_CHANNEL_3ø^ PM7-Configurator: SYS_PM7_AXIS_1 ... SYS_PM7_AXIS_8ø^,2,1,49,6,);
L(1,0,1,7);
END_NETWORK_BODY
END_NET_WORK
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 8 ;
NETWORK_BODY
B(B_F,F385_Positioning_WriteData!,,20,0,33,8,,?DEN?Ds1_Channel?Ds2_Start?Dn_Number?Ds1_Area?Dd_Offset?AENO);
B(B_VARIN,,SYS_PMX_CHANNEL_0,18,2,20,4,);
B(B_VARIN,,awData,11,3,13,5,);
B(B_VARIN,,SYS_POSITIONING_AREA_AXIS_SETTING,18,5,20,7,);
B(B_VARIN,,155,18,6,20,8,);
B(B_CONTACT,,bWriteData,9,1,11,3,R);
B(B_F,Adr_Of_Var_I!,,13,3,20,5,,?D?C);
B(B_F,Size_Of_Var!,,13,4,20,6,,?D?C);
L(1,2,9,2);
L(11,2,20,2);
L(13,4,13,5);
L(1,0,1,8);
END_NETWORK_BODY
END_NET_WORK
END_BODY
(*
Settings for s1_Channel:
PMX-Configurator: SYS_PMX_CHANNEL_0 ... SYS_PMX_CHANNEL_3
PM7-Configurator: SYS_PM7_AXIS_1 ... SYS_PM7_AXIS_8
*)
if (DF(bWriteData)) then
F385_Positioning_WriteData( s1_Channel := SYS_PMX_CHANNEL_0,
s2_Start := Adr_Of_Var(awData),
n_Number := Size_Of_Var(awData),
s1_Area := SYS_POSITIONING_AREA_AXIS_SETTING,
d_Offset := 155);
end_if;