三菱FX3U六轴标准完美程序程序包含本体3轴控制扩展3个1PG定位模块,一共六轴。 程序有轴点动控制回零控制相对定位绝对定位。 另有气缸数个一个大是DD马达控制的转盘整个是转盘多工位流水作业方式最近在车间搞了个三菱FX3U控制的六轴自动化设备程序架构挺有意思。本体自带3轴脉冲输出加上三个FX3U-1PG扩展模块凑齐六轴正好匹配转盘流水线的六个工位。这套程序最亮眼的地方是把基础运动控制和外围设备玩出了花来咱们拆开看看。先看核心的轴控制部分。点动模式用了最简单的DRVA指令但加了个速度斜坡控制的小把戏MOV K5000 D100 //点动基础速度 MOV K2000 D101 //加速度时间 DRVA K0 K5000 Y0 Y4 //Y0脉冲,Y4方向这里D100的数值不是固定死的通过HMI可以实时修改点动速度。调试时发现Y轴在长距离点动时容易丢步后来在指令前加了段加减速处理用T型曲线代替直角速度变化电机立马老实了。回零程序用了DSZR带DOG搜索的原点回归DSZR D200 K500 Y0 Y10 //D200存储原点位置遇到个坑爹情况三号扩展模块的回零信号接的是X27程序里忘记改地址导致轴一直往机械限位撞。后来在原点搜索前加了段软限位检测类似下面这种保险LD X27 AND M50 //回零使能标志 OUT M8029 //异常停止绝对定位和相对定位其实是共用一套算法只是参数处理不同。比如这个工位转移程序MOV K360000 D300 //转盘单圈脉冲数 DDRVI K100000 D300 Y0 Y4 //相对定位10万脉冲 DDRVA D310 K5000 Y1 Y5 //Y轴绝对定位到D310位置这里有个骚操作把转盘的圆周运动转换成直线脉冲数配合MOD指令做多圈运算避免数值溢出。实际测试时发现当脉冲数超过32位时会出现数据截断后来改用双字寄存器才解决。三菱FX3U六轴标准完美程序程序包含本体3轴控制扩展3个1PG定位模块,一共六轴。 程序有轴点动控制回零控制相对定位绝对定位。 另有气缸数个一个大是DD马达控制的转盘整个是转盘多工位流水作业方式气缸控制看似简单其实藏着时序玄机。比如这个双作用气缸的自动夹紧LD X20 //物料到位信号 PLS M100 //上升沿触发 SET Y10 //推出气缸 T0 K50 //延时500ms RST Y10 SET Y11 //缩回气缸调试时发现气缸到位信号偶尔抖动在X20后面串了个M8013的0.1秒脉冲做滤波稳定性直接拉满。还有个隐藏功能当连续三次夹取失败自动跳转工位防止卡料。转盘控制是整套系统的灵魂DD马达配绝对编码器实现闭环DDRVA D500 K30000 Y2 Y6 //转盘定位到D500 DMOVP D210 D500 //角度参数传递这里D210存储的是角度换算后的脉冲当量通过浮点运算把机械角度转换成脉冲数。有个反直觉的设计转盘每次转动都预留了5%的加减速缓冲区防止急停导致物料甩飞。整套程序最精妙的是这个联动控制段LD M200 //启动信号 ANB M201 //急停连锁 MOV K1 D400 //工位计数器 :LOOP CALL P0 //执行当前工位动作 INCP D400 //工位号1 CMP D400 K6 //是否超过6工位 BMOV D400 K1 //复位计数器 T1 K100 //转盘旋转周期 JMP LOOP用了个环形计数器结构实现无限循环配合变址寄存器Z直接调取对应工位参数。调试时发现工位切换有累计误差后来在每个循环结束加了段坐标校正用1PG模块的当前值读取功能做闭环补偿。这套程序现在已经在产线上跑了三个月最长的单次连续运行记录是17天没掉过链子。核心秘诀就两条所有运动指令都带完成标志检测关键数据用断电保持寄存器。下次可以聊聊怎么在这个架构上加视觉纠偏那又是另一段踩坑故事了。