从PLC视角看,一台气动机械手就是升降、伸缩、旋转、夹紧四个动作加一组位置传感器。做I/O分配的核心原则是:每个气缸必须占用伸出到位和缩回到位两个输入点,不能用延时代替到位判断。靠单点反馈加延时估算,在气压波动或负载变化时极易出现夹爪未到位就抓料的情况,轻则抓空,重则撞坏治具。
分配时建议输出点按气缸分组、输入点按传感器分组连续排列,接线整齐,程序批量操作地址连续,用万用表排查信号也方便。不少现场问题其实出在I/O地址与电气图纸端子号对不上,一查线就是一整天。
气动机械手的传感器多为NPN三线制接近开关或磁性开关,电磁阀一般是DC24V,因此PLC输入要选漏型(NPN)输入,输出按电磁阀电流选晶体管或继电器型。高频动作的机械手建议用晶体管输出,响应快、寿命长。
带伺服水平轴的机械手,PLC要输出脉冲与方向信号,并读取驱动器的报警、到位信号。容易出问题的是差分信号与集电极开路信号混接:PLC高速口通常是集电极开路输出,而伺服驱动器脉冲输入有差分和集电极开路两种模式,接线前必须查手册确认,否则会出现脉冲发出去了电机却不动或发热。
用Modbus控制变频器时,PLC做RTU主站、变频器做从站,RS485的A/B两端子用屏蔽双绞线连接,通讯参数统一为9600或19200bps、8数据位、无校验、1停止位。程序里每次读写都要做超时检查和错误码判断——通讯方式省了硬接线,但对程序鲁棒性的要求高得多:硬接线断了能查出来,通讯数据错了很难一眼看到。
机械手动作是典型的顺序控制:原点待机、下降、夹紧、上升、旋转、再下降、松开、回原点。推荐用一个16位寄存器保存当前状态号,每步条件满足就把新状态号传送进去,再用比较指令驱动对应输出。这样HMI上直接显示状态号,排查故障时先看它停在哪个数,再查对应的转换条件即可。
这里有一个关键禁忌:同一个线圈在同一扫描周期内不能出现在两条独立回路里,否则输出以扫描靠后的为准,形成隐性双线圈。标准做法是输出集中化——程序前半段只做状态切换,后半段集中写每个输出在各状态下的置位条件,每个线圈物理上只出现一次。
安全互锁要在状态机里硬做:夹紧未到位禁止上升,伸缩未缩回禁止旋转。夹紧到位后建议加0.2秒延时确认,防止磁性开关抖动误判。急停不能只靠程序——PLC扫描存在数十毫秒窗口,标准做法是把急停按钮串进电磁阀的电源回路,程序里的急停逻辑只是补充。
节拍由动作时间和等待时间组成,优化原则是:能用到位信号判断的绝不用延时;必须用延时的,把时间压到实测值的1.2倍以内,实测0.6秒的动作设0.7秒即可。旋转与升降在互不干涉的阶段可以并行输出,能进一步压缩节拍。
联机调试按手动单动、空跑、带载的顺序推进,程序里要留手动与自动切换和单步运行功能。切回自动模式前先做复位逻辑,把各气缸动作到安全位置再写入初始状态,避免手动停在悬空位置后程序乱跳。每个状态加5秒超时保护,等不到到位信号就报警停机,而不是无限等待——这是传感器抖动时设备不乱动作的底线。