拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

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

三菱JET伺服限位信号PLC刷新:从接线到程序实战详解

三菱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全部显示出来,就能坐在办公室远程看现场到底卡在哪一步,不用来回跑电柜。这个习惯我用了好几年,强烈建议你也试试。

返回列表