
産業用通信プロトコル OPC UA のシミュレーターは Prosys OPC UA Simulation Server が便利
はじめに
製造業のDX推進において設備データの活用は重要なテーマです。しかし、実際の製造設備を使ったテストや開発には多くの課題があります。
さらにクラウドと連携した活用を試してみたい場合は、ダミーデータを使ったシミュレーションでコンセプトの検証(PoC)を行いたいこともよくあります。
本記事では、そんな課題を解決する 「Prosys OPC UA Simulation Server」 について、特徴や活用方法を詳しく解説します。
Prosys OPC UA Simulation Server とは?
「Prosys OPC UA Simulation Server」は、Prosys OPC 社が提供している OPC UA サーバのシミュレーターです。
製造設備のデータ通信をシミュレートできるテスト・開発用のツールで、OPC UAプロトコルに準拠したデータ通信環境を実機なしで構築できます。
また、「Prosys OPC UA Simulation Server」は Java 製なので Windows や Linux などのマルチプラットフォームをサポートしている点も特徴です。製造業向けのツールは Windows 環境しかサポートしていないことがよくあるため、Windows 以外でも利用できるのは嬉しいポイントです。
主な利用用途
「Prosys OPC UA Simulation Server」の利用用途は次のようなものが考えられます。
- OPC UA クライアントアプリケーションのテスト
- AWS IoT SiteWise を使ったシステムの検証などにも有用です。
- システム開発時の動作検証
- 教育・トレーニング環境の構築
- PoC(実証実験)環境の構築
エディション別の機能比較
「Prosys OPC UA Simulation Server」には 2 つの異なるエディションがあります。
無料で利用できる「フリーエディション」でも多くの機能が提供されています。デフォルトで用意されているダミーデータの他に、自分でダミーデータの追加登録もできます
機能カテゴリ | フリーエディション | プロフェッショナルエディション |
---|---|---|
基本機能 | - OPC UAバージョン1.05以前をサポート - データの変更とデータ履歴 - イベントとイベント履歴 |
同左 |
エンドポイント機能 | - エンドポイントを構成する - リバースコネクト - セキュリティ設定 - ユーザーアクセスをカスタマイズする - 証明書の管理 |
同左 |
診断機能 | - コミュニケーション診断 - セッションを監視する - クライアント接続履歴の表示 - クライアント/サーバーメッセージ履歴 |
同左 |
オブジェクトシミュレーション | - OPC UA標準タイプのシミュレーション - 異なるデータ型の変数をシミュレートする |
無料版に加えて下記の機能を提供 - オブジェクトシミュレーション - イベントをシミュレートする - シミュレーション方法 - OPC UA情報モデルのシミュレーション - NodeSetファイルのインポートとエクスポート - コンパニオン仕様で定義された型をシミュレートする - カスタムモデルをシミュレートする |
PubSubシミュレーション | - 1つの Publisher に限定 - 変数とイベントデータセットは1つに制限 |
- データセットの数は無制限 - 複数の Publisher |
Industry 4.0機能 | なし | - オープンインダストリー4.0モード - デバイスシミュレーション - オープンエッジコネクタ(OEC)のシミュレーション |
サポート | フォーラムベースのサポート | - フォーラムベースのサポート - メールベースのサポート |
出典:Prosys OPC UA Simulation Server 製品ページ
主な特徴と機能
1. 豊富なシミュレーションデータ
- カウンター、タイマーなどの制御値
- カスタム定義可能なデータ型
2. リアルタイムデータ生成
- 正弦波、ランダム値などの動的データ生成
- データ更新周期の調整機能
3. 充実したセキュリティ機能
- ユーザー認証
- 証明書による通信暗号化
- アクセス権限管理
4. 使いやすい管理機能
- GUI ベース(デスクトップアプリ)の管理インターフェース
- リアルタイムモニタリング
- ログ管理機能
Prosys OPC UA Simulation Server を使うメリット
類似のシミュレーターは他にも多くありますが、Prosys OPC UA Simulation Server の嬉しい点をまとめてみました。
1. マルチプラットフォームをサポート
- Windows 10 以降 (32bit / 64bit)
- MacOS (Intel / M1 / M2)
- Linux (x64 / arm64)
2. 開発効率の向上
- 実機不要でテスト環境構築が可能
- 様々なシナリオのテストが容易
3. コスト削減
- テスト用設備の購入不要
- 開発期間の短縮
4. リスク低減
- 実機での誤操作リスクなし
- セキュリティテストの実施が可能
うれしかった点
特に個人的にうれしかったのは、冒頭にも記載しましたが Linux(arm64)のサポートです。
ラズパイをはじめとして、多くの「IoT ゲートウェイ」に分類されるデバイスは ARM デバイスであることが多いです。
一方で、製造現場などで利用されるアプリケーションは Windows 系の OS はサポートしていても、Linux や Mac OS などはサポートされていないことが多いように感じます。
そのため OPC UA のダミーサーバを使いたいときは、Windows PC 上でダミーサーバを動かして、Linux のゲートウェイデバイスから Windows マシンへアクセスすることになり、複数台のマシン環境が必要になります。
最近は、多くのプログラミング言語で OPC UA サーバ用のライブラリなどが利用できるので、Linux 上で動くサーバを自作する方法もあります。しかしテストデータの追加・修正などを行うたびにコードを変更する必要があると、サーバを自作する方法は少々不便に感じます。
下記の記事では、「Unified Automation」 が提供するデモサーバを紹介していますが、このデモサーバは Windows 環境でしか利用できません。
SiteWise Edge で利用するデバイスには ARM 系の Linux を使うことが個人的に多いので Windows マシンを別途用意する必要があります。
その他のシミュレーターとして、AWS IoT Greengrass でも利用できるものがあります。
AWS IoT Greengrass が提供するシミュレーターは、当たり前ですが Greengrass の環境が必要になります。また、シミュレータを停止する時は、該当する Greengrass コンポーネントを止める必要があり運用しづらいと感じていました。
Prosys OPC UA Simulation Server を使ってみる
概要を紹介できたので、実際にアプリをインストールして使い勝手を試してみたいと思います。
Prosys OPC UA Simulation Server をダウンロードする
Prosys OPC UA Simulation Server は Prosys OPC 社のホームページからダウンロードできます。
「Request Download」 をクリックするとユーザー情報の入力になるので、各項目を入力してください。
ユーザー情報を入力して次のページに進むと、ダウンロードページの URL がメールで案内されます。
登録したメールアドレスにメールが来ているので、ダウンロードサイトのリンクを開きます。
メールの件名は 「Prosys OPC UA Simulation Server Download Request」 でした。)
ダウンロードサイトから最新バージョンのものをダウンロードします。
ページをスクロールしていくと各 OS に応じたインストーラーのリンクがあるので、自分の環境にあったものをダウンロードします。インストール方法もこのページで説明されています。
(画面ショットは執筆時点のバージョンが映っています。実際に利用する場合は最新バージョンをご利用ください)
注釈に 「Ubuntu 22.04 LTS でテストされた」 と書かれています。私も同じ OS バージョンで確認しましたが、Ubuntu 24.04 LTS では、インストールはできても起動しませんでした。
利用される場合は、利用環境の OS バージョンにご注意ください。
Prosys OPC UA Simulation Server をインストールする
ダウンロードできたら早速インストールします。
まずは「Windows 11 Pro」にインストールしてみます。Linux へのインストールは本記事の後半で紹介しています。
インストールはダウンロードした exe ファイルのインストーラーを実行するだけなので割愛します。基本的にデフォルトのままインストーラーを実行します。
デフォルト設定でインストールしたら、デスクトップにショートカットが作成されます。
Prosys OPC UA Simulation Server でデータを生成して確認してみる
準備が整ったので、実際の使い方を確認してみます。
最初に Prosys OPC UA Simulation Server を起動します。デスクトップにあるショートカットから起動するか、直接アプリを指定して起動して下さい。
起動できるとアプリの画面が開きます。ステータスが 「Running」 になっていることを確認してください。
起動しただけではダミーデータの生成が開始されていない場合があります。
「Objects」タブを開いて 「Value Simulation」をスライドして「Running」に変更します。 これでダミーデータが生成されている状態になります。
このシミュレーターは別途 OPC UA クライアントを用意しなくても、アプリ上でダミーデータを確認できます。
「Objects」 タブを開いて中身を確認したいオブジェクトを適当に選択します。ここでは、Random::BaseDataVariableType
を選択しています。名前から分かるように 「ランダムデータ」 をシミュレーションしている項目です。
画面右側のペインに選択した項目の詳細が表示されます。このうち 「Value」 の値を見ると、リアルタイムに値が変わっている様子が確認できます。
右側のペインにある各タブで「三角マーク」を展開すれば、詳細情報も確認できます。
「Value」タブを開くと生成されたデータを時系列グラフとして確認できます。この画面はリアルタイムに描画が変わります。
Prosys OPC UA Simulation Server でカスタムデータを生成してみる
このシミュレーターのいいところの1つは、ユーザーが任意にカスタムデータを登録できる 点です。この機能が無償で利用できるのは驚きです。実際に登録してみましょう。
最初に「Objects」タブを開き、追加したいオブジェクトの階層を選択します。
今回は Simulation::FolderType
を選択。
対象の階層を選択した状態で 「+」をクリック します。
追加したいオブジェクトの種類が展開されるので、「New Variable...」 を選択します。
追加したい変数の画面が開くので、Name
に適当な名前(今回は MyTest
)を入れて「OK」 をクリックします。これで作成完了です。
変数を新規に登録できたら、画面のように MyTest::BaseDataVariableType
という項目が登録されます。
さらに、この項目を選択して「Value」を開きます。
Inherit from BaseDataVariableType
のスライドボタンをクリックして無効化します。
これを無効化すると Value Type
などを編集できるようになるので、今回は Counter
をセットしてみます。
Counter を選択すると、データのパラメーターの編集画面が出てくるので、Increment を 1
にセットします。
これで 「最小値 0 〜 最大値 30 の間で 1 ずつ値がインクリメントされて、30 になったら 0 に戻る」変数 MyTest
が作られました。
実際に画面下部にある Current Value
がカウントアップしている様子が確認できます。
OPC UA クライアント「Prosys OPC UA Browser」で確認してみる
シミュレーションサーバーだけでもダミーデータを確認できましたが、OPC UA クライアントからの参照方法も確認してみましょう。
Prosys OPC 社は 無償で利用できる OPC UA クライアントも公開しています。
すでに私の環境には UaExpert というクライアントアプリがインストール済みだったのですが、せっかくなのでクライアントも揃えてみたいと思います。
Prosys OPC UA Browser もシミュレーションサーバと同様の環境をサポートしています。
- Windows 10 以降 (32bit / 64bit)
- MacOS (Intel / M1 / M2)
- Linux (x64 / arm64)
シミュレーションサーバーと同様に、上記のページでユーザー情報を入力してインストーラーをダウンロードします。
インストールはダウンロードしたインストーラーを実行すれば完了です。
先ほどと同様にデスクトップにショートカットが作成されるので、ここから起動しましょう。
起動すると次のような画面が開きます。
OPC UA サーバに接続するためには、OPC UA サーバのエンドポイントを確認しておく必要があります。
しかし、私の環境ではシミュレーションサーバーとクライアントが同じ PC 上にあるためか、トップ画面の「Quick Links」という箇所に OPC UA サーバへのリンクが表示されていました。
2つ目に表示されている SimulationServer
のリンクは、Prosys OPC 社が公開しているデモサーバーのようです。
今回は 「Quick Links」が利用できますが、エンドポイントが分からない場合は、Simulation Server のトップ画面から確認できます。
opc.tcp://[YOUR_MACHINE_NAME]:53530/OPCUA/SimulationServer
確認したエンドポイントを OPC UA Browser のアドレスバーに入力すれば、シミュレーションサーバにアクセスできます。
OPC UA プロトコルは、工場の機器間の通信でよく利用されるフィールドバス通信のプロトコルの中でも認証機構を持つプロトコルです。
そのためエンドポイントの指定方法に関係なく、OPC UA サーバーにアクセスする時はセキュリティ設定の確認があります。
(OPC UA クライアントによっては、事前にセットしてから接続するものもあります)
サーバーに接続時に「セキュリティモード」と「セキュリティポリシー」を選択しますが、今回は簡単に動作確認するので 「None」 を選択します。
無事にシミュレーションサーバーに接続できました。
先ほどシミュレーションサーバーでセットしたカスタム値である MyTest
の値を参照してみましょう。
画面左ペインのツリー表示で、Objects
> Simulation
> MyTest
とドリルダウンすると、16.5
という表示を確認できました。
なお、シミュレーションサーバー上ではリアルタイムに更新された値を確認できましたが、OPC UA Browser では黄色い「更新ボタン」を押して最新情報を表示するという仕様になっていました。
(リアルタイムに表示できるクライアントアプリもあります。)
本記事では触れませんが、他の OPC UA クライアントである「UaExpert」でも問題なくシミュレーションサーバーに接続できることを確認しました。UaExpert については下記の記事で紹介しているので、ご興味あれば参照ください。
Prosys OPC UA Simulation Server を Linux(Ubuntu)で利用する
これまで Windows PC 上で動かしていましたが、このアプリの特徴の1つとして Linux や Mac もサポートしている点があります。
さらにうれしいことに、このアプリはゲートウェイデバイスによく利用される ARM アーキテクチャで動く Linux もサポートしています。
手元に Ubuntu がインストールされたラズベリーパイがあったので、これを使ってシミュレーションサーバを動かしてみたいと思います。
利用するラズベリーパイの情報は以下の通りです。
$ uname -a
Linux [MY_RPI_HOST] 5.15.0-1075-raspi #78-Ubuntu SMP PREEMPT Wed Mar 19 05:28:45 UTC 2025 aarch64 aarch64 aarch64 GNU/Linux
$ sudo lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.5 LTS
Release: 22.04
Codename: jammy
事前に、Linux (ARM/Aarch64) 用の PROSYS OPC UA Simulation Server のインストーラーはダウンロードしておいてください。
ダウンロードしたインストーラーをラズパイ上に保存します。
保存したインストーラーは下記のコマンドで実行します。CUI もしくは GUI どちらで実行しても構いません。
(コマンドはダウンロードページに記載されています。インストーラーのファイル名はダウンロードした者に合わせてください。)
sudo sh prosys-opc-ua-simulation-server-linux-x64-5.5.4-384.sh
コマンドを実行すると、インストールウィザードが起動します。
そのまま「Next」をクリックして進めます。
ライセンス確認は、I accept the agreement
で次に進みましょう。
インストールするディレクトリの設定です。デフォルトで困る場合は変更してください。
デフォルトでは /usr/local/prosys-opc-ua-simulation-server
にインストールされます。
シミュレーションサーバのアップデートのチェック間隔を指定できます。
設定が終わるとインストールが始まります。
最後に「Finish」をクリックしてインストールウィザードを終了します。
ウィザードが終了すると、先程のコマンド画面に戻ってきます。
ウィザードの最後に「Run Prosys OPC UA Simulation Server」にチェックが入っていると、インストール終了後にシミュレーションサーバが起動します。
ステータスが「Running」になれば OK です。
(余談ですが、Ubuntu 24.04 LTS では、起動後にステータスがエラーになり正常に起動できませんでした。ここはあらためて調査したいと思います)
デスクトップにショートカットなどは作成されないので、2回目以降で起動したいときはアプリのリスト画面から選択して起動します。
次に、Windows マシンから ラズベリーパイ上のシミュレーションサーバにアクセスしてみます。
接続先の情報は、シミュレーションサーバの画面にアドレスが表示されています。
Windows 側のクライアントにシミュレーションサーバのアドレスを指定します。
セキュリティ設定の確認が表示されるので、ここではセキュリティモードを「None」にセットします。
ユーザー認証も「Annonymous」にしておきます。
(本番利用するときは、相互認証やユーザー認証の利用を検討しましょう)
WindowsのクライアントからLinux上のサーバに接続できました。
最後に
Linux 上で多機能に使える OPC UA サーバの環境を手に入れることができました。
気になる機能が他にもあるので、試した内容をまた紹介できればと思います。
OPC UA の検証にぜひご活用ください。
ロゴの利用について
本記事のアイキャッチに使われている製品ロゴは、Prosys OPC 社から許可を頂いた上で使わせていただいています。
IoT 導入支援 / 相談会の紹介
クラスメソッドでは、AWS を中心とした IoT 導入においてエッジからクラウドまでトータルでお客様をサポートします。
次のようなお困りごとがあれば、お気軽にお問い合わせください。
- ローカルでデータ収集と可視化はできたが、クラウドで可視化する適切な構成が分からない
- 集めたデータを使って故障予知などに使いたい
- 工場設備からデータ収集してクラウドに送る方法が分からない
- スマートファクトリー化を検討しているが何から着手していいか分からない
- デバイスで動くアプリケーションの開発を AWS で効率化したい
- エッジデバイスのセキュリティが心配だ
- カメラ映像をクラウドにストリーミングして活用したい
- その他、お困り事があれば何でもご相談ください