1200运动控制常问问题

问题:如何保持断电前的绝对位置?

V4.1 固件 CPU

答:轴的绝对位置是不能断电保持的,CPU断电重新上电后,轴的绝对位置会重新变成0,要实现位置保持,可按照下面的步骤操作。

1. 在全局DB块里建立Real类型变量,勾选变量的保持性,如下图:

图. 01 创建保持性变量

2. 在OB1中,将轴的当前位置“ActualPosition”传送到第一步建立的变量中。

在工艺对象里选中轴,右键打“开DB编辑器”,在“Static”下面找到“ActualPosition”。如下图:

图. 02 当前位置传送到保持性变量

3. 在启动OB中,使用“MC_Home”指令的 Mode 0 ,重新装载断电前绝对位置,如下图:

图. 03 保持性变量中的位置装载

注意:在 OB1 里再调用 MC_POWER 指令使用的背景 DB 必须与 OB100 启动 OB 里 MC_POWER 使用的背景 DB 相同。

V4.0 固件 CPU

由于无法在固件版本为V4.0的 CPU 的启动 OB 里使用“MC_Power”指令启动轴,可以使用如下方法实现保持断电前的绝对位置。

1. 在全局DB块里建立Real类型变量,勾选变量的保持性,如下图:

图. 04 创建保持性变量

2.进入设备组态界面,在"系统和时钟存储器"页面启用系统存储器字节,分配系统存储器参数时,需要指定用作系统存储器字节的 CPU 存储器字节。 首次循环对应的位启动后的第一个程序循环中为 1 ,否则为 0。

图. 05 启用系统存储器字节

3.在 Main [OB1]中,使用“MC_Power”指令启动轴后调用“MC_Home”指令的 Mode 0 ,重新装载断电前绝对位置。然后将当前位置“Position”传送到第一步建立的变量中。在工艺对象里选中轴,右键打“开DB编辑器”,在“Static”下面找到“Position”。如下图:

注:如果存在多个运动控制指令,如“MC_Home”指令,每个指令的背景 DB 块需要单独创建,以免产生冲突。可以根据实际工艺情况,在合适的时间点执行“MC_Power”指令和“MC_Home”指令装载新的断电前的绝对位置,本例中为第一个循环扫描周期就装载断电前的绝对位置。

问题:如何保持PN轴断电前的绝对位置?

V4.2 固件 CPU

答:PN轴的绝对位置在使用绝对位置编码器的时候使用MC_HOME指令的模式6,7可以实现位置的断电保持;
但是在使用增量型编码器是不能断电保持的,CPU断电重新上电后,轴的绝对位置会重新变成0,要实现位置保持,可按照下面的步骤操作。

1. 在全局DB块里分别建立一个Bool和Real类型变量,勾选Real变量的保持性,如下图:

图. 06 创建变量

2.进入设备组态界面,在"系统和时钟存储器"页面启用系统存储器字节,分配系统存储器参数时,需要指定用作系统存储器字节的 CPU 存储器字节。 首次循环对应的位启动后的第一个程序循环中为 1 ,否则为 0。

图. 07 启用系统存储器字节

3.在 Main [OB1]中,先使用M1.0置位标志位,然后使用“MC_Power”指令启动轴后调用“MC_Home”指令的 Mode 0 ,重新装载断电前绝对位置,然后复位标志位,将当前位置“ActualPosition”传送到第一步建立的变量中。
在工艺对象里选中轴,右键打“开DB编辑器”,在“Static”下面找到“ActualPosition”。如下图:

注:如果存在多个运动控制指令,如“MC_Home”指令,每个指令的背景 DB 块需要单独创建,以免产生冲突。可以根据实际工艺情况,在合适的时间点执行“MC_Power”指令和“MC_Home”指令装载新的断电前的绝对位置。