汇川三轴示教 可编程 触摸屏程序 自己买来学习的 功能强大 触摸屏 PLC 程序 汇川H5U与
汇川三轴示教 可编程 触摸屏程序 自己买来学习的 功能强大 触摸屏 PLC 程序 汇川H5U与 mcgs触摸屏简易示教系统,支持离线仿真。 有较好的学习性,可以在源码基础上任意修改,注释明确。 注意:源码程序文件
最近捣鼓汇川H5U PLC和MCGS触摸屏搞了个三轴示教系统,这玩意儿比想象中好玩。自己买来学习的设备没想到功能这么顶,关键是源码都给得明明白白,改起来就跟玩积木似的。今天就跟大伙儿唠唠怎么用这堆代码实现"手把手教学"的机械臂控制。
先看触摸屏界面设计,MCGS的控件库确实丰富。比如这个示教点录入按钮,代码里直接绑定了数据寄存器:
-- 示教点保存脚本 if btn_press == 1 then set_reg(D100, current_x) -- X轴当前位置存入D100 set_reg(D101, current_y) -- Y轴存入D101 set_reg(D102, current_z) -- Z轴存入D102 popup("点位已记录!") end有意思的是这里用了异步弹窗提示,不会阻塞流程。每个示教点自动生成带时间戳的注释,回头改程序时一眼就能看懂哪个点是啥时候录的。
PLC这边H5U的运动控制指令才是重头戏,拿XYZ三轴联动举例:
// 三轴直线插补 MC_MoveLinear( AxisX, AxisY, AxisZ, // 三轴组 PosX:=D100, // 示教点X坐标 PosY:=D101, PosZ:=D102, Velocity:=K5000, // 合成速度 Acceleration:=K300, // 这个参数调手感特别重要 BufferMode:=MC_Aborting);重点注意这个BufferMode参数,选Aborting模式能在新指令到达时立即终止当前运动。调试时发现要是用MC_Buffered模式,连续发指令会积压导致动作卡顿。
离线仿真功能救了我这个手头没机械臂的穷狗。MCGSPro模拟器里跑界面,H5U的编程软件开个虚拟PLC,两边用虚拟串口对接就能全流程调试。记得在PLC程序里加个仿真标志位:
IF SimMode THEN CurrentX := TargetX; // 直接跳转到目标位置 CurrentY := TargetY; // 省去运动过程 CurrentZ := TargetZ; END_IF这样切仿真模式时,点位数据能正常更新又不会报轴未就绪的错误。
源码里最良心的是每个功能块都标了魔改指南。比如想加个圆弧插补,在运动控制模块找到这块注释:
汇川三轴示教 可编程 触摸屏程序 自己买来学习的 功能强大 触摸屏 PLC 程序 汇川H5U与 mcgs触摸屏简易示教系统,支持离线仿真。 有较好的学习性,可以在源码基础上任意修改,注释明确。 注意:源码程序文件
// 如需扩展运动模式,在此处添加case分支
// 案例参考:MC_MoveCircular函数调用规范
// 注意进给速率单位转换系数见const.pou
照着提示加了几行代码就实现了螺旋线运动。要说学习建议,先跑通自带示教程序,然后用修改轨迹参数>调整运动参数>新增运动模式的顺序来魔改,亲测效率最高。
这套东西搞下来最大的惊喜是注释居然比代码还多,连通讯超时重试机制这种坑都标了解决方案。比如触摸屏和PLC的ModbusTCP通讯,源码里专门写了心跳检测:
// 每200ms检测通讯状态 HeartbeatTimer(IN:=NOT Heartbeat, PT:=T#200ms); IF HeartbeatTimer.Q THEN ReconnectCounter := ReconnectCounter + 1; FB_InitPlcConnection(); // 强制重新初始化 END_IF这种工业级的设计细节,对理解实战中的故障处理特别有帮助。现在这设备已经成了我的三轴控制模板,换个机械手模型就能快速移植,比从零造轮子爽多了。
