👻

TwinCAT 3.1 4026 のUsermode Runtime で仮想軸を動かす

に公開

はじめに

この記事ではベッコフオートメーション社のTwinCAT 3.1 4026 のユーザモードランタイム機能を使って、仮想軸を動かします。
(簡単にできると思ったら躓いたので、備忘録も兼ねて。)

従来、TwinCAT にはカーネルモードで動作する実行環境XAR がインストールされ、このXAR 上でプロジェクトを動かして動作確認などを行ってきましたが、Hyper-V の仮想マシン上ではこれができませんでした。
(詳細は以前の記事をご覧ください。)
https://zenn.dev/fredec/articles/twincat-virtualizationsettings

それを解決するユーザモードランタイム機能が、TwinCAT 3.1 4026 から追加されています。
今回はこの機能を使ってHyper-V の仮想マシン上でもプロジェクトの動作確認ができるように環境構築します。

使用環境

使用している環境は以下の通りです。

  • TwinCAT: 3.1 Build 4026
    • 会社ではBuild 4024 を使用していますが、Hyper-V 上では4024 の動作確認ができなかったので、4026 で動作確認 -> 4024 へ移植みたいなことをやろうと思ってます。
  • Windows 11
  • Hyper-V

ユーザモードランタイムとは

こちらのテクニカルノートに詳しく書いてくれています。ベッコフさんありがとうございます。
https://beckhoff-jp.github.io/TwinCATHowTo/usermode_runtime/index.html

実際に実行すると一目瞭然で、ターミナル上に実行環境(XAR)が動いていて、開発環境(XAE) からはそのターミナル上のXAR にプログラムをダウンロードしにいってる感じでした。(と、私はてきとうに理解しました。すみません)

やったこと

Hyper-V にWindows11 をインストール

Hyper-V で環境構築するのは、以前書いた記事をご参照ください。
https://zenn.dev/fredec/articles/twincat-virtualizationsettings

TwinCAT 3.1 4026 のインストール

TwinCAT 3.1 4026 のインストールについては、こちらの動画を見ながら実施しました。(重ね重ね、ベッコフさんありがとうございます。)
https://youtu.be/msYKl4Bjzio

インストールするパッケージは、以下があれば問題ないと思います。

  • TwinCAT Standard
    • TwinCAT のXAE とXAR と標準的なライブラリが一緒にインストールされるパッケージです。(たぶん)
  • TC170x
    • ユーザモードランタイム用のライセンスです。
  • TF5000
    • 仮想軸を動かすため、モーション用パッケージを追加しています。

TwinCAT.XARUM.NCPTP のインストール

私がハマった部分ですが、このパッケージがインストールされていないとActivate 時にエラーを吐かれます。

このパッケージはGUI のPackage Manager からは見つけられなかったので、CUI でインストールを行いました。(GUI でもできたらごめんなさい)

  • ターミナルを管理者で起動する
    • ベッコフさんのテクニカルノートでも言及されていますが、"Windows + X" で起動すると早いです。(下画像のようになります。"ターミナル(管理者)"から起動してください。)
  • tcpkg コマンドでインストールコマンドの実行
    • 起動したターミナル上に以下のコマンドを打ち込みます。色々出てInstalled と出たら完了です。
      tcpkg install TwinCAT.XARUM.NCPTP
      
    • (私は後ろでXAE を立ち上げていたので、落としてねと怒られました。)

これで事前準備は完了です。

TwinCAT プロジェクトの用意

仮想軸を動かす用のTwinCAT プロジェクトを立ち上げましょう。
基本的には、下記サイトを見ながら実施いただければ問題ありません。
https://sites.google.com/site/twincathowto/moshon-ji-nengnc/論理軸の設定制御

こちらを見ながらAxis の用意まで完了してください。

ユーザモードランタイムの実行

画面下部のタスクバーから、TwinCAT を選択 → UmRT_Default(UM) を選択して、"Start" を押してください。
(Windows11 のライセンス認証がうっすら見えているのは目をつぶってください。)

UmRT_Default というWindow が立ち上がっていれば問題ありません。

このWindow 上で"c", "r", 等を押すことでTwinCAT System の操作を行うこともできます。(XAE 上から操作することがほとんどではありますが…)

ターゲット指定とActivate

普段、開発用PC から実行環境用PC へアクセスするように、今回は開発用PC からユーザモードランタイムへアクセスします。
ターゲットが"Local" になっていると思うので、"UmRT_Default" へ変更してください。

そのまま、Activate → Run モードへ遷移してください。
下記画像のように、UmRT_Default Windows 上で"TcSysSrvUm state: Run" と表示されていれば正常にRun モードへ移行しています。

仮想軸の動作

ここからはいつも通り、軸を動かしてもらえればOK です。

  • Axis1 を選択 → Online タブ → Enabling のSet を押す → Set Enabling Window でAll を押してPowerOn

  • F3 等を押して動作することを確認!お疲れさまでした。

おわりに

元々4024 しか使ってこなかった私ですが、これを機に4026への移行を考えるくらいにユーザモードランタイムは素晴らしいなと感じました。(Package Manager も普通にすごい…)

この記事のほとんどが色々なサイトの情報を集めただけになってしまいましたが、"TwinCAT.XARUM.NCPTP" の部分だけなかなか出てこなかったこともあり、 今後困るかもしれない誰かの役に立てれば幸いです。

Discussion