西门子PROFINET报文3伺服TO控制


本篇是上一篇的姊妹篇。内容是使用西门子PLC通过ProfiNet利用工艺对象(TO)控制伺服。这里用的还是CPU 1511-1 PN,和一套国产品牌的伺服电机。通讯采用报文3做位置控制,使用博途自带的运动控制指令,不需要额外安装库。

准备工作:依然需要一块西门子1500PLC,一套支持PN通讯的伺服电机,一台装有博途和伺服调试软件的电脑,驱动器的调试线和网线。下面开始鼓捣。

组态过程

和上一篇一样,测试一下电机之后开始组态。

前两步与报文111一模一样,新建工程,添加PLC,导入GSD,就不放图了。如果之前导入过GSD,博途的库里就有了,不需要每个项目都导入一次。下面从第三步开始。

3. 在项目树双击设备与网络,点击拓扑视图,在右侧硬件目录,其他现场设备中找到添加的伺服,将其拖拽至视图中。
注意:这次注意和上一篇是对应的,这次必须在拓扑视图中把PLC与伺服连接起来。因为报文3的位置环计算在PLC中进行,所以必须启用等时同步模式(IRT),等时同步模式必须组态拓扑视图,而拓扑视图一旦组态,实际接线方式必须与拓扑组态一致。这里又有两个点需要注意:一是PLC和伺服在图中都有两个小绿框,对应硬件上的两个网口,在RT模式下,这两个口可以看做交换机,交换机上的两个口是一样的,可以随便用,而IRT下他们是不同的,必须与实物对应。例如图中PLC的两个网口,图中上面的一个绿框对应1511PLC靠近面板的那一个网口,下面的绿框对应PLC靠内侧的一个网口,必须保持拓扑图中接线与实际一致。二是如果需要使用交换机,则必须使用西门子支持IRT的交换机。但多数伺服驱动器都有两个网口,可以使用一个串一个的方式首尾相接。

第 3 步

4. 在项目树-在线访问处为所有的设备分配IP地址和ProfiNet设备名称。

第 4 步

5. 回到设备与网络,点击网络视图。点击PLC里的绿框,在属性-以太网地址处新建子网,设置刚才分配好的IP,勾选上自动生成 PROFINET 设备名称。当然也可以自己设置,切记不能重复。为其他设备也设置好IP和名称。

第 5 步

6. 点击伺服驱动器左下角显示的未分配,选择PLC_1。

第 6 步

7. 双击伺服驱动器空白处,会跳转到设备视图。右侧硬件目录中模块下找到“PROFIdrive Module”,将其拖入表格中。在其下会自动添加3号报文:“Standard Telegram 3”,如果没有,可以从右侧子模块中拖拽报文3放入表格。

第 7 步

8. 在项目树-PLC下面找到工艺对象,双击新增对象,类型选择运动控制下的TO_PositioningAxis,起个名字之后点击确定。

第 8 步

9. 新建的工艺对象下面双击组态,在右侧依次进行伺服的组态。
基本参数中,轴类型分为线性和旋转,线性指伺服带丝杠,位置单位为毫米,旋转指伺服带齿轮,位置单位为角度。按实际选择即可。

第 9 步

10. 硬件接口-驱动装置中,点驱动装置右边的…,在PLC下找到PROFINET IO-System,其下有添加的伺服,点击后在右侧选择PROFIdrive Module_1。

第 10 步

11. 硬件接口-编码器中,如果是增量型编码器,就选择增量,绝对值型编码器选绝对,循环绝对编码器会将编码器超出的圈数记录在工艺对象中。

第 11 步

12. 硬件接口-与驱动装置进行数据交换中,需要设置参考转数(即电机额定转速),最大转数(即电机最大转速),基准扭矩(即电机额定转矩),这三个参数要与伺服驱动器中的设置保持一致。自动应用驱动值的功能可以从西门子驱动器中读取参数值,此处为第三方驱动器,所以不选。

第 12 步

