2026年、AUTONDMYのOPENPLC V4は大幅な更新があり、EditorとRuntimeにもV4が正式リリースしました!このシリーズは実際にOPENPLC V4を使って様々な検証を行っていきます。第4話ではAutonomy Edge PlatfromからOrchestrotorsの作成→vPLC作成を説明します。
さ、FAを楽しもう!

前書き
いつも私の技術ブログとYouTubeチャンネルをご覧いただき、心より感謝申し上げます。また、いまFullさん(full@桜 八重 (@fulhause) / X)と共に毎週水曜日の夜にお届けしている「高橋クリス」ラジオ番組を運営しています。
技術は独り占めせず、届けるもの
私たちは工場の生産技術や制御に関する技術情報を、ブログや動画などで無料公開しています。「知識は誰でもアクセスできるべき」という信念のもと、現場で役立つ具体的なノウハウやトラブル事例などを発信してきました。すべて無料で続けているのは、「知らなかったせいで困る人」を少しでも減らしたいからです。
また、もしあなたの現場で…
- 「このPLCとデバイスの組み合わせ、ちゃんと動くのかな?」
- 「EtherCAT通信でうまくいかない部分を検証してほしい」
- 「新しいリモートI/Oを試したいけど社内に検証環境がない」
など、困っている構成や試してみたいアイデアがあれば、ぜひお知らせください。機器の貸出や構成の共有が可能であれば、検証し、記事や動画で発信します(ご希望に応じて匿名対応も可能です)。
支援のかたち
現在、私達の活動はほぼ無償で続けており、記事や動画の制作には、時間と検証環境の整備が必要です。この活動を継続的にコンテンツを提供するためには、皆様の温かいご支援が大変重要です。
メンバーシップ(ラジオの応援)
Fullさんとのラジオをより充実させるための支援プランです。
https://note.com/fulhause/membership/join
Amazonギフトリスト
コンテンツ制作に必要な機材・書籍をリストにしています。
https://www.amazon.co.jp/hz/wishlist/ls/H7W3RRD7C5QG?ref_=wl_share
Patreon(ブログ・動画活動への応援)
月額での小さなご支援が、記事の執筆・検証環境の充実につながります。
https://www.patreon.com/user?u=84249391
Paypal
小さな支援が大きな力になります。
https://paypal.me/soup01threes?country.x=JP&locale.x=ja_JP
知ってたら助かること、届けたいだけです
あなたの応援が、知識の共有をもっと自由で持続可能なものにしてくれます。これからもどうぞよろしくお願いします。
soup01threes*gmail.com
技術はひとりじゃもったいない。
Reference Link
http://soup01.com/ja/category/openplc/
Autonomy Edge
Autonomy Edgeは、産業オートメーション向けのクラウドベースプラットフォームであり、最新のソフトウェア開発手法をPLCプログラミングに導入します。専用ハードウェアやプロプライエタリソフトウェアのインストールを必要とせず、Webブラウザ上でオートメーションプログラムの開発、デプロイ、管理をすべて行うことができます。
なぜAutonomy Edgeなのか?
従来のPLC開発には、高価なハードウェア、プロプライエタリなソフトウェアライセンス、そしてデバイスへの物理的なアクセスが必要でした。Autonomy Edgeは、以下を提供することでこれらの障壁を取り除きます:
ブラウザベースの開発: ソフトウェアを一切インストールすることなく、業界標準のIEC 61131-3言語でPLCプログラムを作成できます
仮想PLC: オートメーションロジックを、コンテナ化されたランタイムインスタンスで動作する物理デバイス(PLC、PAC、産業用PC、サーバー)にリアルタイムでデプロイできます
リモート管理: インターネット接続があればどこからでもプログラムのデプロイやデバイスの監視が可能です(インターネットは管理操作にのみ必要であり、制御ロジックの実行には不要です)
クラウドコラボレーション: チームメンバーとプロジェクトを共有し、バージョン履歴を自動的に管理できます
プラットフォームアーキテクチャ
Autonomy Edgeのエコシステムは、連携して動作する4つの主要コンポーネントで構成されています:


Autonomy Edgeプラットフォーム
プロジェクト、ユーザー、デバイスを管理するクラウドベースのWebアプリケーションです。オートメーションプログラムを作成するためのブラウザベースのOpenPLC Editor IDEが含まれています。

Orchestrator
エッジデバイス(LinuxベースのPLC、PAC、産業用PC、オンプレミスサーバーなど)上で動作するエージェントで、vPLCインスタンスを管理します。クラウドへのセキュリティを維持し、コンテナオーケストレーション、ネットワーキング、システム監視を処理します。

