xplugindemo 示例
本文说明二次开发包中 xplugindemo 的源码与 HMI 界面的对应关系。
须先完成 环境总览 中对应开发场景的准备。
1. 编译、导入与使用
源码含示例与 include/,不含预编译的 xplugin 库。请按下列步骤完成编译、导入与使用。
-
按 二次开发包下载 获取仓库源码与开发包。
-
将同版本开发包中的 include、lib 复制到源码根目录。仓库虽已含
include/,仍须以开发包头文件为准覆盖,保证与预编译 xplugin 库版本一致。完成后目录结构如下:
源码根目录/
├── include/
├── lib/
│ ├── windows/ Windows:xplugin.dll、xplugin.lib
│ └── aarch64/ 示教器 Linux:xplugin.so
└── examples/xplugindemo/xplugindemo.pro
- 使用 Qt Creator 打开
xplugindemo.pro,执行 qmake 并构建。
若在中文 Windows 操作系统上使用 MSVC 构建时出现 C4819,或 xplugin::QWidget、xplugin::xplugin 等异常命名空间错误,多因 SDK 头文件为 UTF-8(无 BOM) 且含中文注释,而 MSVC 默认按系统编码解析(中文 Windows 上为 GBK),导致命名空间括号匹配异常。请在 xplugindemo.pro(或自有插件 .pro)中加入:
win32-msvc {
QMAKE_CXXFLAGS += /utf-8
QMAKE_CFLAGS += /utf-8
}
随后请清理构建目录,重新执行 qmake 后再构建。
- 按 插件包制作 打包,再按 安装与使用 导入。JSON 配置文件(
xplugindemo.json)中的 name 及插件文件名须为 xplugindemo。 - 在 选项 → 插件管理 中启用并保存,按提示重启。

- 重启后在 工艺包 下拉菜单中打开。本示例的界面名称为 测试插件。

2. 界面挂载区域
init() 将界面注册到 HMI 的对应区域,实现见 xplugindemo.cpp。接口详细说明见:接口说明 — 全局函数。
| HMI 位置 | 调用 | 源码 |
|---|---|---|
| 中心页 | CreateCenterWidget | pages/demoshell.* |
| 底部状态栏 | CreateStatusBar | showstatusbar.* |
| 右侧扩展窗 | CreateRightExpandWidgte | expandwidget.* |
| 物理按键 | CreatePhyButtonList | xplugindemo.cpp |
图中红框只用于标明区域。示例的默认界面不显示红框。
中心主界面通过 CreateCenterWidget 注册,源码为 pages/demoshell.*。

底部状态栏通过 CreateStatusBar 注册,源码为 showstatusbar.*。本示例在该区域显示进度,并放置 Expand Panel 按钮。

右侧扩展窗通过 CreateRightExpandWidgte 注册,源码为 expandwidget.*。打开后位于中心页右侧。

物理按键通过 CreatePhyButtonList 注册,实现见 xplugindemo.cpp。红框内为左右两侧各 6 个可配置按键。功能切换由系统保留,插件不能修改。

3. 中心页导航分组
DemoShell 通过左侧导航切换分组,源码位于 pages/xplugin/。各分组通过按钮调用接口,返回值显示在结果区。接口详细说明见:接口说明 — InterfaceManager。
上下电、设置 IO、删除工程等写操作会改变控制器或工程状态。执行前须确认现场条件。
| 导航 | 源文件 |
|---|---|
| UI层 | pagehmishell.cpp |
| 机器人状态 | pagerobotstatus.cpp |
| 工程 / 点位 / 变量 | pageprojectpointvar.cpp |
| IO / 寄存器 | pageioregister.cpp |
| XService / RC | pagexservicerc.cpp |
| 网络 / 事件 / 日志 | pagenetworkeventlog.cpp |
UI层(pagehmishell.cpp):

机器人状态(pagerobotstatus.cpp):

工程 / 点位 / 变量(pageprojectpointvar.cpp):
该分组内容较长,界面须滚动查看,依次如下。



IO / 寄存器(pageioregister.cpp):

XService / RC(pagexservicerc.cpp):

网络 / 事件 / 日志(pagenetworkeventlog.cpp):

4. 辅助编程(RL)
辅助编程允许插件在 RL 编辑器中注册自定义指令。本示例注册指令组 演示分组(源码:tr("demo group"))与指令 Custom。
启用插件并重启后,按下列步骤操作。
4.1 找到演示分组
- 打开 编程 → RL 编辑器。
- 在右侧 插入指令 中选择 演示分组。

4.2 插入指令
- 进入 演示分组 后,选择 Custom。
- 在插入区填写参数(如
testA、testB)。 - 单击 插入下一行。
- 编辑器中生成对应指令行(如
Custom testA, testB)。

4.3 替换参数
- 在编辑器中选中已插入的 Custom 指令行。
- 切换到 属性设置。
- 修改参数(如
paramA、paramB)。 - 单击 替换。编辑器中该行随之更新(如
Custom paramA, paramB)。

若需对照实现或自行扩展,注册逻辑见 xplugindemo.cpp 的 afterInit()(RLManager),插入窗与属性窗位于 rl/。接口详细说明见:接口说明 — RL 辅助编程。