ZeroOne AI
← 返回文章列表

TRIO-Basic 从入门到精通(十四):Trio 实现单位置轴多色标捕捉

👁 5
分类:机器人自动化

本教程介绍Trio控制器多色标捕捉方案:通过ADDAX将实体轴位置叠加到虚拟轴,对虚拟轴执行REGIST色标捕捉,突破物理通道数量限制,实现单位置轴多路色标同时捕捉,满足印刷包装行业套准控制需求。

"# TRIO-Basic 从入门到精通(十四):Trio 实现单位置轴多色标捕捉\n\n## 一、教程背景\n\n色标捕捉(Registration Mark Capture)是印刷、包装、贴标等高速生产线中的常用功能:当传感器检测到色标信号时,控制器立即锁存当前轴位置,用于后续的定位补偿与套准控制。Trio 控制器通过简单的物理轴配置即可实现双色标捕捉,但当需要捕捉的色标数量超过物理轴通道限制(多色标、多轴场景)时,就需要特殊方法来处理。\n\n本教程给出了一种通用解决方案:将需要捕捉的各轴位置叠加到一条虚拟轴(虚轴)上,再对虚拟轴位置进行色标捕捉,从而突破物理通道数量限制,实现单位置轴的多色标捕捉。\n\n## 二、技术要点/技术方案\n\n色标捕捉指令:\n\nbasic\nREGIST(20, channel, source, edge, window [,quantity, table_start])\n\n\n- channel:捕捉通道编号,Trio 使用 A、B 两个通道即可实现双色标捕捉。\n- source:信号来源(输入点等)。\n- edge:触发边沿。\n- window:捕捉窗口。\n- 可选参数 quantitytable_start 用于批量捕捉。\n\n多色标方案核心:\n\n- 将实体轴(AXIS(3))与虚拟轴(AXIS(4))通过 ADDAX(3) 叠加:虚拟轴位置实时跟随实体轴位置。\n- 对虚拟轴位置执行 REGIST 捕捉,即可在不增加物理通道的情况下实现多路色标同时捕捉。\n- 注意:由于使用了虚拟轴,硬件捕捉速度会小于实体轴的直接捕捉速度,适用于对精度与速度要求在一定范围内的场景。\n\n相关状态指令:\n\n- MARK / MARKB:查询 A/B 通道是否已触发捕捉。\n- REG_POS / REG_POSB:读取 A/B 通道锁存的捕捉位置。\n\n## 三、实施步骤\n\n1. 配置实体轴 AXIS(3):设置 UNITS=1,清除运动缓冲(CANCEL(2)),等待轴空闲后 DEFPOS(0) 回零。\n2. 配置虚拟轴 AXIS(4):设置 UNITS=1,将位置定义为实体轴位置(DEFPOS(DPOS AXIS(3))),并执行 ADDAX(3) 使其跟随实体轴。\n3. 分别设置实体轴与虚拟轴的运动参数(UNITS=1000SPEED=1DECEL=10ACCEL=10),开启 WDOG=1,启动实体轴正向运动(FORWARD AXIS(3))。\n4. 注册色标捕捉:实体轴 A 通道捕捉输入 1(REGIST(20, 0, 0, 0, 0) AXIS(3))、B 通道捕捉输入 2(REGIST(20, 1, 0, 0, 0) AXIS(3));虚拟轴 A 通道捕捉输入 3(REGIST(20, 3, 4, 0, 0) AXIS(4))。\n5. 主循环中轮询 MARK/MARKB 标志,触发后打印 REG_POS/REG_POSB 位置,并重新注册下一次捕捉。\n6. 测试验证:将 IO 输入 1、2、3 短接在一起,保证色标信号同时触发;IN1-2 接在实体轴 3 上,IN3 接在虚拟轴 4 上,观察三路捕捉位置的一致性。\n\n## 四、代码示例\n\nbasic\n'clear axis(3) motion buffer\nBASE(3)\nUNITS=1\nCANCEL(2)\nWAIT IDLE\nWA(100)\nDEFPOS(0)\nWAIT UNTIL OFFPOS=0\nWA(10)\n\nBASE(4)\nUNITS=1\nDEFPOS(DPOS AXIS(3))\nWAIT UNTIL OFFPOS=0\nADDAX(3)\n\nBASE(3)\nUNITS=1000\nSPEED=1\nDECEL=10\nACCEL=10\nREG_INPUTS=$21\n\nBASE(4)\nUNITS=1000\nSPEED=1\nDECEL=10\nACCEL=10\n\nWDOG=1\n\nFORWARD AXIS(3)\n\n'input in 1\nREGIST(20, 0, 0, 0, 0) AXIS(3)\n'input in 2\nREGIST(20, 1, 0, 0, 0) AXIS(3)\n'input in 3\nREGIST(20, 3, 4, 0, 0) AXIS(4)\n\nWHILE TRUE\n IF MARK AXIS(3) THEN\n PRINT \"MarkA pos=\",REG_POS AXIS(3)\n WA(200)\n REGIST(20, 0, 0, 0, 0) AXIS(3)\n ENDIF\n IF MARKB AXIS(3) THEN\n PRINT \"MarkB pos=\",REG_POSB AXIS(3)\n WA(200)\n REGIST(20, 1, 0, 0, 0) AXIS(3)\n ENDIF\n IF MARK AXIS(4) THEN\n PRINT \"MarkC pos=\",REG_POS AXIS(4)\n WA(200)\n REGIST(20, 3, 4, 0, 0) AXIS(4)\n ENDIF\n\nWEND\n\n\n## 五、应用价值\n\n1. 突破物理捕捉通道数量限制,用一条虚拟轴实现多路色标同时捕捉。\n2. 代码结构清晰,双色标与多色标场景均可复用,改造成本低。\n3. 捕捉位置精度满足常规套准、定位补偿需求,实测在精度要求范围内。\n4. 基于"轴位置叠加"的思路,可进一步扩展为多实体轴共享色标捕获的复杂应用。\n5. 为印刷、包装等行业高速色标检测与套准控制提供了实用的编程范例。\n\n## 六、SEO关键词\n\nTRIO运动控制器,TRIO-Basic,REGIST色标捕捉,虚拟轴控制,多轴控制,色标传感器,套准控制,翠欧控制器\n\n---\n\n本文内容整理自 guimotion 的《TRIO-Basic从入门到精通教程》系列(CSDN,CC BY-SA 4.0),由 ZeroOne AI 重新组织编写。\n"

评论(0