13. 硬件接口-与编码器进行数据交换中,如果第11步选择了增量,此处需要填每转增量(即编码器线数或每转一圈的脉冲数)和Gx_XIST1中的位。如果选了绝对,此处会多两个参数:转数(指多圈绝对值编码器圈数)和Gx_XIST2中的位。这个计算挺麻烦,可以偷懒直接问伺服厂家。如果是西门子的驱动器,10000线增量型这两个参数分别填2500和2。单圈绝对值的四个参数从上往下依次填2048,1,12,10,20+12多圈绝对值依次填2048,4096,11,9。

第 13 步

14. 扩展参数可以设置加减速度,正负限位,回零等,可以按需配置。配置好之后下载程序,在工艺对象下面双击调试,可以进行简单的测试。

第 14 步

15. 回到设备与网络的设备视图,选择驱动器,在属性-常规-PROFINET接口-高级选项-等时同步模式中勾选等时同步模式。

第 15 步

16. 打开网络视图,如果绿线上显示的不是PN/IE_1,将鼠标悬停在绿线上,取消所有高亮显示,此时绿线会显示PN/IE_1。

第 16 步

17. 点击绿线,在属性-常规-PROFINET Subnet-域管理-同步域-Sync-Domin_1中将发送时钟修改为4。

第 17 步

18. 在项目树-PLC-程序块下找到MC-Servo[OB91]块,右键,属性,在常规-周期中,将因子修改为1。

第 18 步

这样组态就完成了。

编写程序

打开程序块开始编写程序。

19. 在右侧指令列表的工艺下,有运动控制的指令,均以MC_开头。

第 19 步

20. 这些指令的Axis管脚是需要控制的轴,可以直接从工艺对象把轴拖过来放在此管脚上。

第 20 步

21. 为了方便修改参数,新建一个数据块,为所有指令块的每一个输入都创建一个对应的变量。然后将这些变量赋予指令的输入。

第 21 步

完成后编译下载,部分伺服驱动器需要复位来切换报文,具体参见驱动器手册。

使用说明

工艺对象

创建的工艺对象本质上是一个数据块,存储了工艺对象的所有参数,这些数据可以直接拿来用。在工艺对象上右键,点击打开 DB 编辑器可以查看数据。比如可以直观地看到位置与速度等信息。

工艺对象中的数据

MC_POWER

如果上电直接使能的话可能会出现一些问题,比如驱动器还没就绪,此时使能就会报错,必须复位才能继续。可以在使能前加两个判断,可以在工艺对象DB中找到,一个是驱动器就绪,一个是编码器就绪,如下图。

判断驱动器状态

MC_HOME

关于回零,增量编码器建议使用模式3,将参考点设为Position管脚参数。

绝对值编码器建议使用模式7,绝对值编码器不需要每次都回零,只需在调试时回一次,断电记忆位置。调试时用相对定位或点动将电机位置调整好,触发此块,可以将当前位置设置为Position管脚参数。

注意事项

1. 使用工艺对象控制时,位置环在PLC中控制,所以需要将驱动器中设置的加速时间和减速时间设为0。

2. 组态工艺对象需要占用CPU的运动控制资源。一个转速轴占用40个资源,位置轴80个,同步轴160个。1500系列各个型号CPU拥有的运动控制资源总量如下:

资源量CPU型号
800个1510SP F-1 PN , 1511(F)-1 PN , 1511C-1 PN , 1511T(F)-1 PN , 1512C-1 PN , 1512SP F-1 PN , 1513-1 PN , 1513proF-2 PN , 1516proF-2 PN
1120个1513F-1 PN
2400个1505SP (F) , 1505SP T(F) , 1514SP (T)F-2 PN , 1515(F)-2 PN , 1515T(F)-2 PN , 1516(F)-3 PN/DP
4800个1507S (F) , 1508S (F)
6400个1516T(F)-3 PN/DP
10240个1517(F)-3 PN/DP , 1517T(F)-3 PN/DP
15360个1518(F)-4 PN/DP , 1518T(F)-4 PN/DP
不支持运动控制1513R-1 PN , 1515R-2 PN , 1517H-3 PN , 1518HF-4 PN
* 整理很累,转载请留链接