TRIO-Basic 从入门到精通(八):QT使用Trio COM组件编程实战
👁 1
分类:机器人自动化
本教程以实战方式演示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 重新组织编写。
