ロックウェルFactoryTalk Optixの統合
  • 24 Jun 2024
  • 1 読む分
  • 寄稿者

ロックウェルFactoryTalk Optixの統合


記事の要約

目的

このガイドでは、Tulipをロックウェル・オートメーションの FactoryTalk Optix HMI視覚化ソフトウェアと統合する 方法を順を追って説明します。

つまり、TulipアプリはFactoryTalk Optixで直接実行でき、ソフトウェアプラットフォーム間の双方向通信が可能です。これにより、オペレータはHMIで直接Tulipにアクセスでき、同時にTulipは機械とHMIからのすべての関連データにアクセスできます。

使用例

チューリップ・エクスペリエンス・センター(TEC)のバイオリアクターeBRユースケースで、この統合のデモンストレーションが紹介されています。この例では、ライブのマシンデータ、オープンアラーム、および現在のOptix画面が、OPC UAを使用してFTOptix HMIからTulipに送信されています。これらはすべてTulip MachineとしてTulipに表示され、アプリ、オートメーション、またはマシントリガーで、そのデータに基づいてロジックを提供するために使用できます。Tulipコネクターは、設定値をマシンに送り返したり、Optix HMIに表示される画面を制御するために使用されます。

方法

FactoryTalk OptixでのTulipの実行

Tulipアプリは、iframe機能を使用してFactoryTalk Optixで直接実行できます。Optixでは、WebブラウザをHMIに直接埋め込 むことができ、それを使用してTulipを実行できます。

  1. UI > New > Contents > Web Browserを右クリックして、WebブラウザをOptix HMIに追加します。image.png
  2. ウェブ・ブラウザを選択し、画面の右側にあるプロパティ・タブを表示します。

image.png

  1. URLをhttps://<your-instance>.tulip.co/player?appId=<your-app-id>に設定します。

アプリIDは、Tulipインスタンスで目的のアプリを開き、ブラウザに表示されるURLを見ることで確認できます。URLは、https://<your-instance>.tulip.co/w/<your-app-id>/process/...のフォーマットに従っています。

特定のアプリに起動したくない場合は、URLをhttps://<your-instance>.tulip.co/playerに設定できます。

OptixからTulipへのデータ送信

TulipとOptixの間でデータを送信するために使用することができるいくつかのプロトコルがあります。

OPC UAを使用して、OptixからTulipにデータを送信できます。OptixはOPC UAサーバーをホストし、TulipはOPC-UAクライアント機能を利用して、そのデータを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 Deviceをセットアップし、HMIと同じネットワークに接続します。
  2. https://<your-instance>.tulip.co/machine_data_sourcesに移動します。このページは、Shop Floor > Machinesに移動し、左側のパネルからData Sourcesを選択することでも見つけることができます。
  3. マシン・データ・ソースの作成」ボタンを選択します。Name: <データソース名> Runs on: <エッジデバイス> Type:OPC UA Agent URL:<エッジデバイスOPC UAエージェント URL: <HMIのIPアドレス
  4. セキュリティ・オプションは、OptixのOPC UAサーバーのものと一致するように入力します。
  5. Test」を選択して接続を確認し、「Save」します。
  6. OptixデータソースをTulipのマシンに接続するには、「マシンの追加と設定方法」を参照してください。

方法2:オンプレミ・コネクタ・ホスト(OPCH)を使用する

  1. HMI で OPCH をセットアップします。オンプレミス・コネクタ・ホスト(OPCH)のセットアップ手順については、「オンプレミス・コネクタ・ホストの概要」を参照してください。
  2. https://<your-instance>.tulip.co/machine_data_sourcesに移動します。このページは、Shop Floor > Machinesに移動し、左側のパネルからData Sourcesを選択することによっても見つけることができます。
  3. マシン・データ・ソースの作成」ボタンを選択します。Name: <データソース名> Runs on: <OPCH >タイプ:OPC UAエージェントURL: <HMIのIPアドレス
  4. セキュリティ・オプションは、OptixのOPC UAサーバーのものと一致するように入力します。
  5. テスト」を選択して接続を確認し、「保存」します。
  6. TulipのマシンにOptixデータ・ソースを接続するには、「マシンの追加と設定方法」を参照してください。

Tulip から Optix にデータを送信する

  1. NetLogic フォルダーを右クリックし、[新規作成]>[ランタイム NetLogic]を選択します。以下のスクリプトを使用して、HTTP REST Serverをホストします。@(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 _<変数名>に格納される

以下のコードは、PUTコールを受信し、Optixのエイリアスに渡すために使用されます。

Lines 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.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_TargetTemperature")).Value = targetTemperature; ((IUAVariable)LogicObject.GetAlias("ref_TargetTemperature")).Value = targetTemperature; ((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 Server Netlogicを選択し、右側のPropertiesパネルを表示します。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. Create Connector(コネクタの作成)」ボタンを選択します。
4. タイプHTTPのカスタムコネクタを作成します。
5. 接続の詳細(Connection Details)は、次のものと一致する必要があります:**実行中:** `<エッジデバイスまたはOPCH>` **ホスト:** `<HMIの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を使用して、ライブのマシンデータ、開いているアラーム、および現在のOptix画面をTulipに送信します。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"}.


この記事は役に立ちましたか?