vPLC(仮想PLC)
オートメーションプログラムを実行する、OpenPLC Runtime v4のコンテナ化されたインスタンスです。各vPLCは独立して動作し、様々の産業用プロトコルを介して物理デバイスと通信できます。

物理I/Oおよびデバイス
Modbus TCP/IP、Modbus RTU、EtherCAT、EtherNet/IPなどの産業用プロトコルを介してvPLCに接続される、センサー、アクチュエーター、リモートI/Oモジュール、HMI、その他の産業機器です。

Orchestrators?
Orchestratorsエージェントは、Autonomy Edgeプラットフォームの中核を担うコンポーネントの一つです。物理ハードウェア上でPLCプログラムを実行するために不可欠なコンポーネントです。
エッジデバイスにオーケストレーターエージェントがインストールされていない場合、Autonomy EdgeプラットフォームはローカルのPLCランタイムに接続することも制御することもできません。
オーケストレーターは、クラウドベースのAutonomy Edgeアプリケーションと産業オートメーション機器との間のセキュリティブリッジとして機能し、世界中のどこからでもPLCプログラムのリモートデプロイと管理を可能にします。
Orchestratorsが不可欠な理由
Autonomy Edgeプラットフォームは、Webブラウザを通じてPLCプログラムを作成・編集するクラウドファーストのソリューションとして設計されています。しかし、これらのプログラムを実際のハードウェア上で実行し、物理I/Oとやり取りするためには、クラウドとローカルの産業ネットワークとの間のギャップを埋める手段が必要になります。まさにこの役割を果たすのが、オーケストレーターエージェントです。
Autonomy EdgeからPLCプログラムをデプロイすると、そのリクエストはクラウドプラットフォームからオーケストレーターエージェントを経由して、エッジデバイス上で動作するOpenPLCランタイムへと流れていきます。オーケストレーターは、セキュリティ通信やコンテナ管理、ネットワーク構成といった複雑な処理をすべて引き受けてくれるため、ユーザーはインフラの問題に煩わされることなく、オートメーションロジックの開発に集中することができます。
Orchestratorsの役割とは?
Orchestratorsは、オートメーションインフラにおいていくつかの重要な機能を担っています。
リモートデバイス管理
ローカルマシン上に仮想PLCコンテナ(vPLC)を作成・管理します。これらのvPLCはOpenPLCランタイムを実行し、物理的な産業用コントローラーと同様にPLCプログラムを実行することができます。
セキュアなクラウド通信
相互TLS(mTLS)認証を用いてAutonomy Edgeクラウドとの永続的かつ暗号化された接続を維持します。これにより、認可されたデバイスのみがアカウントに接続でき、すべての通信が盗聴や改ざんから保護されます。
システム監視
CPU使用率、メモリ消費量、ディスク容量、稼働時間などのシステムヘルスメトリクスを継続的に報告します。これらのメトリクスはAutonomy Edgeプラットフォーム上にリアルタイムで表示され、どこからでもエッジデバイスの状態を監視することが可能です。
ネットワーク統合
オーケストレーターが作成した仮想PLCデバイスは、MACVLANネットワーキングを使用してローカルネットワーク上の物理デバイスとして認識されるように構成できます。これにより、Modbus TCPなどの標準プロトコルを使って他の産業機器と直接通信することが可能になります。
動的ネットワーク適応
ホストマシンが異なるネットワーク間を移動した場合(例えば、可搬式の産業システムなど)、オーケストレーターはネットワークの変更を自動的に検出し、接続性を維持するためにvPLCコンテナを再構成します。
オフライン動作とローカルネットワークアクセス
オーケストレーターアーキテクチャの重要な特徴として、インターネット接続が必要となるのはリモート監視と管理の場合のみであるという点が挙げられます。vPLCインスタンスがPLCプログラムを実行している状態であれば、すべての制御ロジックはエッジデバイス上でローカルに実行されます。そのため、インターネット接続が失われても、PLCプログラムは停止しません。オートメーションは通常どおり動作を継続し、物理I/Oの制御やローカルネットワーク上の他のデバイスとの通信を維持します。
インターネット接続が切れた場合に失われるのは、Autonomy Edgeクラウドプラットフォームを使用してvPLCインスタンスを監視したり、別のプログラムをアップロードしたり、新しいvPLCを作成したり、システムメトリクスを確認したりする機能です。ただし、これらの操作はすべて、インターネットアクセスがなくてもローカルネットワークから引き続き実行可能です。
各vPLCインスタンスは、OpenPLC Runtimeを搭載した物理PLCデバイスとまったく同じOpenPLCランタイムを実行しています。つまり、同じローカルネットワークに接続された任意のコンピューターからOpenPLC Editorデスクトップソフトウェアを使用して、vPLCインスタンスに直接接続することができます。OpenPLC Editorから見れば、Autonomy Edgeオーケストレーターエージェントによって作成・管理されたvPLCデバイスと、専用PLCハードウェア上で動作する実際のOpenPLC Runtimeとの間に違いはありません。
この設計により、継続的な稼働が不可欠な産業用アプリケーションに対して運用上のレジリエンスが確保されます。オートメーションロジックはインターネットの可用性に関係なく動作し続け、監視やプログラミングのフォールバック手段としてローカルネットワークアクセスが常に利用可能です。
アーキテクチャ概要
オーケストレーターシステムは、連携して動作する2つのDockerコンテナで構成されています。両コンテナは自動再起動ポリシーのもとで動作しており、システムの再起動や予期しない障害が発生した場合でも、オートメーションインフラが引き続き稼働し続けることを保証しています。
Orchestrator Agent
これはメインの制御デーモンであり、Autonomy Edgeクラウドとの通信処理、vPLCコンテナの管理、そしてすべてのオーケストレーション活動の調整を担当します。

