news 2026/10/28 2:07:41

ABB机器人组合信号GO/GI配置与避坑指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ABB机器人组合信号GO/GI配置与避坑指南

简介:这份PDF文档面向ABB机器人编程与自动化调试人员,聚焦组合信号GO/GI这一常被忽视却高频使用的通信方式,帮助解决DO/DI、AO/AI在处理多路信号时程序臃肿、顺序输出易被PLC误判的问题。文档从三种信号类型切入,讲解组合输入输出的概念,并以组输出GO为例完整演示Signal配置流程:命名、选择Group Output类型、匹配IO单元、按地址连续与否填写Device Mapping(如1-3或1,4,6),以及重启生效等关键环节。同时结合二进制位序详细说明GO赋值计算方法,并延伸至GI的配置与解码思路,配有取料完成、物料选择等PLC交互场景示例。资源包共1个PDF文件,大小约1.16MB,轻量便携,适合现场查阅。已有929人学习,可作为机器人工程师处理多信号交互、优化程序结构的实用参考手册。

1. 组合信号不是“高级功能”,是 IO 通讯的止损手段

产线上最容易被忽略的翻车点,往往不是运动指令写错,而是 IO 时序对不上。ABB 机器人跟 PLC 走硬线通讯时,如果你用SetDO一条一条地给 DO1、DO2、DO3 赋值,PLC 那边扫描周期稍微快一点,就会读到“半截状态”——DO1 已经置 1、DO3 还没跟上,于是判定成另一个工位号,动作直接跑偏。这类问题排查起来极其玄学,因为单看机器人程序逻辑没错,单看 PLC 梯形图也没错,错的是两条指令之间的那几毫秒。

组合信号 GO/GI 就是为这个场景准备的。它把 2 个以上的数字量输入或输出打包成一个整型信号,机器人侧一次赋值、PLC 侧一次读取,中间不再有“顺序给信号”的窗口期。这份《ABB 组合信号应用说明》文档把 GO/GI 的配置路径、地址映射规则和二进制取值算法讲得比较完整,适合正在做机器人- PLC 硬线握手、又不想上现场总线的手上项目。下面按“先搞懂它怎么算、再动手配、最后避坑”的顺序拆一遍,参数和地址规则都能直接抄。

2. 组合信号的二进制账:GO/GI 到底怎么算值

2.1 为什么顺序 SetDO 会被 PLC 误判

先把这个前提说透,不然配置步骤背下来也没用。机器人执行SetDO DO1,1; SetDO DO2,0; SetDO DO3,1;这三行,中间隔着指令解析和 IO 刷新周期,PLC 的输入模块是在自己的扫描周期里采样的。假设 PLC 扫描周期 5ms、机器人两条 SetDO 之间隔了 8ms,那 PLC 完全可能采到DO1=1, DO2=0, DO3=0这个中间态。如果这个中间态恰好对应“取 2 号物料”的编码,PLC 就会发错指令。

组合信号的做法是把 DO1-DO3 映射成一个 GO 变量,机器人执行SetGO GO1,5时,底层是一次性把三个物理输出刷新到位,PLC 读到的要么是旧值、要么是新值,不存在中间组合。这就是它解决“信号不是同时给”的本质——不是靠程序写得快,而是靠映射机制把多个位合并成一次写操作。

2.2 二进制取值算法与地址位序的对应关系

文档里给的算法是“需要第几位就拿 2 的幂相加”,这句话要落到地址上才不出错。关键点在于:GO 的值是按 Device Mapping 里地址的排列顺序来定位的,不是按 DO 编号本身。

以连续地址1-3映射 DO1、DO2、DO3 为例,映射顺序是 DO1 在第 0 位、DO2 在第 1 位、DO3 在第 2 位,那么:

目标状态二进制十进制 GO 值说明
DO1=1, DO2=0, DO3=00011只置最低位
DO1=0, DO2=1, DO3=00102只置第 1 位
DO1=1, DO2=0, DO3=11015第 0 位 + 第 2 位
DO1=1, DO2=1, DO3=11117全置位

而文档里那个非连续地址的例子1,4,6映射 DO1、DO4、DO6,映射顺序变成 DO1 在第 0 位、DO4 在第 1 位、DO6 在第 2 位。此时给 GO1 写 5(二进制 101),置位的是第 0 位和第 2 位,也就是 DO1 和 DO6,DO4 保持 0。这跟连续地址下写 5 的结果完全不同——同样是 5,落到哪几个物理点上,取决于映射表里地址的排列,不取决于 DO 编号的数字大小。

