2024年7月3日、CodesysのCODESYS VIRTUAL CONTROL SLがリリースされました。そのSLを使用することによって、一つのPC上で複数のCodesys Runtimeを同時に実行することができます。この記事では1からセットアップ手順を説明します。
さ、FAを楽しもう。
Reference Link
http://soup01.com/ja/category/codesys/
CODESYS VIRTUAL CONTROL SL
CODESYS VIRTUAL CONTROL SLがリリースされました!このIEC 61131-3互換のランタイムシステムCODESYS Virtual Control SLは、コンテナまたはハイパーバイザー/VMを備えたあらゆるアーキテクチャに、必要なときに必要なだけ、スケーラブルなパフォーマンスでインストールできます。
これにより、利用可能なすべてのCODESYS機能を備え、IEC 61131-3言語のCODESYS開発システムでプログラム可能な仮想制御を簡単に実装できます。
CODESYSユーザーは、CODESYS Virtual Control SLを展開またはオーケストレーションするために、産業用デバイス、サーバー、またはクラウドプラットフォームなどのコンピューターアーキテクチャを選択できます。
こうすることで、アプリケーションに必要な仮想コントローラを正確に実装し、パフォーマンスも正確にスケールすることができます。すべての制御インスタンスは、適切なツール(Kubernetes、Open Shiftなど)を使用して、またはCODESYS Automation Server(リリース予定)から直接、Linuxコマンドまたはスクリプトを介してセットアップできます。
また、フィールドレベルへのアクセスは、高性能の仮想LANによって提供される。
Advantages
Classic PLCと比べてVirtual Control Systemには下記のメリットがあります。
- ハードウェアの調達、配線、運用、メンテナンスを削減する。
- 機械やプラントのオペレーターは、自らハードウェア・プラットフォームを提供し、管理することができ、ハードウェア縛りから開放できる。
- ハードウェアおよびハードウェア・メーカーからの独立ができます。
- コントロール・インスタンスを動的に作成し、ソフトウェアから独立してハードウェアを拡張できるため、拡張が容易になります。
- 複数の独立した制御インスタンスにタスクを分散することにより、設計上のセキュリティになります。
- 他のサービスとの相互運用性
- アップデートの展開の簡素化
Cost Savings
n個の物理PLCを、n個の仮想コントローラを含む単一プラットフォームに置き換えます。
Scalability
CODESYS Virtual Controlを使用すると、マウスをクリックするだけで適切なデバイスに両方を実装できます。適切なライセンスを使用すると、全体を小型コントローラまたはモーションコントローラにすることができます。それは、小さなロジックタスクから本格のモーション・コントローラーにも対応できます。
Reduced space and wiring requirements
CODESYS Virtual ControlにInstanceを追加する場合、中央コンピュータに新しいケーブルや追加の電源は必要ありません。また、I/Oは産業用イーサネット経由で接続できます。なので、制御盤のスペースやDC24V電源の限界を心配なくなります。
Flexible orchestration
LinuxスクリプトとKubernetes/OpenShiftなどのツールを使用してCODESYS Virtual Controlをセットアップするか、CODESYS Automation Server管理プラットフォームを使用しても構いません。CODESYS Automation ServerはLinuxの知識がなくても完全に動作します。さらに、Intel® TCC Cache Allocation Technologyを搭載した最新のIntelプラットフォームでも利用できます。つまりCODESYS Virtual Control PLCのリアルタイム機能が保証されます。
Security-by-Design
アプリケーション部分を適切に分割し、コンテナにカプセル化することで、制御システムを保護します。アップデートや攻撃時には、システム全体を損なうことなく、影響を受ける部分を簡単にシャットダウンして再起動できます。CODESYS Virtual Controlは、ITにおけるマイクロサービスのように、それを簡単に実現できます。
Maintenance made easy
セキュリティ脆弱性を発見するとき、最悪の場合は数百台のPLCが影響を受けています。生産現場ではできるだけ早くファームウェアやアプリケーションを更新する必要があります。セキュリティ脆弱性による問題は、復旧するまで数日、数週間、あるいは数ヶ月かかることもあります。
ですが、PLCが中央コンピュータ上で仮想システムとして動作している場合は別です。その場合、アップデートを実行するのにかかる時間はほんの数秒です。
Flexibility
いままで、マシンの新機能を追加するには、新しいハードウェアを追加するケースがよくありました。CODESYS Virtual Controlは、新しい機能を実装するために新しいハードウェアを使用するプレッシャーから解放されます。私たちがやるのは、新しい仮想PLCを追加し、それを使用して新しい機能を実装するだけです。
SoftSafety
多様なエンコーディングにより、IEC 61508 SIL3に準拠した仮想安全コントローラを実現します。
CODESYS Virtual Safe Control
Safety に関しては両チャネルは、仮想 PLC 上の 1 つのプロセスで、1 つの CPU コア上で順次実行される。そうしている間、互いにずっとチェックし合います。
多様化エンコーディングは、安全な入力を両方のチャンネルに分配し、逆に、両方のチャンネルの出力を安全な出力にマージする。 安全なネットワークやフィールドバスプロトコルによって生成されたデータストリームも含まれます。SIListra Systems GmbHの安全コンセプトは、TÜV SÜDによって承認されています。
ハードウェアに依存しないソリューションとしてのCODESYS Virtual Safe Controlのリリースと認証は、2024年前半に予定されています。
これまでと同様に、安全アプリケーションは、CODESYS開発システムの純粋な機能部分を拡張する認定アドオンモジュールの一部として、安全IEC 61131-3エディタで構成できます。
CODESYS Virtual Safe Controlを使用すると、安全認証を含む安全コントローラとして、あらゆるコンテナ化されたプラットフォームを使用できます。
このソフトウェア・ソリューションは、”Coded Processing “に基づく “Diversified Encoding “によってデュアル・チャンネル機能を実現する。アプリケーション処理は2つの論理ソフトウェア・チャンネルに分割される:
- 最初のチャネルは、実装された安全アプリケーションをそのまま実行する。
- 第2チャンネルは同じアプリケーションを使用するが、「Coded Processing」のアルゴリズムで実行するため、すでにエラーを検出することができる。
Download
CODESYS Virtual Control SLは下記のLinkでDownloadできます。
https://store.codesys.com/en/codesys-virtual-control.html
Configuration Example
こちらはCODESYS VIRTUAL CONTROLを使用したアプリケーション例になります。
vPLC
この構成では5つのCodesysアプリケーションを使用し、リアルタイム制御を実装します。
- 2 x CODESYS Virtual Control SL
- 2 x CODESYS Virtual Safe Control SL
- 1 x CODESYS Edge Gateway SL
Container
Podmanを使用し複数の異なるアプリケーションを1つのハードウェアに実行します。
Operating system
こちらのアプリケーションでは Red Hat Enterprise Linux for Real Timeを使用します。
Hardware
Intel® TCC(Time Coordinated Computing)によるマルチコア IPCを使用します。
(Intel® Core(TM) i7-1185GRE Tiger Lake UP3)
Network
アプリケーション図には書いてありませんが、Cisco Catalyst産業用イーサネットスイッチを使用し、機械やシステムとオートメーションの間に、I/Oへの安定や安全なリアルタイムアクセスを保証します。
I/O System and I/O Devices
EtherCATセーフティ(FSoE)、CODESYSライブラリとしてのプロトコルスタックを使用します。
AI-Application / workload consolidation
OpenVINO™ YOLOv8 AIコンテナによるLive Streamのオブジェクトセグメンテーションが実装され、また、実際のアプリケーションに沿ってソフトウエアを実装できます。
Use case
2024年4月、 AUDI AGは、将来的にサーバベースの制御システムで生産ラインを運用する予定です。その目的は、機能的で安全なコントローラのために、CODESYSによる制御仮想化の多くの利点を活用することです。
CODESYSにとって、制御ハードウェアからの独立性は常に主要な焦点でした。このことを知っていたAUDI は、PLC仮想化のパートナーとしてケンプテンの自動化スペシャリストを選びました。こうして、AUDI とCODESYSのプロジェクトチームは、フィージビリティ・スタディと初期の実用的なデモからプロトタイプ、そして最終的には、パイロット段階ですでに実際の車体部品を生産している生産セルへと歩みを進めてきました。
「AUDI がCODESYSを生産に使用することは、当社の製品が大手自動車メーカーによって初めて導入されることになります。これにより、ハードウェアに依存しない自動化が大規模でも機能することを証明することができます」と、CODESYSグループの創設者兼CEOであるDieter Hessは述べています。
「CODESYSは我々にとって重要な技術パートナーです。パートナーシップに基づく協力関係と良好な相性のおかげで、私たちは短期間でプロジェクトを大きく進展させることができました」と、AUDI AGの生産/ロジスティクス技術開発責任者であるMarkus Wunsch博士は述べています。
「試験運転の成功を受けて、私たちは今後数年のうちに、バーチャル・コントロールに基づく最初の生産ラインを計画しています」
Source:
https://www.codesys.com/news-events/news/article/audi-uses-virtual-codesys-control-1.html
Implementation
こちらは今回の記事の構成です。

