😺

TwinCAT HMI を用いて、XTS をHMI 上で表示させる

に公開

はじめに

ベッコフオートメーション社のXTS をHMI 上で表示したかったので、TF2000 HMI Engineering を活用して実装した記事を備忘録として記載します。

前回Queue システムを使ってXTS を動かした際、XTS Viewer を使うことでしか描写することができなかったので、少し寂しい感じになっていました。今回はそれを改善します。
設備用の操作画面表示等で活用できると思うので、今後の何かに役立てば良いなと思っています。

【ご参考】Queue システムを使ってXTS を動かした記事はこちら。
https://zenn.dev/fredec/articles/twincatqueue_part2

TwinCAT HMI について

TwinCAT のHMI 機能には2種類あります。

  1. TwinCAT 3 PLC HMI (TF1800)
  2. TwinCAT 3 HMI Server (TF2000)

詳しくは以下の動画で解説されていますのでご参照ください。
https://www.youtube.com/watch?v=-_zTPw4huTE

XTS のHMI Control を使用する際は、2 のHMI Server でないとダメそうだったので、今回はTF2000 を選択しています。
(ちゃんと調べたわけではないので、TF1800 でもできたらすみません)

TwinCAT 3 HMI Server について

TwinCAT のPLC にしかアクセスできない1 のPLC HMI と比較して、2 のHMI Server はPLC の他にTwinCAT 3 C++ や他のWindows アプリケーション上のデータへアクセスすることができます。
今回はシミュレーション上なので関係ありませんが、HMI Client がブラウザ上で動作するため、表示デバイスにTwinCAT が入っていなくてもブラウザさえ搭載されていれば表示させることができます。
https://download.beckhoff.com/download/document/automation/twincat3/TF2000_TC3_HMI_Server_EN.pdf

TwinCAT とはADS プロトコルで通信を行いますが、それ以外の機器とはOPC UA 経由で接続することができるので、かなり設計の幅が広がる印象です。

使用環境

使用している環境は以下の通りです。今回もHyper‐V の仮想マシン内で実装しています。

  • TwinCAT: 3.1 Build 4026
  • TE2000 v14.9.1
    • XAE 環境用です。これがないとHMI Project の作成ができません。
  • TF2000 v14.9.0
  • TF5850 v4.3.5

4026 なので、Package Manager を用いてインストールを行いました。(やはり便利!)

初期設定

HMI プロジェクトの作成

今回用のプロジェクトを作成します。
XTS を動かすためのPLC プロジェクトだけではなく、HMI 用のプロジェクトが必要なので用意します。

Solution Explorer から、Solution を右クリック -> Add -> New Project を開きます。

表示されたWindow から、TwinCAT HMI Project を選択します。

NuGet package のインストール

HMI Server が.NET 系のアプリケーションということで、XTS 用のNuGet Package が用意されています。
TwinCAT プロジェクト内にXTS Control 用のNuGet を追加します。

上記で追加したHMI Project を右クリック → Manage NuGet Packages… を選択。

表示された"NuGet: ***" タブ内の右上にある、Package source を"All" に変更。

タブを"Browse" に変更し、検索バーへ"XTS" と入力します。
"TwinCAT.HMI.XTS.Controls" というパッケージが表示されるので、クリック → 右側の"Install" ボタンを押します。

Output Window に"Finished" と表示されたらインストール完了です。

"Desktop.view" タブを開いた状態で、Toolbox を見ると"XTS Controls" というタブが増えていると思います。

そもそもNuGet って何?という方はこちらに分かりやすい記事がありますのでご参照ください。(ありがとうございます。)
https://zenn.dev/takumi_machino/articles/what-nuget-org

XTS の設定

ここはいつも通りXTS のセットアップを行います。
今回は

  • ループ長: 1500mm のオーバル形状
  • 可動子数: 4

でセットアップを行いました。

XTS System とHMI の紐づけ

HMI 側に対象とするXTS System の設定を行います。
XTS のプロジェクトが動作するXAR がLocal であれば、特に設定は不要そうでした。
今回はユーザモードランタイムでXTS を動作させるため、設定が必要です。
設定の前に、XTS のプロジェクトがRun している必要があるので注意してください。

HMI Project にある、Server → TcXtsHmiServerExtension を選択してタブを開きます。

表示されたタブ内のAdd を押下します。

NETID の箇所をクリックすると、Target System を選択することができます。
今回は、ユーザモードランタイムなので、"UmRT_Default" を選択します。
Name は適当に付けて、下部のAdd を押してください。(今回は"UmRT" と付けました)

設定したシステムが登録されます。Accept を押して完了です。

ここまでで初期設定が完了しました!これからはHMI の作成に入っていきます。

HMI の作成

HMI へXTS View を追加します。

HMI プロジェクト内の"Desktop.view" を開きます。
Toolbox からXTS Controls → XTS View をドラッグ&ドロップします。

赤い×が表示されると思うので、ドロップしたオブジェクトをクリック → プロパティを開きます。
Connection → TargetName が"Local" になっていると思うので、先ほど設定したTarget System の名前を入力します。(今回は"UmRT")

"Desktop.view" をCtrl+S で保存し、一度閉じて開きなおしてください。
設定したXTS ループが表示されるようになっていると思います。

HMI の起動とXTS 動作確認

上記で作成したHMI をウェブブラウザ上で起動させます。
Windows タスクバー右下にある"^" からTwinCAT HMI Server を右クリックします。(青いアイコンです)
作成したプロジェクトが"(プロジェクト名) on port 3000" で表示されるため、クリックします。

"Start Page" をクリックすると、ウェブブラウザが起動します。

XTS が少し小さい…。"Desktop.view" 上でもう少し大きくします。

まぁ良いでしょう!これでHMI の起動は完了です。

今回はMotion 領域の機能でXTS を動かします。
該当の可動子のAxis を開き、Enabling からパワーON させます。

適当にJOG 動作させるとHMI 上の可動子も動いていることが分かります!

実際の動画はGoogle Drive に保存してあるので、宜しければご参照ください。
https://drive.google.com/file/d/1QnhZrXHRqrF7vxEt1kA0XzoFoneOc2HY/view?usp=sharing

おわりに

今回は、TwinCAT 3 HMI Server (TF2000) を使用して、XTS の動作をHMI 上で表示させました。

記事の中ではHMI 上にループまでしか表示させていませんでしたが、実際のユースケースとしてはこれに起動ボタン等を追加して指示を送れるようにしたり、Scope を追加してグラフ表示させたり、色んなことができると思います。
(個人的には、グラフの表示と値の書き込みをできるようにして、HMI 上からXTS のゲイン調整ができるような機能を用意するとハッピーな人が増えるかな…等と考えています。)

XTS View だけ見ても、その他たくさんの機能が盛り込まれているので、今後も触って活用していきたいと思います!

Discussion