ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

FANUC机器人远程启动:RSR与PNS原理、配置与调试详解

2026/10/7 20:49:03 拓冰建站 浏览量
FANUC机器人远程启动:RSR与PNS原理、配置与调试详解 1. RSR 与 PNS 到底解决什么问题两条完全不同的远程启动路线1.1 从现场最常见的“机器人等人发信号”说起不管是新装的一条焊接工作站还是老线改造的上下料单元你一定会遇到一个场景机器人程序早就编好了工艺也验证过了但现场操作工不能每次跑过去按示教器上的启动键生产节拍也不允许这么干。于是PLC或者上位机必须能远程把机器人“叫起来”让它按指定流程干活。这时候FANUC机器人给出的标准答案就是两组功能RSR和PNS。很多刚接触FANUC的人会把RSR和PNS混在一起以为它们只是信号名字不同实际上这是两条完全不同的技术路线。RSR全称是Remote Start Request远程启动请求它强调的是“启动这个动作”PNS全称是Program Number Select程序号选择它强调的是“先选哪个程序再启动”。一个偏“按一下就干”一个偏“报个号再干”。用错场景或者配置不到位轻则程序不动作重则出现所谓的“乱启动”“跳程序”问题。在我做过的焊接、搬运、码垛项目里RSR和PNS都出现过。简单讲如果你的产线产品固定程序就两三个RSR是最省事的方案如果你的产线型号多、程序多或者需要和MES、视觉系统频繁切换工艺PNS几乎是唯一可靠的选择。这篇内容我会把两者的信号逻辑、配置流程、程序写法以及调试中真正踩过的坑都拆开讲适合正在做FANUC机器人集成、调试或者维护的朋友直接参考。1.2 RSR这种“一对一触发”到底爽在哪又坑在哪RSR的核心思想非常直接控制器提供若干个输入点比如RSR1、RSR2、RSR3一直到RSRn你把每个点和机器人里的一个程序绑定。PLC那边只要把对应的点置ON机器人就会立刻按绑定的程序跑起来。这种方式很像家里墙上的开关按下1号开关灯亮按下2号开关风扇转逻辑非常符合直觉。但这里有一个容易被忽略的细节RSR启动通常是以脉冲上升沿来触发的也就是说PLC给一个ON信号之后机器人控制器捕获到的是“从0变1”的那一个瞬间而不是这个信号持续多久。很多调试现场遇到过这类问题PLC程序里用一个线圈去驱动RSR机器人刚开始正常后来某一次莫名其妙连续启动了好几次。原因往往就是PLC扫描周期太快线圈反复通断或者机器人程序结束以后启动条件还保持着下一次上升沿又来了。RSR还有另一个限制就是程序数量受输入点数量限制。标准FANUC控制器上RSR一般只有8组左右你的控制器如果只配了几个输入点那最多也就选几个程序。产品超过10种RSR就不太够用了硬要加的话得扩展I/O模块成本反而上去了。所以在规划阶段我会先问工艺方一个问题“你们到底有多少种程序需要切换”超过8种我会直接建议上PNS。1.3 PNS这种“编码选号”为什么更符合现代产线习惯PNS的思路完全不同。它把多路输入信号组合成一个二进制编号比如PN1、PN2、PN3这些点按二进制权重组合能表示0到255之间的任意数。PLC要做的是什么是把当前要运行的工艺编号写到这几个点上然后给一个有效的启动信号。机器人收到编号之后会和内部的程序编号表比对匹配成功就运行对应程序匹配失败就不动。我在给一条汽车零部件装配线做改造时客户要求机器人根据不同车型切换作业一共有17个程序。如果用RSR至少得占用17个输入点而且PLC侧的程序会写得很啰嗦。用PNS之后5个PN位就搞定了PLC侧只需要把“车型代码1”转换成二进制写到位上程序清晰很多。PNS真正强大的一点在于“编号”和“启动”是分离的。PLC先把程序号送上确认无误再单独发启动信号。这样给了控制逻辑一个缓冲区可以在启动前检查安全条件、互锁条件、工件到位情况。并且机器人侧有PNS_ENBL这类使能信号负责告诉机器人“外部正在用程序号选择方式控制你”这个使能信号不到位后面给什么编号都不会启动。这种分层结构才是PNS在大规模产线上能站住脚的根本原因。2. 信号链路与握手关系从PLC到FANUC控制器的完整通道2.1 先搞懂UI、UO、DI、DO这几层概念做FANUC远程控制头一次看到I/O界面的人很容易被UI、UO、DI、DO、RI、RO这些缩写搞晕。简单说DI/DO是物理层或者总线层信号是你从PLC发过来、从机器人发回去的原始开关量UI/UO是控制器内部的功能信号是经过“加工”后真正参与控制逻辑的那一层。比如PLC发送一个启动命令信号经过总线进到机器人控制器先落到DI上再通过I/O映射关系对应到某个UI点。控制器真正判断“要不要启动”看的是UI状态而不是DI状态。所以你光看DI灯亮了不代表启动命令已经生效必须到UI界面确认对应点有没有被点亮。反过来机器人反馈给PLC的“正在运行”“程序完成”信号也是由UO映射到DO上PLC侧看到的DO才有意义。我在调试时遇到过一种情况总线通信建立正常DI灯已经亮着但机器人就是不动。查了很久才发现DI映射到UI那一步没配DI亮归亮主控根本不认这个点当启动信号。所以后续不管用什么品牌和型号我建议第一件事就是打开控制器的I/O映射表把UI/UO和DI/DO的关系理清楚再谈后面的时序问题。2.2 PNS及RSR涉及的核心信号角色FANUC远程启动方案里不管选PNS还是RSR都有几个绕不开的公共信号比如急停类、暂停类、伺服使能、故障复位、启动、使能等。这些信号的优先级是有严格顺序的急停永远最高其次是安全门、暂停、伺服状态最后才是启动和程序号。下面用一个表把PNS模式下最常见的信号角色列出来方便你对照信号角色方向作用注意事项UI[急停]PLC到机器人外部急停输入切断动力常闭回路设计断线也要能发现暂停/循环停止PLC到机器人暂停当前动作但不掉伺服恢复以后要继续动作需配合启动信号故障复位PLC到机器人清除已确认的报警给脉冲时间不能太短建议保持至少300msENBLPLC到机器人运行总使能允许机器人执行动作一旦掉电或断开机器人会立刻停下PNS_ENBLPLC到机器人PLC选择PNS方式时的总开关此信号OFF后面PN编号全部无效PN1-PNnPLC到机器人程序编号选择位二进制编码需注意每一位的映射关系STARTPLC到机器人最终启动触发信号用边沿触发稳定后再给BUSY/DONE机器人到PLC忙信号/完成信号PLC必须等DONE再发下一个编号需要说明的是不同控制器版本、不同系统画面里这些信号的编号不一定固定上面只是功能角色。真正的点位号必须打开你现场那台机器人的UI/UO分配表去看千万不要拿别人的配置直接套。2.3 “先使能、再编号、后启动”的时序原则PNS项目里PLC侧程序的核心逻辑就是一句话先使能、再编号、后启动。这句话看着简单但执行的时候很多工程人员栽在顺序上。标准时序大致是这样第一步机器人侧处于AUTOREMOTE状态并且外部安全条件满足ENBL信号保持ON第二步PLC把目标程序编号写到PN位并保持一段时间让机器人信号采样稳定第三步PLC给出START启动脉冲机器人开始运行第四步机器人运行完毕通过UO输出一个完成信号或者周期结束信号给PLCPLC再判断是否进入下一轮。这种“握手式”的交互可以最大限度避免因为信号抖动、扫描周期差异导致的问题。我见过最典型的错误是PLC把PN编号和START放在同一个网络里刷新结果机器人采样到的是“编号还在变化中的中间值”偶尔跑出错误程序。严格来说PN编号必须先于START至少一个PLC扫描周期建立如果条件允许我会在程序里加一个延时或者用置位复位指令保证启动信号不是和编号同时到达。3. 在FANUC控制器上开启RSR/PNS的完整配置流程3.1 开启前必须确认的硬件与选项条件不是所有FANUC机器人买回来都自带RSR/PNS功能这需要控制器安装相应的选项软件比如远程输入输出、外部启动控制、程序号选择等。如果选项没装菜单里压根找不到相关配置入口这种情况只能联系机器人供应商增加选项授权。除了软件选项硬件通信方式也要先定。老一点的生产线常见的是DeviceNet或者PROFIBUS新项目基本是PROFINET或者EtherNet/IP。无论哪种你都要先在机器人上把通信协议选项装好设置好设备名、IP地址、输入输出字节长度保证PLC和机器人之间总线通信状态正常。有一个判断技巧在FANUC的I/O监控界面里如果能看到来自PLC的DI点在变化就说明总线通信已经打通可以进入功能配置阶段。另外控制器上有一个关键的运行模式切换必须在示教器或者控制柜上把模式钥匙切到AUTO并且把“本地/远程”状态切到REMOTE。很多项目试机时机器人不响应远程启动最后查出来模式还在T1或者本地这种问题很基础但发生频率真的不低。3.2 PNS模式配置步骤从菜单进入到程序编号注册以R-30iB系列为例我习惯的配置路径是这样的在示教器上按MENU键进入“设置”或者“系统”相关菜单找到类似“程序号选择”或“远程启动”的界面。不同版本菜单叫法略有差异有的叫“程序编号”有的叫“程序选择启动”甚至有的藏在“应用”菜单下但核心设置项一致。进入之后把启动方式选为“PNS”也就是程序号选择。接下来要建立一个“程序编号表”给每一段TP程序分配一个编号。这里要特别强调编号不等于程序名程序名可以叫“WELD_CAR_A”但编号可能分配成5也可以分配成32完全看你表格怎么定。机器人收到PN位组合得到的数值后会按这个表去找对应的程序。然后回到“I/O”菜单在UI信号分配表里把PN编号相关的信号点映射到你实际使用的DI点。比如你规划用5个PN位那就要把PN1到PN5分别对应到DI[1]到DI[5]。做完之后一定要在界面里重新标定或者保存有些系统不重启不生效就先把控制器重启一次。最后做测试在PLC侧强制给PN位发一个编号比如10号回到机器人“程序选择”界面如果看到当前选中的程序名对应10号说明PNS配置成功。不要跳过这一步直接联调非常浪费时间。3.3 RSR模式配置步骤位号与程序绑定RSR的配置相对简单。同样在远程启动设置界面里把启动方式选为“RSR”然后会看到一个RSR编号与程序名的绑定表。你把RSR1和程序“LOAD_01”绑定RSR2和“LOAD_02”绑定以此类推。绑定完成后还需要确认启动触发方式。有的系统提供“脉冲启动”和“电平启动”两种选择我强烈建议用“脉冲启动”并且配合PLC侧的上升沿输出。因为电平启动意味着只要这个点保持ON机器人程序结束后可能再次被触发逻辑上很难控制。之后进行测试在PLC侧给RSR1一个100ms左右的脉冲机器人应该能立刻开始执行“LOAD_01”。如果没反应先看UI监视界面里对应RSR点是否有高低电平变化再看程序绑定是否冲突最后看安全信号是否截停了启动请求。3.4 关于“信号分配表”和“程序编号表”的备份习惯这算是我吃过亏之后的经验。FANUC控制器里的信号分配和程序编号配置是可以导出的一般在文件管理界面里能生成一个文本备份。很多工程师配好之后不备份结果某天电池没电、控制器主板更换参数全丢重新配置又得好几个小时。所以每次完成PNS或者RSR配置之后我会把程序编号表导出一份再配合PLC侧的注释文档一起放进项目交付资料里。这样过半年回头看数据库丢了、人员换了新人拿到资料也能快速恢复配置。4. 机器人侧TP程序的结构设计怎么配合远程信号形成闭环4.1 一个适合PNS模式的TP程序骨架选了PNS模式以后程序的高层调度其实是由控制器根据编号自动选择的你要做的是把每一段TP程序写成“可被远程启动”的结构。什么叫可被远程启动就是程序不能依赖示教器上的手动确认不能一打开就停下来等人按键所有条件都要从外部信号获得。以一个简单的搬运程序为例TP代码大体长这样1: ! 远程PNS启动入口 2: WAIT UI[7]ON ; 3: WAIT UI[6]ON ; 4: LBL[1] ; 5: R[1]0 ; 6: RO[1]ON ; ! 通知PLC已启动 7: CALL JOB:TAKE_PART ; 8: CALL JOB:PUT_PART ; 9: RO[1]OFF ; 10: RO[2]ON ; ! 完成信号给PLC 11: WAIT UI[6]OFF ; 12: RO[2]OFF ; 13: JMP LBL[1] ;这段代码里用到的UI和RO点位都只是示例实际要按照项目分配。重点在于程序开头等待启动条件执行完之后通过输出点告诉PLC“我做完了”然后程序不退出回到轮询状态等待下一个启动信号。这样做的好处是机器人始终在线PLC只要再次给启动脉冲它就能再次执行省去了一次次调用启动指令的麻烦。4.2 完成信号和忙信号的用法忌讳很多新手在写TP程序时习惯把“完成”信号做成一个普通输出程序跑完就置ON下次启动时再置OFF。这在简单动作里没问题但一旦和PNS编号切换混合使用就很容易出现“完成信号还没来得及被PLC读取程序又被下一次启动覆盖掉”的情况。我的做法是给PLC留一个“上升沿锁存窗口”。TP程序跑完把完成信号置ON并且保持一段时间比如通过延时指令或者等PLC回一个应答信号再复位。PLC侧只有在收到完成信号之后才会去切换下一轮的PNS编号。这样可以避免机器人动作快、PLC扫描周期慢造成的丢失信号问题。4.3 程序编号不存在时怎么处理PNS模式有一个让人头疼的场景PLC发来的编号是12但程序编号表里根本没有12号程序。控制器会报错拒绝运行机器人停在原地生产线也卡住。我见过有的现场因为这个原因至少停产半小时因为操作工只能去示教器上清报警。规避方法有两个层面。第一PLC侧强约束程序编号先查表确认存在才发启动第二机器人侧兜底无论如何PNS_ID号超过范围时触发报警处理程序里做一个“未知编号”的分支机器人回到HOME输出一个故障代码给PLC。就算做不到完全自动恢复也要让PLC和上位机能够明确知道“机器人拒绝了这个编号”而不是闷声不响。5. 真机调试中典型故障的排查链路5.1 现象一PNS使能正常、编号正确START也给了机器人就是纹丝不动这种问题在现场出现频率最高。我的排查顺序固定为模式开关、总线状态、信号映射、程序编号表、安全链信号。第一步看示教器左上角确认系统处于AUTOREMOTE状态第二步打开I/O监视看PLC过来的信号是不是真的到了UI点确认PN位和START信号都是ON第三步检查程序编号表里是否真的有这个编号第四步也是最容易忽略的检查安全电路。很多时候外部急停、安全门、双手按钮这些信号并没有真正满足机器人控制器接收到START请求也会直接忽略因为运行许可被安全链锁住了。启动类报警如果出现比如有些R-30iB上会冒出SYST-212这类系统报警多半都和启动条件时序或者安全链上的信号冲突有关。做这一步排查时我的建议是先看系统报警日志而不是反复去按启动键报警日志会给出一条明确的原因比如“没有运行许可”“外部急停被按下”“程序号未注册”对照日志去查比盲目试快得多。5.2 现象二机器人启动后执行的是上一个程序或者程序号发生跳号这种现象十有八九出在PLC侧的程序编号输出时序上。PNS的PN位是二进制编码如果PLC在给出START的同时仍然在修改PN位或者START信号比PN位早建立了半个扫描周期机器人采样到的就可能是一个中间值。解决办法是让编号先稳定再启动。PLC程序里用中间变量暂存目标编号先把这个中间变量移动到PN输出区等一两个扫描周期后再触发START。如果还是不稳定可以给PN输出加一个“保持/锁存”指令直到机器人反馈BUSY信号后再允许修改编号。我还在一个项目里碰到过PN位本身接线松动的情况机器人偶尔收到错误编号查了几天最后是拧紧端子排上的螺丝解决的。所以排查的时候别只盯程序物理接线和端子松动也要纳入检查清单。5.3 现象三RSR启动后程序只跑了一半就停了RSR模式下比较典型的问题是触发信号和保持信号处理不当。程序启动之后如果把RSR输入点断开控制器在某些配置下会认为外部启动请求被取消进而暂停当前程序。解决办法是在PLC侧把RSR启动设计成“短脉冲内部锁存”程序启动后即使外部点断开机器人也靠内部运行状态继续执行。另一种可能就是暂停信号或者循环停止信号被误触发。有的PLC程序在切断输出时扫描周期的瞬间会给暂停、急停这类常闭信号一个扰动导致机器人收到一个假的暂停指令。建议在PLC侧把这些安全等级高的信号做滤波处理或者用继电器隔离重新驱动避免信号毛刺直接进控制器。5.4 排查工具怎么用才高效FANUC控制器自带的I/O监视和信号状态追踪是我用得最多的工具。除了看UI/UO状态还能看数字量的脉冲趋势配合系统报警日志基本能定位大部分远程启动问题。如果现场条件允许我还会用在线监控软件同时抓PLC侧和机器人侧的信号状态。两边对照看同一个启动命令从PLC发出到机器人接收之间花了多久哪个环节信号丢失或者被延迟了。这个方法虽然费点时间但能一锤定音。6. 如何根据实际场景选型以及我个人的一些取舍建议6.1 RSR还是PNS一张表看懂主要区别对比维度RSRPNS程序选择方式一路输入对应一个程序多路输入组合成编号程序数量上限一般8个左右最多可到255个启动时序复杂度简单脉冲即启动需要“编号先到启动后发”PLC程序编写量小中等但注意时序扩展能力弱加程序就要加输入点强程序增加基本不用加硬件适用场景固定工艺、少程序、快速交付项目多型号切换、需要上层排产、和MES联动可以明显看出RSR适合的是“固化工艺”的项目。比如一条焊接工作站就焊A、B两种工件动作流程固定RSR就是最佳选择。你要是非上PNS也完全没问题但可能属于把简单问题复杂化了。PNS适合的是“程序本身会经常变、型号多、换型频繁”的项目。比如汽车焊装线、家电装配线同一个工作站在不同时间要干不同活PLC根据车身颜色或者订单号自动选择工艺程序这种情况下PNS才是顺手的工具。6.2 多台机器人联动的编号规划如果一条产线有多台FANUC机器人每台都有PNS那么编号规划也要提前设计。我的经验是给每台机器人分配一个独立的编号段比如1号机器人用1到502号机器人用51到100。PLC侧再做一个“机器人编号程序编号”的映射表统一管理。这个方案的好处是MES或者上位的排产系统只需要维护一张总表不用关心每台机器人内部的编号规则。曾经有个客户在后期加了一台机器人因为原来没有预留编号段结果新机器人只能挤在同一个段里程序编号经常冲突后来只好花时间全部重排。所以哪怕前期程序不多也建议按段预留缓存空间。6.3 与视觉系统、输送线配合时的额外提醒视觉引导场景下视觉相机往往会给一个“工件类型”结果PLC再把结果转成PNS编号。这里容易出问题的是视觉结果刷新时间和PNS编号刷新时间不同步。视觉输出还在更新PLC就把启动信号发出去了机器人自然可能选错程序。我的做法是在PLC里增加一个“结果稳定”标志视觉结果连续三帧相同才认为有效然后把稳定后的编号写到PN位。这也是为什么我会在上面的时序原则里强调编号先稳定再给启动信号。这个原则在视觉配合的场景里尤其重要。另外输送线体上的到位传感器会触发PLC给机器人发启动信号。如果传感器抖动或者光电开关被工件反光干扰就可能连续触发多个启动信号。此时机器人可能刚干完一个循环又立刻进入下一个循环产品没来得及被带走。建议在PLC里做一个“防抖计时”和“完成确认”逻辑等机器人反馈完成信号之后再接受下一次到位信号。6.4 我个人的习惯宁可多写几行逻辑也绝不省安全信号最后说说我的选型习惯。RSR和PNS本身没有绝对的优劣真正决定项目好坏的往往是握手逻辑细节。我做PNS项目时每一个启动周期都会要求PLC满足完整的信号时序ENBL保持ON、PN编号建立至少100ms以上、START脉冲稳定送到、BUSY反馈正常、DONE确认到位。这五步缺一步我都不会让产线进入自动循环哪怕前期调试时多花半天反复验证也绝对不在安全隐患上妥协。因为在自动化产线上机器人不启动有时候只是损失节拍但乱启动、错启动可能直接造成撞机或者人员伤害。远程启动功能越是方便越要把安全锁做扎实这是我做这么多年集成项目最深的体会。