跳到主要内容

xplugindemo 示例

本文说明二次开发包中 xplugindemo 的源码与 HMI 界面的对应关系。

信息

须先完成 环境总览 中对应开发场景的准备。

1. 编译、导入与使用​

源码含示例与 include/,不含预编译的 xplugin 库。请按下列步骤完成编译、导入与使用。

  1. 按 二次开发包下载 获取仓库源码与开发包。

  2. 将同版本开发包中的 include、lib 复制到源码根目录。仓库虽已含 include/,仍须以开发包头文件为准覆盖,保证与预编译 xplugin 库版本一致。完成后目录结构如下:

源码根目录/
├── include/
├── lib/
│ ├── windows/ Windows:xplugin.dll、xplugin.lib
│ └── aarch64/ 示教器 Linux:xplugin.so
└── examples/xplugindemo/xplugindemo.pro
  1. 使用 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 后再构建。

  1. 按 插件包制作 打包,再按 安装与使用 导入。JSON 配置文件(xplugindemo.json)中的 name 及插件文件名须为 xplugindemo。
  2. 在 选项 → 插件管理 中启用并保存,按提示重启。

插件管理中的 xplugindemo

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

工艺包中打开测试插件

2. 界面挂载区域​

init() 将界面注册到 HMI 的对应区域,实现见 xplugindemo.cpp。接口详细说明见:接口说明 — 全局函数。

HMI 位置调用源码
中心页CreateCenterWidgetpages/demoshell.*
底部状态栏CreateStatusBarshowstatusbar.*
右侧扩展窗CreateRightExpandWidgteexpandwidget.*
物理按键CreatePhyButtonListxplugindemo.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 / RCpagexservicerc.cpp
网络 / 事件 / 日志pagenetworkeventlog.cpp

UI层(pagehmishell.cpp):

中心页 UI层

机器人状态(pagerobotstatus.cpp):

中心页 机器人状态

工程 / 点位 / 变量(pageprojectpointvar.cpp):

该分组内容较长,界面须滚动查看,依次如下。

中心页 工程 / 点位 / 变量(1)

中心页 工程 / 点位 / 变量(2)

中心页 工程 / 点位 / 变量(3)

IO / 寄存器(pageioregister.cpp):

中心页 IO / 寄存器

XService / RC(pagexservicerc.cpp):

中心页 XService / RC

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

中心页 网络 / 事件 / 日志

4. 辅助编程(RL)​

辅助编程允许插件在 RL 编辑器中注册自定义指令。本示例注册指令组 演示分组(源码:tr("demo group"))与指令 Custom。

启用插件并重启后,按下列步骤操作。

4.1 找到演示分组​

  1. 打开 编程 → RL 编辑器。
  2. 在右侧 插入指令 中选择 演示分组。

找到演示分组

4.2 插入指令​

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

插入 Custom 指令

4.3 替换参数​

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

替换参数

提示

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