ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

FX5U螺丝机全套程序拆解:工艺逻辑、触摸屏交互与调试移植

FX5U螺丝机全套程序拆解:工艺逻辑、触摸屏交互与调试移植 那段时间我手头接了一个产线设备的改造任务一台自动锁螺丝机客户扔过来一套参考样板是三菱FX5U PLC的螺丝机项目整套程序含触摸屏程序而且程序注释全面得让我这种习惯“能跑就行”的人一时有点不适应。说实话这行里大多数设备程序连变量名都懒得改更别说把每个气缸动作、每段时序逻辑、每条报警条件都写成注释了。我前后花了大概一周时间把这套程序从主框架到最后的报警逻辑完整过了一遍期间也顺手解决了几个遗留问题。这篇东西就把我从这套程序里拆出来的工艺流程、选型逻辑、程序结构、触摸屏交互、调试踩坑和移植思路整理一下给正在做螺丝机项目、或者手里刚拿到类似参考程序的朋友做个底稿。1. 先讲清楚一件事螺丝机的工艺难点到底在哪很多人觉得螺丝机就是个“电批转几圈”的事程序无非是控制气缸升降和电批启停。真正看完一套成熟程序后你会发现整个设备动作链里任何一个环节的判定逻辑缺了设备都会变成“跑得动但跑不好”的废铁。1.1 送料环节比想象中更容易卡壳自动锁螺丝机常见的供料方式有两种振动盘直振吹气式或者直接振动盘吸取式。整套程序里送料这部分占了挺多IO点也占了相当一部分报警位。振动盘的控制不是简单地按一个输出让它一直振就行。程序里做的是间歇式启动启动一定时间、停止一定时间避免振动盘过热同时减少螺丝堆积摩擦导致的卡料。直振部分则是跟随设备的自动周期触发在每次需要送料前启动一小段。吹气式供料的核心判断是“螺丝到位信号”。螺丝从直振出口被压缩空气吹进夹嘴时夹嘴处有一个光纤或接近开关程序用这个信号判断螺丝有没有被吹到位。这里有个非常关键的超时判定吹料启动后螺丝到位信号必须在设定时间内一般是1到3秒触发如果超时未触发程序直接判定“卡料/漏吹”报警停机而不是让机器人或气缸强行往下走。这个超时窗口我后来在调试中反复调过。设短了偶尔吹料路径里螺丝稍微颠簸了一下就误报设长了一旦真卡料设备会带着空夹嘴继续执行锁付动作轻则撞坏工件重则把电批头干废。实际使用中我会把吹料超时做成可配方修改的参数避免每次改料都进程序改常量。1.2 定位与抓取把螺丝送到该去的位置螺丝机构一般有两类形态一类是电批固定在Z轴升降模组上螺丝被送到电批头正下方另一类是电批头带着螺丝吸取后整体移动。这套程序的思路是第一类结构更简单控制要点也更集中。Z轴升降部分的控制主要是气缸或伺服电机。气缸的话程序里用磁性开关做两端到位检测这没什么好说的但注意到位信号一定要加滤波。气缸动作到位瞬间磁性开关会因为活塞撞击而产生几毫秒到几十毫秒的抖动信号程序里如果没有做延时确认或滤波就可能误判为“到位后又离开”进而把自动流程打断。伺服的话程序用FX5U的内置定位指令做位置控制这里主要关注的是换向延时和加减速时间防止电批头Z轴下降时因为惯性砸到工件表面。定位环节比较容易被忽视的是“产品到位检测”。螺丝机上方一般有一个阻挡气缸或限位机构当产品经过传送带被定位后程序会检测产品夹具的到位信号。这个信号是整套自动流程的启动前提和双启动按钮、安全光幕一起做成互锁条件。1.3 锁付环节的核心三段式转速控制电批锁付不是全程一个转速往下拧的。成熟程序里几乎都是三段式控制快进段电批头以较高转速快速接近螺丝头减少空行程时间慢进段螺丝头接近工件表面螺纹孔时电批降速让螺纹对位同时减少“硬撞牙”锁付段电批以设定的锁付速度旋转直到扭力达到目标值或圈数到位。这三段之间的切换条件程序里用的是电批自带的“扭力到达”信号或者通过锁付时间/扭矩电流反馈来判断。有些电批比如常见的无刷电批会输出一个“扭力到达”开关量信号程序只用把这个信号作为锁付完成的停止条件即可。但如果电批只给了一个模拟量扭矩反馈那就必须在程序里做比较器把反馈值和设定扭力做阈值比较而且要注意滤波时间常数。这里有一个特别值得说的点为什么不能等“扭力到达”信号出来后再瞬间停因为从电批控制器发出“扭力到达”到电批电机真正停止中间有一个机电的响应过程这个时间差里螺丝可能已经多拧了十几度角对塑料件或者自攻螺丝来说这就是滑牙和打烂螺纹的根源。所以程序里普遍采用“提前减速”策略当扭矩达到目标值的80%左右时先切到低转速锁付段等待扭力到达信号以低转速下的短延时刹车。这也是为什么电批的锁付参数里要分“快进转速、慢进转速、锁付转速”三个设定值。1.4 不良判定的隐藏逻辑螺丝机设备的良率表现很大程度不在机械而在判定逻辑。这套程序的注释里很清楚地分了三个不良类别滑牙、浮锁、漏锁。滑牙螺丝头在锁付过程中打滑导致扭力始终达不到设定值。程序里的判据是锁付时间超过“最大锁付时间”且未收到扭力到达信号。浮锁螺丝没完全锁到底就报扭力到达了。这种情况多发于产品螺纹孔有杂质或螺丝长度偏差。程序里不是只看扭力还会看锁付总时间是否过短。如果锁付时间短于“最小有效锁付时间”就已经扭力到达就判定为浮锁因为正常的锁付过程不可能这么快结束。漏锁更直接夹嘴处根本没有检测到螺丝或者Z轴下降后没有进入锁付流程。程序通过“启动锁付前必须收到螺丝到位信号”这个互锁条件来防止漏锁。这三个判定逻辑组合在一起才构成了完整的“锁付结果OK/NG”输出。实际项目中这个判定结果不但要显示在触摸屏上还要通过IO输出或通信方式传给产线上位机用于防错追溯。1.5 安全与节拍的平衡自动线设备最忌讳的是为了安全把逻辑写成“处处不许动”结果设备一开就报警。这套程序里比较好的做法是把安全条件分成两类——一类是“即时急停型”比如急停按钮、光幕中断触发后所有运动轴立即停止另一类是“条件互锁型”比如“升降轴未到顶时供料振动盘不能启动”、“电批未回到位时产品放行气缸不能动作”。前者直接切断主控输出使能后者在状态机里逐条做前置条件判断。这种分类的好处是第一类保证人身安全第二类保护机构不撞车同时节拍不会被无谓的等待拖慢。2. FX5U的选型逻辑与整套程序的组织架构这套程序用的是三菱FX5U系列PLC从我的角度看这个选型对螺丝机这种中小型专机来说非常合适。搞清楚它为什么这么选比直接抄程序更重要。2.1 为什么用FX5U而不是FX3U或Q系列三菱FX3U在国产设备里装了十几年经典是经典但很多项目已经被它的固有短板限制住了FX3U的以太网需要加特殊功能模块程序监控、上位机通信都会麻烦一点内置高速脉冲输出口数量有限遇到三轴/四轴联动的锁螺丝机构点数会不太够结构化编程支持较弱FB封装能力不如FX5U注释容量和程序容量都不算宽裕而这套程序恰恰是注释大户。Q系列当然强但成本上去了控制柜空间要求也高对于螺丝机这种巷道小车级别的设备来说属于“杀鸡用牛刀”。FX5U正好卡在中间本体自带以太网口可以直接和触摸屏、上位机做TCP/IP通信也可以做程序下载监控内置4轴200kHz高速脉冲输出配合DRVA、DRVI之类定位指令就能完成多轴锁螺丝平台的运动控制程序容量和注释容量比FX3U大不少能把整套注释体系塞进去。所以从性能和成本两端同时看FX5U是这套程序的天然载体。2.2 程序框架的观察结果拿到程序后第一件事不是打开梯形图而是先在GX Works3里看整个工程树的组态。这套程序框架基本是三层结构初始化层上电后先执行数据初始化、报警复位、各轴回原点主流程状态机层待机→自动运行→报警处理→暂停恢复用状态寄存器组织跳转功能动作层送料、升降、锁付、检测等各自独立为功能块或子程序通过接口变量和主流程交互。实际梯形图里主流程并没有我最初想象的那么“长者式”从上往下扫。FX5U支持模块化编程之后每个工位/机构单独做一个FB块主程序只做状态调度和报警汇总读起来非常清爽。如果你拿到的那套程序还是全挤在一个全局梯形图里、从头到尾靠M继电器互相纠缠那基本可以判断是FX3U时代的思路建议动手重构。2.3 软元件规划是整套注释的地基程序注释全面不仅体现在梯形图旁边写了多少行字更重要的是整个软元件地址有没有一套内外一致的命名规则。这套程序明显是先规划了软元件分区再进行编程的。比如区域地址范围用途XX0~X7电批Z轴气缸及夹嘴传感器XX10~X17供料系统检测缺料、卡料、到位XX20~X27产品定位及安全信号YY0~Y7电批及Z轴动作输出YY10~Y17供料系统输出MM0~M99自动流程状态MM100~M199报警位DD100~D199锁付参数扭力、转速、时间DD500~D599生产统计产量、不良数这套分区规则的直接好处是调试时看到D520不用去翻注释表就能猜到它大概率是“浮锁计数”因为D500段是统计区。触摸屏做地址关联时也完全跟着这套规划走不会出现PLC端和屏端各有一套命名、对不上账的情况。这也是“注释全面”能落地的根子不是最后补注释而是编程之初就带着命名规范写程序。3. 程序注释全面这套程序的注释体系是怎么搭起来的经常有人问“有没有去除程序源码注释的软件”当时看到这个问题就感慨程序注释在业界被当成累赘、当成需要“去除”的东西而不是资产。真正有价值的设备程序注释是整个可维护性的核心。这套程序让我仔细琢磨了一下“注释全面”到底是怎么做到的。3.1 注释的三个层级这套程序的注释体系可以分三层块头注释每个程序块POU或FB开头都有注释内容包括这个块的功能描述、输入输出变量说明、新旧版本修改记录、修改人缩写和日期梯形图网络注释每个网络旁边都有行注释不是写“启动气缸”这种废话而是写“当产品到位且前一次锁付OK时启动Z轴下降气缸若5秒内未到位则触发报警”软元件注释表在全局软元件注释里为所有X/Y/M/D建立了中文名称表触摸屏上的变量名、报警文本直接引用这套名称。说实话梯形图网络注释对我们这种后来接手的人价值最大。它能帮你把单一的网络放进整个时序里去理解而不是看着一排常开常闭触点自己去猜逻辑。3.2 时序逻辑的注释要怎么备注才有价值我见过太多程序里写着“延时2S”然后就没有然后了。这套程序里几乎每一处延时的注释都会明确写清楚为什么延时、延时期间在等什么信号、超时之后干什么。比如电批启动后有一个“锁付完成等待”计时器注释写的不是“延时2S”而是等待电批扭力到达信号最长等待2秒。若超时未收到扭力到达信号则判定为滑牙记录不良计数并报警。这个注释的含义直接帮助你理解程序意图。更关键的是它把“滑牙判定”这个工艺逻辑和具体的定时器对应到了一起你在现场排查滑牙误报时就不需要顺着梯形图把所有分支走一遍才知道这个延时是干嘛用的。3.3 注释与触摸屏变量保持一致这套程序的触摸屏工程里变量名称和PLC软元件注释几乎完全一致。PLC端有一个地址叫“锁付扭力到达信号”触摸屏里对应的指示灯和报警文本用的也是同一个名称。这样做的最大好处是调试时不用来回对照PLC程序和屏程序“这地址到底代表啥”出问题后两侧对一遍名称就能定位。这里我建议一个习惯新建项目时先在PLC全局软元件注释里把所有IO点和关键M/D都起好名字再拿这堆名字去做触摸屏的变量表。这比PLC写完了再去屏里手敲一遍名称要稳得多。而且以后做设备交付时这份名称表可以直接导出给客户维修人员当图纸用。3.4 “有注释”和“注释全面”是两回事网上流传的许多PLC程序真去问作者“你这有注释吗”对方说“有”打开一看全是一个“M100”配上“启动”两个字。这叫聊胜于无不叫注释。“注释全面”至少意味着三件事任何一个程序块都说得清它的前置条件、动作内容和退出条件任何一个定时器都说得清它在等什么、超时了会怎样任何一个报警都有明确的触发来源和复位方式。如果这三样信息没有别管字多字少其实都是无效注释。4. 触摸屏程序拆解这台设备的人机交互逻辑这套项目里还有一个含金量很高的部分触摸屏程序。设备的PLC程序再完整如果触摸屏界面做得乱七八糟现场操作工和维修工照样没法用。所以很多成套资料里“含触摸屏程序”就是我判断这份参考价值高低的第一指标。4.1 界面层级规划整套触摸屏程序大概分五层页面主画面设备当前运行状态自动/手动/报警/待机、实时产量、当前报警显示自动画面当前产品型号、目标扭力/转速、锁付结果、运行计数、暂停/复位按钮手动画面按机构分组的气缸/电批/振动盘单独动作按钮带互锁参数设置画面配方选择、锁付参数修改、超时时间设定、密码保护报警画面当前报警和历史报警记录带时间戳和报警内容。页面层级没做太深控制在两层以内。这是有道理的操作工戴着手套、站在嘈杂产线边操作触摸屏如果还要连点三四个页面才能找到报警复位按钮车间的生产节拍会直接被拖垮。按钮越大越好、层级越浅越好、报警文字越直白越好。4.2 配方功能的实现不同产品锁不同规格的螺丝对应不同的扭力、转速和锁付时间。这套程序把配方做在了触摸屏和PLC的交互层触摸屏配方画面里定义了几组配方号比如1号、2号、3号选择某一配方后触摸屏把该配方对应的参数写入PLC的D区参数段PLC启动锁付流程时直接从D区读取当前配方参数。这样做的好处是现场换型不需要工程师改程序操作工在触摸屏上换个配方号、确认一下就行。很多设备商自己做屏程序容易把配方参数直接写在屏端私有变量区PLC侧读不到或者干脆PLC里一堆常量要工程师现场改。这个项目里把配方数据放在PLC区、由触摸屏负责选择和写入我认为是更适合现场运维的设计。4.3 报警和计数器怎么做的报警这块用的是PLC报警位M区触摸屏报警列表的组合。PLC把每个异常条件映射到一个M点触摸屏把这些M点关联为“报警变量”报警文本在触摸屏工程里统一维护。这样做的优点是PLC只管逻辑报警文案在屏里随便改不用动PLC程序。计数器方面D区专门有一段保存生产统计总产量、良品数、滑牙数、浮锁数、漏锁数。这里有一个隐蔽的坑普通D区在PLC断电后不保持。如果项目需要长时间运行和统计这些统计寄存器必须配置为断电保持范围。GX Works3里可以在模块参数中对软元件保持范围进行设置也可以直接在程序初始化时读出保持值再累加。如果没有这个设置客户第二天上班一开机产量清零那工程验收时肯定要吵架。4.4 触摸屏程序的上传下载与防呆MCGS触摸屏这种国产品牌在项目里出现频率很高很多工程师在拿到旧设备时都会遇到“程序上传只有画面、没有工程源文件”的情况。严格来说大部分触摸屏包括MCGS、威纶通都支持“上传程序”但能传上来的是运行文件或工程文件得看屏的具体型号和组态软件的版本支持。更稳妥的方式是设备交付时一定要保留组态工程源文件并连同PLC工程一起归档。现场改屏程序前必须备份原工程。上次我遇到一个项目工程师直接在旧屏程序上改了个按钮位置就下载结果把原配方数据全部覆盖了设备当场废了几百个产品。这种事故说到底不是操作问题而是流程问题改触摸屏前先读出老配方参数再下载新程序再把老配方参数抄回去。程序里设计成配方数据放PLC保持区也能有效减少这类事故的影响面因为屏下载不会冲掉PLC里的保持数据。5. 实际调试时的高频问题与处理对策光看不练没意义。这套程序我后来在前东家试机机上真跑过几轮连蒙带猜也趟出来不少实际问题。如果你也正在用类似配置做螺丝机项目下面几个坑大概率会碰到。5.1 PLC和触摸屏通讯不上的排查链路FX5U内置以太网口和触摸屏通信时最常见的现象是触摸屏上“PLC连接失败”。按我的排查顺序走一遍基本能解决90%的问题先确认物理链路网线是否正常、交换机端口是否好用。FX5U的以太网口是RJ45很多现场用工业网线但别排除跳线做错这种低级问题再核对IP地址FX5U默认以太网参数可能和你触摸屏不在同一网段。PLC侧IP、触摸屏侧IP、子网掩码三样逐一对比检查PLC侧以太网端口配置GX Works3中要在“模块参数→以太网端口”里开放对应的通信协议比如TCP并记录端口号确认触摸屏驱动型号MCGS驱动列表里找“三菱FX系列以太网”或“三菱Q系列以太网”选错驱动会导致握手失败最后看PLC运行状态如果PLC在STOP状态部分触摸屏驱动也能建立连接但读不到实时值容易让人误判成通信故障。现场如果换过网线后通信恢复基本就是线缆接触不良。工业环境里振动大RJ45接头氧化是常事有条件就换成带锁扣的工业级接头。5.2 浮锁误报、滑牙漏报的处理判定逻辑写得再严谨现场传感器信号不给力一样白搭。这套程序调试时我遇到最多的是浮锁误报。排查思路是先看报警发生时扭力到达信号和锁付时间到底处于什么状态。用FX5U在线监控盯一段连续锁付的波形记录原理是用“触发后数据开关”的方式捕捉报警前几秒的软元件状态。后来发现电批扭力到达信号本身有大约20毫秒的跳动X输入点没有加滤波时间导致偶发把“未到达”读成“到达了”浮锁误报就冒出来了。处理方式很简单在程序里对扭力到达信号做毫秒的ON滤波确认而不是直接用X点的裸信号去触发完成逻辑。这里要注意滤波时间也不能太长否则真正到达信号被延迟太多设备锁付动作会变慢。颗粒度要看电批的品牌响应特性我只能说先从小往大调一次加10毫秒对比误报率。滑牙漏报则相反多半是“最大锁付时间”设置得过大滑牙了之后电批还在那儿空转磨了半天才报。建议最大锁付时间设置为正常锁付时间的1.2到1.5倍既能留给不同批次螺丝的工艺波动空间又不至于让滑牙状态长时间无人干预。5.3 触摸屏下载时配方丢数据前面提到配方数据放D区保持区但工程下载到触摸屏时如果屏端配方组和PLC地址有联动还是可能把屏端缓存的数据冲掉。更稳妥的做法是下载前在屏上导出配方到U盘或者先记录所有配方页的当前值下载完成后手工核对尤其是设备打了多年、配方参数已经被现场调过的情况下。还有一点容易被忽略MCGS触摸屏有些型号做“工程下载”会清空配方存储元件的内容但只是在屏的存储区不会直接改PLC的D区那D区数据本身是安全的。问题在于如果配方参数是屏主动上位“定期写回”模式屏端数据被清空后写回的就是空白了。所以配方方案上要明确数据的“主从关系”主数据放PLC保持区屏端只做显示和下发回传清零的逻辑不要随便加。5.4 GX Works3在线监控的心得FX5U程序调试用GX Works3功能比GX Developer那老古董顺手多了。几个小技巧值得记一下在线监控时可以把“软元件注释”显示选项开起来梯形图旁边直接显示中文名称排查效率高非常多软元件批量监控窗口可以提前定制几个模板页面到时候切换监控类别快。比如“锁付参数”一页、“送料检测”一页、“报警M区”一页强制ON/OFF要慎用特别是Y输出。曾有人调试时强制了Y10振动盘输出结果螺丝哗啦啦飞了一地。真需要测试单个机构时还是切手动模式驱动比较安全程序修改后直接在线写入要记得备份原来文件。FX5U在线写入很方便但连写几次后容易“当前程序和工程文件到底哪个新”闹不清维护时特别容易被带偏。6. 把这套程序移植到新项目哪些保留、哪些必须改拿到了这套完整程序最实际的问题是直接拿去套到新设备上能不能行我的意见是框架可以留细节必须全部过一遍。6.1 先看IO分配表再动手拿到程序第一步不是看梯形图而是把PLC程序里所有用到的X/Y列一张总表对照新设备的机械设计图逐点核对。旧程序里X10是“缺料检测”新设备可能把料仓传感器换了个位置或者加了一个料位IO坐标全变了。所以新项目移植时硬件地址这层永远以新设备原理图为准不要迷信“延用原来点位”。6.2 把“写死的参数”改成配方参数很多所谓“参考程序”最大的问题不是写错而是把现场调好的参数直接焊死在常量里。锁付时间3.2秒、等待扭力1.8秒这种东西如果不在触摸屏上留出设置入口现场换一种螺丝就等于要改一次程序。新项目移植时凡是涉及“时间、扭矩、速度、位置”的数值一律做成D区参数并在触摸屏参数画面开放调节权限。将来工艺工程师自己就能调你就不用半夜被电话叫醒去改PLC常量了。这是我从“能做参考”变成“能做模板”的关键一步。6.3 程序里最值得复用的部分我个人的看法是程序里最值得直接复用的是那套“状态机报警体系判定逻辑”的组合框架。供料、进给、锁付的机构形态不同品牌螺丝机之间差异很大但“周期等待螺丝到位→Z轴下降→电批锁付→判定结果→记录统计”这条主干逻辑几乎是锁螺丝机通用的。移植时把机构控制的IO部分抽换掉保留主干时序和不良判定骨架这套程序就真的变成了你自己的资产。最后再补一句个人经验参考程序不管注释多全面都只是“参考”核心还是要把工艺逻辑吃透。我后来之所以能把这套程序的精粹抽到新项目里靠的不是把它每个网络背下来而是把它每一步动作的目的、每个延时的原因都搞清楚了。拿到别人的程序与其急着改不如先花时间读通它的思路这比任何修改都值钱。
返回列表