- Drucken
Rockwell FactoryTalk Optix-Integration
Zweck
Dieser Leitfaden beschreibt Schritt für Schritt die Integration von Tulip mit der FactoryTalk Optix HMI Visualisierungssoftware von Rockwell Automation.
Tulip-Apps können vollständig in FactoryTalk Optix HMIs integriert werden, d.h. eine Tulip-App kann direkt in FactoryTalk Optix laufen und eine bidirektionale Kommunikation zwischen den Software-Plattformen ist möglich. So kann der Bediener direkt in seiner HMI auf Tulip zugreifen, während Tulip Zugriff auf alle relevanten Daten von der Maschine und der HMI hat.
Anwendungsfall
Wir haben eine Demonstration dieser Integration in unserem Tulip Experience Center (TEC) für einen Bioreaktor eBR-Anwendungsfall. In diesem Beispiel werden die Live-Maschinendaten, offene Alarme und der aktuelle Optix-Bildschirm vom FTOptix HMI über OPC UA an Tulip gesendet. Diese erscheinen in Tulip als Tulip Machine, die dann in Apps, in Automatisierungen oder mit Machine Triggers verwendet werden kann, um Logik auf der Grundlage dieser Daten zu liefern. Tulip Connectors werden verwendet, um Sollwerte zurück an die Maschine zu senden und um zu steuern, welcher Bildschirm in der Optix HMI angezeigt wird.
Wie man
Tulip in FactoryTalk Optix ausführen
Tulip-Anwendungen können direkt in FactoryTalk Optix mit Hilfe der Iframe-Funktionalität ausgeführt werden. Optix ermöglicht es dem Benutzer, einen Webbrowser direkt in seine HMI einzubetten, der dann zur Ausführung von Tulip verwendet wird.
- Fügen Sie einen Web-Browser in Ihre Optix-Bedienoberfläche ein, indem Sie mit der rechten Maustaste auf UI > Neu > Inhalt > Web-Browser klicken.
- Wählen Sie den Webbrowser und sehen Sie sich die Registerkarte Eigenschaften auf der rechten Seite des Bildschirms an.
- Stellen Sie die URL auf
https://<Ihre-Instanz>.tulip.co/player?appId=<Ihre-App-ID>.
Die App-ID finden Sie, indem Sie die gewünschte App in Ihrer Tulip-Instanz öffnen und dann die im Browser angezeigte URL betrachten. Die URL hat das Format https://<ihre-instanz>.tulip.co/w/<ihre-app-id>/process/....
Wenn Sie keine bestimmte Anwendung starten möchten, können Sie die URL auf https://<Ihre-Instanz>.tulip.co/player
setzen.
Daten von Optix an Tulip senden
Es gibt mehrere Protokolle, die für die Übertragung von Daten zwischen Tulip und Optix verwendet werden können.
Daten können von Optix über OPC UA an Tulip gesendet werden. Optix hostet einen OPC UA Server, während Tulip seine OPC-UA Client-Funktionalität nutzen kann, um diese Daten in einer Tulip-Maschine zu empfangen. Wenn Sie nicht wissen, wie Sie eine Tulip Machine erstellen und bearbeiten können, lesen Sie bitte unter .... nach.
- Klicken Sie mit der rechten Maustaste auf den OPC-UA Ordner in Optix und wählen Sie dann Neu > OPC UA Server.
- Wählen Sie den OPC UA Server und sehen Sie sich die Registerkarte Eigenschaften auf der rechten Seite des Bildschirms an.
- Geben Sie die Endpunkt-URL
opc.tcp://localhost:59100
ein und konfigurieren Sie die gewünschten Knoten, Benutzer und Sicherheitseinstellungen. Wenn Sie Hilfe bei der Konfiguration benötigen, wenden Sie sich an das FTOptix Help Center.
Methode 1: Verwendung eines Edge Device Connector Hosts
- Richten Sie Ihr Tulip Edge Device ein und verbinden Sie es mit demselben Netzwerk wie das HMI.
- Navigieren Sie zu
https://<Ihre-Instanz>.tulip.co/machine_data_sources
. Diese Seite finden Sie auch, indem Sie zu Shop Floor > Machines navigieren und dann Data Sources auf der linken Seite auswählen. - Wählen Sie die Schaltfläche 'Maschinendatenquelle erstellen'. Geben Sie Folgendes ein: Name:
<Wunschname der Datenquelle>
Läuft auf:<Ihr Edge-Gerät>
Typ: OPC UA Agent URL:<IP-Adresse des HMI>
- Füllen Sie die Sicherheitsoptionen aus, die mit denen des OPC UA Servers in Optix übereinstimmen.
- Wählen Sie "Test", um die Verbindung zu überprüfen und dann "Speichern".
- Siehe Hinzufügen und Konfigurieren von Maschinen, um die Optix-Datenquelle mit einer Maschine in Tulip zu verbinden.
Methode 2: Verwendung eines On-Prem Connector Host (OPCH)
- Richten Sie einen OPCH auf dem HMI ein. Anweisungen zum Einrichten eines On-Premise Connector Hosts (OPCH) finden Sie unter Übersicht über On-Premise Connector Hosts.
- Navigieren Sie zu
https://<Ihre-Instanz>.tulip.co/machine_data_sources
. Diese Seite finden Sie auch, indem Sie zu Shop Floor > Maschinen navigieren und dann Datenquellen auf der linken Seite auswählen. - Wählen Sie die Schaltfläche 'Maschinendatenquelle erstellen'. Geben Sie Folgendes ein: Name:
<Wunschname der Datenquelle>
Läuft auf:<Ihr OPCH>
Typ: OPC UA Agent URL:<IP-Adresse des HMI>
- Füllen Sie die Sicherheitsoptionen aus, die mit denen des OPC UA Servers in Optix übereinstimmen.
- Wählen Sie "Test", um die Verbindung zu überprüfen und dann "Speichern".
- Siehe Hinzufügen und Konfigurieren von Maschinen, um die Optix-Datenquelle mit einer Maschine in Tulip zu verbinden.
Daten von Tulip an Optix senden
- Klicken Sie mit der rechten Maustaste auf den NetLogic-Ordner und wählen Sie dann Neu > Runtime NetLogic. Verwenden Sie das folgende Skript, um den HTTP REST Server zu hosten. @(Embed)(https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/RESTServer(1).cs){height="320" width="640"}
- Ändern Sie die Zeilen 869-1000 für Ihren Anwendungsfall. Derzeit ist sie so eingerichtet, dass sie PUT-Aufrufe an den Pfaden
/targetValues
und/screen
empfängt. Die empfangenen Werte werden inref_<Variablenname>
gespeichert,
zum Beispielref_TargetPressure
.
Der folgende Code wird verwendet, um die PUT-Aufrufe zu empfangen und sie an Aliase in Optix weiterzuleiten.
Zeilen 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. Wählen Sie in Optix den REST-Server Netlogic aus und sehen Sie sich dann den Bereich Eigenschaften auf der rechten Seite an. Die im Code des REST-Servers zugewiesenen Aliase können in Optix Variablen zugewiesen werden. In der folgenden Abbildung wird beispielsweise `ref_TargetTemperature` der Optix-Variable `cfg_TargetTemperature` zugewiesen.![image.png](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/image%28639%29.png){height="" width=""}
2. Navigieren Sie in Ihrer Tulip-Instanz zu Apps > Connectors.
3. Wählen Sie die Schaltfläche 'Connector erstellen'.
4. Erstellen Sie einen benutzerdefinierten Connector mit dem Typ HTTP.
5. Die Verbindungsdetails sollten wie folgt aussehen: **Running on:** `<Ihr Edge-Gerät oder OPCH>` **Host:** `<IP-Adresse des HMI>` **Port:** `<Port, der dem REST-Server in Optix zugewiesen ist>` - *In der obigen Abbildung verwenden wir Port 8081*
6. Wählen Sie "Test", um die Verbindung zu überprüfen, und dann "Speichern".
7. Erstellen Sie eine Funktion und legen Sie Folgendes fest: **Type:** PUT **Pfad:** Dies sollte mit dem Pfad übereinstimmen, den Sie im Code angegeben haben. Im vorherigen Beispiel ist dies `/targetValues` oder `/screen`.
8. Fügen Sie alle relevanten Parameter in den Request Body ein:![image.png](https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/image%28640%29.png){height="" width=""}
Wenn Sie Hilfe bei der Erstellung von Connector-Funktionen in Tulip benötigen, lesen Sie bitte [How to Configure a Connector](/r230/docs/how-to-configure-a-connector).
## Zusammenfassung
Die bidirektionale Kommunikation zwischen Ihrer Tulip-Anwendung und Optix HMI ist nun eingerichtet, so dass Sie Daten frei zwischen den beiden Systemen senden können. In unserer Demonstration dieser Integration verwenden wir OPC UA, um die Live-Maschinendaten, alle offenen Alarme und den aktuellen Optix-Bildschirm an Tulip zu senden. Wir verwenden den REST Server, um Zielwerte für die Maschine zusammen mit dem Bildschirm, auf den wir die Optix App umschalten wollen, zu senden. So können wir die Maschine und die Optix-App selbst mit Hilfe von Triggern in unserer Tulip-App überwachen und steuern.
Wenn Sie daran interessiert sind, den Optix-Bildschirm von Tulip aus zu steuern, sehen Sie sich den folgenden Runtime NetLogic Code an. Er sollte direkt im MainWindow (type) platziert werden und muss an die Namen Ihres Panel Loaders und der Bildschirme angepasst werden. @(Embed)(https://cdn.document360.io/7c6ff534-cad3-4fc8-9583-912c4016362f/Images/Documentation/MainWindowRuntimeLogic.cs){height="320" width="640"}