Mitsubishi三菱PLC FX5U 伺服机器人程序 包括 三菱FX5U程序 威纶通触摸屏程序 IO表 材料清单 eplan和PDF电气图 4轴伺服程序,1个机器人,FX5U结构化编程。

凌晨三点的工控人电脑屏幕总是亮得刺眼,攥着FX5U手册的手有点抖------这已经是第三遍核对伺服轴参数了。突然发现结构化程序里的某个功能块返回值异常,这种时候真想摔了威纶通触摸屏。别慌,咱们先来杯咖啡,拆解下这个四轴伺服的机器人控制项目。

结构化编程里有个叫AxisCtrl的功能块特别有意思,看看这个伺服使能部分的ST代码:
structured_text
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,背后对应的是:
structured_text
//IO映射程序段
Robot.GripperStatus := %IX1.4; //硬接线输入
%QX0.7 := Robot.GripperCmd; //输出到继电器
这里有个骚操作------把物理IO点和结构化变量分开映射,后期维护时改接线不用动核心逻辑。但要注意EBPro里的地址必须和PLC变量表严格同步,我有次版本更新忘了同步,现场调试时触摸屏按钮全变僵尸了。

四轴伺服参数设置表里藏着魔鬼细节,特别是电子齿轮比计算。拿X轴举例:
structured_text
//每转脉冲数 = (电机侧齿轮齿数 / 负载侧齿数) * 编码器分辨率
//实际项目参数
MC_GearIn[0].numerator := 24; //电机齿轮
MC_GearIn[0].denominator := 120; //负载齿轮
MC_GearIn[0].EncoderResolution := 131072; //17位编码器
计算结果要填到伺服驱动器的Pn202和Pn203参数里,但三菱的J4系列伺服有个坑------参数默认单位是0.1μm,直接填整数值会移动十倍距离。去年在东莞有个项目就因为这个参数,机械臂直接撞到防护栏上,现场火星四溅跟放烟花似的。

Eplan电气图里最容易被忽视的是24V电源分配,看看这个典型的供电回路:
eplan
%F1.1 = SB1(急停按钮) → KA1(控制继电器线圈)
%F1.2 = SA1(模式选择) → PLC.X0
%F1.3 = 伺服驱动器使能回路
这里必须保证PLC、伺服驱动、传感器的0V基准点统一接地(别笑,真见过用不同相电源导致信号飘移的)。材料清单里的断路器容量要按峰值电流选,特别是伺服电机加速瞬间电流能达到额定值的3倍。
机器人程序与PLC的交互最考验设计功底,比如这个安全逻辑处理:
structured_text
//机器人就绪信号与PLC互锁
Robot.Ready := %IX2.3 AND NOT EmergencyStop;
//发送给机器人的移动允许信号
%QX1.5 := SafeZoneClear AND (Axis[1].InPosition OR Axis[2].InPosition);
这里用了双重确认机制------既要各轴到达指定位置,又要安全光幕信号正常。但注意不要过度互锁,某次在汽车厂的项目因为安全信号检测过于敏感,导致产线每半小时就停机,甲方差点把我们工程师祭天了。
凌晨五点,伺服电机终于开始跳起机械之舞。看着示教器上的轨迹曲线,突然发现结构化编程里的面向对象思想无处不在------每个Axis对象封装了状态监测、控制命令、错误处理,这才是工业4.0时代该有的编程姿势。等等,报警灯怎么又闪了?靠,忘记喂料机的光电开关...这故事,下次酒桌上接着唠。