
简介一套基于汇川H5U与mcgs触摸屏的简易示教系统程序面向自动化专业学生、初学者及电气工程师用于学习三轴运动控制与HMI组态编程。程序支持离线仿真源码开放且注释明确可直接修改二次开发适合从入门到进阶的实践练习。资源包共11个文件包含6个txt文档学习指南、技术分析、深度解读等、3张jpg操作界面/硬件示意图、1个html说明页及1个doc文档整体仅516KB轻量易用。目前已有393人学习下载。文件中除完整PLC与触摸屏程序源码外还配套多角度技术分析、系统深度解读及学习指南配合示意图能直观理解示教系统的结构、控制逻辑与操作流程便于快速上手并掌握汇川H5U与mcgs组态的核心方法。1. 汇川H5U搭配MCGS触摸屏这套三轴示教程序到底学什么先说说我为什么会盯上这套程序。做自动化这行十年我接触过不少学习资料但“汇川H5U mcgs触摸屏 三轴示教”这个组合确实值得单独拿出来聊聊。H5U是汇川的中型PLC走EtherCAT总线支持多轴运动控制MCGS也就是昆仑通态的组态屏在国产触摸屏里市场占有率非常高几乎做非标设备就会碰到。把这两个搭配起来跑三轴示教程序基本就覆盖了小型自动化项目里头最核心的几块内容总线伺服控制、点位逻辑、触摸屏交互、数据存储。这套程序的典型应用场景是什么呢最常见的比如点胶机、焊锡机、螺丝锁附机、小型搬运平台。这些设备有个共同特点路径不是事先用CAD算好的而是靠人工“教”出来的。操作员把轴移动到目标位置记录下这个点再移动到下一个位置记录最后程序按顺序把这些点连起来跑。这就是示教听起来简单但真正要把示教功能做得顺手、稳定、好扩展里面有不少讲究。对于买来学习的你来说这套程序最值钱的地方不在一行行代码而在于它展示了一整套工程思维数据怎么存储、状态机怎么切、人机交互怎么设计、报警怎么处理。这些恰恰是培训班不会细讲、书本上又写不具体的东西。所以这篇文章我就把这套程序的框架逻辑、关键点、实操方法和踩坑记录全部拆开讲让你拿到程序之后不会一头雾水。2. 三轴示教程序的核心逻辑拆解2.1 示教功能的本质点位数据的“写入-存储-回放”示教这东西说白了就是三个动作把坐标写进PLC的保持性寄存器、把坐标存住不丢、按顺序把坐标读出来跑。听起来简单但如果你去写一遍就会发现真正的难点在于“怎么让操作员愿意用你这个示教功能”。好的示教程序操作员只需要按“前进”“后退”“记录点位”“删除点位”这几个按钮触摸屏上就能看到当前位置和已记录点的编号不需要打开电脑不需要看代码。H5U这边用EtherCAT总线挂着三台伺服驱动器位置值实时映射到PLC的数据区里触摸屏通过Modbus TCP或者串口和PLC通讯读取这些数据并显示。点位数据存储是第一个考点。H5U内部有掉电保持区我建议用数组来存坐标点比如建立一个三维数组point_data[50][3]第一维表示点位编号最多50个点第二维表示轴号X、Y、Z三轴。这样做的优势是访问方便、地址连续、触摸屏索引起来也简单。有人喜欢用结构体但在MCGS里做结构体映射比较麻烦数组反而直接。每个点除了坐标之外还需要存一个“动作类型”或“速度倍率”这决定了点位是个单纯的定位点还是需要停顿等待涂胶、或者速度放慢走圆弧。把这些内容打包成一个数据块示教才有工程意义否则只是把一堆坐标串起来跑到现场根本不实用。2.2 状态机这是程序能不能稳定运行的分水岭三轴示教程序的运行逻辑不能靠散乱的置位复位来硬顶必须做一个清晰的状态机。我看到的这套程序中状态划分大致是这样的手动调试态、示教态、自动运行态、暂停态、急停态。每个状态下触摸屏上能操作的按钮和PLC内部能执行的指令是严格区分的避免误操作。比如自动运行状态下如果操作员不小心按到了“回零”设备可能会直接冲出去。有了状态机你就能把“回零”按钮的使能条件限定在手动状态或停止状态运行中按了也白按。这个逻辑做好之后整套程序的安全性上升一个档次这也是我判断一套示教程序写得好不好的第一眼标准。H5U的状态机可以用步进梯形图写也可以直接用ST语言写CASE语句我更推荐后者逻辑清晰、后期维护方便。触摸屏上对应地用“当前状态”变量来切换页面显示比如自动运行页面只在自动态显示手动页面只在手动态显示这样操作界面也不会因为按钮太多而乱糟糟。3. 触摸屏端MCGS的组态关键点3.1 变量连接与通讯参数设置MCGS触摸屏和H5U通讯基本上选Modbus TCP就对了。H5U自带以太网口MCGS的网口直接连交换机或者直连PLC速度稳定而且程序下载调试的时候不用反复插拔串口线。通讯参数这块我总是提醒初学者IP地址一定要规划好别让PLC和触摸屏冲突。一般我习惯PLC设192.168.1.10触摸屏设192.168.1.20子网掩码统一255.255.255.0端口默认502。在MCGS的设备窗口里添加“通用TCP/IP父设备”再挂“Modbus TCP子设备”把PLC的IP填进去就行。通道对应关系上H5U的保持寄存器映射到MCGS的4x区比如你要读H5U的D100那MCGS里就配置为4x寄存器地址100注意有些驱动偏址是1开始的这里容易差一个数数据读不出来先检查这个地方。变量连好之后不要急着画画面先在MCGS的“实时数据库”里把所有需要用的变量都定义好。我见过太多人画完了图再来补变量结果画面对不上返工好几次。变量命名建议加前缀比如cur_x_pos表示X轴当前位置point_count表示已示教点数这样后面写脚本的时候一眼就能看出这个变量是干什么的。3.2 示教操作页面的交互设计思路MCGS画面设计要遵循一个原则操作员不看手册也能用。示教主页面我会分成四个区域左上角是当前坐标显示大字号右上角是点位列表用表格控件显示已记录的点中间是点动控制按钮X、Y、Z三轴各两个按钮正负方向底部是操作功能键记录点位、删除点位、修改坐标、启动运行。点动按钮的设计有个细节你按下去轴动松手轴停这叫“点动”需要用到MCGS的“按下置位、弹起复位”功能对应两个脚本事件。有些人做成“按下翻转”按一下轴一直走再按一下才停这就变成了连续运动模式误操作风险大示教时不建议。我给这套程序做的时候还在每个点动按钮旁边加了一个“速度倍率”输入框操作员可以直接输入5%到20%的点动速度方便精确定位的时候慢慢靠。点位列表这块MCGS的表格控件可以通过索引绑定PLC的数组数据实现实时刷新。每当操作员记录一个新点点号自动加1表格滚动到最新位置这样操作员连续教点的时候不需要手动翻页效率能提升不少。如果你的MCGS版本支持多语言把页面上的按钮文字做成中英切换设备出口的时候会省很多事。3.3 配方或数据掉电保存的记忆机制示教点位最怕断电丢失。PLC这边H5U的D区掉电保持默认是有范围限制的如果你用的D区超出保持范围断电后数据就全没了这是很多新手踩的坑。所以拿到这套程序第一件事就是去InoProShop软件里检查D区的保持属性设置把示教点位用到的地址区间全部设成保持并且在程序中把当前点位数量point_count也设在保持区否则重启后点数归零坐标数据即使还在也没法正确索引。有的项目对掉电保存有更高要求比如一台设备上有几十个不同产品型号的示教程序工艺参数还涉及到模拟量校准值。这种就不适合全部塞进PLC保持区了MCGS触摸屏自带配方功能可以把你需要的点位数据以配方形式存储到触摸屏的Flash里切换产品时一次性下载到PLC既省PLC存储空间又方便备份复制。不过需要注意配方功能上传下载是整组覆盖的PLC程序里要做好数据接收完成标志的判断防止配方还没写完就启动设备。4. 实操过程与核心环节实现4.1 拿到程序后先从PLC程序结构看起这套程序下载下来我建议你不要急着写自己的功能先把H5U的工程文件完整浏览一遍弄清楚程序块的划分。用InoProShop打开工程后看左侧项目树从主程序开始往下捋弄清楚哪个POU是负责EtherCAT轴配置的哪个是逻辑控制的哪个是报警处理的。这里要特别说下H5U的EtherCAT轴配置这是H5U最有价值的地方。如果你打开工程发现轴已经配好了先看三个地方轴类型虚拟轴还是实轴、单位换算脉冲数/毫米、加减速时间。单位换算如果错了触摸屏上你输入10毫米轴可能只跑一点点或者冲出去老远非常危险。H5U的轴配置在InoProShop的轴管理页面里可以设置电子齿轮比、软限位、回零方式等。回零方式也是示教设备必须处理的环节。上电后伺服位置丢了怎么办大部分设备都有原点开关或限位开关H5U支持多种回零模式找原点开关加Z相脉冲、直接Home、限位回退等。这套程序里我建议你重点关注回零时序先是使能伺服然后轴以慢速找原点开关碰到后减速停止再以更慢的速度找Z相最后把当前坐标清零。这个时序做得好的话重复回零精度能控制在几个脉冲以内。4.2 手动调试模式下最小闭环必须跑通在触摸屏没完全画好之前先在PLC里把手动模式跑通。H5U用手动点动很简单可以用点位控制指令MC_MoveAbsolute配合当前坐标做增量移动也可以直接用MC_MoveVelocity做速度模式。但注意手动模式不可能用绝对定位因为主轴没有建立工件坐标系的零点你只知道电机实际位置不知道工件在哪。所以点动必须用速度模式或者用相对运动。我用MC_MoveVelocity的“位置限制”功能在程序里实时比较当前坐标和软限位值碰到限位就自动停下来这样即使触摸屏点动有延迟也不会冲过界。这个逻辑虽然简单但现场非常管用尤其是操作员手一抖多按了几秒硬限位如果没接光靠机械死挡伺服早就报警了。在这里我也一并说说伺服使能和报警复位的事。H5U程序里一般通过设置轴使能变量来控制伺服你需要确认触摸屏上有“伺服上电”按钮并且在程序里把它跟“轴使能”对应起来。报警复位则要同时考虑PLC的报警和伺服的报警H5U可以从伺服驱动读取报警代码如果是简单的过载、过流复位一下就好但如果伴随硬件故障不要强行复位排查清楚再上电。4.3 自动运行点位回放的两种实现方式点位回放我见过两种做法各有优劣。第一种是“数组循迹”模式PLC从存储数组中读取第一个点的坐标走完之后自动读第二个点依次执行直到所有点跑完。这种方式代码简单适合点位数量固定、流程顺序固定的设备比如点胶机、锁螺丝机。第二种是“表格流程”模式每个点位除了坐标还有一个“动作代码”比如0表示只是路过不停止、1表示到位后停止等待启动、2表示启动气缸、3表示输出信号。PLC执行的时候先读当前点的动作代码再跳转到对应逻辑执行完成后再去下一个点。这种方式更灵活适合复杂的自动化流程但编程量也大一些对数据结构的定义要求更高。这套程序用的是哪种你需要自己去看但我建议你两个都理解透。因为实际项目里今天你能用“数组循迹”改好一台点胶机明天可能就碰到一个要求不同产品不同流程的设备这时候“表格流程”就派上用场了。把点位数据结构从“只有坐标”升级成“坐标加动作代码”其实只差一个数组维度但功能提升是跳跃性的。自动运行的暂停和继续是另一个细节。在H5U中暂停可以通过“轴的暂停指令”来实现但注意暂停的不是单个轴而是整个运动逻辑。如果你在自动运行中有气缸动作、有延时等需要把整个状态机都停下来不能只停电机。有的程序用两个变量控制一个是“空间暂停”只停轴运动一个是“程序暂停”连整个执行流程都冻结。触摸屏上这两个暂停按钮一定要分开否则现场操作员按了暂停轴停了但气缸还在动很容易出危险。5. 常见问题与排查技巧实录5.1 MCGS触摸屏和H5U通讯不上优先查这几个地方通讯问题是这套程序最常见的问题没有之一。触摸屏上显示“通讯超时”或者数据全是零绝大多数情况不是硬件坏了而是配置不对。我按照优先级把排查点整理了一下。第一IP地址对不对。触摸屏和PLC的IP必须同一网段而且不能冲突。有个笨办法电脑分别ping这两个设备如果都能通再确认触摸屏的项目设置里填的是不是PLC的IP。第二寄存器地址映射对不对。H5U的D区起始是0MCGS的Modbus地址则从40001开始但不同的驱动版本有细微差别有的从40000开始差了1个地址。这个偏移量问题我至少碰到过五次每次都是查了半天才发现。第三通讯参数是否匹配。H5U作为Modbus TCP服务器端口默认502你可以在H5U的通讯配置里改但改了之后MCGS那边也要同步改。有的项目里为了安全性设了密码和寄存器读写权限如果触摸屏写入不进去先检查PLC那边是不是设置了保护。第四也是最容易忽略的触摸屏固件和驱动版本。MCGS的新版本组态软件生成的工程老触摸屏固件可能跑不了程序下载进去之后某些功能异常这时候去昆仑通态官网下载对应的固件刷一下就好。5.2 示教点位丢坐标先别怀疑电池检查保持区设置丢坐标这事很多人的第一反应是“PLC电池没电了”但在H5U上保持区设置才是首要排查对象。H5U的掉电保持是靠软件配置的不是在程序里写而是需要在系统参数里设置D区的保持范围。如果你用的点位数据地址在保持范围之外掉电重启就是清零的。检查方法很简单打开InoProShop找到PLC参数设置里的“保持范围”配置页看D区保持范围是否覆盖了你程序中定义的点位数组地址段。注意还有个坑有时候你改了保持范围但程序里定义的地址不小心越界了编译也不报错运行也没问题但就是掉电不保持。所以建议你把点位数组和计数变量集中放在一片固定的地址区间比如D1000到D1500然后保持范围就设成D1000到D2000留出余量以后扩展点位数也方便。如果你用的是MCGS配方功能存储点位丢数据的情况则要检查触摸屏的电池或Flash寿命特别是用了很多年的老屏。配方保存的时候MCGS会自动备份到Flash但如果频繁写入Flash寿命到了就可能出现存档失败。这种情况比较少见但一旦发生我只能建议更换触摸屏别再纠结了。5.3 运动过程中定位偏差累积先做回零再查机械示教程序跑了一段时间后发现原点位置跑偏了或者每次重复定位都不一样这种问题在新设备上特别常见。第一个要查的是机械装配比如联轴器松了、同步带跳齿了这种问题软件排查不出来只能靠用手摇联轴器和肉眼观察。第二个就是伺服增益没调好电机在停止时会有过冲或振荡多轴协同动作时看起来就像“点位不准”实际上是跟随误差偏大。软件层面你能做的改善一是把加减速时间调平滑避免急启急停二是检查H5U的电子齿轮比和单位为毫米后的坐标换算比例这里有一个算例假设伺服编码器是17位131072线你配了10mm的丝杆一套电机转一圈走10mm那么131072脉冲对应10mm单位换算比就是13107.2脉冲/mm。如果你把比例填错了触摸屏显示10mm只走了5mm但程序自己又不报错看起来就像定位不准。这个排查方法百试百灵。最后还有一个容易忽视的地方回零速度。很多设备用高速回零找原点开关碰到后减速停但如果减速距离太短冲到原点开关的“软区”里每次的实际停下位置可能会差几十个脉冲。把回零第二段速度降到超低抖动误差能明显改善。别嫌速度慢回零就慢一次但是稳定运行是每天几千次的重复精度。6. 实操心得与后续扩展建议6.1 学习这套程序最有效的方式抄、改、仿、创我从这个程序里学到的最大经验是不要从头到尾写一个全新的示教系统先把已有的正确程序看明白然后逐模块地改功能比凭空构思快得多。拿到这套H5UMCGS程序我建议你先“抄”一遍框架把状态机、点位存储、触摸屏交互这些核心模块的代码和理解写下来然后“改”速度参数、点位名称、轴数量再“仿”一个新的工艺动作比如从“走三个点”改成“走一个方形轨迹”最后才能“创”自己设计一套示教功能的完整方案。如果你手头有H5U本体和MCGS触摸屏那就更好了直接在线监视变量边改边看效果。没有设备也可以先把程序逻辑在软件里仿真跑通H5U和MCGS都有仿真功能虽然模拟伺服做不到真实电机的力感但状态机切换、点位存储回放这些逻辑完全能验证。6.2 在程序中可以优化的几个点原程序如果有一些不够合理的地方这也很正常毕竟每个人的编程习惯不同。我把自己觉得值得优化的几个点列出来供你参考一个是点位数据加校验在写入和读取点位时做一次CRC校验防止数据损坏另一个是增加“模拟运行”功能让设备在不上电动作的情况下把点位顺序和坐标数据完整过一遍方便调试逻辑再有就是触摸屏上增加操作日志记录操作员修改了点位、改了哪些参数设备出问题的时候方便追溯责任。这几个优化点如果你的精力允许都可以试着在这个程序基础上加上去。本文还有配套的精品资源点击获取