
接到三菱FX3U配合台达B2伺服做三轴搬运的项目客户点名要求程序结构清晰、注释齐全触摸屏用信捷。这配置放在中小型自动化设备里非常典型——三个轴、两个机械位、一个气动夹爪跑一个取料→搬运→放料的循环。项目本身不复杂但要把程序写到别人接手也看得懂、后面改机型也不窝火的程度还是有一套方法论可以聊的。这篇文章我就从硬件选型逻辑、程序框架、伺服参数、触摸屏联动到现场调试一条线拆开讲基本按照实际项目推进顺序来适合正在做类似搬运机、装配机、上下料设备的电气工程师参考。1. 三轴搬运项目的前期规划硬件选型不是选贵的而是选顺手的1.1 工艺需求先行先搞清楚这台设备到底要干什么这台设备做的是最简单的三轴搬运典型动作流程如下设备上电三个轴回原点X轴水平左移、Y轴水平前移、Z轴垂直上升为原点位置自动循环启动后X/Y轴联动走到取料位上方Z轴下降气动夹爪闭合抓料Z轴上升X/Y轴联动移动到放料位Z轴下降到放料高度夹爪松开工件放下Z轴上升X/Y轴回到原点或直接进入下一循环从工艺上看这套流程对精度的要求不算苛刻常见场景是5mm到20mm的定位误差范围负载一般也在几公斤以内。真正考验程序的地方不在定位精度而在动作的时序配合和安全互锁。X轴没回原位Z轴能不能降夹爪没闭合到位X轴能不能跑这些逻辑做扎实了设备才能稳定跑夜班。1.2 三菱FX3U在这里的定位小型PLC里性价比最均衡的选择选三菱FX3U核心就一句话市场保有量大工程师熟后续维护成本低。在3轴脉冲控制的场景下FX3U的晶体管输出型本体自带3路100kHz高速脉冲输出Y0、Y1、Y2刚好对应X、Y、Z三轴不需要额外加定位模块这是它在这个项目里能站住脚的最大理由。对比一下几类方案方案优势劣势适用场景FX3U 台达B2伺服成本低、调试资料多、脉冲方式直观高速高精场景不够用中小型搬运、装配、点胶设备FX5U 台达B2伺服程序容量大、支持Ethernet、结构化编程价格偏高换代学习成本中大型设备、多轴联动、数据追溯独立运动控制器 伺服多轴插补、轨迹规划强开发周期长、编程门槛高复杂轨迹、高速高精设备总线伺服方案EtherCAT等接线少、诊断强成本高、对经验要求高几十轴的大型设备对三轴搬运这种点位运动顺序控制的设备用PLC发脉冲控制伺服完全富裕。如果你选总线方案反而把简单问题搞复杂了——每个伺服要配总线通信卡PLC要加总线主站模块触摸屏联动也绕一圈调试的时候一旦通信掉站现场排查时间直线上升。所以我一直跟同行讲脉冲方案不是落后是合适。1.3 台达B2伺服和信捷触摸屏为什么匹配这套系统台达B2伺服在国产小型伺服里的地位和FX3U在PLC里的地位很像——保有量大、资料全、技术支持方便。B2系列电机标配17-bit编码器分辨率160000脉冲/转做搬运定位绰绰有余。关键是它的驱动器面板操作很直观电子齿轮比设起来方便调试员好上手。信捷触摸屏则是实用主义的代表组态软件免费控件丰富支持三菱FX系列PLC的通信协议连接设置简单。触摸屏这边我选的是TG系列10寸屏带RS485和以太网口。实际使用中我倾向于用RS485连接FX3U-485BD扩展板这种方式比直接用编程口圆头8针RS422更方便布线而且485的通信距离和抗干扰在常规车间环境下足够。整套系统硬件配置单大致如下类别型号数量说明PLC三菱FX3U-48MT/ES1晶体管输出24输入/24输出扩展通信板FX3U-485BD1连接信捷触摸屏伺服驱动器台达ASD-B2-0421-B3400W配ECMA-C20401电机触摸屏信捷TG765S-XT17寸带以太网口实际只用RS485输入元件接近开关/行程开关若干原点、正负限位、到位检测2. 程序结构怎么搭让PLC程序看得懂不是靠运气是靠框架2.1 地址规划先行一段寄存器不能又当坐标又当计时器很多工程师写程序地址是随手用的写到哪用到哪最后整个程序像一锅粥。结构清晰的程序一定是从地址规划开始的。我这套程序里用的地址分配规则如下类别地址范围用途输入X0~X17限位、原点、急停、手自动切换等开关信号输出Y0~Y17三轴脉冲方向、夹爪电磁阀、三色灯、报警器中间继电器M100~M499运行状态、流程状态、报警标志状态继电器M500~M999自动运行各步骤的状态位数据寄存器D100~D199X轴坐标、速度、延时等参数数据寄存器D200~D299Y轴参数数据寄存器D300~D399Z轴参数数据寄存器D500~D599运行计数、节拍统计等这套规则的价值在于看地址就知道这个数据属于哪个轴、属于什么功能。调试的时候触摸屏上要改个参数你知道去D100段找X轴坐标程序里看到M300就知道是报警标志。规范的地址规划是程序可维护性的地基如果地基打歪了楼层再漂亮也白搭。2.2 主程序三段式初始化、手动、自动三个世界互相隔离我写FX3U程序习惯用三段式结构初始化段上电第一扫描周期执行复位所有状态位、读取触摸屏下发的参数、清零位置计数器。手动段处理点动、回原点、夹爪单动等操作供调试和维修使用。自动段核心的搬运流程状态机只能在自动模式启动按钮条件下运行。三段的执行逻辑用M变量做软互锁。比如自动模式下手动点动按钮全部失效手动模式下启动按钮无效。这样写的好处是调试时不会出现明明在自动运行误触了一个手动按钮轴突然动了的惊魂时刻。这里分享一个我踩过的坑早期我做搬运程序不区分手动自动段所有点动逻辑直接输出到Y结果现场调试时师傅在手动模式下调完Z轴位置忘了切回自动直接按了循环启动Z轴以点动速度往下走还好当时夹爪区域没有工件否则就是一次安全事故。从那以后我所有程序都加上模式互锁手动段的输出前面必须串一个M100手动模式标志自动段前面必须串M101自动模式标志和M102启动脉冲。2.3 自动流程状态机用置位转移代替长输出继电器堆搬运程序最忌讳的做法是把整个循环写成一个超长梯形图每一步都靠自锁互锁往上堆最后变成一团乱麻。我推荐用状态机思路每个工序分配一个状态位M用SET/RST指令控制状态切换。拿这台三轴搬运设备举例自动流程可以拆成11个状态状态位工序转移条件M500待机状态按下启动按钮且无报警M501X/Y轴移动到取料位三轴均到达取料坐标M502Z轴下降下降到取料高度由伺服到位信号或接近开关确认M503夹爪闭合取料夹爪夹紧到位反馈M504Z轴上升上升到位M505X/Y轴移动到放料位三轴均到达放料坐标M506Z轴下降下降到放料高度M507夹爪松开放料夹爪松开到位反馈M508Z轴上升上升到位M509X/Y轴返回原点或取料位回位完成M510计数1返回待机单循环完成状态切换在梯形图里写很直观// 状态M500待机中 LD M500 // 待机状态 AND M102 // 启动上升沿 ANI M300 // 无报警 SET M501 // 进入X/Y轴移动取料位状态 RST M500 // 状态M501X/Y轴移动到取料位中 LD M501 AND X10 // X轴到位信号 AND X11 // Y轴到位信号 SET M502 // 进入Z轴下降状态 RST M501这种写法的好处一眼就能看出来看程序的时候你只需要关注当前状态和转移条件不用在一堆自锁触点里翻找逻辑。新人接手半小时就能理清整台设备的动作流程。2.4 注释怎么写到让接手的同事感动的程度客户特别强调注释齐全这个要求不过分但怎么注释是门学问。我的注释习惯分三层程序块头注释每个子程序、每个功能块开头注释清楚这是什么、干什么用的、谁负责维护方便快速定位。段注释每一段逻辑前面注明功能相当于给这一小段逻辑起个名字。行注释关键输出、关键转移条件后面加注释说明这个触点是干嘛的、这个输出控制什么。举几个实际写法// X轴控制子程序 // 功能X轴点动、回原点、定位控制 // 维护张工内线8012 // // X轴正方向点动仅在手动模式有效 LD M100 // 手动模式 AND M200 // 点动按钮触摸屏软按钮 OR X14 // 也可用面板物理按钮 ANI X0 // 正限位未触发 ANI M301 // X轴伺服无报警 SET Y10 // 方向信号正方向 OUT Y0 // 脉冲输出这种注释写下来程序的可读性和技术文档差不多。调试时你不用再翻图纸回忆每个点是干嘛用的程序本身就是图纸。3. 台达B2伺服的参数设置和脉冲定位原理通了指令只是工具3.1 电子齿轮比的计算一个例子讲透台达B2伺服的分辨率是160000脉冲/转17-bit编码器意思就是电机转一圈编码器反馈160000个脉冲。但PLC发给伺服驱动器的脉冲数和电机实际转的圈数之间靠电子齿轮比来换算。设电子齿轮比为P1-44/P1-45分子/分母三者关系是电机实际转动圈数 PLC发出的脉冲数 × (P1-44 / P1-45) / 160000那实际应用中反过来算。假设这台设备的X轴丝杆导程为10mm要求定位精度0.01mm即PLC每发一个脉冲工作台移动0.01mm工作台移动10mm电机转1圈需要1000个脉冲10 / 0.01 1000电子齿轮比 160000 / 1000 160设置P1-44 160P1-45 1再验证一下PLC发1000个脉冲经过160/1的电子齿轮比后驱动器等效收到160000脉冲对应电机转一圈工作台移动10mm精度正好0.01mm/脉冲。如果机械传动比不是1:1比如电机通过减速机带丝杆减速比3:1那电子齿轮比要乘上减速比。例如减速比3:1丝杆导程10mm要求0.01mm精度电机转3圈工作台才移动10mm电机需要3 × 160000 480000个脉冲对应10mm每0.01mm需要480000/1000 480脉冲电子齿轮比 160000/480 1000/3取整后P1-44 1000P1-45 33.2 伺服驱动器关键参数别让伺服带病上岗台达B2伺服上电后有几个参数必须核对不然轻则跑不准重则报警甚至撞限位。参数设定值说明P1-010位置控制模式P1-000脉冲输入形式脉冲方向P1-44160电子齿轮比分子P1-451电子齿轮比分母P2-101ALM报警输出常闭P1-460脉冲指令平滑时间0表示不平滑P2-0035位置控制增益按机械刚性调整特别说下P1-46平滑时间如果现场出现机械振动可以在P1-46设一个小值比如100ms让脉冲指令变得滑一些。但这会影响响应速度搬运设备上我一般不设优先通过降低增益来解决振动。伺服驱动器面板上还有一个重要操作保存参数。台达B2修改参数后必须按MODE键到保存界面按ENTER保存否则断电后参数恢复。这个细节看着小但现场丢过的参数比想象中多得多。3.3 FX3U定位指令实战DZRN回原点、DDRVI相对定位、DDRVA绝对定位FX3U三路脉冲输出的定位指令中我实际项目里用到三组DZRN原点回归、DDRVI相对位置定位、DDRVA绝对位置定位。DZRN原点回归是最重要的因为搬运程序后面的绝对定位全都依赖原点坐标。指令格式大致是DZRN D0 D1 X3 Y0D0爬行速度接近原点后的低速D1原点回归方向0为负方向1为正方向X3近点信号DOGY0脉冲输出口DZRN执行过程是先以设定的速度朝指定方向找近点信号碰到DOG后减速到爬行速度然后脱离DOG或者找到Z相脉冲的瞬间停止。实际接线时DOG信号一定要接在PLC输入端不能直接接伺服驱动器的原点输入否则PLC不知道伺服当前回原点的状态。DDRVI相对定位用起来很简单适合那种不确定当前位置、只需要相对移动一段距离的场景。比如手动调试时我常用DDRVI让某个轴再走5mm试试。DDRVI D10 D20 Y0 // 按D10设定的脉冲数有符号频率D20从Y0输出DDRVA绝对定位是搬运程序的主力因为从取料位到放料位的坐标都是基于原点算出来的绝对位置。DDRVA D100 D110 Y0 // 移动到D100中设定的绝对位置速度D110用绝对定位的好处是程序写起来直观D100是取料位X坐标D200是放料位X坐标程序里要改位置直接改触摸屏参数就行不用关心现在轴在哪个状态。关于脉冲频率和移动速度的换算再做一个简单推导X轴丝杆导程10mm电子齿轮比160:1PLC每发1个脉冲移动0.01mm。如果要求移动速度120mm/s那么PLC输出频率为120 / 0.01 12000Hz即12kHz。FX3U的Y0/Y1/Y2输出能力是100kHz12kHz只有1/8的余量跑得很稳。4. 信捷触摸屏跟PLC怎么配合界面设计决定设备好不好用4.1 通信连接FX3U-485BD和信捷屏的配置我用的连接方式是FX3U-485BD扩展板 信捷触摸屏RS485口。连接参数两边都要设置一致项目参数协议三菱FX系列编程口协议波特率9600数据位8停止位1校验位无PLC站号0默认485通信的线材建议使用屏蔽双绞线A接A、B接B屏蔽层单端接地。现场布线上通信线跟伺服动力线必须分开走线槽我见过因为动力线和通信线捆在一起导致触摸屏频繁掉线的案例查了一上午最后发现是干扰把线分开后问题消失。4.2 触摸屏画面框架四个画面搞定大部分操作需求这台设备我做了四个触摸屏画面功能划分如下主画面设备状态、运行模式显示、自动启动/停止按钮、节拍计数显示。这是操作工每天面对的画面信息要精简一键启动。手动画面三轴正反点动按钮、回原点按钮、夹爪开合按钮、当前坐标显示。这是调试人员用的画面按钮要紧凑坐标显示要实时。参数画面取料位坐标3轴、放料位坐标3轴、各轴速度、各位置延时、循环次数等。这个画面配上公司密码防止操作工误改参数导致撞机。报警画面当前报警、报警历史、报警复位按钮。报警内容要具体到X轴伺服报警Z轴下降超时这种级别不能只显示一个笼统的故障。触摸屏地址映射非常直接屏上设置一个数值显示控件地址填D100数据格式设成32位读写权限按需设置它读写的是PLC的D100寄存器。位按钮同理地址M100对应PLC的M100。4.3 参数下发与掉电保持一个容易忽略的细节触摸屏上修改参数后数据是存在PLC的D寄存器里的。但FX3U的D寄存器默认掉电不保持也就是说断电重启后D100里的取料位坐标会清零。解决方式有两种在PLC参数里设置掉电保持区域将D100~D399设为锁存区域DX掉电后数据不丢失需要电池FX3U本体自带电池座。在PLC程序初始化段加数据有效性检查上电时判断D100的值是否在一个合理范围内比如X轴坐标规定在0~500mm内如果超出范围就使用默认值覆盖。我一般两种都用。一方面把坐标参数区设成掉电保持另一方面在初始化段做范围检查防止触摸屏误发了一个超大值导致PLC带着轴往错误方向跑。4.4 界面上的互锁怎么同步到PLC触摸屏上设计的启动回原点这些按钮最终都是写到PLC的M或D寄存器由PLC逻辑来做最终裁决。比如触摸屏上的自动启动按钮写到M102但PLC梯形图里M102的输出条件里必须串上M300各轴伺服正常、M301无急停、M302气压正常这些硬条件。这是PLC编程的一条铁律触摸屏只是操作界面真正的安全逻辑必须100%放在PLC里实现。不要依赖触摸屏的宏或脚本来做安全互锁因为触摸屏死机、通信断开、屏幕误触都不会影响PLC内部逻辑的安全性。5. 现场调试实录三个真遇到的坑和排查思路5.1 坑一回原点方向跑反差点撞了机械限位第一次调试Y轴时按下回原点按钮电机没有朝设定方向找原点而是直接往反方向冲。第一时间怀疑PLC程序检查DZRN指令参数、方向信号输出程序都没问题。再看伺服参数发现P1-00脉冲输入形式被设成了1不是0。这里科普一下台达B2的P1-00参数控制脉冲输入差分形式。设成0是脉冲方向设成1含义不同导致方向信号的有效电平逻辑反了。程序让电机往负方向走但伺服把它解释成正方向结果就是反向全速跑。好在限位开关和PLC程序里的正负限位判断及时切断了脉冲输出不然机械硬限位就是最后一道防线了。排查思路建议遇到轴往反方向跑不要第一反应改程序先看伺服参数P1-00再查方向信号线最后才怀疑程序。我在现场的习惯是先电后程再机械因为改参数最快查线次之改程序最费劲。5.2 坑二自动流程卡在Z轴下降这一步怎么按都不走设备试跑时自动流程走到M502状态Z轴下降就卡住了。触摸屏上显示Z轴当前位置确实到了取料位坐标但状态就是不往下跳。后来排查发现转移条件里用了X10到位信号而X10接的是伺服驱动器的DO1输出。但是台达B2伺服默认DO1输出的是伺服准备完成信号不是定位完成信号。Z轴到了位置伺服驱动器并不输出到位信号给PLC导致转移条件永远无法满足。解决方法是把伺服驱动器的参数P2-10~P2-16数字输出定义改成定位完成DO输出或者在PLC程序里改用定位指令的完成标志而不依赖伺服驱动器的DO信号。稳妥起见我在程序里把状态转移条件改成定位指令执行完且当前位置偏差在允许范围这样就算伺服DO信号接错了也不影响流程。这个改动省了现场很多事。5.3 坑三触摸屏偶尔连不上通信时断时续设备运行两天后操作工反馈触摸屏偶尔显示通信失败。到现场看485通信指示灯忽闪忽闪的。我排查了三个点通信线接线端子确认拧紧了没有松动。干扰源发现触摸屏的485线跟伺服驱动器的主回路电源线走在了同一个线槽里而且没有用屏蔽双绞线。接地PLC和伺服驱动器没有很好的单点接地。处理方式换了一段屏蔽双绞线重新规划走线路径让485线远离动力线所有设备外壳统一接车间接地排。处理完以后连续跑了一周没有再犯。5.4 从调试中总结出来的三条现场经验第一搬运设备的程序一定要写单步运行功能。触摸屏上加一个单步模式开关自动流程每走一步停下来按一次启动走一步。这个功能在调试、试产、故障排查时极其好用能快速定位是哪一步卡住不用返工跑完整循环。第二PLC程序里每个轴要加超时报警。比如Z轴从下降到上升正常需要3秒如果超过5秒还没走到位立即报警停止。搬运设备最怕轴卡住但程序不知道等操作工发现工件可能已经顶坏了。超时报警是成本最低的机械保护手段。第三伺服报警一定要做联动停机。三个伺服的ALM信号全部串到PLC一个输入点任何一个伺服报警PLC立即切断三轴脉冲输出同时报警灯亮起触摸屏报警画面弹出具体故障信息。不要等伺服报了警PLC还在发脉冲那是最危险的时刻。6. 收尾程序结构的维护靠的是每次多花十分钟项目交付时客户对我的程序评价是结构清晰注释齐全一看就懂。说实话做到这个并不难核心就是每次写程序时多花十分钟做地址规划、做注释、做状态机拆分而不是等程序写完再去补。等程序跑起来后再补注释一是懒得补二是当时的逻辑细节已经忘了一半。还有一个小习惯每次项目调试完我会把触摸屏上的最终参数导出一份附在程序压缩包里一起交付给客户同时在程序注释里标注参数默认值参考触摸屏导出文件。这样客户后续换PLC、换屏或者设备搬迁重新调试都有据可查。三轴搬运项目本质上是顺序控制 点位定位的经典组合把硬件选型匹配好、程序框架搭清楚、伺服参数算明白、触摸屏交互做顺手再加上充足的安全逻辑一台稳定好用的搬运设备就出来了。希望这篇分享对正在做类似项目的同行有帮助。