尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

三菱FX5U四轴定位控制系统:3伺服+1步进方案与调试实战

三菱FX5U四轴定位控制系统:3伺服+1步进方案与调试实战 前阵子刚帮客户调试完一套设备控制器用的是三菱FX5U一共4个运动轴其中3个轴由松下伺服驱动剩下1个轴用步进电机动作是典型的多轴定位加顺序联动。这套配置在非标自动化里非常常见尤其适合小型组装机、点胶机、贴标机这类设备伺服轴负责精度和响应速度步进轴负责轻载、低成本的部分。今天我就按项目从方案、选型、参数计算、写程序到现场调机的完整顺序把这个5U四轴系统的关键点从头到尾梳理一遍给正准备做类似项目的朋友一个可以直接参考的底子。1. 先理清项目需求与整体方案选型1.1 为什么要用 FX5U 3伺服 1步进的组合接到这类项目时第一步不是急着写程序而是先搞明白设备到底要干什么。从标题字面上看4轴是指4个运动轴但每个轴的工作性质很不一样。3个轴用松下伺服说明这3个轴对定位精度、响应速度、带负载能力有明确要求比如需要频繁启停、加减速快、定位不准会直接影响产品质量这种场合普通步进电机很难扛住。剩下1个轴用步进电机说明这个轴负载轻、速度要求不高、精度要求相对宽松用步进是典型的成本优化思路。FX5U在这个项目里的定位是主控制器。三菱FX5U属于小型PLC但它和传统的FX3U相比有了非常大的升级内置以太网口支持MODBUS-TCP、CC-Link IE Basic等总线协议本体自带4路200kHz高速脉冲输出晶体管输出型可以直接用Y0到Y3输出4轴脉冲。这意味着不需要额外加定位模块或运动控制模块光靠PLC本体就能实现4轴独立定位硬件成本省下一大截。如果是前几年的FX3U虽然也能输出脉冲但要实现4轴往往需要加高速输出扩展模块接线和成本都会增加。FX5U把这部分集成到了本体这对小型设备来说非常友好。另外FX5U的编程软件是GX Works3支持梯形图、ST、结构化梯形图/FBD等多种语言处理这种4轴运动控制加顺序逻辑混编的程序远比老款软件顺手。1.2 控制方案脉冲方式为主总线方式留作升级这个项目我采用的是最经典的脉冲方向控制方案也就是PLC每个轴占用两个晶体管输出点一个发脉冲一个发方向信号。松下伺服驱动器工作在位置控制模式步进电机驱动器也是接收标准的脉冲/方向信号。这个方案放到今天依然不过时理由很实际其一项目对这4个轴的同步性没有苛刻要求脉冲方式完全够用其二脉冲方式调试直观出问题好排查示波器或者万用表就能量信号其三成本最低不需要额外购买总线通信模块也不需要处理复杂的网络组态。如果以后设备升级比如轴数增多、要求多轴插补联动、要求远程监控每台伺服的状态数据可以考虑把伺服改为CC-Link IE Basic总线控制。FX5U本体支持这个协议只要伺服驱动器带网口就能走总线一根网线串联多台伺服省掉大量脉冲线抗干扰能力也更强。不过总线方式对PLC程序的编写方式、伺服参数的设置方法都不同有点类似从“给每台伺服单独打电话”变成“在办公室里统一发邮件”好处是数据量大、线少坏处是调试门槛略高。对比项脉冲方向控制CC-Link IE Basic总线控制硬件成本低PLC本体输出即可中高需要带网口的伺服接线量轴多时线束多一根网线串联抗干扰能力需注意屏蔽和布线更强可监控数据少丰富可读伺服报警、电流、位置编程难度低中等需要组态适用场景4轴以内、顺序定位多轴、需要状态监控对于这次“3伺服1步进”的项目脉冲方案是最稳的选择。2. 硬件配置与关键参数计算2.1 各轴配置与脉冲当量计算很多新手拿到项目就开始接线写程序结果到了现场发现速度不对、位置不对最后查来查去是参数计算出了问题。这类4轴系统的参数计算核心就是把“一个脉冲对应多少毫米或多少度”这个脉冲当量算准并统一换算单位。以常见的丝杠传动为例设伺服电机每转需要10000个脉冲这是松下A5系列默认的编码器分辨率丝杠导程是10mm那么每1个脉冲对应的机械移动量就是脉冲当量 导程 / 每转脉冲数 10mm / 10000 0.001mm/pulse也就是说程序里发1000个脉冲工作台移动1mm。这样一套系统可以达到微米级的理论定位精度实际还要看机械背隙、刚性等因素但脉冲当量的基准就是这样算出来的。步进电机那轴也一样要算。步进电机常规步距角是1.8度即每圈200步。如果驱动器细分数设为10也就是2000脉冲/圈丝杠导程5mm那么脉冲当量 5mm / 2000 0.0025mm/pulse如果觉得0.0025不够直观可以把细分数设为2000这样1000个脉冲走2.5mm换算起来比较麻烦。建议直接把细分设成能让脉冲当量为整数的值比如细分数设为2000时对应10000脉冲/圈配合导程10mm的丝杠脉冲当量正好是0.001mm。所以在选步进驱动器和设细分之前先把机械传动比和期望精度算清楚。我在这个项目里给4个轴定了这样一张参数表轴号执行机构驱动器电机每转脉冲数机械传动脉冲当量说明1轴松下伺服A5系列位置模式10000导程10mm0.001mm主定位轴2轴松下伺服A5系列位置模式10000导程10mm0.001mm主定位轴3轴松下伺服A5系列位置模式10000齿轮减速比3:1根据减速比折算旋转轴4轴步进电机DM542200010细分导程5mm0.0025mm轻载辅助轴这张表一旦定下来后面写程序、设驱动器参数、现场调试全部围绕它来不用再反复换算。建议每一位做项目的朋友都把自己的轴参数表固定下来放在程序注释的最前面这是避免返工的最好习惯。2.2 伺服驱动器与步进驱动器参数设置硬件接线其实是4轴系统里最需要耐心的事情。FX5U晶体管输出型的脉冲输出点固定在Y0、Y1、Y2、Y3方向输出点通常会搭配Y4、Y5、Y6、Y7但具体分配要看程序里定位指令的配置。接线时需要注意PLC输出端的COM口要和驱动器脉冲输入端的COM极性一致松下A5系列的脉冲输入口支持差动输入和集电极开路输入FX5U晶体管输出属于集电极开路方式所以把PLC的脉冲输出点接到驱动器的PULSE和PULSE-方向信号接到SIGN和SIGN-即可COM口别忘了接24V电源。松下伺服这边以A5系列为例关键参数主要是这几个Pr0.01 控制模式设为0即位置控制模式Pr0.06 指令脉冲输入方式设为0即脉冲方向模式电子齿轮比Pr0.08分子和Pr0.09分母根据脉冲当量来设定旋转方向Pr0.00根据实际机械方向调整避免接完线发现电机反转电子齿轮比很多人觉得绕其实它解决的就是“指令脉冲数”和“电机实际转过的角度”之间的比例关系。比如伺服电机每转需要10000个脉冲也就是电子齿轮比1:1时外部每给10000个脉冲电机转一圈。如果你的PLC发8000个脉冲就想让它转一圈那就把电子齿轮比分母设为8000分子设为10000这样8000个脉冲对应10000个编码器脉冲电机转一圈。不过在这个项目里我直接保持1:1脉冲当量靠程序里的定位数据和机械导程匹配逻辑更清晰调试也好查。步进驱动器设置相对简单DM542这类驱动器主要是电流拨码和细分拨码。电流要按步进电机的额定电流来设比如57步进电机额定电流2.8A那就把电流拨码设到对应档位电流设大了电机会严重发热设小了扭矩不够。细分拨码则是决定每转多少个脉冲和上面脉冲当量计算直接相关。另外DM542上还有两个电位器分别调低中速力矩和高速力矩很多现场丢步问题就是高速力矩没有调好把对应电位器逆时针调到接近最大值能明显改善高速丢步。3. 程序框架与核心模块实现3.1 程序整体结构与I/O分配写4轴运动控制程序最忌讳的就是把回原点、点动、自动定位、报警处理全混在一段梯形图里。程序逻辑一长后期维护极其痛苦。我习惯把程序按功能块划分分四块初始化与状态管理、手动模式、自动模式、报警与安全保护。I/O分配在写程序前就要定好。以这个项目为例我用一个表格把输入输出规划清楚再在GX Works3里按这个表分配软元件注释程序写起来会顺畅很多输入点功能输出点功能X0启动按钮Y01轴脉冲X1停止按钮Y12轴脉冲X2急停Y23轴脉冲X3模式选择手动/自动Y34轴脉冲X41轴正限位Y41轴方向X51轴负限位Y52轴方向X62轴正限位Y63轴方向X72轴负限位Y74轴方向X101轴原点开关Y10伺服使能X112轴原点开关Y11步进使能X123轴原点开关Y12运行指示灯X134轴原点开关Y13报警指示灯这里有个经验无论项目多大我都建议把注释在GX Works3里从X0开始一个不漏地写完整哪怕暂时没用到的点也预留注释。因为现场改线、排查问题时靠的是注释而不是记忆省下的时间远超写注释花的那几分钟。3.2 回原点逻辑用ZRN/DSZR建立机械坐标回原点是运动控制程序的第一个关键环节。伺服驱动器和步进驱动器本身只接收脉冲并不知道自己的机械位置在哪上电后必须通过回原点动作让系统找到一个固定的机械参考点建立坐标系之后的绝对定位才有意义。FX5U支持多个回原点指令最常用的是ZRN和DSZR。ZRN指令的格式大概是ZRN 速度 爬行速度 原点输入信号 脉冲输出点比如1轴回原点设定搜索速度60000Hz爬行速度1000Hz原点开关接X10脉冲输出Y0ZRN K60000 K1000 X10 Y0这里的逻辑是PLC先以60000Hz的速度向原点方向运动碰到原点开关后立即减速到1000Hz继续爬行等原点开关信号从ON变OFF或者检测到伺服电机的Z相脉冲时停止把当前位置设为原点。为什么要有爬行速度因为高速运动时从碰到开关到PLC响应停止这段距离有惯性每次停止位置都会不一样。降低速度让机械在低速下停止重复精度才有保障。如果设备要求更高可以用DSZR指令它支持带DOG搜索功能回原点过程更智能不过对原点开关的安装位置有要求现场调试时也要花更多时间调近点狗和Z相的配合。回原点编程时我习惯给每个轴设置一个“原点完成”标志位。只有所有轴都完成了回原点才允许启动自动程序。否则一旦发生意外断电或者急停后重新上电坐标就丢了继续运行会造成位置错误。这个逻辑在梯形图里的实现思路是启动回原点按钮置位对应轴的启动位该轴回原点指令执行完毕后根据定位完成标志M8029把完成标志置ON四个轴的完成标志串联后才能解锁自动流程。3.3 点动与定位动作DRVI/DRVA指令的应用点动功能是调试阶段必不可少的工具。4个轴都能单独手动正转、反转速度可调这样在校验接线方向、检查机械行程、设置限位开关时才能灵活操作。点动用PLSY指令或者定位指令都可以我在手动模式里直接用PLSY输出固定频率的脉冲按下正转按钮输出正方向脉冲松开按钮停止。不过要注意点动速度不能设太高一是调试时太快不安全二是突然高速启动对机械冲击大。我一般把点动速度限制在5000Hz到10000Hz确认方向和行程后再用自动程序跑高速。自动定位是这个项目的核心。FX5U的相对定位指令是DRVI绝对定位指令是DRVA格式都是“指令 位置/距离 速度 脉冲输出点”。比如2轴从当前位置正向走50000个脉冲速度30000HzDRVI K50000 K30000 Y1如果是从原点开始绝对定位到坐标250.000mm由于脉冲当量是0.001mm位置值就是250000DRVA K250000 K30000 Y14轴自动运行的流程我通常用一个顺序控制结构来实现。以这个项目为例动作节拍大致是1轴伺服先定位到取料位置 - 2轴伺服伸出 - 3轴旋转到角度 - 4轴步进送料 - 退回 - 1轴回到放料位置 - 完成一个循环。梯形图里每个工步用一个M中间继电器代表当前工步动作完成后通过定位完成标志M8029加上到位延时或外部检测信号把状态切换到下一步。这个思路清晰后期加动作只在中间插状态不用重写整个运动逻辑。如果用ST语言来描述这个流程的骨架大概是这样的感觉// 自动运行主逻辑结构化文本示意 IF bAutoStart AND NOT bRunning THEN bRunning : TRUE; bStep1 : TRUE; // 第一步1轴定位到取料位置 END_IF; IF bStep1 THEN bStep1 : FALSE; DRVA(位置值1, 速度, Y0, 完成标志); IF 完成标志 THEN bStep2 : TRUE; // 第二步2轴伸出 END_IF; END_IF;这里只是示意PLC里不同厂家的DRVA指令不一定支持这种直接用带完成标志的调用方式比较稳妥的做法还是用定位指令加M8029完成标志位来判断。但不管用什么语言核心思路一样每个动作要有明确的启动条件、执行过程、完成信号三步缺一不可。3.4 报警与安全保护运动控制项目的安全保护不能省。我一般会在程序里处理这几类情况急停信号X2急停按钮按下时立即断开所有轴的使能信号停止所有定位指令设备进入急停状态限位信号正负限位开关触发时对应方向禁止输出程序要能处理“正在正向运动时撞到正限位”的情况驱动器报警松下伺服驱动器有报警输出信号把各轴的报警常开触点串联后接到PLC输入点一旦有任何一个轴报警程序立刻停机并点亮报警灯这里特别提醒一点急停和限位不能只依赖PLC程序处理在电气回路上还必须用硬接线把急停按钮串进伺服驱动器的使能回路、步进驱动器的使能回路做到即使PLC程序跑飞按下急停也能物理切断驱动器的输出。软件保护加硬件保护双重冗余这是设备安全的底线不能图省事只做程序里那一层。4. 现场调试全流程与参数整定4.1 上电前检查清单程序写完之后真正的考验从现场上电开始。我每次上电前都会按固定顺序检查一遍减少炸机概率。第一查电源。24V开关电源、驱动器主电源、PLC电源确认电压等级正确正负极没接反。第二查输出点。用万用表量PLC输出点Y0到Y3和驱动器脉冲输入端的接线确认没有短接到24V或者地线晶体管输出点一旦对地短路或者对24V短路容易烧点而且烧了不是马上能发现的往往是调试到一半某个轴突然不动了。第三查限位和急停。确认正负限位开关的常闭触点接入模式正确急停按钮按下后能切断伺服使能。这个检查过程看起来琐碎但能省下后面排查的大把时间。我记得有一次设备上电后2轴一动就报过载查了半天发现是电机动力线U/V/W三相顺序接反电机和负载的方向相反回原点时顶着限位硬跑当然过载。这种问题如果上电前细查接线是可以提前发现的。4.2 单轴调试从点动、回原点到定位验证上电安全后逐轴调试。先把模式切到手动用点动功能让该轴低速往正方向动确认机械方向与程序方向一致。方向反了不需要改接线通过伺服驱动器的旋转方向参数或者改变方向输出点逻辑就能修正松下伺服里就是改Pr0.00或者程序里方向输出取反。方向没问题后执行回原点观察回原点动作是否稳定。至少连续回原点10次以上每次停止位置偏差应该在允许范围内。如果有偏差优先降低爬行速度检查原点开关的安装是否牢固、信号是否有抖动而不是急着改程序。回原点稳定后再做定位验证用尺子或者百分表测量实际移动距离发一定量的脉冲走一段距离核对实际距离和理论距离是否一致。比如设定1轴走100mm脉冲当量0.001mm理论需要发100000个脉冲实测如果走了100.05mm就用实际值反推脉冲当量然后修正参数而不是强行改程序坐标。4.3 多轴联动与节拍优化单轴全部调通后才进入多轴联动阶段。第一次跑自动流程时把速度统一降到设计速度的20%到30%先看动作顺序对不对各轴运动过程中有没有机械干涉到位延时够不够有没有轴还没到位下一步动作就启动的情况。确认顺序无误再逐步提速。提速过程中最容易遇到两个问题。一个是伺服轴高速运行时报警过载或过电流这通常和加减速时间太短有关。伺服驱动的电子齿轮比和增益参数没调好时高速启停会带来很大的电流冲击减速机或联轴器受冲击机械振动也明显。解决方法是把加减速时间加长或者使用伺服驱动器的自动增益调整功能。松下A5系列有自动调整模式让驱动器根据负载自动整定增益比自己手动一点一点试快很多。另一个问题是步进电机高速丢步表现为定位位置逐渐偏移。除了调整驱动器上那两个高速力矩电位器外程序里的加减速曲线也很关键步进电机不能像伺服那样从0直接冲到高速加减速斜坡要平滑。5. 常见问题与排查技巧实录5.1 走位不准、丢步、偏移怎么查4轴系统里最让人头疼的问题就是“位置不对”。我处理这类问题的排查顺序是先看机械再看参数最后怀疑程序。机械方面检查联轴器是否打滑、丝杠螺母间隙是否过大、电机和丝杠连接的键槽是否松动。我遇到过一台设备1轴每次跑几百个循环后位置逐渐偏移后来发现是电机和丝杠之间的联轴器紧固螺丝松了高速启停时电机轴和丝杠轴之间有轻微相对滑动位置越跑越偏。把螺丝重新紧固后问题消失。参数方面检查电子齿轮比和细分设置是否和脉冲当量匹配伺服驱动器的指令脉冲输入形式是否每台都一致。多轴系统很容易出现某台伺服参数被改过、和另外几台不一致的情况导致同样发100000个脉冲这台走100mm那台走102mm。所以我在调试前会统一把所有伺服驱动器参数导出一份备份调完再核对一遍。程序方面重点检查定位指令中的位置值是否混用了相对和绝对定位。比如某个轴用DRVA绝对定位但设备没回原点就执行了绝对定位位置自然不对。这类问题要从流程上防止也就是前面说的“未回原点不允许自动”。5.2 回原点位置不稳定回原点不稳定通常有几个原因。第一爬行速度太高。回原点最后停止阶段的速度如果太高机械惯性会带着工作台冲过停止点每次停止位置离散度大。把爬行速度降到500Hz到1000Hz以内重复精度会明显改善。第二原点开关信号抖动。机械开关在动作瞬间会产生抖动PLC高速扫描时可能把抖动当成多次触发导致位置错乱。处理思路是让回原点最终停在Z相脉冲上。松下A5伺服驱动器的Z相输出是每转一个脉冲PLC可以用它做精确定位机械开关只负责粗定位Z相负责精定位这个配合调好后回原点精度能做到很高。第三如果用的是步进电机没有Z相脉冲可以依赖那就要把机械开关选型好一点最好用带自锁的接近开关代替机械触点开关。这里分享一个我调试时的小习惯调回原点时找一支记号笔在机械运动部件上做一个参考标记每次回完原点看标记位置比对着数据记录更容易发现趋势性变化。5.3 伺服驱动报警代码怎么查松下伺服报警后驱动器面板上会显示报警代码。这个项目里最常遇到的几类报警如下报警代码含义常见原因与处理16.0过载机械卡死、电机动力线相序错误、加减速时间太短13.0过电压电源电压过高、再生电阻未接或太小、减速时能量回馈21.0编码器异常编码器线松动、屏蔽层接触不良、编码器本身损坏15.0过热伺服电机长时间过载运行、散热条件差24.0位置偏差过大负载太重、加减速过猛、电子齿轮比设错看到报警代码后不要急着消除报警先把原因查清楚再复位。现场最常见的错误操作是报警后直接断电重启结果报警反复出现甚至损坏设备。正确做法是先记录报警代码然后对照手册查原因检查机械、线缆、参数确认无误后再上电复位。5.4 现场抗干扰与接线细节4轴系统脉冲频率一般在几十千赫兹如果现场还有变频器、电磁阀等强干扰源对脉冲信号的干扰是不可忽视的。我见过最典型的干扰现象伺服轴不动的时候位置偶尔自己跑几个脉冲或者自动运行时偶尔多走一段。抗干扰的核心措施集中在接线上。脉冲线和方向线必须使用双绞屏蔽线屏蔽层在PLC侧单端接地不能两端都接地更不能把屏蔽层剪掉不接。脉冲线要远离动力线尤其是伺服电机动力线和变频器输出线不能和它们绑在同一个线槽里。实在无法避开时可以用金属穿线管做物理隔离。另外PLC的24V电源和驱动器的控制电源最好分开避免驱动器启停瞬间拉低电压导致PLC输出电平不稳。还有一个容易忽略的点步进电机驱动器的电源端子推荐加一个吸收电容驱动器内部开关频率高电源容易有尖峰干扰这个电容能有效抑制脉冲线上的尖峰减少丢步概率。最后再说几句实在话这套三菱FX5U控制4轴的方案说实话在今天的非标自动化行业里属于“基本功”级别但它涵盖的知识点并不浅脉冲当量计算、驱动器参数整定、回原点机制、多轴流程控制、现场抗干扰每一项都是靠一个个项目踩坑积累出来的。我个人最大的体会是这种多轴项目一定要先把计算和数据定死再动手写程序。轴参数表、I/O表、脉冲当量换算这些在前期越细后期调试越顺。另一个建议是程序里对每个轴的动作都加上明确的状态标志和注释哪怕过半年再翻出来维护也能一眼看懂当时的设计思路。这套框架吃透了后面无论是改成总线伺服还是扩展到更多轴核心逻辑都一样换个控制方式也只是换一层通信外衣而已。
返回列表