ZeroOne AI
← 返回文章列表

TRIO-Basic 从入门到精通(八):QT使用Trio COM组件编程实战

👁 26
分类:机器人自动化

本教程以实战方式演示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 上位机开发、控制器数据监控界面开发等场景。

二、技术要点/技术方案

  1. COM 组件安装:使用 Trio 官网提供的最新版 COM 组件程序(本讲以 TrioPCMotion_2_19_0(x86)_Setup 为例),按提示完成安装,无特殊要求。
  2. 导出描述头文件(关键步骤):QT 自带工具 dumpcpp 可根据 COM 组件的类型库自动生成 C++ 头文件与实现文件,省去大量查阅手册的工作。
    • 命令格式:dumpcpp -n TrioPc {注册序列号}
    • 注册序列号位于注册表:HKEY_CLASSES_ROOT\TrioPC.TrioPCCtrl.1\CLSID,值为 {F1933967-74B0-11D3-8A13-00403393B236}
    • 需要在 QT 自带的 DOS 命令窗口(命令行环境)中,用 cd 切换到目标程序目录后执行,生成文件即输出到该目录。
  3. 工程集成:将生成的 triopc.h 与 triopc.cpp 加入 QT 工程,并添加 QT += axcontainer 以启用 ActiveX 容器支持。
  4. 常用接口:
    • IsOpen(端口号):判断通讯是否建立;
    • SetHostAddress("IP"):设置控制器主机地址;
    • Open(端口, 端口号):建立通讯链接;
    • GetAxisVariable("MPOS", 轴号, 变量):读取指定轴的运动位置等变量。

三、实施步骤

  1. 安装 Trio COM 组件程序(TrioPCMotion_2_19_0(x86)_Setup),按提示完成。
  2. 查询注册表中 TrioPC 控件的 CLSID,获得注册序列号。
  3. 打开 QT 自带的命令行环境,用 cd 进入目标工程目录,执行 dumpcpp -n TrioPc {注册序列号} 导出描述头文件。
  4. 确认 QT 自动生成 triopc.h 与 triopc.cpp 两个文件,将其加入工程。
  5. 在工程文件(.pro)中添加 QT += axcontainer。
  6. 在代码中创建 TrioPC 实例,即可像使用普通类一样调用 TRIO 指令接口。
  7. 编写数据更新函数(如定时读取各轴 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));

}

五、应用价值

  1. dumpcpp 自动导出接口头文件,大幅降低 QT 接入 TRIO 组件的门槛。
  2. 通过 GetAxisVariable 等接口可实时读取轴位置,快速构建上位机监控界面。
  3. 通讯状态自动判断与自动重连逻辑,提高上位机程序的稳定性。
  4. 与自建类相同的使用方式,便于与既有 QT 工程无缝集成。
  5. 具体指令用法可对照 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 程序预处理、编译、汇编、链接四步变身流程,讲透条件编译与静态、动态链接差异,附分步实操与报错排查。

评论(0)