2026年、AUTONDMYのOPENPLC V4は大幅な更新があり、EditorとRuntimeにもV4が正式リリースしました!このシリーズは実際にOPENPLC V4を使って様々な検証を行っていきます。最初に簡単な操作からDebugまで説明します。またOpen PLC RuntimeはAdvantechのAMAX-7580 100D5AのDockerコンテナにインストールします。
さ、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/
OPENPLC V4
2026年1月からOpenPLCの完全な再構築がされ、モダンなインターフェース、クラウドオーケストレーション、そしてどこからでもPLCをプログラミングするための強力な機能を備えています。

OPENPLCv3と比べてかなり本格的な産業用PLC寄り、特にAutonomy Edge(クラウド管理)とセキュリティ重視の設計になっています。
- Autonomy Edge — クラウドベースでvPLCの管理・デプロイ
- Virtual PLCs — 組込みからクラウドサーバーまでどこでも動く
- IEC 61131-3 — LD, ST, FBD, IL, SFC 全対応
- Multi-Platform — Windows, macOS, Linux, Raspberry Pi, Arduino
- Secure by Design — 産業グレードのセキュリティ
- Real-time Performance — 決定論的リアルタイム制御
- Open Source — 無料で自由に使える
- Modular Architecture — プラグインやカスタムFBで拡張可能
OpenPLC Runtime v4もv3よりかなり進化し、標準的なコンピューティングハードウェアを強力なオートメーションコントローラーに変える、ヘッドレスの産業用プログラマブルロジックコントローラー(PLC)ランタイムになりました。
OpenPLC Editorで作成されたIEC 61131-3プログラムを実行し、IEC 61131-3言語(ラダーロジック、ストラクチャードテキスト、ファンクションブロックダイアグラムなど)に加え、Python、C、C++にも対応しています。
- Modern Architecture / モダンアーキテクチャ
現代の産業オートメーションのニーズに合わせて、一から完全に再設計されたアーキテクチャ。 - Real-time Execution / リアルタイム実行
SCHED_FIFOプライオリティスケジューリングにより、信頼性の高い制御のための決定論的スキャンサイクルを実現する。 - WebSocket Debug / WebSocketデバッグ
セキュリティの高いWebSocketデバッグインタフェースにより、リアルタイムでの変数モニタリングと強制書き込みが可能。 - Plugin System / プラグインシステム
ハードウェアI/OやICSプロトコル向けに、PythonおよびC/C++プラグインをサポートする拡張可能なプラグインシステム。 - Multi-architecture / マルチアーキテクチャ
Linuxが動作する環境であれば、OpenPLC Runtimeを実行可能。完全なマルチアーキテクチャ対応。 - Security Built-in / セキュリティ内蔵
すべての通信にTLS暗号化を採用し、JWT(JSON Webトークン)ベースの認証を基盤から組み込む。
Implementation
それでは実際プログラムを作成していきましょう。
ランタイムインストール
こちらのコマンドを実行しOpenplc のDockerイメージをPullします。
| docker pull ghcr.io/autonomy-logic/openplc-runtime:latest |
少々お待ち下さい…

Done!

