罗克韦尔 FactoryTalk Optix 集成
  • 24 Jun 2024
  • 2 阅读时间
  • 贡献者

罗克韦尔 FactoryTalk Optix 集成


文章摘要

目的

本指南将逐步介绍如何将 Tulip 与罗克韦尔自动化的 FactoryTalk Optix HMI 可视化软件集成。

Tulip 应用程序可以完全集成到 FactoryTalk Optix HMI 中,这意味着 Tulip 应用程序可以直接在 FactoryTalk Optix 中运行,并且软件平台之间可以进行双向通信。这样,操作员就可以直接在其 HMI 中访问 Tulip,同时允许 Tulip 访问来自机器和 HMI 的所有相关数据。

使用案例

我们的 Tulip 体验中心 (TEC) 演示了生物反应器 eBR 使用案例中的集成功能。在这个例子中,实时机器数据、打开的警报和当前的 Optix 屏幕通过 OPC UA 从 FTOptix HMI 发送到 Tulip。这些数据都作为 Tulip 机器出现在 Tulip 中,然后可用于应用程序、自动化或机器触发器,以提供基于这些数据的逻辑。Tulip 连接器用于将设定值发送回机器,以及控制在 Optix HMI 中显示的屏幕。

如何

在 FactoryTalk Optix 中运行 Tulip

Tulip 应用程序可使用 iframe 功能直接在 FactoryTalk Optix 中运行。Optix 允许用户直接在其 HMI 中嵌入 Web 浏览器,然后使用 Web 浏览器运行 Tulip。

  1. 右击用户界面 > 新建 > 内容 > Web 浏览器,在 Optix HMI 中添加 Web 浏览器。image.png
  2. 选择 Web 浏览器并查看屏幕右侧的属性选项卡。

image.png

  1. 将 URL 设置为https://<your-instance>.tulip.co/player?appId=<your-app-id>。

在郁金香实例中打开所需的应用程序,然后查看浏览器中显示的 URL,就能找到应用程序 ID。URL 的格式为https://<your-instance>.tulip.co/w/<yourapp-id>/process/....

如果不想启动特定应用程序,可以将 URL 设置为https://<your-instance>.tulip.co/player

从 Optix 向郁金香发送数据

有几种协议可用于在 Tulip 和 Optix 之间发送数据。

可以使用 OPC UA 从 Optix 向 Tulip 发送数据。Optix 主机和 OPC UA 服务器,而 Tulip 可以利用其 OPC-UA 客户端功能将数据接收到 Tulip 机器中。如果您不熟悉如何创建和编辑 Tulip 机器,请参阅 ....。

  1. 右键单击 Optix 中的 OPC-UA 文件夹,然后选择新建 > OPC UA 服务器。image.png
  2. 选择 OPC UA 服务器并查看屏幕右侧的 "属性 "选项卡。
  3. 将端点 URL 输入为opc.tcp://localhost:59100,然后配置所需的节点、用户和安全性。如果需要配置帮助,请参阅FTOptix 帮助中心

image.png

方法 1:使用边缘设备连接器主机

  1. 设置 Tulip Edge 设备并将其连接到与 HMI 相同的网络。
  2. 导航至https://<your-instance>.tulip.co/machine_data_sources。也可以通过导航至车间 > 机器,然后从左侧面板选择数据源,找到此页面。
  3. 选择 "创建机器数据源 "按钮。填写以下内容:名称: <希望的数据源名称> 运行于: <您的边缘设备> 类型:OPC UA代理 URL: <人机界面的 IP 地址
  4. 填写与 Optix 中 OPC UA 服务器相匹配的安全选项。
  5. 选择 "测试 "验证连接,然后 "保存"。
  6. 请参阅如何添加和配置机器,将 Optix 数据源连接到 Tulip 中的机器。

方法 2:使用内部连接主机 (OPCH)

  1. 在人机界面上设置 OPCH。有关设置内部部署连接器主机 (OPCH) 的说明,请参阅 "内部部署连接器主机概述"。
  2. 导航至https://<your-instance>.tulip.co/machine_data_sources。也可以通过导航至车间 > 机器,然后从左侧面板选择数据源,找到此页面。
  3. 选择 "创建机器数据源 "按钮。填写以下内容:名称: <希望的数据源名称> 运行于: <您的 OPCH> 类型:OPC UA代理 URL: <人机界面的 IP 地址
  4. 填写与 Optix 中 OPC UA 服务器相匹配的安全选项。
  5. 选择 "测试 "验证连接,然后 "保存"。
  6. 请参阅如何添加和配置机器,将 Optix 数据源连接到 Tulip 中的机器。

