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

概述

realvirtual WEB 3D-HMI —— 实时 KPI、驱动监控、消息面板和文档链接,在浏览器中运行

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是最后一步:

  1. 工程/虚拟调试 —— 导入 CAD,添加驱动、传感器、运动学和信号,并在机器制造之前,使用虚拟或真实 PLC测试控制逻辑。
  2. 交付/3D-HMI(3D-HMI) —— 将以下 Web* 标记添加到完成的模型中,将其导出为 GLB,并将其作为连接到运行中机器的实时操作员 HMI交付到任意浏览器。

驱动仿真的相同驱动、传感器、信号和运动学也驱动 HMI。您复用已验证的调试模型,而不是重新构建它——3D-HMI(3D-HMI)是工程工作的自然延续,而不是一个独立的项目。

快速入门

  1. 选择要标注的 GameObject(一个机器部件、一个传感器、一扇门)。
  2. realvirtual → WebHMI 组件菜单中添加一个 Web* 组件(例如 Web Sensor)。
  3. 绑定相关的 PLC信号并设置标签或文本。
  4. 使用 Tools → realvirtual → Export → WebViewer Tools 导出场景并在浏览器中打开。

显示机器运动

3D-HMI(3D-HMI)的核心是机器按照真实情况运动。realvirtual 驱动 直接从实时 PLC信号驱动模型动画,因此浏览器显示真实的机器状态——无需维护单独的动画,用于虚拟调试的相同驱动也驱动 HMI。

组件HMI用途
Drive移动轴(线性或旋转),可视化实时位置或运动。
Drive_FollowPosition1: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。

组件菜单: 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。

机器手册直接在 3D-HMI 中打开,深层链接到相关页面
ℹ️

文档与部署一起提供——文档内容不嵌入 GLB中。GLB仅通过 RuntimeMetadata 携带物料号。

展望 —— AI辅助诊断

附加文档也为AI辅助操作打开了大门。当附加的 PDF 在 向量数据库 中建立索引时,大语言模型可以针对您自己的文档回答问题并诊断故障:

AI 辅助的报警诊断 —— 原因、推荐步骤和引用来源,带有手册的页面级深层链接
  • WebDiagnostics 将 PLC错误信号耦合到 AI 诊断。故障发生时,它返回可能的原因、建议的补救措施以及确切的 PDF 来源——带有页面级深度链接指向您的手册。
  • AI 通过 realvirtual CONNECT 在服务器端运行:LLM 密钥、向量索引和 PDF 全文保留在服务器上,浏览器仅发送请求并显示结果。

这将3D-HMI(3D-HMI)从监控视图转变为基于机器真实文档的辅助系统。

⚠️

AI辅助诊断是一项先进的、不断演进的能力。WebDiagnostics 标记作为 realvirtual WEB 功能现已可用;Unity创作组件正在规划中。

参见