TRIO-Basic 从入门到精通(五):直线与圆弧插补指令的使用
本文讲解 TRIO-Basic 三大运动指令:MOVE 相对移动、MOVEABS 绝对移动与 MOVECIRC 平面圆弧插补,给出各自的语法格式、完整可运行的代码示例(含轴参数段与矩形圆角轮廓插补示例),并说明增益参数的使用前提,帮助开发者快速上手多轴轨迹编程。
TRIO-Basic 从入门到精通(五):直线与圆弧插补指令的使用
一、教程背景
在掌握轴参数含义之后,即可进入实战编程环节。插补是运动控制的核心能力:多轴设备通过直线插补(MOVE、MOVEABS)与圆弧插补(MOVECIRC)实现平面轨迹运动,广泛用于点胶、焊接、切割、搬运等自动化设备。本教程通过可运行的代码示例,讲解 TRIO-Basic 中最常用的相对移动、绝对移动与平面圆弧插补指令的语法与用法。适用于需要编写轨迹运动的设备开发与调试工程师。
二、技术要点/技术方案
1. 增益参数的使用前提
增益参数(P_GAIN、I_GAIN、D_GAIN、VFF_GAIN 等)仅在速度控制或扭矩控制模式下才能使用;位置控制模式下由驱动器内部增益控制。
2. MOVE 相对移动
语法:
MOVE(distance1 [,distance2 [,distance3 [,distance4...]]])
MOVE 以当前位置为基准进行相对移动,参数为各轴移动距离。
3. MOVEABS 绝对移动
语法:
MOVEABS(position1 [,position2 [,position3 [,position4...]]])
MOVEABS 以绝对坐标为目标进行移动,参数为各轴目标位置。
4. MOVECIRC 平面圆弧插补
语法:
MOVECIRC(end1, end2, centre1, centre2, direction [,ta [,output]])
其中 end 为圆弧终点坐标,centre 为圆心坐标,direction 为圆弧方向。通过直线与圆弧的组合,可以绘制任意平面轮廓轨迹。
三、实施步骤
- 在程序中先配置各轴参数(单位、速度、加减速、限位等);
- 使用 BASE 选择参与插补的轴组;
- 调用 DEFPOS 设定初始位置,等待回零完成;
- 使用 TRIGGER 启动运动,按轨迹顺序交替调用 MOVE、MOVECIRC;
- 下载程序到控制器或仿真器运行,观察轨迹是否与设计一致。
四、代码示例
标准轴参数段
'Start Standard Section
' Axis Parameters
BASE(0)
UNITS=10000
'Gains
P_GAIN=1
I_GAIN=0
D_GAIN=0
OV_GAIN=0
VFF_GAIN=0
'Velocity profile
ACCEL=500
CREEP=1
DECEL=ACCEL
JOGSPEED=1
SPEED=2
'Limits
DATUM_IN=0
FE_LIMIT=0.5
FHOLD_IN=1
FS_LIMIT=1000
FWD_IN=2
REP_DIST=10000
REV_IN=3
RS_LIMIT=-1000
'Axis output
SERVO=0
'Stop Standard Section
WDOG=1
MOVE 相对移动示例
WHILE
TRUE
TRIGGER
ACCEL=2
DECEL=2
MOVE(1)
WAIT IDLE
WA(100)
MOVE(-1)
WAIT IDLE
WA(100)
WEND
MOVEABS 绝对移动示例
WHILE TRUE
TRIGGER
ACCEL=10
DECEL=10
MOVEABS(1)
WAIT IDLE
WA(100)
MOVEABS(0)
WAIT IDLE
WA(100)
WEND
MOVECIRC 圆弧插补示例(走矩形圆角轮廓 A->B->C->D->E->F->G->H->A)
LIMIT_BUFFERED=32
BASE(0)
UNITS=1000
SPEED=100
ACCEL=10*SPEED
DECEL=ACCEL
JOGSPEED=1
FS_LIMIT=1000
RS_LIMIT=-1000
FE_LIMIT=1
FE_RANGE=0.6*FE_RANGE
FWD_IN=-1
REV_IN=-1
SERVO=0
BASE(1)
UNITS=1000
SPEED=100
ACCEL=10*SPEED
DECEL=ACCEL
JOGSPEED=1
FS_LIMIT=1000
RS_LIMIT=-1000
FE_LIMIT=1
FE_RANGE=0.6*FE_RANGE
FWD_IN=-1
REV_IN=-1
SERVO=0
WDOG=1
BASE(0,1)
DEFPOS(0,0)
WAIT UNTIL
OFFPOS=0
TRIGGER
MOVE(0,6)
'move A -> B
MOVECIRC(3,3,3,0,1)
'move B -> C
MOVE(2,0)
'move C -> D
MOVECIRC(3,-3,0,-3,1)
'move D -> E
MOVE(0,-6)
'move E -> F
MOVECIRC(-3,-3,-3,0,1)'move F -> G
MOVE(-2,0)
'move G -> H
MOVECIRC(-3,3,0,3,1)
'move H -> A
五、应用价值
- 轨迹编程直观:MOVE / MOVEABS / MOVECIRC 语法简洁,直线与圆弧自由组合即可构成复杂轮廓;
- 绝对/相对灵活切换:根据工艺需求选择绝对定位或相对位移,适应不同加工场景;
- 多轴协同插补:BASE 指定多轴后,各轴按统一轨迹协同运动,保证轮廓精度;
- 示例可直接运行:教程代码完整可测试,适合在仿真器中快速验证插补效果;
- 门槛低见效快:无需深入底层原理即可上手编写第一个插补程序。
六、SEO关键词
TRIO运动控制器, TRIO-Basic, 插补指令, MOVE, MOVEABS, MOVECIRC, 圆弧插补, 直线插补, 运动控制编程
本文内容整理自 guimotion 的《TRIO-Basic从入门到精通教程》系列(CSDN,CC BY-SA 4.0),由 ZeroOne AI 重新组织编写。
推荐阅读
更多工业 AI、智能制造与技术实践文章
Linux系统篇(十二)——进程(二):深入剖析 Linux 进程:状态变迁、优先级及调度切换逻辑
深入 Linux 进程内核:六种进程状态与变迁、僵尸孤儿进程、优先级机制,以及 O(1) 调度器的位图与队列原理
树莓派推送RTSP视频流实战:FFmpeg + rtsp-simple-server(MediaMTX)搭建局域网视频直播服务
本文面向树莓派视频流、Python视觉开发、RTSP视频监控和边缘AI视觉初学者,介绍如何在Raspberry Pi上搭建简单、稳定的RTSP视频流服务。项目采用FFmpeg + rtsp-simple-server(MediaMTX)方式,将树莓派摄像头采集的视频转换并推送到RTSP服务器,再由电脑、NVR、VLC、OpenCV或AI视觉程序访问。文章从安装FFmpeg并验证版本开始,下载适用于ARM64架构的MediaMTX v1.8.1,配置Linux Systemd服务实现RTSP服务器开机自启,最后将摄像头视频推送到RTSP地址,形成树莓派摄像头 → FFmpeg → RTSP服务器 → 客户端播放/AI检测的完整视频流架构。
局域网服务器如何实现外网访问:Ubuntu 22.04 搭建 FRP 内网穿透服务器
工业现场、企业局域网和工厂 MES 系统中,服务器没有公网 IP 时如何实现外网远程访问?本文以 Ubuntu 22.04 为例,完整演示 FRP 内网穿透方案:frps 服务端配置、frpc 客户端配置、Systemd 开机自启、多工厂统一接入、HTTPS 安全架构以及完整的故障排查与安全建议。
RIP软件底层逻辑全解析:从CMYK墨量控制到PRN灰度网点数据
本文深入数码印刷RIP软件的底层逻辑:CMYK曲线与单通道/总墨量限制如何控制物理边界,打印机线性化与ICC特性文件如何实现精准色彩复制,灰度PRN数据与位深度(1/2/3位)如何驱动可变网点喷头,以及半色调方法、PPI/DPI匹配和常见印刷故障的排查指南。
Linux系统篇24——通信(二):匿名管道 vs 命名管道,进程之间到底怎么“传话”?
进程之间默认谁也看不见谁,操作系统给它们接了一根“水管”——管道。本文从“对讲机”和“公共信箱”讲起,把匿名管道与命名管道的底层原理、代码写法、常见坑和面试考点一次讲透。
Linux 内核开发基础:常用命令与函数
Linux 内核模块开发入门必知:insmod/rmmod 加载卸载命令、module_init/module_exit 入口出口函数,以及 MODULE_LICENSE、MODULE_AUTHOR、MODULE_DESCRIPTION、MODULE_ALIAS 等模块描述宏的用法与含义。