ネットワークモニター
これはコンパニオンコンテナとして、ホストの物理ネットワークインタフェースを監視し、vPLCコンテナのDHCPクライアントを管理します。このコンテナにより、ネットワーク状況が変化してもvPLCの接続を維持する動的ネットワーク適応機能が実現されています。

Orchestratorを使用するタイミング
Orchestratorは、以下のような目的がある場合にデプロイすることを推奨します。物理的なアクセスなしにエッジデバイス上のPLCプログラムをリモートで管理したい場合、中央の拠点から複数のサイトにまたがるオートメーションロジックをデプロイ・更新したい場合、産業用コンピューティングインフラのヘルス状態やステータスを監視したい場合、物理的な産業機器と通信可能な仮想PLCデバイスを作成したい場合、そしてエッジデバイスとクラウド間でセキュアかつ認証された接続を維持したい場合です。
システム要件
オーケストレーターをインストールする前に、ターゲットマシンが以下の要件を満たしていることを確認してください:
オペレーティングシステム
Linuxが必須です。インストーラーは、Ubuntu、Debian、Red Hat Enterprise Linux(RHEL)、CentOS、Fedoraを含む主要なディストリビューションに対応しています。
権限
インストールにはrootまたはsudoアクセスが必要です。インストーラーは、Docker(未インストールの場合)のインストール、システムディレクトリの作成、オーケストレーターコンテナの構成を行うために、昇格された権限を必要とします。
Docker
Dockerがインストールされ、実行されている必要があります。Dockerがインストールされていない場合、インストーラーはシステムのパッケージマネージャーを使用して自動的にインストールを試みます。
ネットワークアクセス
インストール時には、コンテナイメージのダウンロードおよびAutonomy Edgeプロビジョニングサービスとの通信のためにインターネットアクセスが必要です。インストール後も、クラウドプラットフォームとの接続を維持するために継続的なインターネットアクセスが必要となります。
ハードウェア
オーケストレーター自体のリソース要件はごくわずかです。ただし、実行を予定しているvPLCコンテナに対して十分なリソースを確保する必要があります。各vPLCは、通常動作時に約256 MBのRAMとわずかなCPUリソースを必要とします。
Installer
インストーラーは、curl、jq、openssl、Dockerといった依存パッケージが不足している場合、自動的に検出してインストールを行います。
対応産業機器
オーケストレーターエージェントは、シェルアクセスが可能でDockerコンテナを実行できるあらゆるLinuxデバイスと幅広く互換性を持つよう設計されています。そのため、専用のエッジコントローラーから産業用PCまで、多種多様な産業用ハードウェアへのデプロイに適しています。
どのデバイスにおいても共通して必要な要件は、対応するLinuxディストリビューション(Ubuntu、Debian、RHEL、CentOS、またはFedora)、Dockerコンテナの実行能力、rootまたはsudo権限によるシェルアクセス、そしてインターネットへのネットワーク接続です。特定の産業用デバイスにデプロイする前に、お使いのデバイスのファームウェアがDockerのインストールを許可していること、および必要なアクセス権限を持っていることを確認してください。
LinuxベースのPLCおよびエッジコントローラー
最新の産業用コントローラーの多くはLinux上で動作し、ターミナルアクセスを提供しているため、オーケストレーターエージェントの実行に最適な候補となります。具体的には、Siemens IOT2050産業用エッジデバイス、Opto 22 groov EPICおよびgroov RIOコントローラー、WAGO PFC200シリーズコントローラー、Phoenix Contact PLCnextコントローラー、Revolution Pi(Kunbus)産業用Raspberry Piモジュール、Hilscher netPIエッジゲートウェイなどが挙げられます。
産業用PCおよびエッジゲートウェイ
Linuxディストリビューションを搭載した堅牢な産業用コンピューターは、オーケストレーターの理想的なホストとなります。代表的な選択肢としては、Advantech UNOおよびARKシリーズ産業用PC、OnLogic産業用コンピューター、Kontron組込みPC、Moxa産業用コンピューターおよびゲートウェイ、AxiomtekおよびAAEON産業用ボックスPCなどがあります。
汎用Linuxシステム
開発、テスト、またはそれほど高い要件を求められないアプリケーション向けには、サーバーハードウェア、デスクトップコンピューター、あるいはRaspberry Piのようなシングルボードコンピューター(評価目的)など、あらゆる標準的なLinuxシステム上でオーケストレーターを実行することが可能です。
セキュリティモデル
orchestratorは、相互TLS(mTLS)認証に基づく堅牢なセキュリティモデルを採用しています。
証明書ベースのアイデンティティ
各orchestratorには、インストール時に一意の識別子が割り当てられます。この識別子はRSA-4096証明書に埋め込まれ、オーケストレーターがクラウドとの認証に使用します。
相互認証
orchestratorとクラウドサーバーの双方が、接続を確立する前に互いのアイデンティティを検証します。これにより、不正なデバイスがアカウントに接続することを防止し、中間者攻撃からも保護されます。
暗号化通信
orchestratorとクラウド間で送受信されるすべてのデータは、TLS 1.2以上を使用して暗号化されます。
セキュリティ認証情報の保管
orchestratorの秘密鍵は、保護されたディレクトリ内に制限されたファイルパーミッション(600)で保存されており、オーケストレータープロセスのみがアクセスできるようになっています。
vPLC?
仮想PLC(vPLC)は、オーケストレーターのホストマシン上のDockerコンテナ内で動作するソフトウェアベースのプログラマブルロジックコントローラーです。物理PLCと同等の機能を提供しながら、コンテナ化されたアプリケーションならではの柔軟性とスケーラビリティを兼ね備えています。
vPLCは、orchestratorエージェントによって管理されるエッジデバイス上で動作する、OpenPLC Runtimeのコンテナ化されたインスタンスです。各vPLCは独立したPLCとして動作し、Structured Text、Ladder Diagram、Function Block Diagramなど、IEC 61131-3言語で記述されたプログラムを実行することができます。
Autonomy Edgeプラットフォームを通じてvPLCを作成すると、orchestratorエージェントがOpenPLC Runtimeソフトウェアを搭載した新しいDockerコンテナを自動的にプロビジョニングします。このコンテナはホストマシン上で独立して動作し、プラットフォームを通じてリモートで管理することが可能です。
主なメリット
迅速なデプロイ
物理的なハードウェアのインストールを一切必要とせず、数秒で新しいPLCインスタンスを作成できます。ネットワーク設定を構成するだけで、vPLCはすぐにプログラムを実行する準備が整います。
スケーラビリティ
単一のエッジデバイス上で、それぞれ独自のネットワーク構成とプログラムを持つ複数のvPLCを実行できます。これにより、オートメーションワークロードを集約し、ハードウェアコストを削減することが可能です。
リモート管理
Autonomy Edgeプラットフォームを通じて、どこからでもvPLCの監視、構成、更新が可能です。デバイスに物理的にアクセスすることなく、新しいプログラムのアップロード、ステータスの確認、ランタイム統計の閲覧を行うことができます。
一貫性:
すべてのvPLCが同一のOpenPLC Runtimeソフトウェアを実行するため、すべてのオートメーションプロジェクトにおいて一貫した動作が保証されます。あるvPLCで開発・テストされたプログラムは、他のvPLCでもまったく同じように動作します。
OpenPLC Editorとの統合
Autonomy Edgeに内蔵されたOpenPLC Editorは、オーケストレーターエージェントを介してvPLCに直接接続します。このシームレスな統合により、プラットフォームを離れることなく、プログラムの開発、コンパイル、デプロイを一貫して行うことができます。
仕組み
vPLCを作成すると、バックグラウンドで以下の処理が行われます。
まず、Autonomy Edgeプラットフォームが、エッジデバイス上で動作しているorchestratorエージェントにリクエストを送信します。次に、orchestratorエージェントがOpenPLC Runtimeイメージを使用して新しいDockerコンテナを作成します。続いて、指定されたネットワーク設定(DHCPまたは固定IP)に基づいてコンテナが構成されます。その後、vPLCが起動し、プログラムのアップロードを受け付ける状態になります。
オーケストレーターエージェントはvPLCコンテナを継続的に監視し、そのステータスをプラットフォームに報告します。各vPLCの実行状態、ネットワーク構成、リソース使用状況などのリアルタイム情報をプラットフォーム上で確認することができます。
vPLCと物理PLCの比較?
vPLCと物理PLCは、産業プロセスを制御するオートメーションプログラムの実行という同じ基本的な目的を果たします。ただし、いくつかの重要な違いを考慮する必要があります。
ネットワーク構成
vPLCは、DHCPまたは固定IPアドレスで構成可能な仮想ネットワークインターフェース(vNIC)を使用します。オーケストレーターエージェントが、vPLCを物理ネットワークに接続するネットワークブリッジを管理します。
I/Oアクセス
物理PLCはハードウェアI/Oモジュールに直接アクセスできます。一方、vPLCはModbus TCP/IPなどのネットワークプロトコルを介してI/Oにアクセスし、リモートI/Oデバイスやネットワーク上の他のPLCと通信します。
パフォーマンス
vPLCはホストマシンのCPUおよびメモリリソースを共有します。時間的に厳密な制御が求められるアプリケーションでは、一貫したスキャンサイクルタイムを維持するために、エッジデバイスに十分なリソースがあることを確認してください。
ポータビリティ
vPLCプログラムは、異なるエッジデバイス間で容易に移行できます。別のオーケストレーター上に新しいvPLCを作成し、同じプログラムをアップロードするだけで完了します。
OpenPLC Editorデスクトップ版との互換性
vPLCは、OpenPLCを搭載した物理デバイスとまったく同じOpenPLC Runtimeを実行しています。そのため、同じローカルネットワーク上にある任意のコンピューターから、OpenPLC Editorデスクトップアプリケーションを使用してvPLCに接続することも可能です。
これは特に以下のような場面で役立ちます。インターネット接続が利用できない場合のオフライン運用、ローカルでのデバッグおよび監視、そして既存のOpenPLCワークフローとの統合です。
OpenPLC Editorデスクトップアプリケーションからは、vPLCと物理的なOpenPLCデバイスの間に違いは見られないため、すべての機能がまったく同じように動作します。
Implementation
Autonomy Edgeアカウント作成
下記のサイトにアクセスし、Autonomy Edgeアカウントを作成します。

