4、PLC与运动控制器:常用品牌、通信与信号交互
做龙门机器人调度,PLC和运动控制器是绕不开的两个核心。说白了,PLC负责逻辑,运动控制器负责轨迹。我刚开始接触这个领域时,也搞不清它们到底怎么分工。后来在一条产线上调试,PLC和运动控制器各干各的,结果机器人撞了工件……嗯,从那以后我才真正理解,这两者必须紧密配合。
4.1 常用PLC品牌:西门子与三菱
PLC品牌很多,但工业现场最常见的,我个人习惯分成两派:西门子和三菱。
4.1.1 西门子PLC
西门子在国内中高端市场占有率很高。S7-1200和S7-1500系列我用的最多。S7-1200适合中小型系统,S7-1500适合大型多轴协同。
我个人觉得,西门子最大的优势是TIA Portal(博途)软件。它把PLC、HMI、驱动、运动控制都整合在一个平台里。调试时不用来回切换软件,效率高不少。
举个例子,我在一个汽车零部件项目中,用S7-1500控制整条线的逻辑。它通过Profinet总线与运动控制器通信,稳定性和实时性都很好。
关键点:西门子PLC的Profinet总线,在龙门机器人场景下,建议使用IRT(等时同步)模式,抖动可以控制在1微秒以内。
4.1.2 三菱PLC
三菱PLC在电子、包装行业很常见。我最早接触的是FX系列,后来用L系列和Q系列。三菱的编程软件GX Works3,说实话,刚开始用不太习惯,但用熟了会发现它的结构化编程很清晰。
三菱PLC的CC-Link IE Field总线,在龙门机器人中也能用。不过我个人更推荐用EtherCAT,因为三菱PLC通过网关或专用模块也能支持EtherCAT。
我的经验:如果项目预算有限,三菱FX5U配合EtherCAT模块,性价比很高。我在一个小型三工位龙门项目中用过,稳定运行两年没出过问题。
4.2 运动控制器:PMAC与固高
运动控制器是龙门机器人的大脑。它负责计算轨迹、插补、闭环控制。我常用的有两类:PMAC和固高。
4.2.1 PMAC运动控制器
PMAC(Programmable Multi-Axis Controller)是美国Delta Tau公司的产品。它的性能很强,支持多轴同步、高精度插补。我最早接触PMAC是在一个精密装配项目中,当时需要四轴同步运动,PMAC的PID调节能力让我印象深刻。
PMAC的编程语言是类似BASIC的脚本,也支持C语言。我个人习惯用它的Pewin32软件调试,界面虽然老,但功能很全。
避坑指南:我曾经在PMAC的伺服环参数调节上吃过亏。默认参数不一定适合龙门结构,尤其是双驱龙门,必须做交叉耦合补偿。否则两个电机互相较劲,轻则抖动,重则报警停机。
4.2.2 固高运动控制器
固高(Googol Technology)是国内做运动控制器的老牌厂商。它的GTS系列和GT系列在国产设备中很常见。我最近几年用固高比较多,原因很简单:技术支持响应快,中文资料全。
固高控制器的编程接口很友好,支持VC++、C#、LabVIEW。我习惯用C#写上位机,调用固高的动态库,控制龙门机器人做直线、圆弧、S曲线运动。
举个例子,在一个三工位协同项目中,我用固高GTS-800控制8个轴。其中4个轴是龙门双驱,另外4个轴是旋转和升降。固高的PT(位置-时间)运动模式,让多工位同步变得很简单。
| 控制器 | 轴数 | 通信方式 | 适用场景 |
|---|---|---|---|
| PMAC | 2-32轴 | EtherCAT、MACRO | 高精度、多轴同步 |
| 固高GTS | 2-8轴 | EtherCAT、脉冲 | 中高端、国产替代 |
4.3 EtherCAT总线通信
EtherCAT是目前工业自动化领域最火的实时以太网总线。它为什么火?说白了,就是快、准、稳。
EtherCAT的通信原理是“飞读飞写”。数据帧在从站之间穿梭,每个从站只处理自己的数据,延迟极低。我实测过,1000个数字量IO的刷新周期可以做到100微秒以内。
在龙门机器人中,EtherCAT主要用来连接伺服驱动器、IO模块、编码器。我个人习惯用倍福(Beckhoff)的EtherCAT主站,或者用固高、PMAC自带的EtherCAT主站。
配置要点:EtherCAT的DC(分布式时钟)功能必须开启。它能让所有从站同步到同一个时钟基准。我见过一个项目,DC没开,结果两个轴的位置偏差越来越大,最后撞机了。
EtherCAT的拓扑结构很灵活。可以用线型、星型、树型。我建议用线型,简单可靠。如果距离远,中间加EtherCAT中继器就行。
4.4 IO信号交互
PLC和运动控制器之间,除了总线通信,IO信号交互也很重要。说白了,就是“你告诉我该动了,我告诉你动完了”。
IO信号分两种:数字量IO和模拟量IO。在龙门机器人中,最常用的是数字量IO。
- 输入信号:启动、停止、急停、原点开关、限位开关、工件检测
- 输出信号:运行中、报警、到位信号、夹具控制、气阀控制
我习惯把IO信号分成三类:
- 安全类:急停、光栅、安全门。这些信号必须硬接线,不能走总线。
- 控制类:启动、停止、复位。可以走总线,也可以硬接线。
- 状态类:到位、报警、运行中。走总线最方便。
我的做法:在PLC中写一个IO映射表。把运动控制器的状态字映射到PLC的DB块中。这样PLC程序里直接读DB块,不用关心底层通信细节。调试时也方便,看DB块就知道所有状态。
举个例子,一个三工位协同场景:
- 工位1完成加工,PLC通过IO输出“工位1完成”信号给运动控制器
- 运动控制器收到后,控制龙门机器人移动到工位1
- 机器人抓取工件,然后通过IO输出“抓取完成”给PLC
- PLC收到后,控制工位2开始加工
你看,IO信号交互就是这样一个“握手”过程。虽然简单,但必须可靠。我曾经在一个项目中,IO信号抖动导致误触发,机器人提前移动,差点撞到人。后来加了软件滤波和硬件去抖电路,问题才解决。
重要提醒:IO信号的响应时间必须考虑。PLC扫描周期、总线延迟、运动控制器处理时间,加起来可能几十毫秒。如果要求高实时性,建议用EtherCAT的分布式时钟同步IO,或者用运动控制器直接控制IO模块。
4.5 知识体系框架
下面这张图,是我自己总结的PLC与运动控制器知识体系。你可以把它当作一个快速索引。
这张图把本章的核心内容串起来了。你想想看,PLC选型、运动控制器选型、EtherCAT配置、IO信号规划,每一步都影响最终的系统稳定性。
我个人建议,做项目前先画一张类似的图。把每个模块的接口、信号、协议都标清楚。这样调试时心里有底,不会手忙脚乱。
公众号:蓝海资料掘金营,微信deep3321