从 Tulip 向 Optix 发送数据

  1. 右键单击 NetLogic 文件夹,然后选择新建 > 运行时 NetLogic。使用以下脚本托管 HTTP REST 服务器。@(Embed)(https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/RESTServer(1).cs){height="320" width="640"}
  2. 根据您的用例修改第 869-1000 行。目前的设置是在/targetValues/screen 路径下接收 PUT 调用。接收到的值存储在ref_<variable-name> 中,例如ref_TargetPressure

下面的代码用于接收 PUT 调用并将其传递给 Optix 中的别名。

第 924 - 955 行: ```` case "PUT": switch (e.Path) { case "screen": // http://localhost:8081/screen byte[] payloadraw = (byte[])e.Data; string payload = System.Text.Encoding.UTF8.GetString(payloadraw, 0, payloadraw.Length); string screen = JObject.Parse(payload)["screen"].ToString();

                       ((IUAVariable)LogicObject.GetAlias("refScreenToShow")).Value = screen; res = 1; break; case "targetValues":// http://localhost:8081/targetValues payloadraw = (byte[])e.Data; payload = System.Text.Encoding.UTF8.GetString(payloadraw, 0, payloadraw.Length); Log.Warning(payload); int targetPressure = int.Parse(JObject.Parse(payload)["targetPressure", 0, "targetPressure", 0, "targetPressure", 0, "targetPressure", 0, "targetPressure", 0targetPressure = int.Parse(JObject.Parse(payload)["targetPressure"].ToString()); int targetTemperature = int.Parse(JObject.Parse(payload)["targetTemperature"].ToString()); float targetpH = float.Parse(JObject.Parse(payload)["targetpH"].ToString()); int targetDO = int.Parse(JObject.Parse(payload)["targetDO"].ToString()).((IUAVariable)LogicObject.GetAlias("ref_TargetPressure")).Value = targetPressure; ((IUAVariable)LogicObject.GetAlias("ref_TargetTemperature")).Value = targetTemperature; ((IUAVariable)LogicObject.((IUAVariable)LogicObject.GetAlias("ref_TargetpH")).Value = targetpH; ((IUAVariable)LogicObject.GetAlias("ref_TargetDO")).Value = targetDO; res = 1; break; default: break; } break;


1. 在 Optix 中,选择 REST 服务器 Netlogic,然后查看右侧的 "属性 "面板。REST 服务器代码中分配的别名可以分配给 Optix 中的变量。例如,下图中`ref_TargetTemperature`被分配给 Optix 变量`cfg_TargetTemperature`。![image.png](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/image%28639%29.png){height="" width=""}
2. 在 Tulip 实例中,导航至应用程序 > 连接器。
3. 选择 "创建连接器 "按钮。
4. 创建 HTTP 类型的自定义连接器。
5. 连接详细信息应符合以下内容:**运行于:** `<您的边缘设备或 OPCH>` **主机:** `<人机界面的 IP 地址`>**端口:** `<在 Optix 中分配给 REST 服务器`的端口> -*在上图中,我们使用的是 8081 端口*
6. 选择 "Test(测试)"验证连接,然后选择 "Save(保存)"。
7. 创建一个功能并设置以下内容:**类型:**PUT**路径:**该路径应与代码中设置的路径一致。根据前面的示例,它被设置为`/targetValues`或`/screen`。
8. 在请求正文中添加所有相关参数:![image.png](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/image%28640%29.png){height="" width=""}


如果在 Tulip 中创建连接器功能时需要帮助,请参阅《[如何配置连接器](/r230/docs/how-to-configure-a-connector)》。


## 总结


现在 Tulip 应用程序和 Optix HMI 之间的双向通信已经建立,您可以在两者之间自由发送数据。在我们的集成演示中,我们使用 OPC UA 向 Tulip 发送实时机器数据、任何打开的警报以及当前的 Optix 屏幕。我们使用 REST 服务器发送机器的目标值以及我们希望将 Optix 应用程序切换到的屏幕。这样,我们就可以使用 Tulip 应用程序中的触发器来监视和控制机器以及 Optix 应用程序本身。


如果您对从 Tulip 控制 Optix 屏幕感兴趣,请参考下面的 Runtime NetLogic 代码。该代码应直接放置在 MainWindow(类型)中,并需要根据面板加载器和屏幕的名称进行修改。 @(Embed)(https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/MainWindowRuntimeLogic.cs){height="320" width="640"}


本文对您有帮助吗?