- 第一段階。
- 建筑物
- 应用设计
- 应用程序编辑器
- 郁金香应用程序编辑器介绍
- 创建新的郁金香应用程序
- 如何在应用程序编辑器和播放器中使用键盘快捷键
- 郁金香中的多语言功能
- 步骤
- 小装饰
- 什么是 Widget?
- 输入小工具
- 嵌入式小工具
- 按钮小工具
- 如何配置小工具
- 为步骤添加输入部件 更新资料
- 什么是交互式表格小工具?
- Product Docs Template
- 如何嵌入视频
- 如何在应用程序中嵌入分析功能
- 使用文件
- 动态填充单选或多选 widget
- 如何使用复选框小工具
- 如何添加条形码小工具
- 如何在步骤中添加网格小部件
- 如何在应用程序内和应用程序之间复制/粘贴内容
- 如何在步骤中添加仪表小部件
- 自定义部件概述 更新资料
- 创建签名表步骤
- 使用输入部件进行数据验证 更新资料
- 记录历史小工具概述
- 表格步骤的技术细节
- 如何在应用程序中添加图片
- 如何使用电子签名小工具
- 应用程序中的数字格式 更新资料
- 教科文组织
- 什么是触发器?
- 阶跃触发器
- 应用程序级触发器
- 小部件触发器
- 应用程序过渡指南
- Capture App Screenshot
- 计时器触发器
- 如何添加设备触发器
- 如何通过条件(If/Else 语句)添加触发器
- 触发器编辑器中的操作和转换列表
- 最常见的十大触发因素是什么?
- 如何通过触发器设置部件颜色
- 如何发送电子邮件
- 如何为 Tulip 用户设置短信通知
- 如何从触发器打印步骤
- 如何在应用程序编辑器中使用表达式编辑器
- 表达编辑器的技术细节
- 应用程序编辑器中的完整表达式列表
- 使用日期时间表达式
- 类型化表达
- 使用数组和对象表达式
- 在触发器中处理时间
- 支持的自定义日期格式
- 如何完成应用程序
- 如何通过设备摄像头扫描条形码和 QR 码
- 如何在触发器中添加正则表达式
- 在郁金香应用程序中使用应用程序信息
- 如何使用触发器调用连接器函数
- 变量
- 解决问题
- 达蒂(印度教女神)。
- 连接器
- 分析
- 视觉
- 设备监测
- 受管制行业
- 副驾驶站在第一线。
- 自动化
- 进口中的出口
- 运行应用程序
- 管理
- Developers
- Connect to Software
- Connect to Hardare
- Edge Devices
- 支持的设备
- 可与郁金香配合使用的即插即用设备列表
- 创建和支持设备驱动程序
- 郁金香中的设备驱动程序支持
- 如何设置条形码扫描仪
- 使用串行驱动程序
- 如何将斑马打印机与 Tulip 集成
- 使用 Zebra 网络打印机驱动程序
- 使用 Zebra GK 系列标签打印机驱动程序
- 使用 USB 波贝盒驱动程序
- 使用康耐视 In-Sight 2000 驱动程序
- 如何配置康耐视和 Tulip
- 使用 MT SevenExcellence PH 计驱动程序
- 使用通用 ADC 驱动程序
- 使用欧米茄 HH806 温度计驱动器
- 使用数字卡尺驱动器
- 如何设置通用 TS05 蓝牙测温枪
- 使用康耐视 DataMan TCP 驱动程序
- 为 Windows Tulip Player 设置三丰 U-WAVE 接收器
- 使用布雷克内尔 PS25 称重驱动器
- 使用 RFID 驱动程序
- 使用Kolver EDU 2AE/TOP/E驱动程序
- 使用 USB 脚踏板驱动程序
- 使用 Torque 开放协议驱动程序
- 使用 Dymo M10 USB 电子称驱动程序
- 使用康耐视 In-Sight 驱动程序
- 使用 Telnet 驱动程序
- 使用通用 I/O 驱动程序
- 如何设置科尔弗扭矩控制器
- 使用 Insize 多通道卡尺驱动器
- 使用 Dymo S50 USB 电子称驱动程序
- 斑马 Android DataWedge 配置
- 将三丰数字卡尺与三丰 U 波驱动器配合使用
- 如何添加奥豪斯秤并将输出存储在变量中
- 温湿度传感器单元测试
- Troubleshoot
- Nodo Rosso.
- 创建可重复使用的组件
- 使用应用程序接口
- Edge Driver SDK
- 技术和信息技术文件
- 指南
- 图书馆
- 使用郁金香图书馆 更新资料
- Laboratory Operation App Suite
- 图书馆藏书
- 图书馆应用程序
- 教科书上的例子
- 应用解决方案
- CMMS 应用程序包
- Zerokey solutions
- 成果的可见性
- 物品委託電子申告(eBR)申請書類一式
- 盈科 CAPA Lite
- 5 为何使用人工智能进行根源分析
- 利用人工智能进行简单的缺陷报告
- 业务案例生成器
- 轮班启动会议
- 看板应用程序套件
- 简单的 OEE 控制面板
- Arena BOM 解决方案
- 设备管理应用程序套件
- 简单核对表
- 清单管理套件
- 考勤管理简单解决方案
- 包装与装运图书馆应用
- CAPA 管理
- 移动照相机应用程序
- OEE 计算器
- 每小时生产记分卡
- 材料反冲
- 质量事件仪表板
- 首次通过产量申请
- 采光
- 培训解决方案
- 数字系统库存
- 视觉定位跟踪
- 数字系统访问管理
- 材料管理
- 工具与资产经理
- 优质活动管理
- 带断光传感器的步进推进器
- 数字秒表
- 审核清单
- 卡塔纳企业资源规划应用程序
- 高级别基线评估
- 物料清单管理
- 安全事故经理
- Composable Lean
- Composable Mobile
- 如何申请
- 可堆肥 MES
- 制药行业的 MES 系统
- 连接器和单元测试
- Planeus 单元测试 更新资料
- COPA-DATA 连接器 新
- Veeva 连接器
- Inkit 连接器
- MRPeasy 连接器
- Oracle 融合连接器
- LabVantage 连接器和单元测试
- 谷歌聊天连接器
- Salesforce 连接器
- Litmus 概览
- eMaint 连接器
- eLabNext 连接器
- Acumatica ERP 连接器
- CETEC 连接器
- PagerDuty 连接器
- NiceLabel 集成
- Aras 集成概述
- SDA 集成
- 尼米乐队单元测试
- 竞技场整合 更新资料
- 条码扫描器单元测试
- 脚踏板单元测试
- 开始在 RealWear 头戴式耳机上使用郁金香
- 空气台连接器
- 希波连接器
- 调酒师集成
- SAP S/4 HANA 云连接器
- RFID 扫描仪单元测试
- Jira 连接器
- 斑马标签打印机单元测试
- 谷歌翻译连接器
- MSFT Power Automate
- OpenAI 连接器
- 谷歌日历连接器
- 郁金香应用程序接口单元测试
- Duro PLM 单元测试
- HiveMQ 单元测试
- 与 NetSuite 集成
- 康耐视单元测试
- PowerBI 桌面集成
- ProGlove 单元测试
- Fivetran 集成
- ParticleIO 集成
- Google Drive 连接器
- 雪花连接器 更新资料
- SAP SuccessFactors 连接器
- ZeroKey Integration
- 谷歌地理编码连接器
- 谷歌工作表连接器
- 如何将 Tulip 与 Slack 整合
- HighByte 智能枢纽单元测试
- LandingAI 单元测试
- LIFX 单元测试(无线灯)
- 微软日历连接器
- M365 Dynamics F&O 连接器
- Microsoft Outlook 连接器
- Microsoft Teams 连接器
- 使用 Oauth2 将 Microsoft Graph API 连接到 Tulip
- Microsoft Excel 连接器
- 网宿应用程序和连接器
- OpenBOM 连接器
- 称重秤单元测试
- InfluxDB 连接器
- Augury 连接器
- 连接器
- 舍弗勒 Optime 连接器
- MongoDB Atlas 连接器
- MaintainX 连接器
- Twilio 连接器
- SendGrid 连接器
- 安慰连接器
- 如何为 RealWear 头戴式耳机设计郁金香应用程序
- OnShape 连接器
- 可定制的小部件
- 调度自定义小工具 新
- 时间轴小工具
- json 树查看器小工具
- 看板任务管理小工具
- 徽章小工具
- 高级计时器小工具
- 分段按钮自定义小工具
- 动态仪表自定义小工具
- 小吃店小部件
- 变化探测器单元测试
- 状态颜色指示器 设备测试
- 输入长度检查单元测试
- 计算器自定义部件单元测试
- 图像注释小工具单元测试
- 精益仪表板小工具
- Looper 单元测试
- 秒表单元测试
- 数字输入单元测试
- 数字键盘单元测试
- 径向测量仪
- 菜单单元测试步骤
- SVG 小工具
- 文本输入单元测试
- 工具提示单元测试
- 作业指导 照顾要点 单元测试
- 书面电子签名小工具单元测试
- ZPL 查看器单元测试
- 简单折线图小工具
- 货架自定义小工具
- 滑块小工具
- NFPA 钻石定制小工具
- 通过 - 失败 自定义小工具
- 简单计时器自定义小工具
- Nymi Presence集成小工具
- 自动化
目的
本指南将逐步介绍如何将 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。
- 右击用户界面 > 新建 > 内容 > Web 浏览器,在 Optix HMI 中添加 Web 浏览器。
- 选择 Web 浏览器并查看屏幕右侧的属性选项卡。
- 将 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 机器,请参阅 ....。
- 右键单击 Optix 中的 OPC-UA 文件夹,然后选择新建 > OPC UA 服务器。
- 选择 OPC UA 服务器并查看屏幕右侧的 "属性 "选项卡。
- 将端点 URL 输入为
opc.tcp://localhost:59100
,然后配置所需的节点、用户和安全性。如果需要配置帮助,请参阅FTOptix 帮助中心。
方法 1:使用边缘设备连接器主机
- 设置 Tulip Edge 设备并将其连接到与 HMI 相同的网络。
- 导航至
https://<your-instance>.tulip.co/machine_data_sources
。也可以通过导航至车间 > 机器,然后从左侧面板选择数据源,找到此页面。 - 选择 "创建机器数据源 "按钮。填写以下内容:名称:
<希望的数据源名称>
运行于:<您的边缘设备>
类型:OPC UA代理 URL:<人机界面的 IP 地址
- 填写与 Optix 中 OPC UA 服务器相匹配的安全选项。
- 选择 "测试 "验证连接,然后 "保存"。
- 请参阅如何添加和配置机器,将 Optix 数据源连接到 Tulip 中的机器。
方法 2:使用内部连接主机 (OPCH)
- 在人机界面上设置 OPCH。有关设置内部部署连接器主机 (OPCH) 的说明,请参阅 "内部部署连接器主机概述"。
- 导航至
https://<your-instance>.tulip.co/machine_data_sources
。也可以通过导航至车间 > 机器,然后从左侧面板选择数据源,找到此页面。 - 选择 "创建机器数据源 "按钮。填写以下内容:名称:
<希望的数据源名称>
运行于:<您的 OPCH>
类型:OPC UA代理 URL:<人机界面的 IP 地址
- 填写与 Optix 中 OPC UA 服务器相匹配的安全选项。
- 选择 "测试 "验证连接,然后 "保存"。
- 请参阅如何添加和配置机器,将 Optix 数据源连接到 Tulip 中的机器。
从 Tulip 向 Optix 发送数据
- 右键单击 NetLogic 文件夹,然后选择新建 > 运行时 NetLogic。使用以下脚本托管 HTTP REST 服务器。@(Embed)(https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/RESTServer(1).cs){height="320" width="640"}
- 根据您的用例修改第 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`。{height="" width=""}
2. 在 Tulip 实例中,导航至应用程序 > 连接器。
3. 选择 "创建连接器 "按钮。
4. 创建 HTTP 类型的自定义连接器。
5. 连接详细信息应符合以下内容:**运行于:** `<您的边缘设备或 OPCH>` **主机:** `<人机界面的 IP 地址`>**端口:** `<在 Optix 中分配给 REST 服务器`的端口> -*在上图中,我们使用的是 8081 端口*
6. 选择 "Test(测试)"验证连接,然后选择 "Save(保存)"。
7. 创建一个功能并设置以下内容:**类型:**PUT**路径:**该路径应与代码中设置的路径一致。根据前面的示例,它被设置为`/targetValues`或`/screen`。
8. 在请求正文中添加所有相关参数:{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"}