提示:算 GO 值之前先把 Device Mapping 那一栏的地址顺序抄在纸上,按“第几个地址”而不是“DO 几号”去对 2 的幂,能省掉大半调试时间。

2.3 GI 的反向解码:PLC 给值,机器人读位

GI 的配置和 GO 对称,区别在数据流向。PLC 把 DI1、DI2、DI3 的组合写成一个整数送到机器人,机器人侧读GI1的值,再用位运算或直接比较来分支。比如 PLC 约定GI1=3表示“请求取 1 号物料”(二进制 011,DI1=1、DI2=1、DI3=0),机器人程序里就写IF GI1=3 THEN走对应分支。

这里有个容易忽略的点:GI 读到的值是“当前所有映射位的组合”,不是“变化沿”。所以机器人程序不能靠WaitGI GI1=3去等一个瞬时脉冲,得确认 PLC 侧这个值会保持到机器人应答为止,否则会出现机器人还在判断、PLC 已经把值改回 0 的竞态。常见做法是 PLC 置值后等机器人回一个 DO 应答位,再撤值,握手逻辑比单纯等 GI 稳。

3. 配置 GO/GI 的实操路径:从 Signal 界面到重启生效

3.1 新建组信号与 Type of Signal 的选择

配置入口在机器人控制器的 Signal 配置界面,点“添加”新建一条信号。Name 按项目命名规范来,比如GO1_LoadDone、GI1_MaterialReq,别图省事只写 GO1,后期信号一多根本对不上号。

Type of Signal 这一栏是分水岭:选Group Output得到 GO,选Group Input得到 GI。选错类型不会报错,但后续 Device Mapping 的地址校验方向会反,表现为配置能保存、运行时值对不上,属于典型的“配置看着没问题、现场就是不动”的坑。Assigned to Device 必须选跟你要绑定的那组 DO/DI 相同的 IO 单元,跨单元映射在多数控制器版本上不被支持,硬配也会在重启后失效。

3.2 Device Mapping 地址填写:连续用区间,离散用逗号

地址填写是整份文档里最容易翻车的一步,规则本身不复杂,但和实际 DO 地址对不上就全盘皆输。

连续地址写法: DO1 地址 1、DO2 地址 2、DO3 地址 3 Device Mapping 填:1-3 离散地址写法: DO1 地址 1、DO4 地址 4、DO6 地址 6 Device Mapping 填:1,4,6 错误写法(常见): 填 1-6 想覆盖 1、4、6 → 会把 2、3、5 也纳入映射,值全乱 填 DO 编号 1,4,6 但实际地址是 11,14,16 → 映射到不存在的点,运行时报 IO 错误

填完点“确定”后必须重启机器人,配置才真正加载。这一步没有“热生效”的捷径,重启前做的任何在线测试都不作数。重启完成后建议先在示教器上手动给 GO 赋几个值,用 IO 监控界面看对应 DO 的灯是否按预期亮灭,确认映射无误再进程序联调。

3.3 用一段最小程序验证映射是否正确

配置完别急着写正式逻辑,先用一段最小验证程序把映射关系钉死。下面这段是示教器 RAPID 风格的验证片段,思路可以直接搬到项目里:

! 验证 GO1 映射:连续地址 1-3 对应 DO1/DO2/DO3 ! 依次写入 1、2、4、5,观察 DO 灯位 SetGO GO1, 1; ! 预期 DO1=1, DO2=0, DO3=0 WaitTime 0.5; SetGO GO1, 2; ! 预期 DO1=0, DO2=1, DO3=0 WaitTime 0.5; SetGO GO1, 4; ! 预期 DO1=0, DO2=0, DO3=1 WaitTime 0.5; SetGO GO1, 5; ! 预期 DO1=1, DO2=0, DO3=1 WaitTime 0.5; SetGO GO1, 0; ! 全部复位