トラブル
こちらは自分がセットアップしたときのトラブルの解決方法です。
ping 8.8.8.8 が Destination Net Unreachable
まず192.168.0.100 までは届いてます。つまりWireless APまで通過しています。
でもあなたの default gateway はその 192.168.0.100 なので、外へ出るには「192.168.0.100 がルータとして転送してくれる」必要があります。
| oem@ubuntu:~$ ping -c 3 192.168.0.100 PING 192.168.0.100 (192.168.0.100) 56(84) bytes of data. 64 bytes from 192.168.0.100: icmp_seq=1 ttl=64 time=0.374 ms |
自分のIPCには enp5s0: 192.168.0.200/24 も持ってます。そして192.168.5.0/24 側に“本当のインターネットへ出るルータ” がありますので、そっちをデフォルトにします。
| sudo ip route replace default via 192.168.5.1 dev enp5s0 ping -c 3 8.8.8.8 |
docker ps Cannot connect to the Docker daemon
Docker接続できないときのエラーがある場合ですね。
| oem@ubuntu:~$ docker ps Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? |
Dockerの状態をチェックします。
| oem@ubuntu:~$ systemctl status docker –no-pager ● docker.service – Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2026-02-08 20:20:27 UTC; 5s ago TriggeredBy: ● docker.socket |
Dockerを起動と有効にしましょう。
| sudo systemctl start docker sudo systemctl enable docker |
sudo docker run hello-world Unable to find imag
これはDockerの問題というより、DNS(名前解決)が壊れてるのが原因です。
| oem@ubuntu:~$ sudo docker run hello-world Unable to find image ‘hello-world:latest’ locally docker: Error response from daemon: Get “https://registry-1.docker.io/v2/”: dial tcp: lookup registry-1.docker.io on 127.0.0.53:53: server misbehaving lookup registry-1.docker.io on 127.0.0.53:53: server misbehaving |
DNSだけ直していきましょう。
| sudo resolvectl dns enp4s0 1.1.1.1 8.8.8.8 sudo resolvectl domain enp4s0 “~.” sudo resolvectl default-route enp4s0 yes sudo resolvectl flush-caches sudo docker run hello-world oem@ubuntu:~$ sudo docker run hello-world Unable to find image ‘hello-world:latest’ locally latest: Pulling from library/hello-world 17eec7bbc9d7: Pull complete Digest: sha256:05813aedc15fb7b4d732e1be879d3252c1c9c25d885824f6295cab4538cb85cd Status: Downloaded newer image for hello-world:latest Hello from Docker! This message shows that your installation appears to be working correctly. |
ランタイム起動
次は下記のコマンドでコンテナを起動します。
| docker run -d \ –name openplc-runtime \ -p 8443:8443 \ –cap-add=SYS_NICE \ –cap-add=SYS_RESOURCE \ -v openplc-runtime-data:/var/run/runtime \ ghcr.io/autonomy-logic/openplc-runtime:latest |
Done!

新しいIDEをダウンロード
今度は下記のLinkから最新のOpenplc EditorをDownloadし、起動しましょう。

Done!

最初のラダープログラム
それではOpenplc でラダーを作成していきましょう。
変数定義
新しいOpenplc Editorの上に変数の定義部分があります。

下記の赤枠をクリックすれば、変数の定義方式はテキストベースになります。

Done!

次はCodesysと同じように変数を定義しましょう。

新しいRUNGを作成する
新しいラダー回路を追加するには下図の赤枠にある+ボタンをクリックします。

Done!新しいRungが追加されました。

A接点追加
次はA接点を追加しましょう。

Done!

その接点をダブルクリックし、接点の種類を変更できます。
- A接点
- B接点
- 立ち上げ検知接点
- たち下げ検知接点

今回の例では普通のA接点を使用します。次は接点に変数を割り付けましょう。

Done!

コイル追加
今度はラダー回路からコイルを追加しましょう。

Done!

コイルにも先程と同じ操作で変数と割り付けましょう。

Done!

Runtimeと接続
次はOpenplc EditorとAdvantechのIPCにインストールされているOPENPLC V4 Runtimeを接続します。プロジェクト→Device→Configuationをクリックします。

DeviceをOpen PLC Runtime V4に選択し、IPアドレスを設定し、Connectをクリックします。

初めてのLoginではUser名とパスワードを設置する必要があります。

Done!Open PLC Runtime V4と接続できました。

ダウンロード
そして下記のボタンでプロジェクトをRuntimeにダウンロードしましょう。

デバッグ開始
最後は下図のDebugボタンをクリックし、回路をモニタリングします。

Done!

回路の接点をON/OFFしたい場合は、該当する接点をダブルクリックしましょう。
そしてForce True=ON、Force False=OFFです。

Done!

デバッグ終了
最後にもう一度先程のDebugをクリックすれば回路モニタリングをOFFします。

Done!
