三菱JET伺服限位信号PLC刷新:从接线到程序实战详解 搞自动化设备调试的朋友十有八九都遇到过这种场景伺服电机装好了GX Works3程序下载完毕按下启动按钮电机“嗡”地一声冲出去直接顶到机械限位上电柜里报警声大作。如果限位信号还是从伺服侧直接接的硬线那你只能先断电再手动盘车如果把限位信号交给PLC来处理情况会好很多——这也是今天这篇“三菱JET伺服限位信号PLC刷新”要聊的核心玩法。这篇文章适合正在做三菱PLC加JET伺服项目、被限位处理搞到头大的朋友也适合刚入门运动控制、想搞清楚硬限位和软限位区别的新手。我会把思路、接线、GX Works3配置、样例程序、现场排查一次讲透保证你照着能落地不绕弯子。1. 先搞懂JET伺服限位信号和“PLC刷新”的关系1.1 限位信号到底在保护什么伺服系统的限位信号表面上是保护机械行程实际上是保护三样东西机械结构、伺服驱动器、人和设备。机械限位挡块是最后一道物理屏障但光靠挡块不够如果伺服带着负载硬撞上去要么同步带崩齿要么丝杠顶弯严重的时候连电机轴都会扭伤。所以电气上的限位信号必须比机械挡块先动作。JET伺服三菱MR-JET系列和它的大哥J4一样驱动器本体上预留了正转行程末端LSP和反转行程末端LSN两个专用输入端子。这两个端子默认按常闭接入意思是正常运行时信号一直保持导通一旦对应的限位开关被撞断驱动器立刻禁止该方向的运行。这种“断线也保护”的设计是日本伺服一贯的fail-safe思路值得保留。但问题来了直接接驱动器的硬限位只能做最简单的“切断运行方向”动作没法做软限位、没法做触发后保持、没法跟触摸屏联动、也没法在报警复位后控制电机反向退出限位区。这些功能必须交给PLC来做。1.2 硬限位、软限位和PLC刷新我习惯把限位处理分成三个层级硬限位、软限位、PLC刷新。硬限位就是限位开关直接接伺服驱动器的LSP/LSN端子响应最快不依赖PLC扫描周期适用于紧急情况下的最终保护。软限位则是在PLC程序里设定一个位置范围通过高速计数器读取当前实际位置当位置值越过设定边界时PLC切断运行指令。软限位的好处是调整方便不需要挪物理开关多用于正常生产中的行程管理。“PLC刷新”这个词准确理解应该是PLC在每个扫描周期里采集限位开关状态、当前位置值等信号经过程序逻辑判断后实时更新输出到伺服侧的限位信号、以及PLC内部的运行许可标志。也就是说伺服能不能动、往哪个方向动不完全由硬接线决定而是由PLC程序每一圈扫描后“刷新”出的结果来决定。举个最直观的例子普通硬限位触发后你想让电机反方向退出限位区光靠硬接线是做不到的因为LSN还通着反转还能走。但如果你程序里把正限位触发标志做得太粗暴直接把两个方向的运行都封死那设备就卡死在限位区了。正确的PLC刷新逻辑应该是正限位触发后只禁止正方向运行反方向仍然允许这样才能让操作员安全地把机构退回来。1.3 什么时候必须靠PLC做限位刷新有一种情况是纯硬限位完全搞不定的多工位、多轴联动、或者带不同工艺模式的设备。比如同一台设备有手动调试模式、半自动模式、全自动模式每种模式下允许的行程范围不一样如果用物理限位开关你得装好几组开关。而用PLC软限位加刷新逻辑只需要在程序里根据模式切换限位值就行。再比如设备里有夹爪、旋转台、变位机这些协同动作限位触发后不只是停伺服还要通知上位机、切断气缸、把报警状态推送到触摸屏。这些联动动作只有PLC能完成。JET伺服的定位控制如果走PLC发脉冲的方式限位信号更是必须进PLC否则程序根本不知道限位已经触发还会继续发脉冲最后撞出47.2这类位置偏差报警。2. 方案选型与硬件接线规划2.1 三种接入方案怎么选做项目前先把限位接入方案定下来别到现场再改。我按实际工程中常见的选择列一个对比方案限位开关接哪响应速度灵活性适用场景A. 纯硬接直接接伺服LSP/LSN最快最低简单单轴、紧急保护B. PLC刷新接PLC输入程序处理后输出给伺服受扫描周期影响高多模式、联动、需复位退出C. 硬接PLC双保险开关分线一路进伺服一路进PLC快且稳高大多数正式设备推荐方案C是我最推荐的。分线接法看起来多两根线但可靠性完全不一样即使PLC死机、程序跑飞、通讯断开伺服侧的硬限位仍然在保护设备。反过来如果只做硬接程序里的安全互锁就少了信息来源。两条腿走路才是运动控制该有的姿态。不过分线要注意一点限位开关的容量能不能同时驱动PLC输入端和伺服输入端。一般机械式限位开关或接近开关都没问题但如果用的是弱信号型传感器最好加中间继电器扩展而不是直接并线。现场见过不少因为并线后电压被拉低导致信号不稳的案例。2.2 JET伺服侧需要准备的信号JET伺服的CN1连接器上与限位控制直接相关的信号至少有这几个LSP正转行程末端、LSN反转行程末端、SON伺服开启、EMG急停。具体引脚号在不同功率段会有差异接线前一定以对应型号的手册CN1分配表为准别拿J4的图纸直接套JET吃过这个亏的人不少。接线注意几点JET的LSP/LSN输入公共端要接到24V电源信号端通过限位开关接到对应的LSP/LSN引脚。正常运行时LSP和LSN必须都是导通状态伺服才允许正反两个方向运行哪个方向被断开那个方向就被禁止。SON信号同理伺服使能时要求SON端为ON这个信号建议由PLC输出点控制方便程序里做逻辑联锁。EMG急停信号同样重要它是常闭输入急停回路断开时伺服紧急停止。很多项目把急停回路直接串在电源线上导致整柜断电我建议急停信号同时进PLC输入让程序能识别急停状态便于故障记录和复位管理。2.3 PLC输入输出点分配原则限位开关进PLC的输入点建议用高速输入或者带中断功能的输入点比如FX5U的X0、X1、X2这些。原因很简单普通输入点默认带10ms左右的数字滤波限位信号本身又是毫秒级动作滤波一叠加PLC刷新的延迟可能超过20ms。对于快速运行的轴20ms已经能跑很长一段距离了。分配原则我总结成三条第一正负限位必须分开用独立输入点不能两个开关串成一个点否则程序分不清是哪个方向限位。第二限位输入点在程序里要做自保持不能让开关抖动导致限位标志闪烁。第三留一个复位按钮输入点专门用于限位触发后的报警复位。输出点方面如果采用PLC刷新方式把限位状态送给伺服通常需要两个输出点分别对应LSP和LSN。这里有个容易踩的坑正常运行时这两个输出点必须保持ON所以程序初始化阶段就要把这两个点置为ON不能等运行条件满足才输出。不然一上电伺服就报限位错误连使能都做不了。3. GX Works3配置详解3.1 新建工程与CPU型号选择GX Works3和旧版GX Works2不一样新建工程时就要选PLC系列和具体CPU型号。拿FX5U来说打开软件后选择“工程”菜单里的“新建工程”PLC系列选“FX5U”CPU类型按实际硬件选比如FX5U-32MT/ES程序语言选“梯形图”。如果用的Q系列或L系列配合JET伺服步骤类似只是模块参数的位置略有差别。这里提醒一句GX Works3不同版本对CPU固件有要求遇到下载后模块无法识别、参数写入失败先看软件版本和PLC固件版本是否匹配。工程里的“模块”导航能直接看到CPU固件版本对比一下再继续排查。新建工程后建议第一时间把标签命名做起来。GX Works3支持全局标签把X0、Y0这些软元件定义成语义化名字比如“X0”定义为“正限位开关”“Y10”定义为“伺服LSP输出”后边写程序和查问题都省事得多。我见过太多程序全用裸地址三个月后自己都看不懂。3.2 定位参数里把限位信号指定给哪一路如果走FX5U内置定位功能比如用DDRVI指令发脉冲定位参数就藏在“模块参数”里。点开工程导航栏的“模块参数”找到“高速I/O/定位”进入“定位”配置画面可以看到每个轴Axis1到Axis4的参数设置页。在轴的“基本参数”或“外部信号”配置里有三项和限位相关的内容要看仔细正转限位输入号、反转限位输入号、限位信号有效无效切换。把正限位指定到我们实际接线的输入点比如X0负限位指定到X1然后确认限位信号的功能是“有效”。这样设置之后FX5U内置定位指令在运行过程中如果检测到对应输入点变化会自动触发定位停止逻辑比纯靠程序里串联触点可靠得多。GX Works3里这个配置画面的具体名称不同版本略有差异有的叫“行程末端”有的叫“外部输入信号”但核心选项就是“正限位”“负限位”两个下拉列表。保守做法是先把输入点指定好编译下载后看“定位监视”画面确认每轴的限位状态能正常翻转。3.3 高速计数器与软限位值设定做软限位必须知道当前位置。两种常见做法一种是用伺服驱动器的位置反馈输出把编码器A/B相脉冲送到PLC的高速计数器另一种是外接光栅尺或编码器直接反馈机械位置。无论哪种都要在GX Works3的高速I/O配置里把对应计数器通道使能。以FX5U为例C235、C236这些高速计数器可以配置A/B相计数模式。参数里要设置计数倍频1倍频、2倍频、4倍频这直接影响软限位精度。比如电机转一圈编码器产生10000脉冲经过4倍频后每圈就是40000计数软限位设定的分辨率就更高。但要注意计数频率上限别超过高速计数器的硬件限制。软限位值本身存放在数据寄存器里比如D100存正限位坐标D101存负限位坐标。程序里每个扫描周期用比较指令把当前计数值跟D100、D101比较一旦超限就置位软限位标志。这样调整限位范围时只需要改触摸屏上的数值不用动程序现场调试方便得不是一点半点。3.4 编译下载与在线监视配置完成后执行“编译”和“全部编译”确认没有错误和警告。GX Works3的编译信息窗口会列出未定义标签、参数越界这类问题别无视警告直接下载很多现场怪毛病都是参数警告堆出来的。下载到PLC之前我习惯先把伺服使能输出点Y2、限位刷新输出点Y10、Y11的初始状态在程序里处理好确保下载瞬间不会让伺服乱动。具体做法是程序一开始就用初始化脉冲把Y10、Y11置ON除非项目要求上电先急停。下载完成后切到在线监视模式强制修改X0、X1的输入状态看限位标志能否正确翻转。这一步叫“空跑信号测试”花了十分钟能省到现场后的两个小时。4. 样例程序设计与实现4.1 程序整体架构和扫描思路限位刷新程序我习惯分成几个功能块限位信号采集、限位标志保持、伺服限位输出刷新、定位启动互锁、复位处理。这种分块写法看着啰嗦但调试时非常清晰哪一块出问题直接定位。扫描思路要明确一点PLC是循环扫描执行的限位信号从发生到程序响应必然存在一个扫描周期的延迟。常规PLC扫描周期在几毫秒到十几毫秒对于低速轴可以接受但对于高速运行的轴这个延迟可能让设备在触发限位后再移动一小段距离。所以程序架构上限位刷新逻辑要尽可能放在扫描周期的前部并且使用中断输入处理紧急情况不能把所有东西都堆在主程序最后。下面我给出一个基于FX5U的简化样例核心逻辑都标注了软元件含义。实际项目里你还需要加上急停、原点回归、报警分类这些外围逻辑。4.2 限位采集与自保持逻辑先看输入采集部分。X0接正限位开关X1接负限位开关X2是复位按钮M100是正限位触发标志M101是负限位触发标志。[网络1] 正限位触发保持 LD X0 // 正限位开关动作 OR M100 // 或者已经处于正限位保持状态 ANI X2 // 复位按钮未按下 OUT M100 // 正限位标志置位[网络2] 负限位触发保持 LD X1 OR M101 ANI X2 OUT M101这个自保持结构是限位处理的核心。限位开关本身可能是瞬时的比如撞了一下马上弹回来如果不做保持程序不一定能捕捉到。通过M100、M101自保持即使开关只断开几毫秒PLC也能“记住”限位曾经触发过直到操作员按下复位按钮才清除。4.3 限位刷新输出和定位启动互锁有了限位标志之后接下来就要刷新输出到伺服侧的限位信号。假设Y10接伺服LSP端子Y11接伺服LSN端子这两个输出在正常状态下必须为ON。[网络3] 伺服正限位输出刷新 LD M0 // 系统运行正常无急停、无报警 ANI M100 // 正限位未触发 OUT Y10 // 刷新给伺服LSP[网络4] 伺服负限位输出刷新 LD M0 ANI M101 OUT Y11这段程序的含义很直白系统正常且正限位没触发LSP信号就是ON伺服允许正转一旦正限位触发Y10变成OFF伺服立刻禁止正转。负限位同理。这种刷新方式比直接给Y10贴上“常ON”标签要安全得多因为急停、报警、限位任何一关没过伺服都动不了。定位启动互锁的逻辑也一样简单。无论使用DDRVI、DRVI还是PLSY指令都要在指令的执行条件中串联限位标志的常闭触点。[网络5] 定位启动条件 LD X10 // 启动按钮 ANI M100 // 正限位未触发 ANI M101 // 负限位未触发 SET M200 // 定位启动标志这里有一个细节要特别注意互锁条件必须串在定位指令前面而不是只串在输出点前面。很多新手只在前面的输出互锁里做了限位判断忽略了定位指令本身结果就是伺服输出被切断了但PLC还认为“定位运行中”导致后续控制逻辑全乱套。4.4 限位触发后的复位与反向退出流程限位触发后不能一锁了之必须给现场操作人员留退路。我的做法是正限位触发后只禁止正方向启动反方向点动仍然允许负限位触发后只禁止负方向启动。这样操作员按住反方向点动按钮就能把机构从限位区安全退出。程序上可以这样实现[网络6] 正转点动条件 LD X3 // 正转点动按钮 ANI M100 // 正限位未触发时允许正转 OUT Y0 // 正转脉冲输出或置位正转标志[网络7] 反转点动条件 LD X4 // 反转点动按钮 ANI M101 OUT Y1有人会问正限位触发时如果操作员误按了反转方向按钮会不会出问题不会因为反转方向上还有负限位保护而且物理上正限位和负限位不会同时被撞到。所以这种“只禁同向、允许反向”的逻辑是安全且实用的。复位流程还要考虑一种情况限位触发后如果伺服已经停在限位开关上直接按复位按钮清除M100伺服又会获得正方向运行许可但此时机构还在限位位置上一启动又会撞限位。所以完整的复位逻辑应该是按下复位按钮后先清掉限位标志同时强制方向选择为反向让操作员只能往安全方向退出。这个细节在设备验收时经常被检查方追问提前做好能省很多解释功夫。5. 现场常见问题与排查实录5.1 上电伺服没法使能多半卡在限位现场最常见的现象PLC程序跑得好好的触摸屏也没有报警但伺服就是不能使能一按启动就报限位错误。十有八九是限位相关信号在上电瞬间的状态不对。排查顺序我建议这样走先看伺服驱动器面板有没有提示LSP或LSN异常。如果有用万用表量伺服端子的LSP、LSN对公共端电压确认是否正常导通。然后再看PLC里Y10、Y11的输出状态如果程序正常正常状态下这两个点应该是有输出的。最后检查PLC输入点X0、X1的指示灯看限位开关的常闭/常开逻辑是否接反了。有一种隐蔽情况程序下载后首次运行时Y10、Y11还没被置ON伺服上电检测到限位信号为OFF直接报限位错误并锁定。解决方法是把Y10、Y11的初始置位逻辑放在程序最前端用初始化脉冲M0或者PLC首次扫描标志来置位保证伺服上电前这些信号已经是ON状态。5.2 限位偶发误动作先查干扰和滤波运行一段时间后偶尔报一次正限位触发去现场看机械位置又离限位开关很远这种情况不用急着怀疑程序先考虑干扰和滤波。JET伺服和PLC之间距离长的话限位信号线一定要用屏蔽双绞线屏蔽层单端接地不能两端都接否则会形成地环路。PLC输入端的公共端和传感器电源的0V要正确连接最好从同一个开关电源取电避免两个电源之间存在电位差。输入滤波时间在GX Works3的CPU参数里可以调整我一般设在5毫秒到10毫秒之间既能滤掉大部分干扰脉冲也不会明显增加延迟。还遇到过一种情况限位开关本体在机械振动下抖动导致瞬间通断。这种情况程序里的自保持逻辑能扛住但如果PLC扫描周期碰巧在开关断开的瞬间读取输入就会误触发。此时输入滤波和硬件选型是主要解决手段抖动严重的话考虑换用带滚轮臂的机械限位开关或接近开关。5.3 位置偏差报警 47.2 和限位刷新的关系三菱JET/J4系列伺服报警47.2通常和位置跟踪偏差过大有关。做脉冲控制时如果限位已经触发但PLC还继续向伺服发脉冲伺服端收到的位置指令和实际位置之间的偏差会越积越大最后触发47.2报警。这个问题的根源往往不是伺服的增益没调好而是限位刷新逻辑没有真正切断脉冲输出。比如有人在程序中只把限位标志串在方向输出上忘记串在脉冲输出指令使能端那脉冲还是会继续发。再比如定位指令执行过程中限位标志被置位后程序下一次扫描才生效中间这几十毫秒内PLC可能已经把整段脉冲发完了。解决办法有两个层面。程序层面定位指令的执行条件必须同时串入限位标志和使能标志并且优先使用定位模块的硬件限位停止功能让限位信号直接参与定位控制器的停止逻辑。参数层面如果机械完成动作时间比较长可以在伺服驱动器参数里适当放宽位置偏差容许值但这只是缓解不能根治根本还是要把限位刷新逻辑做对。5.4 回原点直接撞限位怎么处理回原点的过程如果方向选错电机会先撞上限位这是新手很容易踩的坑。正常的回原点流程应该是先以慢速朝原点方向移动碰到原点接近开关后停止然后根据回原点方向进行脱开动作最终停在原点的精确位置。如果在回原点过程中先碰到了限位程序必须能识别“回原点方向异常”并自动反转。我这里推荐的做法是回原点启动前先检测当前是否处于限位状态。如果正限位已经触发就先把回原点方向定为反向等脱离正限位后再按正常流程找原点。如果两个方向都没有限位触发再按参数设定的方向开始回原点。实际调试时回原点的速度设置也要注意。原点搜索速度太快碰到原点开关后由于惯性刹不住车会冲过头撞上另一端的限位。解决方案是把回原点分成两段速度先高速接近原点区域检测到原点开关的上升沿或下降沿后切换为爬行速度再进行脱开处理。这样既保证效率又避免冲限位。5.5 限位相关故障排查速查表为了现场方便我把限位相关的常见问题整理成一张速查表打印出来贴电柜门上都行。现象可能原因排查步骤处理办法上电后伺服无法使能LSP/LSN初始为OFF量伺服端子电压、看PLC输出状态程序初始化置位Y10/Y11确认限位开关常闭接线正限位触发后还能继续前进程序只刷新了输出没切断定位指令检查定位指令使能端是否串入限位标志执行条件串联M100/M101常闭触点限位触发后反方向也无法运行程序把两个方向都封锁了查看正转/反转点动条件只封同向允许反向退出偶尔误报限位干扰、滤波时间太短、开关抖动检查屏蔽接地、输入滤波设置滤波设为5-10ms改进布线换硬件或调整开关安装回原点撞限位回原点方向错误、速度过快观察回原点过程运动方向增加限位优先处理逻辑采用两段速回原点报警47.2限位触发后仍在发脉冲查看程序是否实时切断脉冲输出完善限位互锁检查伺服位置偏差参数我最后再提醒一个细节限位刷新程序写好后一定要做“信号降级测试”就是断线、拔插头、强制信号翻转都模拟一遍确认设备都能进入保护状态。这套动作现场验收经常会被安全评审人员抽查平时多测一次就能避免验收时手忙脚乱。我个人在实际项目里最喜欢用C方案也就是硬限位加PLC刷新双保险虽然前面多花半小时接线和写程序但后面调试和售后省下的时间远不止这些。再加上一条小经验开发期间在触摸屏上放一页“限位状态监视”把X0、X1、M100、M101、Y10、Y11全部显示出来就能坐在办公室远程看现场到底卡在哪一步不用来回跑电柜。这个习惯我用了好几年强烈建议你也试试。