TRIO-Basic 从入门到精通(八):QT使用Trio COM组件编程实战
本教程以实战方式演示QT环境下使用Trio COM组件(TrioPC)进行上位机编程的完整流程:安装TrioPCMotion组件、用dumpcpp导出描述头文件、在工程中添加axcontainer支持、创建TrioPC实例并通过GetAxisVariable等接口实时读取控制器各轴位置,快速搭建上位机监控界面。
TRIO-Basic 从入门到精通(八):QT使用Trio COM组件编程实战
一、教程背景
在 TRIO 运动控制系统的上位机开发中,QT 是广泛使用的跨平台开发框架。TRIO 官方提供了 COM 组件(TrioPC),使上位机程序可以方便地访问控制器指令与变量。然而对于初次接触 QT 的开发者,如何正确安装组件、导出接口描述头文件并在 QT 工程中调用,是常见的入门障碍。本讲以实战方式演示 QT 环境下使用 Trio COM 组件进行上位机编程的完整流程,适用于 QT 上位机开发、控制器数据监控界面开发等场景。
二、技术要点/技术方案
- COM 组件安装:使用 Trio 官网提供的最新版 COM 组件程序(本讲以 TrioPCMotion_2_19_0(x86)_Setup 为例),按提示完成安装,无特殊要求。
- 导出描述头文件(关键步骤):QT 自带工具
dumpcpp可根据 COM 组件的类型库自动生成 C++ 头文件与实现文件,省去大量查阅手册的工作。- 命令格式:
dumpcpp -n TrioPc {注册序列号} - 注册序列号位于注册表:
HKEY_CLASSES_ROOT\TrioPC.TrioPCCtrl.1\CLSID,值为{F1933967-74B0-11D3-8A13-00403393B236} - 需要在 QT 自带的 DOS 命令窗口(命令行环境)中,用
cd切换到目标程序目录后执行,生成文件即输出到该目录。
- 命令格式:
- 工程集成:将生成的 triopc.h 与 triopc.cpp 加入 QT 工程,并添加
QT += axcontainer以启用 ActiveX 容器支持。 - 常用接口:
IsOpen(端口号):判断通讯是否建立;SetHostAddress("IP"):设置控制器主机地址;Open(端口, 端口号):建立通讯链接;GetAxisVariable("MPOS", 轴号, 变量):读取指定轴的运动位置等变量。
三、实施步骤
- 安装 Trio COM 组件程序(TrioPCMotion_2_19_0(x86)_Setup),按提示完成。
- 查询注册表中 TrioPC 控件的 CLSID,获得注册序列号。
- 打开 QT 自带的命令行环境,用
cd进入目标工程目录,执行dumpcpp -n TrioPc {注册序列号}导出描述头文件。 - 确认 QT 自动生成 triopc.h 与 triopc.cpp 两个文件,将其加入工程。
- 在工程文件(.pro)中添加
QT += axcontainer。 - 在代码中创建 TrioPC 实例,即可像使用普通类一样调用 TRIO 指令接口。
- 编写数据更新函数(如定时读取各轴 MPOS 位置并显示),实现上位机监控界面。
四、代码示例
//数据更新
void MainWindow::updataWatch()
{
//通讯判断
if(!pcMat->IsOpen(3240))
{
//建立通讯链接
pcMat->SetHostAddress(tr("127.0.0.2"));
pcMat->Open(2,3240);
qDebug() << "Date:" << QDate::currentDate()<<tr("建立通讯链接");
}
//读取数据
double AxisPos=0;
pcMat->GetAxisVariable(tr("MPOS"),AxisNum::Axis_X,AxisPos);
ui->xPosShow->setText(QString("%1").arg(AxisPos,0,'f',3));
pcMat->GetAxisVariable(tr("MPOS"),AxisNum::Axis_Y,AxisPos);
ui->yPosShow->setText(QString("%1").arg(AxisPos,0,'f',3));
pcMat->GetAxisVariable(tr("MPOS"),AxisNum::Axis_Z,AxisPos);
ui->zPosShow->setText(QString("%1").arg(AxisPos,0,'f',3));
}
五、应用价值
- dumpcpp 自动导出接口头文件,大幅降低 QT 接入 TRIO 组件的门槛。
- 通过
GetAxisVariable等接口可实时读取轴位置,快速构建上位机监控界面。 - 通讯状态自动判断与自动重连逻辑,提高上位机程序的稳定性。
- 与自建类相同的使用方式,便于与既有 QT 工程无缝集成。
- 具体指令用法可对照 triopc.h 头文件与 COM 帮助文档查阅,扩展灵活。
六、SEO关键词
TRIO运动控制器,TRIO-Basic,QT,COM组件,TrioPC,dumpcpp,axcontainer,上位机编程,GetAxisVariable,MPOS
本文内容整理自 guimotion 的《TRIO-Basic从入门到精通教程》系列(CSDN,CC BY-SA 4.0),由 ZeroOne AI 重新组织编写。
推荐阅读
更多工业 AI、智能制造与技术实践文章
TRIO-Basic 从入门到精通(五):直线与圆弧插补指令的使用
本文讲解 TRIO-Basic 三大运动指令:MOVE 相对移动、MOVEABS 绝对移动与 MOVECIRC 平面圆弧插补,给出各自的语法格式、完整可运行的代码示例(含轴参数段与矩形圆角轮廓插补示例),并说明增益参数的使用前提,帮助开发者快速上手多轴轨迹编程。
TRIO-Basic 从入门到精通(二十):Trio通过空间圆弧三点计算圆弧中心和半径
本文用TRIO-Basic手写实现空间圆弧三点求圆心与半径算法:由三点确定圆弧平面法向量,求两条中垂线交点得到圆心并输出半径,与Trio原装SPHERE_CENTRE指令计算结果对比一致,适用于空间圆弧插补与轨迹规划。
C#调用Intel NPU实现YOLOv26极速推理:OpenVINO工业视觉加速实践
通过C# + OpenVINO Runtime调用Intel Core Ultra NPU运行YOLOv26模型,实现低功耗、毫秒级的工业边缘AI视觉推理,涵盖模型导出、环境配置、推理代码与FP16/INT8/异步推理等性能优化实践。
C#工业视觉平台结合YOLOv26与OpenVINO
从数据标注、自动训练到Intel NPU边缘推理的完整工业AI方案:C#工业软件平台 + YOLOv26训练框架 + OpenVINO模型转换 + Intel NPU边缘推理,实现图像采集、自动标注、模型训练到现场推理的完整AI视觉闭环。
MY-BASIC 应用(一):轻量级嵌入式 BASIC 解析器介绍
MY-BASIC 是一个用标准 C 语言编写的轻量级 BASIC 解释器:不足 128KB 内存占用、可嵌入可扩展、支持原型编程与 Lambda 函数式编程、Unicode、列表/字典集合,适合嵌入式设备脚本化控制。
Linux系统篇(七)——工具篇(二):一篇搞懂 C 语言程序从代码到可执行文件的完整旅程
拆解 C 程序预处理、编译、汇编、链接四步变身流程,讲透条件编译与静态、动态链接差异,附分步实操与报错排查。
