Mitsubishi三菱PLC FX5U 伺服机器人程序 包括 三菱FX5U程序 威纶通触摸屏程序 IO表 材料清单 eplan和PDF电气图 4轴伺服程序,1个机器人,FX5U结构化编程。
凌晨三点的工控人电脑屏幕总是亮得刺眼,攥着FX5U手册的手有点抖——这已经是第三遍核对伺服轴参数了。突然发现结构化程序里的某个功能块返回值异常,这种时候真想摔了威纶通触摸屏。别慌,咱们先来杯咖啡,拆解下这个四轴伺服的机器人控制项目。
结构化编程里有个叫AxisCtrl的功能块特别有意思,看看这个伺服使能部分的ST代码:
IF NOT Axis1.bServoReady THEN Axis1.diServoOK := FALSE; Axis1.diServoOn := TRUE; Axis1.doAlarmReset := TRUE; TON(Axis1.tResetTimer, T#500ms); IF Axis1.tResetTimer.Q THEN Axis1.doAlarmReset := FALSE; END_IF END_IF这段代码藏着三个关键点:上电先触发报警复位信号500ms(很多新手会忘记时序控制),伺服就绪信号取反逻辑处理(遇到过现场急停恢复后伺服无法启动的坑没?),最后用TON定时器实现脉冲信号(直接置位复位会出幺蛾子)。
触摸屏上的IO监控界面绝对是个宝藏,威纶通EBPro里的元件地址直接对应PLC的%U区域。比如机械手夹爪状态显示,地址填个U3.12,背后对应的是:
//IO映射程序段 Robot.GripperStatus := %IX1.4; //硬接线输入 %QX0.7 := Robot.GripperCmd; //输出到继电器这里有个骚操作——把物理IO点和结构化变量分开映射,后期维护时改接线不用动核心逻辑。但要注意EBPro里的地址必须和PLC变量表严格同步,我有次版本更新忘了同步,现场调试时触摸屏按钮全变僵尸了。
Mitsubishi三菱PLC FX5U 伺服机器人程序 包括 三菱FX5U程序 威纶通触摸屏程序 IO表 材料清单 eplan和PDF电气图 4轴伺服程序,1个机器人,FX5U结构化编程。
四轴伺服参数设置表里藏着魔鬼细节,特别是电子齿轮比计算。拿X轴举例:
//每转脉冲数 = (电机侧齿轮齿数 / 负载侧齿数) * 编码器分辨率 //实际项目参数 MC_GearIn[0].numerator := 24; //电机齿轮 MC_GearIn[0].denominator := 120; //负载齿轮 MC_GearIn[0].EncoderResolution := 131072; //17位编码器计算结果要填到伺服驱动器的Pn202和Pn203参数里,但三菱的J4系列伺服有个坑——参数默认单位是0.1μm,直接填整数值会移动十倍距离。去年在东莞有个项目就因为这个参数,机械臂直接撞到防护栏上,现场火星四溅跟放烟花似的。
Eplan电气图里最容易被忽视的是24V电源分配,看看这个典型的供电回路:
%F1.1 = SB1(急停按钮) → KA1(控制继电器线圈) %F1.2 = SA1(模式选择) → PLC.X0 %F1.3 = 伺服驱动器使能回路这里必须保证PLC、伺服驱动、传感器的0V基准点统一接地(别笑,真见过用不同相电源导致信号飘移的)。材料清单里的断路器容量要按峰值电流选,特别是伺服电机加速瞬间电流能达到额定值的3倍。
机器人程序与PLC的交互最考验设计功底,比如这个安全逻辑处理:
//机器人就绪信号与PLC互锁 Robot.Ready := %IX2.3 AND NOT EmergencyStop; //发送给机器人的移动允许信号 %QX1.5 := SafeZoneClear AND (Axis[1].InPosition OR Axis[2].InPosition);这里用了双重确认机制——既要各轴到达指定位置,又要安全光幕信号正常。但注意不要过度互锁,某次在汽车厂的项目因为安全信号检测过于敏感,导致产线每半小时就停机,甲方差点把我们工程师祭天了。
凌晨五点,伺服电机终于开始跳起机械之舞。看着示教器上的轨迹曲线,突然发现结构化编程里的面向对象思想无处不在——每个Axis对象封装了状态监测、控制命令、错误处理,这才是工业4.0时代该有的编程姿势。等等,报警灯怎么又闪了?靠,忘记喂料机的光电开关...这故事,下次酒桌上接着唠。