Done!

Orchestrator管理
次はAutonomy Edgeの左にある”Manage orchestrator”をクリックします。

Orchestrotorsの管理画面が表示され、”+Add Orchestrotors”をクリックします。

Orchestrotorsの設定画面が表示されます。

Orchestrotor名を入力し、Nextで進みます。

次はAgentのインストールするコマンドが表示され、このコマンドをコピーします。

そのコマンドをマシンに実行します。

Done!インストール完了したらOrchestrotor IDが表示されます。

そのIDを貼り付けます。

Done!それでOrchestrotorsを作成しました。

デバイス追加
次は先程Advantech IPCに追加したOrchestrotorsをクリックし→Add Devicesで新規vPLCを追加します。

こちらはvPLCの新規作成画面になります。

デバイス名
最初にvPLCの名前を設定します。

Runtimeバージョン
次はvPLCのRuntimeバージョンを設定します。

NICs
今度はネットワークインタフェースカードを設定します。

実際のアプリケーションに合わせて設定する必要があります。

Link to Physical PortのDrop-listで実際にそのvPLCを使用するIPCのEthernet Portを設定します。

最後はCreateで進みます。

しばらく待ちます…

Done!

結果
Done!そしてDashboardからAdvantechのIPCのCPUとメモリ使用率なども確認できます。

複数のvPLCを作成する
先程と同じ操作でもう1つのvPLCを作成し、ネットワーク設定だけ変えていきましょう。

結果
OPENPLC V4 Editorを開き、Device→ConfigurationでIPアドレスで先程、デバイス設定したものを入力し接続しましょう。

また、Part3のプロジェクトをDownloadし、実際のRuntime動作を確認しましょう。
