- Распечатать
Назначение
В этом руководстве пошагово описана интеграция Tulip с ПО визуализации ЧМИ FactoryTalk Optix компании Rockwell Automation.
Приложения Tulip могут быть полностью интегрированы в ЧМИ FactoryTalk Optix, то есть приложение Tulip может работать непосредственно в FactoryTalk Optix, и между программными платформами возможна двунаправленная связь. Это позволяет оператору иметь доступ к Tulip непосредственно в своем HMI, в то же время предоставляя Tulip доступ ко всем соответствующим данным из машины и HMI.
Пример использования
В нашем Центре опыта Tulip (TEC) представлена демонстрация этой интеграции на примере биореактора eBR. В этом примере данные машины в реальном времени, открытые аварийные сигналы и текущий экран Optix отправляются из ЧМИ FTOptix в Tulip с помощью OPC UA. Все эти данные появляются в Tulip как Tulip Machine, которые затем можно использовать в приложениях, в автоматике или в машинных триггерах для обеспечения логики на основе этих данных. Коннекторы Tulip используются для отправки заданных значений обратно на машину, а также для управления экраном, отображаемым в Optix HMI.
Как
Запуск Tulip в FactoryTalk Optix
Приложения Tulip можно запускать непосредственно в FactoryTalk Optix с помощью функции iframe. Optix позволяет пользователю встроить веб-браузер непосредственно в свой HMI, который затем используется для запуска Tulip.
- Добавьте веб-браузер в свой HMI Optix, щелкнув правой кнопкой мыши UI > New > Contents > Web Browser.
- Выберите веб-браузер и откройте вкладку "Свойства" в правой части экрана.
- Установите URL-адрес
https://<ваше обстоятельство>.tulip.co/player?appId=<ваше приложение-ид>.
Идентификатор приложения можно узнать, открыв нужное приложение в экземпляре Tulip и просмотрев URL, отображаемый в браузере. URL будет иметь формат https://<ваш инстанс>.tulip.co/w/<ваш app-id>/process/....
.
Если вы не хотите запускать определенное приложение, вы можете задать URL-адрес в виде https://<ваше обстоятельство>.tulip.co/player
.
Отправка данных из Optix в Tulip
Существует несколько протоколов, которые можно использовать для отправки данных между Tulip и Optix.
Данные могут быть отправлены в Tulip из Optix с помощью OPC UA. Optix размещает сервер OPC UA, а Tulip может использовать функцию клиента OPC-UA для получения этих данных на машине Tulip. Если вы не знаете, как создавать и редактировать Tulip Machine, обратитесь к .....
- Щелкните правой кнопкой мыши папку OPC-UA в Optix, затем выберите Новый > Сервер OPC UA.
- Выберите сервер OPC UA и откройте вкладку "Свойства" в правой части экрана.
- Введите URL конечной точки
opc.tcp://localhost:59100
, затем настройте необходимые узлы, пользователей и безопасность. Обратитесь к справочному центру FTOptix, если вам нужна помощь в настройке.
Метод 1: Использование узла коннектора пограничного устройства
- Настройте устройство Tulip Edge Device и подключите его к той же сети, что и HMI.
- Перейдите на страницу
https://<ваш объект>.tulip.co/machine_data_sources
. Эту страницу также можно найти, перейдя в Shop Floor > Machines, затем выбрав Data Sources на левой боковой панели. - Выберите кнопку "Создать источник данных машины". Заполните следующие поля: Имя:
<желаемое имя источника данных>
Работает на:<вашем Edge Device>
Тип: OPC UA Agent URL:<IP-адрес HMI>
. - Заполните параметры безопасности, чтобы они соответствовали параметрам сервера OPC UA в Optix.
- Выберите 'Test', чтобы проверить соединение, а затем 'Save'.
- См. раздел " Как добавлять и настраивать машины ", чтобы подключить источник данных Optix к машине в Tulip.
Метод 2: Использование хоста коннектора на месте (OPCH)
- Настройте OPCH на HMI. Инструкции по настройке узла коннектора на месте (OPCH) см. в разделе Обзор узлов коннекторов на месте.
- Перейдите на страницу
https://<ваш объект>.tulip.co/machine_data_sources
. Эту страницу также можно найти, перейдя в Shop Floor > Machines, а затем выбрав Data Sources на левой боковой панели. - Выберите кнопку "Создать источник данных машины". Заполните следующие поля: Имя:
<желаемое имя источника данных>
Работает на:<вашем OPCH>
Тип: OPC UA Agent URL:<IP-адрес HMI>
. - Заполните параметры безопасности, чтобы они соответствовали параметрам сервера OPC UA в Optix.
- Выберите 'Test', чтобы проверить соединение, а затем 'Save'.
- См. раздел " Как добавлять и настраивать машины ", чтобы подключить источник данных Optix к машине в Tulip.
Отправка данных из Tulip в Optix
- Щелкните правой кнопкой мыши папку NetLogic, затем выберите New > Runtime NetLogic. Используйте приведенный ниже сценарий для размещения HTTP REST-сервера. @(Embed)(https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/RESTServer(1).cs){height="320" width="640"}
- Измените строки 869-1000 в соответствии с вашим сценарием использования. В настоящее время сервер настроен на прием вызовов PUT по путям
/targetValues
и/screen
. Полученные значения сохраняются вref_<имя переменной>,
например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"].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.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 перейдите в раздел Apps > Connectors.
3. Выберите кнопку "Создать коннектор".
4. Создайте пользовательский коннектор с типом HTTP.
5. Детали соединения должны соответствовать следующим параметрам: **Running on:** `<ваше пограничное устройство или OPCH>` **Host:** `<IP-адрес HMI>` **Port:** `<порт, назначенный REST-серверу в Optix>` - *На изображении выше мы используем порт 8081*.
6. Выберите 'Test' для проверки соединения, затем 'Save'.
7. Создайте функцию и задайте следующие параметры: **Тип:** PUT **Path:** Путь должен соответствовать тому, что вы указали в коде. В предыдущем примере это будет `/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. Это позволяет нам контролировать и управлять машиной, а также самим приложением Optix с помощью триггеров в нашем приложении Tulip.
Если вы заинтересованы в управлении экраном Optix из Tulip, обратитесь к приведенному ниже коду Runtime NetLogic. Он должен быть помещен непосредственно в MainWindow (тип) и должен быть изменен в соответствии с именами вашего Panel Loader и экранов. @(Embed)(https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/MainWindowRuntimeLogic.cs){height="320" width="640"}