S7-1200/1500如何编程实现V90的EPOS功能.docx
S7-1200 / 1500如何编程实现V90的EPOS功能目录1 .位置控制的两种实现方式1. FB284实现EPOS控制概述12 .如何自编用于EPOS功能的功能块23. 1. SINAMICS驱动器的EPOS功能23. 2. TIA Portal驱动库程序33. 3. FB284的实现过程(以V90PN为例)53. 3. 1. 111 报文53. 3. 2. FB284管脚、111报文、EPOS功能间的对应关系53. 3. 3. EPOS各功能配合111报文控制V90PN的具体步骤73. 3. 4.程序编写考前须知94.个人总结121 .位置控制的两种实现方式V90 PN可以有两种方式实现位置控制,一种是激活其内部的基本定位器 控制(EPOS),另一种是在PLC中创立轴TO工艺对象。TO控制,位置控制位置环在PLC侧,V90PN中设置速度控制模式,TO占 用PLC负荷,不同型号的PLC可以控制的TO数量不同,需使用TIA Selection Tool确定控制轴数及性能。可进行单轴及多轴位置控制(如多轴同步)。EPOS控制,位置控制器在V90PN中,不占用PLC负荷,但只能做单轴 位置控制。2 . FB284实现EPOS控制概述S7-1200/1500可以通过PROFINET通信连接V90 PN伺服驱动器,PLC 通过西门子提供的驱动库中的功能块FB284可实现V90的基本定位控制。 获得FB284功能块的两种方法如下,可选择其中一种:1.安装Startdrive软件,在TIA Portal软件中就会自动安装驱动库文 件,下载链接:第1页共12页IF#M0DE = 2THENnllln.Wl.%X9:=0;,fllln.Wl.%X10:=0;Hllln.Wl.%X12 :=#连续接受设定值;,llln.Wl.%X14:=0;:= 1;nllln.W2.%X2:=0;nllln.WO.%Xll :=0;Hllln.W0.%X6 :二 #定位启动; “lll".W2X5:=0;“lll".W0,X8:=0;HlllH.W0.%X9:=0;Hllln.W2.%X9:=0;Hllln.W2.%Xl:=0;IF#TB3 THENHllln.W0.%X6:=0;END IF;END IF;IF#M0DE = 3THENIF#正方向AND NOT#负方向THENnllln.Wl.%X9:=l;nllln.Wl.%X10:=0;ELSIF#负方向AND NOT#正方向THENHlll,f.Wl,%X9 :=0;nllln.Wl.%X10:=l;ENDF;IF#拒绝任务THENnllln.W0.%X4:= 0;ELSE第10页共12页,1111,.WO.%X4:= 1;END IF;IF#暂停任务THEN“lllW0.X5:=0;ELSEnllln.W0.%X5:=l;END IF;"111".W1.%X12 := #连续接受设定值;H111U.WO.%X11 :=0;Hllln.W2.%X2:=0;nllln.Wl.%X14:=l;:= 1;nlllf,.W0.%X6 := #定位启动;Hllln.W2.%X5:=0;Hlllr,.W0.%X8:=0;“lll".W0X9:=0;nllln.W2.%X9:=0;END IF;IF#M0DE = 4THENIF#正方向AND NOT#负方向THENHllln.W2.%X9:=0;ELSIF#负方向AND NOT#正方向THENHlll,f.W2.%X9 := 1;ELSEHlll,f.W2.%X9 := 0;END IF;nllln.Wl.%X9:=0;Hllln.Wl.%X10:=0;Hllln.Wl.%X12 :=0;"111".W2.%X2 := #原点开关;nllln.W0.%Xll := #定位启动;第11页共12页"lll".W2.%X5:=0;"lll".W0.%X8:=0;"lll".W0.%X9:=0;"111".W2.%X1 := 0;4.个人总结大家知道西门子驱动器都叫SINAMICS系列,所有产品遵循通用的平台架 构设计,EPOS是SINAMICS里的一个标准功能。实际上就是在变频器速度控制 (通过1#报文)基础上扩展了位置控制(通过111报文)就变成了 EPOS(基本定位 控制),无论是什么驱动器还是离不开电流环-速度环-位置环这样一个由内及外 的套路。FB284的使用跟速度控制一样很简单,因为最核心的位置环是伺服完 成的,我们仅仅是操作了一下报文而已。当然PLC负责位置环也是一样(比方 工艺对象),核心的位置环也是PLC系统内部完成的,我们只是调用了 PLCOPEN指令完成一些逻辑控制。参考资料:1 .V90PN常用报文介绍2.S7-1200/1500通过FB284控制V90 PN实现基本定位3.S7-1200通过T0实现V90 PN的位置控制第12页共12页2.在 TIA Portal 中安装 SINAMICS Blocks DriveLib,下载链接: SINA_P0S(FB284)介绍功能块FB284在命令库中的位置如图2-1所示: 工程库TA T1 回 1 二注释V)B1"SINA_POS_DB,VB2840NA_POS- Ed,EENenoAxisEnabledT-*modePos,ModePosAwsPosOk4KM2.0AxisRefT,enableAxis, 一Enable AxisAxisMm-1 -CancetTroversinAm Error一gintermediateStLockoutopActVelocity-“2 1ActPosition-,positive, PositiveActMode-KM2 2EPosZSWI-,negative, -NegativeEPosZSW2ActWbm-jog1 一Jog1ActFault一 一W2 4Errorw-Jog2Status*2.5DiaglD-飞加r 一FlyRef“2.6'ackError, 一AckErrorKM2.7"executeMode, ExecuteMode“D4'position, 一PositionWD8'velocit/VelocityOverV4OverAcc100 OverDec16» 0000.0003 ConfigEPos268 HVMDSTW268 HMDZSWV)B1"SINA_POS_DB,VB2840NA_POS- Ed,EENenoAxisEnabledT-*modePos,ModePosAwsPosOk4KM2.0AxisRefT,enableAxis, 一Enable AxisAxisMm-1 -CancetTroversinAm Error一gintermediateStLockoutopActVelocity-“2 1ActPosition-,positive, PositiveActMode-KM2 2EPosZSWI-,negative, -NegativeEPosZSW2ActWbm-jog1 一Jog1ActFault一 一W2 4Errorw-Jog2Status*2.5DiaglD-飞加r 一FlyRef“2.6'ackError, 一AckErrorKM2.7"executeMode, ExecuteMode“D4'position, 一PositionWD8'velocit/VelocityOverV4OverAcc100 OverDec16» 0000.0003 ConfigEPos268 HVMDSTW268 HMDZSW全局库>lil ButtcmndSwifch一200J 500 t: 01_S7_General> t: 02_S7_1200, t: I: 03_SINAMCS SINAJNFEED6 SINA_PARA二-SINA PARA SSINA POS-SINA_SPEED语言和淡源 u Drive_Lib_S7_300_400 LjJ Long Functions LJ Monitoring-and<ontrol-objects LJ Documentation templates)自动化玩家功能块可在下述组织块(0B)中进行调用:循环组织块:0B1循环中断组织块:如OB32此功能块可配合SINAMICS驱动中的基本定位功能使用,需注意在驱动侧 必须激活基 本定位功能,并使用西门子111通信报文。3.如何自编用于EPOS功能的功能块3. 1. SINAMICS驱动器的EPOS功能EPOS(基本位置控制)是位置环在驱动器侧,由驱动器自身完成位置闭环控 制的功能。SINAMICS驱动器里S系列(S110、S120)以及V90PN者B内置了此功 能,而G120系列中CU250S-2需要通过购买授权和CF卡方式获得该功能。第2页共12页EPOSSTEP? V5库程序TIA Portal 库程序。11空旗N SMART库.V90PN.'内置FB284 (基本定位)FB285 (速度)“FB286/TB287(读写参 数),SINA_P0S.'SINA_SPEED-SINA PARA S。. 或沉分了S110/S120.内置,FB283”CU250S-2-授权,CU250D-2.内置图1:西门子驱动器EPOS功能基本定位器功能包括以下几个模式:(1)设定值直接给定/MDI(2)运行程序段(3)回参考点(4)点动(5)运行到固定挡块3. 2. TIA Portal驱动库程序FB284属于TIA Portal提供的驱动库程序,用于基于博途编程环境的S7- 1200、S7-1500、S7-300/400 等 SIMATIC 控制器对 G/S120、V90 等SINAMICS驱动器的基本定位控制。目前博途驱动库主要包含以下三种类型的 功能块:>驱动库程序通信周期。程序功能匹配报文pFB284a循环数据交换基本定位控制.、IIP22FB28y循环数据交换。速度控制.摩威一8FB286/287非循环数据交换。读写多个/单个参数,图2:博途常用驱动库上面提到了循环和非循环数据交换,在功能块里是如何实现的?实际上 FB284/FB285用至U 了 DPRD/DAT和DPWR.DAT指令,即“读取标准DP从站 的一致性数据”,而FB286/287那么使用了 RDREC指令和WRREC指令,如图3 所示。第3页共12页口 DPRD_DATFR2M 0叵叵SINA POSSIKA POS DBMainOB1MainOB14FB285SIMA. SPEED;DTJRD DAT目 DPWR_DAT口CT2B5SINA SPEEDDB口CT2B5SINA SPEEDDBFB286-SINA_PAR4口 RDREC a WRRECDB28SSINA PARA DBDB28SSINA PARA DBil出化玩里图3:博途驱动库调用原理说明一下:第4页共12页(1)博途DPWD/DAT和DPWR_DAT指令前身其实就是经典STEP7 V5里的 SFC14和SFC15o大家用DP通信控制变频器等应该都用过,在PROFIBUS或 PROFINET网络中主站读取或者写入从站(大于4个字节)连续的数据需要使用 SFC14/SFC15,当然也有个别CPU型号可以不需要。(2)博途RDREC和WRREC指令前身那么是经典STEP7 V5里的SFC58和 SFC59o3. FB284的实现过程(以V90PN为例)如上所述FB284库实际上就是通过一致性读写指令去对111报文的10进 行操作,下面我们自己做一个简单的FB来实现FB284基本功能,主要给大家 分析如何对报文操作。3.1.1. 111报文因为是操作111报文,所以我们首先需要了解该报文的详细信息,111报 文是带扩展功能定位运行报文,常用于EPOS的控制。111报文在通信组态时 映射的10地址如图4所示,我们实际上就是对此10的操作,可以看到111报 文是12个接受/发送字,每个控制/状态字的含义可以查找V90或G120/S120手册。点拓扑视图|岛网络视图|附设备视囱一j瓶备概验02 模块机架二插槽口I地址二Q地址类型订货号, SINAMICS-V90-PN00SINAMICS V90PNV1.06SL3 210-5. PN-IO00X150SINAMICS-V90-PN驱动01驱动模块访问点01 1模块访问点没有 PROFIsafe01 2 ,没有 PROFIsafe西门子报文111PZD-1013 16 8.9164.87J西门子报文彳J,皂劫化玩家图4: 111报文映射10地址3.1.2. FB284管脚、111报文、EPOS功能间的对应关系如图5/6所小。第5页共12页图5:控制输出对应关系FB284管脚一111报文/Q区地址QEPOS功能描述输入参数/控制数据02EnableAxisSTWl.OQ65. 0。接通电机/轴使能Conf igEPos. %X04;,STW1. IPQ65. IP1=OFF2(自由停车)无效/ConfigEPos.%XlPSTW1.2Q65. 2"1=OFF3 (快速停车)无效"好rSTW1.3PQ65. 3"允许运行(可以使能脉冲)小5"CaricelTransingSTW1.4PQ65.4P0二拒绝执行任务仁不拒绝执行。62IntermediateSt npSTW1.53Q65. 5Q0二暂停运行任务上不暂停272ExecuteModeSTW1.6QQ65. 60激活运行任务,STW1.11Q64 3*启动回参考点命令Q69. IP设置参考点小8AckError43STW1.7PQ65. 7P故障确认"9©J0G1QSTWL8QQ64.%正向点动使能(信号源1)一1OJOG 2STW1.9PQ64 1*反向点动使能(信号源2) Q11+pSTW1. 1“Q64. 2a仁PLC控制。12+pPOS_STW1.0-1.5<Q67.0-5卜选择运行程序段编号小Q66. 01二绝对定位。=相对定位Q1米PositivePOS_STW1.9PQ66.ir两个位组合卜最短距离绝对定位1-正方向,2一负方向口Negative。POS_STW. 10PQ66. 2PConfigEPos.%X8,POS.STW1. 12Q66.4P1=连续接受设定值(可以实时改变), 0 = STW1.6M。变为1后,才接 收位置设定值的修改。一17-PPOS.STW1. 14PQ66 6*仁信号调整 0=信号定位侬PPOS.STW1. 15PQ66. 7P1 = MDI选择0二运行程序段1%ConfigEPos.%X6/POS_STW2. 2PQ69. 2Q1=参考点地块数谓(原点开关信号)2RFlyRefPPOS_STW2. 8rQ68 0"1二运行中回零(被动回零注 口二不选择运行中回零(主动回零)2bPosit ive/Negat ivePOS_STW2. 9PQ68 1"仁在负月间搜索参考点0=在正月1可上2 2+ConfigEPos. %X2PPOS_STW2. 1443Q68. 6P1二激活软限位开关口234-ConfigEPos. %X3QPOS.STW2. 15"Q68.72仁激活硬件限位"24PositionMDI_TARPOSPQD74PModePgs=l或2时的位置设定值一 ModeP qs= 6时的程序段号Q2吩Velocity43MDI_VELOCITY。QD78PModePos= 1、2、3时的速度设定值一2%OuerVQOVERRIDE*QW72P速度倍率一27-OverAcc43MDI.ACCPQW82P亚空倍辜闻此玩务28OverDecMDLDECQQW84P减速度倍率,一第6页共12页FB284管脚111报文。I区地址2EPOS功能描述。输出参数/状态数据。1PAxisEnabled « W V V V V V / V w w w w W w *ZSW1.2P169.2。驱动已使能。AxisError._.ZSW1.3P169.32驱动故障口3cAxisWarn*1ZSW1.7P169. 7Q驱动报警。4cAxisPosOk-ZSW1. 10168.2d轴的目标位置到达5PAxisRefZSW1. 1143168.3P回零位置设置6dAc+PositiunXIST_A-ID 7 83当前位置川7QActVelocityNIST.BPID82c当前速度。80EPosZSWbPEPOS ZSW1的状态EPosZSW2apPEPOS ZSW2的状态/3Act FaultsFAULT_CODEIW86d当前的产障堡”/讦二1bActWarnWARN_C0DE7IW88P当前的报警满少图6:状态反应对应关系3. 3. 3. EPOS各功能配合111报文控制V90PN的具体步骤(1) 一致性读写前面说过通过DPWD/DAT和DPWR.DAT指令实现,如图7所示。读V90PN报文数据DPRD_DATENENO280"SINAMCS-V90- PN驱动_ 1西门子报文_ 111_PZD- 1212”RET.VALRECORD%DB17.DBW481HT'.RETIfP#DB17.DBX0?WORD 12读取数据区LADDR程序段2:写数据到V90PN报文DPWR_DAT ENENO %DB17.DBW50280RET.VAL h111m.RET2uSINAMCS-V90- PN驱动_ 1西门子报文_ 111 PZD-rp#DB17.DBX24?| 写入数据区M二自动化玩冢I。穴0»3 RECORD图7: 一致性读取指令(2)轴使能第7页共12页伺服各种运动模式运行的前提就是先使能接通电机,这里就要提到大家耳 熟能详的16#047E和16#047F 了。大家用西门子G120包括V20变频器都很 清楚这是停止(0FF1)和正转启动控制字,再加上速度给定就可以启停运行了。 同样基于SINAMICS平台的V90PN伺服也是如此,区别就是伺服轴需要激活不 同的运行任务,所以STW1.6 一开始是0,由后面具体任务控制。这样V90轴 使能就是把16#047E/16#047F控制字里的第6位改为0,也就是 16#043E/16#043Fo当然驱动器断电后再上电也需要先赋值停止控制字才能 转入启动,轴使能程序如图8所示。1 nnEdgeH(Current Status:=#伺服使能,Positive_Edge =>Negative_Edge =>Last Status := #TB2); TBO;A使能上升沿使能下降沿5 0IF #TB1 OR FirstScan11 THEN67896789,1llln.W0 := 16#043E;ELSIF #TB0 THENltllll,.W0 := 16#043F; END IF;图8:轴使能(3)设定值和反应值位置设定值单位是LU,速度的设定值是1000LU/分钟,111报文的OverV 控制字10进制整数16384(十六进制16#4000)对应100%的速度设定值,最 大设定速度是十进制32767(对应200%)。而实际速度(反应值)因为是双字,所 以十六进制的40000000H对应100%的速度基准值(P2000的参数值),实际 速度值处理程序如下所示。# Vel_act.%W0 := nllln.R8;# Vel_act.%Wl := nllln.R7;# TR0 := DINT_TO_REAL(#Vel_act);# TR1 :=#参考转速 *(#TR0 / 1073741824); /16#40000000H/# 当前速度:= REAL_TO_DINT(#TR1);(4)MDI控制MDI指设定值直接给定,就是通过外部给定来控制驱动器,包括FB284里 的运行模式1、2、3三种,如图9所示。第8页共12页图9: MDI的模式控制控制方式一MDI模式选择。FB284运行模式。方向启动停止。MDI控制一 POS_STW, 1. 15=1pMDI定位模式, POS_STW1. 14=0相对定位-模式IpPOS_STW1. 91. 10口设定值符号一aSTW1.改飞轴目标位置到 达后自动停止"绝对定位-模式2-0-最短距离一MDI调整模式aPOS_STW1. 14=P连续运行-模式3-1-正方向口2-负方向一普嚼臀(5)回原点(主动)如图1。所示图10:主动回原点回原方向一回原速度Q回原命金/原点开关信号一已回原点反应一P0S_STW2.加伺服自身设置一STW1. 11 (保持)/P0S_STW2. 2p(6)直接设置参考点实际就是直接将POS_STW2.1置lo(7)运行程序段如图11所示控制方式P程序段编号,,I启动CPOS_STN1.P0S_STWL 0-P0S_STNL 3 组合设定石: 胭笆法图11:运行程序段(8)点动/速度如图12所示图12:点动速度点动模式点动速度/方向一启动P0S.STW2. 5=0 (点动速度控制)V90伺服自身设置- 报文耍旺上.控制字可 以缩放数值。STWL8正向,STW1. 9 反向 、七自动化玩冢(9)点动/增量如图13所示图13:点动增量点动模式小点动速度/方向启动P0S_STW2. 5=1 (点动增量控制),V90伺赧自身设置一 报文Qyw工L控制字可 以缩放数值STW1.8 正向,STNL9反向 目动化玩冢(10)设定值实时更改有时我们需要在当前任务还没结束时触发新的任务(就是加载新的设定 值),这时只需要POS_STW1.12置1即可(FB284里的ConfigEPos.%X8就是对 应该位)。3. 3. 4.程序编写考前须知要注意运行模式切换时报文相关控制位的复位,这样不会导致现有模式的 状态干扰到下一模式,比方点动模式里正转和反转位(STW1.8和STW1.9)在其 他模式里就要程序里将其置0o第9页共12页