ARTICLE DETAIL

资讯详情

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

三菱JET伺服限位信号PLC刷新配置与调试全攻略

三菱JET伺服限位信号PLC刷新配置与调试全攻略 做三菱JET伺服的工程项目限位信号怎么接是个绕不开的话题。很多设备的限位开关不进伺服驱动器而是统一进PLC再由PLC通过通信把限位状态“刷新”给伺服。这个做法在节省伺服I/O、集中管理多轴信号、后期改逻辑时确实方便但我也见过不少现场因为配置不对、刷新程序写错导致限位形同虚设甚至伺服冲过机械硬限位的情况。这篇就结合GX Works3的完整配置流程把三菱JET伺服限位信号PLC刷新的原理、参数、样例程序以及调试中容易踩的坑一次性说清楚。这篇文章适合正在用三菱FX5U、Q系列或iQ-R系列PLC配合MR-JET系列伺服的调试工程师也适合刚接触GX Works3、搞不清“伺服参数”“刷新设置”“控制字映射”这些概念之间关系的人。读完你至少能独立完成从硬件信号接入、伺服参数设定、PLC程序编写到现场功能验证的整个链路。1. 限位信号为什么要“绕道”PLC再刷新1.1 直接接伺服与PLC刷新的差异三菱JET伺服驱动器本身就有CN3输入端口可以直接接正向限位CW和反向限位CCW开关信号。这是最传统、也最直接的接法信号进驱动器后由驱动器内部硬件立即响应切断对应方向的指令输出。这种方式的优势是响应速度快信号从开关触点闭合到驱动器执行限位动作通常在几毫秒以内而且不依赖PLC是否正常运行属于相对独立的一层保护。但直接接线也有明显的局限性。第一一台伺服驱动器上的限位输入点数有限如果设备上有多个伺服轴每个轴的限位都要单独拉线到各自的驱动器电缆数量多、布线乱。第二限位信号一旦接到驱动器逻辑就固定了想加入多限位联锁、与安全门信号做与逻辑、或者在程序中加入限位触发后的特殊处理都得改硬件。第三有些分布式控制柜布局下伺服驱动器不在PLC主柜内限位开关却在操作台侧把信号直接引到伺服反而更麻烦。“PLC刷新”则是另一种思路限位开关只进PLC输入模块PLC程序读入后通过通信把限位状态写入伺服的控制输入映射区伺服再根据这个状态执行限位保护。这个方式把限位逻辑从“硬件固定”变成了“软件可编程”而且多个轴的限位信号可以在同一块输入模块上集中管理因此在大中型设备、多轴运动控制场景里非常常见。1.2 JET系列上“PLC刷新”的典型应用场景JET系列本身定位是经济型伺服I/O点数不多所以用PLC刷新反而更贴合实际需求。我自己在项目里碰到最多的三类场景是多个伺服轴的限位信号全部进同一块PLC输入模块由程序统一分配比如一台设备上有4个JET伺服轴每个轴正反两个限位共8个信号加上原点、急停、门锁全部在一组输入模块上解决。限位逻辑需要组合判断例如“只有在自动模式下且安全门关闭时限位信号才允许被刷新给伺服”这种条件逻辑放在PLC里做非常简单放硬线里就非常痛苦。现场调试阶段经常要修改限位方向机械结构还没完全定型时正反限位开关位置可能需要互换用PLC刷新时不用改线改程序里的触点逻辑就行。不过必须说清楚PLC刷新不等于可以随便用。下面第三章第三节会专门讲哪些信号绝对不能依赖这种做法。2. GX Works3搭建前的软硬件匹配检查2.1 硬件组合与通信方式选型MR-JET系列伺服放大器根据通信接口不同分为好几种型号G/N后缀对应的网络协议不一样。做PLC刷新前先想清楚你走的是哪种通信链路。常见搭配有两种CC-Link IE Field Basic用FX5U的内置以太网端口或扩展以太网模块不需要额外加总线主站模块经济实用适合中小型设备。CC-Link IE TSN适合iQ-R系列或FX5U-CCLGN等模块通信周期更短适合对响应要求更高的场合。无论哪种PLC和伺服之间都是通过周期性刷新交换数据PLC侧周期性发送控制字含伺服ON、正转禁止、反转禁止等伺服侧周期性返回状态字含报警、到位、当前位置等。限位信号要“刷新”给伺服本质就是把限位开关的PLC输入状态映射到控制字的对应位里然后随通信周期发送出去。硬件匹配上有一个容易忽略的点GX Works3对MR-JET系列的支持依赖软件版本和伺服放大器固件版本。如果你手里的GX Works3版本太老在添加伺服放大器时可能根本找不到JET系列型号或者能添加但参数页面不完整。建议在项目开始前用GX Works3自带的“MELSOFT版本确认”功能或者直接到三菱官网查一下“GX Works3对应伺服放大器一览表”核对自己的软件版本是否支持MR-JET系列同时确认伺服侧固件版本不是太老的初始版本。2.2 GX Works3工程创建与JET伺服从站添加新建GX Works3工程时PLC型号一定要选对。FX5U系列和iQ-R系列在导航窗口里的配置路径有差异但整体流程类似。以FX5U CC-Link IE Field Basic为例添加JET伺服从站的操作大致如下新建工程选择CPU型号比如FX5U-80MT/ES。在左侧导航窗口找到“CC-Link IE Field Basic”配置页面双击打开“从站配置”。在从站列表里选择三菱电机 MR-JET伺服放大器拖到网络配置图中。分配站号。每个JET伺服占一个从站号站号范围根据网络设置决定一般是1到64。设置占用的刷新点数。JET伺服从站会占用一定数量的RX/RY和RWr/RWw字具体数量取决于你要刷新的内容通常采用默认值即可。在“刷新设置”页面把伺服放大器的输入输出映射到PLC软元件。比如把“轴1控制字”映射到D100“轴1状态字”映射到D200。这里建议把映射地址固定下来后面写程序会反复用到。我习惯在每个项目里建一个注释齐全的软元件注释表把控制字、状态字、各个位定义全部标上去后面写梯形图或ST段时不会搞混。这一步配置完成后GX Works3会自动在“伺服参数”页面列出该从站的参数项包括我们马上要讲的限位信号相关参数。3. 与限位刷新直接相关的伺服参数配置3.1 限位信号输入方式与有效逻辑设置JET伺服驱动器在PLC刷新模式下限位信号到底从哪里来是由伺服参数决定的。默认情况下CN3端子的外部输入是有效的这意味着即使你在PLC里把限位状态写进了控制字只要伺服参数还认为“限位信号来自外部端子”刷新进去的信号就可能不会生效。需要用到的核心参数是PD01输入信号自动ON选择以及跟CW/CCW限位对应的相关位。这个参数的作用是把指定的输入信号强制设为“自动ON”也就是告诉伺服外部接线不再提供这个信号该信号的状态完全由通信刷新数据来决定。下图简单说明一下逻辑PD01设置为0默认限位信号来自CN3外部输入端子PLC刷新的对应位无效。PD01设置指定信号为自动ON限位信号不再看外部端子伺服的控制输入由PLC写入的控制字对应位决定。实际操作时在GX Works3的导航窗口里找到“参数→伺服参数”选择JET伺服从站展开“输入信号设定”类别找到“输入信号自动ON选择”按位设置需要自动ON的信号。限位信号通常对应“正向旋转禁止”CW和“反向旋转禁止”CCW两个位把这两个位设为自动ON即可。此外还要确认限位极性。CN3端子的外部限位开关一般用常闭触点信号断开表示正常、闭合表示限位触发但在PLC刷新模式下极性由程序里的触点逻辑决定伺服侧的极性设置要与程序逻辑保持一致。你可以在伺服参数里找到“输入信号逻辑反转”相关设置如果开了反转那么PLC写入“1”时伺服实际执行“禁止”反之亦然。这一项是现场最容易搞反的建议配置完先在监控界面里手动置位测试一下方向再实际跑机。3.2 控制字映射地址的确认方法伺服参数设置完成后还要确认限位信号到底映射到哪个控制字地址。这个地址不是拍脑袋定的而是GX Works3在添加从站时自动生成的。在“CC-Link IE Field Basic”配置页面的“刷新设置”里可以看到每个从站的缓冲区地址和PLC软元件地址对应关系。以典型配置为例伺服控制输入字可能映射到类似D100这样的PLC软元件D100.0伺服OND100.1正转禁止CW限位D100.2反转禁止CCW限位D100.3报警复位D100.4强制停止状态字则可能映射到D200D200.0伺服就绪D200.1报警D200.2正转中D200.3反转中D200.8位置到达不同通信协议下地址和位定义会有差异千万不要直接拿网上别人家的地址套用到自己的项目。关键是学会在GX Works3的“刷新设置”和“软元件注释”里找到自己设备对应的地址。另外伺服手册里的“控制输入信号”表格一定要看一遍那里会列出每个信号在缓冲区里的位位置。我遇到过不少项目PLC程序里写的地址跟实际刷新设置不一致通信正常但限位根本不动作最后查半天发现是映射地址张冠李戴。这个坑其实可以提前避免写完映射后先在GX Works3的“软元件批量监视”里手工置位/复位对应位同时打开伺服放大器的“输入信号监控”页面看伺服侧有没有对应的ON/OFF变化。4. 限位信号刷新程序实现从输入点到伺服从站4.1 程序框架与状态位定义程序部分的核心任务就是把PLC输入模块上的限位开关状态经过必要的逻辑处理后组合进伺服控制字再写入刷新地址。整个程序框架可以分成三个层次第一层是输入处理。限位开关接到PLC输入点比如X0是正限位、X1是反限位程序先读取这些输入点。机械限位开关通常用常闭触点接入开关正常时输入点为ON碰到限位时输入点断开并变为OFF。所以程序里判断限位触发判断的是“输入点从ON变成OFF”的事件。第二层是联锁与锁存。限位触发往往不是一次性的瞬时动作而是需要保持状态直到操作人员确认故障并复位。因此要设计一组锁存标志正限位触发标志、反限位触发标志。触发后标志保持为ON即使限位开关因机械复位而恢复标志也不会自动消失。第三层是控制字写入。把锁存标志映射到伺服控制字的对应位再通过MOV指令写入映射软元件。伺服在下一次通信刷新周期拿到这个控制字就会执行相应的限位保护。这里有一个原则触发标志的复位不能自动进行必须由操作人员确认后通过按钮或触摸屏指令复位。原因很简单限位开关在机械上复位不代表设备已经处于安全状态自动复位可能导致伺服在毫无预兆的情况下再次动作。4.2 完整样例正/反向限位与使能联锁下面给出一个在GX Works3里用结构化文本ST写的刷新样例地址按我上文示例来实际使用时请替换成自己项目里的映射地址。(* JET伺服限位信号PLC刷新样例 *) (* X0: 正限位开关常闭触点断开触发 *) (* X1: 反限位开关常闭触点断开触发 *) (* X2: 复位按钮按下清除锁存标志 *) (* M0: 伺服使能标志 *) (* 第1层限位触发锁存 *) IF NOT X0 THEN M500 : TRUE; (* 正限位触发标志 *) END_IF; IF NOT X1 THEN M501 : TRUE; (* 反限位触发标志 *) END_IF; (* 第2层复位逻辑 *) IF X2 THEN M500 : FALSE; M501 : FALSE; END_IF; (* 第3层控制字组合 *) (* 位0: 伺服ON由M0使能且无报警条件决定 *) (* 位1: 正转禁止 *) (* 位2: 反转禁止 *) MW10 : 16#0001; (* 先置位伺服ON *) IF M0 FALSE THEN MW10 : 16#0000; (* 使能未给伺服ON复位 *) END_IF; IF M500 TRUE THEN MW10 : MW10 OR 16#0002; (* 正限位触发置正转禁止 *) END_IF; IF M501 TRUE THEN MW10 : MW10 OR 16#0004; (* 反限位触发置反转禁止 *) END_IF; (* 写入伺服刷新区 *) U3G\G1000 : MW10;这段逻辑虽然短但包含了几个关键点。第一限位锁存标志一旦触发不会自动消失。第二即使伺服使能M0保持为ON只要限位标志为ON控制字里的正/反转禁止位就会一直保持有效伺服只能停止在当前状态。第三控制字每次都在同一扫描周期内整体写出去避免先写一个字节再写另一个字节时导致中间状态异常。如果项目里同时存在多个轴建议把这段逻辑封装成功能块FB输入参数为限位输入点、复位点、伺服使能标志输出为控制字然后在主程序里按轴分别调用。这样程序结构清晰后期加轴也不用大改。4.3 限位触发后的复位与再启动逻辑上面样例里复位通过X2按钮完成但这只是一个基础版本。实际项目中限位触发后的复位逻辑还要考虑报警联动伺服限位触发后如果伺服已经报了AL50或者其它报警光清除M500、M501还不够还需要往控制字里写“报警复位”位。否则伺服侧的报警状态不消除即使控制字已经允许正/反转伺服也不会响应你会看到一个“信号给了但轴不动”的怪现象。推荐的再启动时序是人工排除机械故障使限位开关恢复正常。在触摸屏或上位机上按下“故障复位”按钮。PLC程序先清除锁存标志M500/M501。延时200ms左右向控制字的报警复位位发送一个上升沿脉冲清除伺服报警。再次确认状态字里“报警”位已经为OFF“伺服就绪”位为ON。此时才允许新的伺服使能和运动指令。这个顺序不能乱。如果报警复位和限位标志清除同时发生伺服侧可能因为限位信号仍然有效而再次报警。我曾经遇到过现场操作工抱怨“复位按钮按了没用”后来发现是复位时序不对先清了报警位限位标志还锁存着伺服一上使能又被限位打下来。调整时序后问题就没再出现过。5. 刷新时序、去抖与安全边界5.1 PLC扫描周期与伺服通信周期的匹配PLC刷新不是瞬时的。信号从输入模块读取需要经过输入滤波时间、CPU扫描周期、通信刷新周期最后才到达伺服控制字。伺服侧收到控制字到驱动器内部执行又有一小段处理时间。这意味着从限位开关物理动作到伺服真正执行停止总延迟至少等于输入滤波时间 PLC扫描周期 通信刷新周期 伺服内部处理时间举个例子如果输入滤波设定为10msPLC扫描周期为10msCC-Link IE Field Basic刷新周期按典型值5ms算再加上伺服内的1~2ms总延迟轻轻松松超过25ms。JET伺服在3000r/min转速下25ms对应的运动距离是3000 / 60 × 0.025 1.25米/秒 × 0.025秒 31.25mm也就是说在高速运行情况下从限位触点动作到轴真正停下来轴已经多走了几十毫米。如果机械结构本身的缓冲行程不够就可能撞坏限位块或机械挡块。所以高速场合不能只依赖PLC刷新必须用硬接线限位或者使用快速响应输入。如果你的设备速度不高或者限位位置预留了足够的安全裕量PLC刷新的延迟可以接受。但在参数设置上要刻意优化PLC输入模块的滤波时间能设小就设小伺服参数里有些轴控制字可以缩短通信周期。这里要权衡滤波时间太短抗干扰能力下降通信周期太短网络负载升高需要按设备实际情况折中。5.2 限位开关抖动处理技巧机械限位开关触点接通或断开的瞬间会产生抖动直接后果是PLC输入点一会ON一会OFF。如果在程序里不处理限位触发标志可能被反复置位和清除或者被抖动的上升沿/下降沿误触发造成伺服在限位边界处反复启停。去抖的思路是在程序里增加时间滤波。比如用TON定时器让限位信号持续断开超过5ms才确认触发(* 正限位去抖X0断开持续T#5MS后置位 *) TON_1(IN : NOT X0, PT : T#5MS); IF TON_1.Q THEN M500 : TRUE; END_IF;去抖时间不能设得太长否则等于人为增加了限位响应延迟我是建议5ms到20ms之间比较合理。这个时间足以滤除机械触点的弹跳又不会明显拖慢限位响应。如果你用PNP/NPN传感器而不是机械开关抖动基本不存在去抖时间可以放得更短。另外复位按钮同样需要去抖。触摸屏或普通按钮的触点抖动会造成限位标志误复位可以在程序里对复位信号加一个上升沿检测后再执行清除操作比单纯用X2常开触点更安全。5.3 哪些信号绝不能依赖PLC刷新做PLC刷新设计时心里要有一条明确的安全红线。限位信号通过PLC刷新本质上是把安全保护功能建立在PLC和通信链路的正常运行之上。一旦PLC死机、通信线断、程序跑飞刷新也就停了。伺服侧的限位保护自然失效设备可能失去最后一道防线。所以我在任何项目里都坚持以下几个原则急停EMG信号必须硬接线到伺服驱动器的紧急停止输入端子或者通过安全继电器系统控制伺服主回路电源。急停信号永远不经过PLC程序刷新。如果设备速度高、惯量大硬限位应该直接接到伺服的CN3限位输入端子同时PLC侧再读一路同样的信号用于状态显示和程序联锁。这样做“硬保护软监视”双层保障。抱闸控制信号如果用于安全保持不能仅依赖PLC刷新。抱闸控制回路里至少有一个硬接线触点直接串在伺服使能回路中。这段说这么多就是希望你在抄样例程序的同时先评估自己设备的危险等级。PLC刷新适合作为程序逻辑控制层的一部分但不应替代硬接线安全保护。6. 现场调试中的故障案例与排查链路6.1 案例一限位动作后伺服没有停止这个故障是PLC刷新方案里最常见的。现象是限位开关已经碰到位机械上能听到微动开关“咔嗒”声PLC输入指示灯也亮了/灭了但伺服电机完全没有停下来的意思继续朝限位方向跑。排查第一步看PLC程序里锁存标志有没有置位。在GX Works3的“软元件/缓冲存储器批量监视”窗口里监控M500如果限位动作后M500还是FALSE说明问题出在输入处理这一层。常见的可能性包括输入滤波时间太长导致程序还没读到信号变化。限位开关用的是常开触点程序里却按常闭触点的逻辑写状态判断反了。限位开关信号被PLC输入模块的公共端接错导致一直检测不到。第二步如果M500已经置位看写入伺服的刷新区地址。监视U3G\G1000示例地址确认控制字里对应位确实变成了1。如果M500为TRUE但控制字没变化问题出在MOV指令的执行条件或者地址写错了。第三步如果控制字正确但伺服不停就要看伺服侧是否真的收到了信号。打开GX Works3的“伺服放大器监视”页面切换到输入信号监视画面看“正转禁止”或“反转禁止”有没有变绿。如果控制字已经置1但伺服这边没反应通常就是通信刷新周期还没到或者站号对应错了你刷到了别的从站。这种逐层排查的链路相当于把整个刷新路径分段验证哪一段断了哪一段就是问题所在。6.2 案例二伺服一直报限位报警无法复位另一个常见现象是限位信号已经恢复正常锁存标志也清了但伺服一直处于报警状态怎么复位都不行。查看报警代码大多是AL50过载或AL51过载警告或者跟限位相关的报警。这类问题往往不是单一原因。我处理过的一个典型案例是伺服内部参数PD01设置成了自动ON相当于告诉伺服“外部限位信号不用了”。但PLC程序里对应控制字的限位位在启动阶段一直是0伺服侧认为限位有效因此一上使能就报限位相关报警。程序里又没有报警复位逻辑伺服就一直锁死在报警状态。解决方法是在上电启动阶段PLC程序先把控制字里的限位位复位为正常状态再给伺服ON信号然后再输出运动指令。也就是要有明确的“上电初始化程序段”。另一个可能原因是通信建立前伺服放大器已经检测到限位信号有效导致报警被锁存。这种情况下需要在通信建立后发送一次报警复位脉冲才能清除。排查时建议先看伺服报警历史记录GX Works3的伺服监视页面上有报警发生时刻和报警次数记录可以帮助判断报警是不是在限位动作那一下触发并锁存的。6.3 排查链路清单与GX Works3监视技巧为了减少现场调试时间我把限位刷新故障的排查整理成一张清单按照顺序逐项排查序号检查项方法结果判断1PLC输入点状态输入模块LED或软元件监视X0/X1限位动作时状态必须翻转2锁存标志软元件监视M500/M501限位动作后应置位并保持3控制字写入值监视刷新区地址如U3G\G1000对应位应为1非04伺服侧输入信号伺服放大器监视→输入信号画面正/反转禁止信号应为ON5伺服报警状态伺服放大器监视→报警画面确认有无报警及报警代码6通信链路网络诊断页面从站状态应显示“正常”排查过程中GX Works3的“软元件批量监视”和“缓冲存储器批量监视”是最常用的两个工具。前者看PLC程序里软元件的值后者看通信映射区的实际值两者结合可以快速定位是程序逻辑问题还是通信映射问题。另外在伺服放大器的“输入输出信号监视”画面里能直接看到驱动器实际收到的每一个输入信号的电平状态这对判断“信号到底有没有到达伺服”有决定性帮助。很多时候PLC程序都对伺服却不动查一下这个画面就能发现是通信周期没到或者地址写错。7. 调试之外软限位与日常维护经验7.1 软限位与硬限位的搭配PLC刷新限位只是把物理开关信号送进伺服而设备定位控制里还有一层“软限位”可以做在PLC程序里。软限位的原理是通过通信周期从伺服状态字读取当前位置通过定位指令读取当前坐标在PLC程序里跟预先设定的坐标范围做比较一旦超范围就立即发送禁止信号或停止指令。软限位的优势是位置边界可以随时修改不用挪动物理开关适合工艺经常调整的设备。但它不是硬保护PLC程序错乱、坐标清零失误等情况下会失效。因此我的建议是把软限位当“第一道程序防线”PLC刷新的物理限位当“第二道通信防线”伺服端子直连的硬限位当“最后一道硬件防线”三层都接上才能应对大部分异常情况。7.2 防止“刷新”出问题的几个小习惯最后分享几个我做了多年JET伺服项目后形成的习惯虽然都是小事但关键时刻能省一大笔调试时间每次写完刷新程序先在手动模式下测试单个轴的限位触发确认伺服确实能停止再切换到自动模式跑工艺。不要跳过单轴测试直接整机联动否则出了事很难定位是哪个轴的问题。控制字的写入频率要和伺服使能配合。很多工程师习惯M0伺服使能一置位就写控制字但伺服从断电到使能有一个启动过程建议使能信号发出后延时50ms再输出运动指令。否则伺服可能来不及建立磁场一给正转指令就报错。定期做限位触发测试。设备长期使用后限位开关可能因机械磨损或松动而失效。在设备维保计划里加入“手动触发限位开关确认报警和停止功能正常”的项目成本极低收益明显。程序里不要用相同软元件做多轴复用。比如多个轴的锁存标志不能共用一个M500否则一个轴触发限位其它轴也跟着停。这个问题在复制粘贴程序段时特别容易犯。我在多个运动控制项目里验证过这套配置思路只要参数对、地址对、程序逻辑对PLC刷新的限位信号完全可以满足大多数设备的安全和功能需求。关键是把原理吃透不要照搬别人的地址也不要省掉上电初始化和报警复位这些看起来“多余”的步骤。照着这个流程走一遍你也能把JET伺服的限位刷新做得干净利落。
返回列表