这段程序的价值在于把“值→位”的对应关系逐个点亮验证,而不是一上来就跑完整流程。WaitTime 0.5是给 IO 刷新和肉眼观察留的窗口,实际联调时可以缩到 0.1 甚至去掉,但首次验证建议保留。如果写 4 的时候亮的是 DO1 而不是 DO3,说明映射顺序跟你以为的反了,回头查 Device Mapping 的地址排列,别去改程序里的数值硬凑——硬凑出来的值在换一台机器人后必然再翻车。

GI 的验证反过来做:在 PLC 侧或 IO 仿真里给 DI 置不同组合,读GI1的值,对照映射表确认解码正确。这一步在没接真实 PLC 时可以用控制器的 IO 仿真功能顶替,但仿真通过不等于现场通过,硬线接线顺序、端子编号都得再核一遍。

4. 避坑清单:GO/GI 联调里最常见的五类翻车

4.1 现象:GO 赋值后 DO 灯不亮,但信号配置显示正常

原因通常是 Device Mapping 填的地址跟实际 DO 地址不一致,最常见的是把“DO 编号”当成了“IO 地址”。很多项目的 DO 编号从 1 开始,但物理地址可能从 0 或 11 起跳,两者差一位就全错。解决方法是进 IO 单元配置页核对每个 DO 的真实地址,按地址填映射,填完重启再验证。血泪经验是:配置界面不校验地址是否存在,填错了照样保存成功,只有运行时才暴露。

4.2 现象:非连续地址映射后,GO 写 5 却点亮了意料之外的点

这是 2.2 节讲的位序问题。1,4,6这种离散写法,映射顺序是“第 1 个地址在第 0 位”,不是“地址 1 在第 1 位”。写 5(101)点亮的是第 0 位和第 2 位,即 DO1 和 DO6。解决方法是把映射表按顺序列出来,用“第几位”去算 2 的幂,别用 DO 编号去算。如果项目里离散映射多,建议在程序注释里直接写死“GO1 位 0=DO1、位 1=DO4、位 2=DO6”,后来人接手不用再推一遍。

4.3 现象:配置改完没重启,在线测试值对不上,重启后正常

ABB 控制器的信号配置属于启动时加载项,改完不重启,运行中的 IO 映射还是旧的。表现是示教器上看到新配置、实际输出按老映射走,非常迷惑。解决方法是养成“改 Signal 必重启”的习惯,重启前不做任何结论性测试。这条坑之所以反复出现,是因为部分参数修改能热生效,让人误以为信号配置也一样。

4.4 现象:GI 读到的值偶尔跳变,机器人误触发分支

原因是 PLC 侧写 GI 对应 DI 组合时不是一次性刷新,或者机器人读 GI 的时机正好卡在 PLC 改值过程中。GI 本身不保证原子性,它读的是当前采样值。解决方法是加握手:PLC 置值后等机器人回一个 DO 应答,机器人读到 GI 后先回 ACK 再执行动作,PLC 收到 ACK 才撤值。这套逻辑比单纯WaitGI多几行代码,但能把竞态压到可接受范围。

4.5 现象:GO 值算对了,但 PLC 收到的组合跟预期差一位

排查顺序是:先确认机器人侧 IO 监控里 DO 灯位正确,再确认硬线端子接线顺序,最后查 PLC 侧输入模块的地址分配。差一位的典型原因是 PLC 输入模块的通道编号从 0 开始、而机器人侧从 1 开始,或者中间经过继电器转接时线序接反。解决方法是拿万用表逐点对,别信图纸——图纸更新滞后是常态。这类问题在跨品牌设备联调时出现频率最高,配置本身没错,错在物理层。

5. 进阶用法:把 GO/GI 封装成可复用的握手函数

配置和验证跑通之后,真正决定这套东西好不好用的是程序结构。我一般不会在业务逻辑里散着写SetGO GO1,5,而是把常用组合封装成带名字的常量或小函数,让“5”这个数字只出现在一个地方。

! 组合信号常量定义(按 GO1 映射 1-3 对应 DO1/DO2/DO3) CONST num LOAD_DONE := 5; ! DO1=1, DO3=1 CONST num MATERIAL_1 := 3; ! DO1=1, DO2=1 CONST num MATERIAL_2 := 6; ! DO2=1, DO3=1 CONST num ALL_CLEAR := 0; ! 带应答的 GI 握手函数 FUNC bool WaitGIWithAck(num gi_target, num ack_do, num timeout_s) VAR num t0; t0 := ClkRead(); WHILE ClkRead() - t0 < timeout_s DO IF GI1 = gi_target THEN SetDO ack_do, 1; ! 回 ACK,告诉 PLC 已收到 RETURN TRUE; ENDIF ENDWHILE RETURN FALSE; ! 超时,交由上层处理 ENDFUNC

