JZGKCHINA
工控技术分享平台
不念过去
不畏将来
写在前面
将一只大象装进冰箱需要三步:打开冰箱→把大象放进去→关上冰箱。
2048个伺服的同步插补也只需要三步:获得位置数据→分发位置数据→控制伺服跟随位置。本文将介绍如何通过贝加莱控制器和Powerlink实时以太网总线来实现这三步。
同步与插补运动
获得数据
1、 数据的产生:
对于位置插补的数据可以通过上位软件来进行处理和生成。例如通过Maya软件配合脚本来生成。这一部分不在本文讨论范围内。
2、数据量问题:
我们来计算一下2048轴的定位数据需要多大的数据量,假设运动数据存储在单个文件中,二进制格式(占用空间较小)存储。
以30分钟,10ms间隔的位置序列为例:
30 * 60 * 100 * 1936 = 368,640,000个位置数据。按照每个位置占用4个字节计算就是1,474,560,000个字节,也就是大约1.5G Bytes的数据量。
3、文件存储、读取、导入:
文件的导入和存储有两种方式:
贝加莱主控制器(工控机)可以支持通过AsMem库申请最大3.5G以上的连续内存区供程序使用和管理,所以一次性的把所有位置数据读入内存是可行的。
贝加莱控制器
分发数据
数据的分发有两个挑战,第一是高速高实时性,第二是大数据量传输。为了同时满足这两个要求,必须对网络进行分层。整个系统可以分为三层:
一级与二级Powerlink网络通讯周期都为2ms,抖动均小于1us。这就满足了通讯的实时性和高速的要求。
对于一级网络来说,每个周期每个PLC发送264字节,接收256字节,同时每个周期主站还有480字节的广播数据。所以一级网络每个2ms通讯周期的通讯数据量为:32*256+32*264+480 = 17,120字节。
实时高速大数据量的传输是Powerlink网络的一大优势。
Wireshark抓包数据见下图:
在某些特殊情况下,比如出现伺服驱动器或电机故障时,还可以实现单独禁止某一个或某几个轴,而不会影响其它轴的控制。
任何时刻单个节点的运行状态和通讯状态不会影响到其它的节点的通讯,这也是Powerlink总线的优势之一。
伺服跟随设定位置
位置跟随可以用贝加莱MC_BR_MoveCyclicPositionExt功能块来实现。
功能块可以通过设定速度加速度的最大值来避免读入的错误数据导致的运动失控,提高了系统的可靠性。同时支持多种插值方式,避免了10ms位置更新周期过长带来的抖动。
如果我们把整个系统看作是一个播放机,轨迹文件是插入的CD,那么我们就有了下面这样的控制方式:可以选择播放的音轨(场景),显示名字和相应的长度,可以修改播放的速度(快放/慢放),显示播放的进度,当然还有启动/停止/暂停,上一首/下一首功能。
总结
Powerlink总线用于多轴控制有两大优势:一是因为Powerlink总线对于大数据量的应用场合有传输效率高、实时性好的优点。二是由于网络通讯节点较多,对可靠性有更高的要求,Powerlink网络的拓补结构决定了任何一个节点故障都不会影响其它节点的通讯。
贝加莱的Automation Studio平台对于文件处理,网络通讯、运动控制和用户界面开发的强大支持也可以给项目实施带来更多的亮点和可能性。
作者简介
陈巍:
现任北京亿德同创自动化技术有限公司技术总监,工控行业15年老兵,精通运动控制,总线通讯。主要服务OEM客户,涉及包装、印刷、制药、物流等行业。