当前位置:首页 > 机械智慧 > 正文

梳理西门子的EPOS和FB284

一、SINAMICS驱动器的EPOS功能EPOS(基本位置控制)是位置环在驱动器侧,由驱动器自身完成位置闭环控制的功能。SINAMICS驱动器里S系列(S110、S120)以及V90PN都内置了此功能,而G120系列中CU250S-2需要通过购买授权和CF卡方式获得该功能。图1:西门子驱动器EPOS...

一、SINAMICS驱动器的EPOS功能EPOS(基本位置控制)是位置环在驱动器侧,由驱动器自身完成位置闭环控制的功能。SINAMICS驱动器里S系列(S110、S120)以及V90PN都内置了此功能......

一、SINAMICS驱动器的EPOS功能

EPOS(基本位置控制)是位置环在驱动器侧,由驱动器自身完成位置闭环控制的功能。SINAMICS驱动器里S系列(S110、S120)以及V90PN都内置了此功能,而G120系列中CU250S-2需要通过购买授权和CF卡方式获得该功能。


图1:西门子驱动器EPOS功能

基本定位器功能包括以下几个模式:

(1)设定值直接给定/MDI

(2)运行程序段

(3)回参考点

(4)点动

(5)运行到固定挡块

二、TIAPortal驱动库程序

FB284属于TIAPortal提供的驱动库程序,用于基于博途编程环境的S7-1200、S7-1500、S7-300/400等SIMATIC控制器对G/S120、V90等SINAMICS驱动器的基本定位控制。目前博途驱动库主要包含以下三种类型的功能块:


图2:博途常用驱动库

上面提到了循环和非循环数据交换,在功能块里是如何实现的?实际上FB284/FB285用到了DPRD/DAT和DPWR_DAT指令,即“读取标准DP从站的一致性数据”,而FB286/287则使用了RDREC指令和WRREC指令,如图3所示。


图3:博途驱动库调用原理

说明一下:

(1)博途DPWD/DAT和DPWR_DAT指令前身其实就是经典STEP7V5里的SFC14和SFC15。大家用DP通信控制变频器等应该都用过,在PROFIBUS或PROFINET网络中主站读取或者写入从站(大于4个字节)连续的数据需要使用SFC14/SFC15,当然也有个别CPU型号可以不需要。

(2)博途RDREC和WRREC指令前身则是经典STEP7V5里的SFC58和SFC59。

三、FB284的实现过程(以V90PN为例)

如上所述FB284库实际上就是通过一致性读写指令去对111报文的IO进行操作,下面我们自己做一个简单的FB来实现FB284基本功能,主要给大家分析如何对报文操作。

1、111报文

因为是操作111报文,所以我们首先需要了解该报文的详细信息,111报文是带扩展功能定位运行报文,常用于EPOS的控制。111报文在通信组态时映射的IO地址如图4所示,我们实际上就是对此IO的操作,可以看到111报文是12个接受/发送字,每个控制/状态字的含义可以查找V90或G120/S120手册。


图4:111报文映射IO地址

2.FB284管脚、111报文、EPOS功能间的对应关系,如图5/6所示。


图5:控制输出对应关系


3.EPOS各功能配合111报文控制V90PN的具体步骤

(1)一致性读写

前面说过通过DPWD/DAT和DPWR_DAT指令实现,如图7所示。


图7:一致性读取指令

(2)轴使能

伺服各种运动模式运行的前提就是先使能接通电机,这里就要提到大家耳熟能详的16047F了。大家用西门子G120包括V20变频器都很清楚这是停止(OFF1)和正转启动控制字,再加上速度给定就可以启停运行了。同样基于SINAMICS平台的V90PN伺服也是如此,区别就是伺服轴需要激活不同的运行任务,所以一开始是0,由后面具体任务控制。这样V90轴使能就是把16047F控制字里的第6位改为0,也就是16043F。当然驱动器断电后再上电也需要先赋值停止控制字才能转入启动,轴使能程序如图8所示。


图8:轴使能

位置设定值单位是LU,速度的设定值是1000LU/分钟,111报文的OverV控制字10进制整数16384(十六进制16Vel_act.%W0:="111".R[8];

TR[0]:=DINT_TO_REAL(TR[1]:=TR[0]/1073741824);//16当前速度:=REAL_TO_DINT(MODE=2THEN

"111".W[1].%X9:=0;

"111".W[1].%X10:=0;

"111".W[1].%X12:=定位启动;

"111".W[2].%X5:=0;

"111".W[1].%X8:=1;

"111".W[0].%X8:=0;

"111".W[0].%X9:=0;

"111".W[2].%X9:=0;

"111".W[2].%X1:=0;

IFMODE=3THEN

IF负方向THEN

"111".W[1].%X9:=1;

"111".W[1].%X10:=0;

ELSIF正方向THEN

"111".W[1].%X9:=0;

"111".W[1].%X10:=1;

_IF;

IF暂停任务THEN

"111".W[0].%X5:=0;

ELSE

"111".W[0].%X5:=1;

_IF;

"111".W[1].%X12:=定位启动;

"111".W[2].%X5:=0;

"111".W[0].%X8:=0;

"111".W[0].%X9:=0;

"111".W[2].%X9:=0;

"111".W[2].%X1:=0;

_IF;

IF正方向ANDNOT负方向ANDNOT原点开关;

"111".W[0].%X11:=报文)基础上扩展了位置控制(通过111报文)就变成了EPOS(基本定位控制),无论是什么驱动器还是离不开电流环-速度环-位置环这样一个由内及外的套路。FB284的使用跟速度控制一样很简单,因为最核心的位置环是伺服完成的,我们仅仅是操作了一下报文而已。当然PLC负责位置环也是一样(比如工艺对象),核心的位置环也是PLC系统内部完成的,我们只是调用了PLCOPEN指令完成一些逻辑控制。

最新文章