写入位置控制参数
此指令用于通过用户程序写入以下位置控制参数和位置控制数据表数据:
一般信息,例如使用的通道/轴、重复次数和错误代码
轴信息,例如当前执行状态和当前重复次数
轴设置信息,例如脉冲输出控制代码、原点复位设置、速度、加速设置和减速设置
位置控制表数据,例如代码和模式、速度、加速设置和减速设置
该指令读取以s2_Start开头的操作存储器区域中所存数据的字数(n_Number),并将其存储到以d_Offset开头的位置控制存储器区域。
输入
通道编号
Configurator PMX:SYS_PMX_CHANNEL_0–SYS_PMX_CHANNEL_3
Configurator PM7:SYS_PM7_AXIS_1–SYS_PM7_AXIS_8
要写入的控制单元中操作存储器区域的起始地址(源地址)
要写入的字数
位置控制存储器区域:
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标准类型)
SYS_POSITIONING_AREA_CAM_PATTERN (仅限FP-XH M4T16T, FP-XH M8N16T)
4:SYS_POSITIONING_AREA_SYNCRONOUS_CONTROL(仅限FP-XH M4T16T, FP-XH M8N16T)
5:SYS_POSITIONING_AREA_OPERATION_CHANGE(仅限FP-XH M4T16T, FP-XH M8N16T)
6:SYS_POSITIONING_AREA_RTEX_PARAMETER(仅限FP-XH M4T16T, FP-XH M8N16T)
用于存储写入数据的控制单元中位置控制存储器的起始偏移量地址(目标地址)
所有用于编程此函数的输入和输出变量已在POU头中声明。 所有编程语言使用相同的POU头。
VAR
bWriteData: BOOL:=FALSE;
awData: ARRAY [0..9] OF WORD:=[10(0)];
END_VAR
当变量bWriteData设置为TRUE时,执行此函数。
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;