本篇是上一篇的姊妹篇。内容是使用西门子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的交换机。但多数伺服驱动器都有两个网口,可以使用一个串一个的方式首尾相接。
4. 在项目树-在线访问处为所有的设备分配IP地址和ProfiNet设备名称。
5. 回到设备与网络,点击网络视图。点击PLC里的绿框,在属性-以太网地址处新建子网,设置刚才分配好的IP,勾选上自动生成 PROFINET 设备名称。当然也可以自己设置,切记不能重复。为其他设备也设置好IP和名称。
6. 点击伺服驱动器左下角显示的未分配,选择PLC_1。
7. 双击伺服驱动器空白处,会跳转到设备视图。右侧硬件目录中模块下找到“PROFIdrive Module”,将其拖入表格中。在其下会自动添加3号报文:“Standard Telegram 3”,如果没有,可以从右侧子模块中拖拽报文3放入表格。
8. 在项目树-PLC下面找到工艺对象,双击新增对象,类型选择运动控制下的TO_PositioningAxis,起个名字之后点击确定。
9. 新建的工艺对象下面双击组态,在右侧依次进行伺服的组态。
基本参数中,轴类型分为线性和旋转,线性指伺服带丝杠,位置单位为毫米,旋转指伺服带齿轮,位置单位为角度。按实际选择即可。
10. 硬件接口-驱动装置中,点驱动装置右边的…,在PLC下找到PROFINET IO-System,其下有添加的伺服,点击后在右侧选择PROFIdrive Module_1。
11. 硬件接口-编码器中,如果是增量型编码器,就选择增量,绝对值型编码器选绝对,循环绝对编码器会将编码器超出的圈数记录在工艺对象中。
12. 硬件接口-与驱动装置进行数据交换中,需要设置参考转数(即电机额定转速),最大转数(即电机最大转速),基准扭矩(即电机额定转矩),这三个参数要与伺服驱动器中的设置保持一致。自动应用驱动值的功能可以从西门子驱动器中读取参数值,此处为第三方驱动器,所以不选。
13. 硬件接口-与编码器进行数据交换中,如果第11步选择了增量,此处需要填每转增量(即编码器线数或每转一圈的脉冲数)和Gx_XIST1中的位。如果选了绝对,此处会多两个参数:转数(指多圈绝对值编码器圈数)和Gx_XIST2中的位。这个计算挺麻烦,可以偷懒直接问伺服厂家。如果是西门子的驱动器,10000线增量型这两个参数分别填2500和2。单圈绝对值的四个参数从上往下依次填2048,1,12,10,20+12多圈绝对值依次填2048,4096,11,9。
14. 扩展参数可以设置加减速度,正负限位,回零等,可以按需配置。配置好之后下载程序,在工艺对象下面双击调试,可以进行简单的测试。
15. 回到设备与网络的设备视图,选择驱动器,在属性-常规-PROFINET接口-高级选项-等时同步模式中勾选等时同步模式。
16. 打开网络视图,如果绿线上显示的不是PN/IE_1,将鼠标悬停在绿线上,取消所有高亮显示,此时绿线会显示PN/IE_1。
17. 点击绿线,在属性-常规-PROFINET Subnet-域管理-同步域-Sync-Domin_1中将发送时钟修改为4。
18. 在项目树-PLC-程序块下找到MC-Servo[OB91]块,右键,属性,在常规-周期中,将因子修改为1。
这样组态就完成了。
编写程序
打开程序块开始编写程序。
19. 在右侧指令列表的工艺下,有运动控制的指令,均以MC_开头。
20. 这些指令的Axis管脚是需要控制的轴,可以直接从工艺对象把轴拖过来放在此管脚上。
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 |
好文章
笑死,从排骨那篇文章开始关注,没想到跟我一样是个自动化工程师
哈哈,看了四年发现居然是同行
学无止境
你们是我们哪个客户吗,这是我们的驱动器,加个微信?
你好,看你的站做的挺不错的,有没有出手的打算,想出手的话,联系QQ158***193。
我会出手
方便留个联系方式,加个微信交流交流?
现在感觉你这个有前途,我们公司有做plc的工程师,现在都发大财了
哈哈,我也天天做梦等着发财呢
技术路线,中途切入业务部门,很有前途
我…我努力…
是盘龙村!
还挺霸气