这段代码有两个设计取舍值得说。第一,常量名对应业务语义而不是数值,换映射表时只改常量定义,业务代码不动,这是把“地址位序”这个易错点收敛到单点。第二,握手函数带超时返回布尔值,而不是死等——产线上 PLC 掉线或信号丢失时,死等会让机器人卡在原地,带超时至少能让上层走故障分支、报警停机,比僵死强。ack_do参数传的是机器人回给 PLC 的应答 DO 编号,具体用哪个点按项目 IO 分配来,别跟 GO 映射的 DO 撞车。

验证这套封装是否可靠,我的习惯是先在 IO 仿真里跑一遍全组合:把每个常量值写进去,对照 DO 灯位表逐个核,再模拟 GI 超时和正常两条路径。仿真过了再上硬线,硬线上先空跑不接执行机构,确认握手时序稳定后再接负载。从那以后我每次配新的 GO/GI,都强制先跑一遍“常量值→灯位”对照表再进联调,省下来的返工时间远比制表那十分钟多。希望帮到你。

本文还有配套的精品资源,点击获取

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/28 2:07:36

AI提示词工程实战:骨架拆解、槽位参数化与提示词库管理

简介&#xff1a;《AI提示词大全》基础版.pdf 是一份面向人工智能语言模型使用者的提示词参考资料&#xff0c;适合希望提升人机交互效率的入门与进阶读者。内容围绕提示词在实际任务中的构造与优化展开&#xff0c;涵盖写作助理、提示词修改器、提示词生成器、英语翻译或修改、…

作者头像 李华
网站建设 2026/10/28 2:07:34

大模型工程实战:FTI架构、RAG与微调全链路解析

简介&#xff1a;《LLM Engineers Handbook》是Packt于2024年出版的英文原版电子书&#xff0c;面向希望系统掌握大语言模型工程化落地能力的开发者与算法工程师&#xff0c;覆盖从概念验证到生产部署的完整链路。全书围绕模型选型与架构设计、训练数据准备、训练与调优、评估测…

作者头像 李华
网站建设 2026/10/28 2:07:26

植物叶片识别完整方案:预处理+特征工程+SVM分类+PyQt界面

简介&#xff1a;本资源是一份面向Python初学者与计算机视觉入门者的OpenCV图像处理实践指南&#xff0c;聚焦植物叶片识别这一典型形状分析任务&#xff0c;系统讲解轮廓检测、特征提取与几何描述等核心技能。内容涵盖二值化预处理、cv2.findContours()与cv2.drawContours()函…

作者头像 李华
网站建设 2026/10/28 2:07:12

LVS-9580条形码校验器软件安装与校准全指南

简介&#xff1a;这份PDF文档面向工业自动化、物流质检等场景中负责条形码质量管控的工程师与设备操作人员&#xff0c;系统讲解Omron Microscan旗下LVS-9580、LVS-9585条形码校验器的软件安装流程&#xff0c;帮助读者让设备符合国际条码质量标准并顺利投入验证工作。资源包共…

作者头像 李华
网站建设 2026/10/28 2:06:41

2026年服装供应链系统SCM丨多仓库存:分货规则、库存口径与调拨链路

多仓场景下的库存失真&#xff0c;本质是三个数据层没有对齐&#xff1a;分配层缺乏规则、计量层口径不一、移动层缺少在途状态。本文从这三层拆解服装供应链系统SCM的多仓架构。一、服装供应链系统SCM概念定义服装供应链系统SCM&#xff1a;指覆盖企划、面辅料采购、生产到履约…

作者头像 李华
网站建设 2026/10/28 2:06:18

用 VS Code 开发 51 和 STM32

如果你用 Keil 写过一段时间代码&#xff0c;大概都经历过这几个瞬间&#xff1a; 写了一百多行&#xff0c;想把一个变量名改掉&#xff0c;只能一个一个手点着改。 函数跳转全靠 CtrlF 搜文本&#xff0c;搜出来的位置还得自己判断哪个是对的。 深色模式挑来挑去就那几个&am…

作者头像 李华