F385_Positioning_WriteData_Backup

用备份写入位置控制参数

此指令用于通过用户程序写入以下位置控制参数和位置控制数据表数据:

  • 一般信息,例如使用的通道/轴、重复次数和错误代码

  • 轴信息,例如当前执行状态和当前重复次数

  • 轴设置信息,例如脉冲输出控制代码、原点复位设置、速度、加速设置和减速设置

  • 位置控制表数据,例如代码和模式、速度、加速设置和减速设置

该指令写入以s2_Start开头的区域中所存数据的字数(n_Number),并将其存储到以d_Offset开头的位置控制存储器区。为了在电源关闭后仍保留写入数据,还可以另外在永久存储器区域中备份数据。

参数

输入

s1_Channel (WORD, INT, UINT)

通道编号

Configurator PMXSYS_PMX_CHANNEL_0SYS_PMX_CHANNEL_3

Configurator PM7SYS_PM7_AXIS_1SYS_PM7_AXIS_8

s2_Start (WORD, INT, UINT)

存储要写入数据的控制单元中操作存储器区域的起始地址(源地址)

n_Number (WORD, INT, UINT)

要写入的字数

s1_Area (WORD, INT, UINT)

位置控制存储器区域:

  • 0SYS_POSITIONING_AREA_COMMON_DATA

  • 1SYS_POSITIONING_AREA_AXIS_INFORMATION

  • 2SYS_POSITIONING_AREA_AXIS_SETTING

  • 3SYS_POSITIONING_AREA_TABLE_DATA

d_Offset (WORD, INT, UINT)

用于存储写入数据的控制单元中位置控制存储器的起始地址偏移量(目标地址)

s1_WriteToPersistentMemory (WORD, INT, UINT)

TRUE:数据将备份在保留区中

FALSE:数据未备份

错误标志

sys_bIsOperationErrorHold(变为TRUE并保持为TRUE)
  • 如果在s1_Channel中指定的信道编号无效

  • 如果在 d_Offset中指定的位置控制存储器偏移超过位置控制区域的限制

sys_bIsOperationErrorNonHold(对于一次扫描变为TRUE)
  • 如果在s1_Channel中指定的信道编号无效

  • 如果在 d_Offset中指定的位置控制存储器偏移超过位置控制区域的限制

示例

POU头

所有用于编程此函数的输入和输出变量已在POU头中声明。所有编程语言使用相同的POU头。

	VAR
		bWriteData: BOOL:=FALSE;
		awData: ARRAY [0..9] OF WORD:=[10(0)];
	END_VAR
	VAR CONSTANT
		bBACKUP_DATA: BOOL:=TRUE;
	END_VAR
	VAR
	END_VAR

LD本体

当变量bWriteDataFALSE变为TRUE时,执行此函数。

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
    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 := 9 ;
        NETWORK_BODY
B(B_CONTACT,,bWriteData,9,1,11,3,R);
B(B_F,F385_Positioning_WriteData_Backup!,,20,0,37,9,,?DEN?Ds1_Channel?Ds2_Start?Dn_Number?Ds1_Area?Dd_Offset?Ds1_WriteToPersistentMemory?AENO);
B(B_VARIN,,SYS_PMX_CHANNEL_0,18,2,20,4,);
B(B_VARIN,,awData,11,3,13,5,);
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);
B(B_VARIN,,SYS_POSITIONING_AREA_AXIS_SETTING,18,5,20,7,);
B(B_VARIN,,155,18,6,20,8,);
B(B_VARIN,,bBACKUP_DATA,18,7,20,9,);
L(1,0,1,9);
L(1,2,9,2);
L(11,2,20,2);
L(13,4,13,5);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST本体

(*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_Backup(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,
                                      s1_WriteToPersistentMemory := bBACKUP_DATA);
end_if;

最后更新日期: 此页面上的反馈松下热线