构建3D-HMI(3D-HMI)
概述

realvirtual WEB 在浏览器中提供交互式3D-HMI(3D-HMI)。您在 Unity中通过添加轻量级的 Web* 标记组件 来创作它,将它们绑定到 PLC信号,并将场景导出为 GLB。浏览器查看器从 GLB中读取这些标记,并渲染状态指示器、错误高亮、安全区域叠加层、操作员指令和数字孪生链接——连接到实时信号。
这些组件替代了已弃用的 UnityuGUI HMI组件。您不再需要在 Unity场景中构建2D操作面板,而是直接标注3D模型本身,HMI在任意浏览器中运行。
大多数 Web* 组件是 纯标记 —— 它们在 Unity中没有运行时功能,仅描述节点在 realvirtual WEB 中的可视化方式。添加它们,绑定信号,设置标签,然后导出。
从虚拟调试到3D-HMI(3D-HMI)
realvirtual 的3D-HMI(3D-HMI)不是从零构建的——它是您已经为仿真和虚拟调试构建的模型的交付形式。在典型的工程工作流中,行为模型先行,HMI是最后一步:
- 工程/虚拟调试 —— 导入 CAD,添加驱动、传感器、运动学和信号,并在机器制造之前,使用虚拟或真实 PLC测试控制逻辑。
- 交付/3D-HMI(3D-HMI) —— 将以下
Web*标记添加到完成的模型中,将其导出为 GLB,并将其作为连接到运行中机器的实时操作员 HMI交付到任意浏览器。
驱动仿真的相同驱动、传感器、信号和运动学也驱动 HMI。您复用已验证的调试模型,而不是重新构建它——3D-HMI(3D-HMI)是工程工作的自然延续,而不是一个独立的项目。
快速入门
- 选择要标注的 GameObject(一个机器部件、一个传感器、一扇门)。
- 从 realvirtual → WebHMI 组件菜单中添加一个
Web*组件(例如 Web Sensor)。 - 绑定相关的 PLC信号并设置标签或文本。
- 使用 Tools → realvirtual → Export → WebViewer Tools 导出场景并在浏览器中打开。
显示机器运动
3D-HMI(3D-HMI)的核心是机器按照真实情况运动。realvirtual 驱动 直接从实时 PLC信号驱动模型动画,因此浏览器显示真实的机器状态——无需维护单独的动画,用于虚拟调试的相同驱动也驱动 HMI。
| 组件 | HMI用途 |
|---|---|
| Drive | 移动轴(线性或旋转),可视化实时位置或运动。 |
| Drive_FollowPosition | 1:1镜像真实轴——驱动直接跟随 PLC位置信号(例如编码器值),具有缩放和偏移。在 HMI中反映实际机器位置的最佳选择。 |
| Drive_Cylinder | 从布尔信号显示气动执行器在两个终端位置之间移动,带有终端位置反馈——适用于气缸、夹具和挡块。 |
| Drive_Speed | 按实时指令速度移动或旋转组件,例如传送带。 |
完整列表请参见 驱动行为。将运动与以下标记结合使用:驱动显示机器正在做什么,而 WebSensor 和 WebError 叠加其状态。
Web Sensor
组件菜单: realvirtual → WebHMI → Web Sensor
将信号可视化为具有四种状态的颜色编码3D状态指示器——Low(低)、High(高)、Warning(警告)、Error(错误)——使用符合 ISA-101 的配色(灰色/蓝色/琥珀色/红色,琥珀色以1 Hz闪烁,红色以2 Hz闪烁)。绑定 布尔信号(2种状态)或 整数信号(4+种状态)。
| 属性 | 描述 |
|---|---|
| Signal Bool (PLCOutputBool) | 二进制输入:false = Low(低),true = High(高)。用于两状态指示器。 |
| Signal Int (PLCOutputInt) | 通过 Int State Map 映射到状态的整数输入。如果两个信号都设置,则此项优先。 |
| Int State Map (string) | 将整数值映射到状态。空 = 默认(0=Low,1=High,2=Warning,3=Error)。格式:逗号分隔的 value:state 对,例如 0:low,1:high,5:warning,99:error。未列出的值映射到 Low。 |
| Label (string) | 可选标签,显示在工具提示和传感器列表中。 |
Web Error
组件菜单: realvirtual → WebHMI → Web Error
将部件标记为错误源。当信号为高电平时,部件被高亮显示,错误文本作为徽章显示在其旁边,错误在消息面板中显示为卡片(单击它会聚焦该部件)。也可以在没有信号的情况下用作静态提示。
| 属性 | 描述 |
|---|---|
| Signal Error (PLCOutputBool) | true = 错误激活,false = 正常。留空用于静态提示标记。 |
| Error Text (string) | 人类可读的错误消息,显示为3D徽章和消息面板中。 |
| Highlight Style (Auto / Flash Object / Circle) | 部件的高亮方式。Auto 让查看器根据部件大小选择;Flash Object 以2 Hz闪烁红色网格;Circle 绘制红色地面环。 |
Web Visibility
组件菜单: realvirtual → WebHMI → Web Visibility
根据信号显示或隐藏部件,具有可选的错误状态。与其他标记不同,此组件在 Unity运行时也起作用。
| 属性 | 描述 |
|---|---|
| Signal Visible (PLCOutputBool) | true = 可见,false = 隐藏。空 = 使用 Default Visible。 |
| Invert Signal (boolean) | 反转可见性逻辑(信号 false = 可见)。 |
| Default Visible (boolean) | 未绑定可见性信号时使用的可见性。 |
| Additional Targets (list) | 与此对象一起显示/隐藏的额外 GameObject。 |
| Signal Error (PLCOutputBool) | true = 错误激活(红色,闪烁)。空 = 无错误状态。 |
| Error Text (string) | 错误消息,显示为3D徽章和消息面板中。 |
| Highlight Style (Auto / Flash Object / Circle) | 故障部件的高亮方式。 |
| Error Color (color) | 错误高亮的颜色(Unity叠加层和 WEB)。 |
| Blink Speed (float) | 错误高亮的闪烁速度。值越大越快。 |
Web Safety Door
组件菜单: realvirtual → WebViewer → Web Safety Door
添加安全门叠加层:围绕门网格的琥珀色轮廓、地板上的半透明危险区域光晕以及一个看板标签。仅叠加——门网格从不重新着色。
| 属性 | 描述 |
|---|---|
| Hazard Zone Radius (float, mm) | 地板光晕的半径,可视化门下方的危险区域。 |
| Label Height (float, mm) | 看板标签在地板上方的高度。默认位置较低,以免遮挡门。 |
Custom Runtime Instruction
由信号激活的操作员指令,显示在消息面板中。支持单条消息或有序步骤列表;每个步骤可以高亮并框选3D场景中的目标对象,并链接一个文档。
| 属性 | 描述 |
|---|---|
| Type (Info / Maintenance / Warning / Error / Success) | 确定标题、图标和边框颜色。 |
| Dismissible (boolean) | 如果为 true,操作员可以确认消息;它在下一个上升信号沿重新出现。如果为 false,则在信号为高电平时保持显示。 |
| Isolate (boolean) | 仅 realvirtual WEB:单击消息会隔离步骤的目标对象(场景其余部分变暗),同时进行摄像机聚焦和高亮。 |
| Signal (PLCOutputBool) | 可选。上升沿推送消息,下降沿关闭消息。 |
| Steps (list) | 有序的指令步骤。每个步骤包含指令文本、目标对象(并行高亮并框选)和可选的文档 URL。 |
AAS Link
组件菜单: realvirtual → AAS → AAS Link
将部件链接到资产管理壳(Asset Administration Shell)。在浏览器中,AAS(Asset Administration Shell)标识符根据本地 AASX 索引解析(或从服务器 URL获取),悬停或选中时显示铭牌和技术数据作为工具提示。
| 属性 | 描述 |
|---|---|
| AAS Id (string) | AAS(Asset Administration Shell)标识符,例如 http://smart.festo.com/aas/99920200623113326000013225。 |
| Description (string) | 可选描述,显示在工具提示标题中。 |
| Server Url (string) | 可选的 AAS(Asset Administration Shell)服务器 URL。空 = 从本地 aasx/ 文件夹加载 AASX。 |
Web Pivot
组件菜单: realvirtual → WebHMI → Web Pivot
为 realvirtual WEB 定义库对象的显式枢轴点。将其放置在一个空的子 GameObject 上;该子对象的变换位置成为查看器用于 Gizmo、布局对齐和旋转的枢轴点,取代默认的自动枢轴点(包围盒底部中心)。每个库对象仅使用一个。此组件没有属性——只有其位置重要。
工具提示和元数据(Metadata)
RuntimeMetadata 携带每个部件的信息,如物料号和描述。在 realvirtual WEB 中,它驱动悬停工具提示,是将部件链接到其文档的关键。
附加文档
您可以将文档——数据表、维护说明、备件清单——直接附加到3D模型的部件上。链接通过 物料号 建立:每个部件在 RuntimeMetadata 中携带其物料号,文档索引将物料号映射到 PDF 文件。在浏览器中,具有文档的部件被高亮显示,文档按钮打开 PDF 浏览器,悬停部件会显示其文档链接。
这就是生产级3D-HMI(3D-HMI)在实际中的使用方式:每个 CAD部件携带其物料号,操作员直接从3D模型打开匹配的数据表或维护 PDF。

文档与部署一起提供——文档内容不嵌入 GLB中。GLB仅通过 RuntimeMetadata 携带物料号。
展望 —— AI辅助诊断
附加文档也为AI辅助操作打开了大门。当附加的 PDF 在 向量数据库 中建立索引时,大语言模型可以针对您自己的文档回答问题并诊断故障:

- WebDiagnostics 将 PLC错误信号耦合到 AI 诊断。故障发生时,它返回可能的原因、建议的补救措施以及确切的 PDF 来源——带有页面级深度链接指向您的手册。
- AI 通过 realvirtual CONNECT 在服务器端运行:LLM 密钥、向量索引和 PDF 全文保留在服务器上,浏览器仅发送请求并显示结果。
这将3D-HMI(3D-HMI)从监控视图转变为基于机器真实文档的辅助系统。
AI辅助诊断是一项先进的、不断演进的能力。WebDiagnostics 标记作为 realvirtual WEB 功能现已可用;Unity创作组件正在规划中。
参见
- 支持的组件 —— realvirtual WEB 读取的组件完整列表
- realvirtual WEB —— 导出和发布工作流
- HMI组件(已弃用) —— 这些组件替代的旧版 UnityuGUI HMI