Codesys Version
今回の記事で使用するのはCODESYS V3.5 SP20になります。
Installation
CODESYSを起動し、Tools>CODESYS Installerを開きます。
CODESYS Installerが起動します。
Install File(s)をクリックします。
先程CODESYS HPでDownloadしたVirutial Control PLを開きます。
OKで進みます。
ライセンスを同意し、Continueで進みます。
CODESYSを一旦閉じましょう。
少々お待ちください…
Done!
Linux PC Setup
次はCODEYS PLCを実行するLinux PCをセットアップします。今回はVMware にUbuntuをインストールします。
そして下記のコマンドでUbuntuにssh サーバーを設置します。
| sudo apt update sudo apt install openssh-server sudo systemctl status ssh sudo ufw allow ssh |
Setup the Virtual PLC
これからVirtual PLCをセットアップしておきます。Tools>Deploy Control SLをクリックします。
Communication画面が表示されます。
Ubuntu OSのIPアドレスを入力し、ConnectでCODESYS IDEとOSを接続します。
Done!
Deployment
次はDeployment TabからUbuntu OSにCodesys Runtime Imageをインストールします。
Install from local files>Docker_Codesyscontrol…を選びます。
Installをクリックします。
Done!Codesys Control Imagesがインストールされました。
先ほどと同じ操作でGatewayも追加しましょう。
Configuration
今度はConfiguration Tabを開き、+ボタンをクリックしRuntime Instanceを追加しましょう。
NameでInstance名を入力し>Runtimeを選び>Imageの項目でCodesyscontrol_virtuallinux…を設定しましょう。
Done!Instanceが追加されました。
Configureボタンをクリックし、Instanceの設定を行います。
こちらはInstanceの設定画面になります。
NicでNetwork Adapterを設定しましょう。
Ubuntu でip a コマンドを使用し、使用可能なNetwork Adapterを確認しましょう。
先ほどと同じ操作でGateway Instanceを追加しましょう。
Status/Command
こちらのTabでInstanceを起動・停止、また現在のInstance状態を確認できます。
Start>Start AllですべてのInstanceを起動します。
Done!
New Project
Instanceを起動しましたので、次は簡単なプロジェクトを作成してみましょう。File>New Projectをクリックします。
先ほどCODESYS Virutial Control PLをインストールしたので、DeviceリストにはCODESYS Virtual Control for Linux SLなどの新しいTargetが追加されました。
今回の記事ではVMware内でUbuntu OSをインストールしたので、Linux SLを選び>OKで新規プロジェクトを追加しましょう。
Done!
Configure Gatway
PCとVirutial Control のCODEYS PLCと接続するには、Gatewayを設定する必要があります。Communication Settings>Gateway>Add New Gatewayをクリックします。
IP-AddressにUbuntu OSのIPアドレスを設定しましょう。
Done!
先ほど追加したmyCodesys1を検索できました。
そのあとはいつものCodesys操作でUser NameやPasswordを設定しましょう。
Done!
Result
プログラムも正常に実行していますね。
Add More Instances!
次はもっとInstancesを追加しましょう。それがVirtual PLCの一番のメリットです。
Done!複数のCodesysにも同時検索やアクセスできました。
Add Devices
最後は2つ目のCodesys Runtimeのプロジェクトを作成するため、Add DevicesでTarget Systemを追加しましょう。
Drop-ListからLoginしたいアプリケーションを設定します。
Done!