CODESYS は産業用制御プログラミング(IEC 61131-3)に対応した強力な開発環境で、Raspberry Pi は安価で手軽な実行環境として活用できます。CODESYS は公式に Raspberry Pi 対応の CODESYS Control for Raspberry Pi を提供しています。
必要なもの
項目 | 内容 |
---|---|
ハードウェア | Raspberry Pi 5 + 電源 + microSD + ヒートシンク/ファン(推奨) |
OS | Raspberry Pi OS 64bit |
開発環境 | WindowsにCODESYS Development System |
ネットワーク | 開発PCとRaspberry Piを同一LANに接続 |
ライセンス | CODESYS Control for Raspberry Pi (試用可能・本番利用は有料) |
NOTE:インストールするOSバージョンは64bit版で大丈夫です。
CODESYS Control for Raspberry Pi SL(ラズパイ用ランタイム) は、バージョン 4.10.0.0(2023年10月31日リリース)より、64bit 版 OS でのマルチコア対応が正式にサポートされました。
その後、バージョン 4.11.0.0(2024年2月23日リリース)では Raspberry Pi 5 のサポートが追加され、最新の CODESYS Runtime Toolkit V3.5 SP19 Patch 6 への更新が行われています。
CODESYSマニュアル
https://www.mgco.jp/mssjapanese/PDF/NM/B/nmbacds35_c.pdf
セットアップの概要
ラズパイはSSHでログインできるようにしておきましょう。あとでWindowsのCODESYS開発環境から、ラズパイにリモートでランタイムインストールする時にSSHを使用します。
- ラズパイをセットアップ
- WindowsPCにDevelopment Systemインストール。
- Development System内から、SSH接続でラズパイに入りCODESYS ランタイムインストール
OSセットアップ手順
- Raspberry Pi OS のインストール
- 公式の Raspberry Pi Imager を使って、64bit版 Raspberry Pi OS をインストール。
- その際、ユーザー名とパスワード、SSHは必ず設定してから、SDカードへ書き込みを行いましょう。
- ブート設定の変更(PCIe性能向上)
- sudo raspi-config
6 Advanced Options
画面を開き、A8 PCIe Speed
のメニューを選択して、PCIe Gen 3
を有効化- 再起動
- システムアップデートしておく
- sudo apt update && sudo apt upgrade -y
- sudo apt install wget curl -y
CODESYS 開発環境のセットアップ
https://store.codesys.com/en/codesys.html
より、Download64Bitのリンクを選択する。お使いのWindowsのOSに合わせて32or64Bitを選択してください。
アカウントが必要なので準備しましょう。Create Accountを選択する。
Corporate CustomerかPrivate Customer(個人のお客様)が選べる。Private Customerを選択。
Create New Customer Accountの画面になるので、住所氏名などを入力してCreate Indivisual Customer Accountをクリック
登録したメールアドレスに確認メールが来るので、Confermします。
再度、https://store.codesys.com/en/codesys.html よりDonwloadボタンを押します。今回はラズパイの64bitOSをインストールしたので、64Bit版をダウロードします。
License Agreementが表示されたら、Acceptします。
1.3Gほどのデータをダウンロードします。
ダウンロードしたCODESYS 64 3.5.21.0.exeを起動してインストールします。







インストールが完了したら、スタートメニュのCODESYSから、またはデスクトップのショートカットからCODESYS V3.5 SP21を起動します。

CODESYS Controlのインストール(ラズパイにインストール)
【ツール】→【CODESYSインストーラ】を選択

ブラウズを選択して、検索窓にraspberryと入力します。
CODESYS Control for Raspberry PIにチェックを入れ、「インストール」をクリックします。

OKをクリックして続行します。


「ライセンスを承諾します」にチェックを入れ、「続行」をクリック

CODESYSのアプリを終了する必要があります。CODESYS.exeをクリックするとアプリケーションが終了し、処理が続行されます。

アドオンは正常にインストールされましたと表示されます。OKをクリックします。

CODESYS Installerを閉じます。
CODESYSでラダーを書く
CODESYSでラダーを書き、Raspberry PiにCODESYS Runtimeをリモートインストールして、ラダーを動作させてみましょう。
CODESYSを起動します。
使用状況分析のダイアログは「はい」「いいえ」どちらかを選択して「続行をクリック」します。どちらを選択しても構いません。

【ファイル】→【新規プロジェクト】を選択します。
「標準プロジェクト」を選択し、プロジェクトに名前をつけてOKをクリックします。

「CODESYS Control for Raspberry Pi 64 SL(CODESYS)」「ラダー・ロジックダイアグラム」を選択して「OK」をクリック。

PLC_PRGをダブルクリックして開きます。

右クリックして、メニューより【a接点を挿入】を選択します。
a接点(または「ノーマルオープン(NO)接点」)とは、
通常時に開いていて(電気が流れない)、動作時に閉じる(電気が流れる)接点のことです。
任意の名前をつけます。X001としました。ちなみにXが入力、Yが出力を意味します。

名前をつけると、「自動宣言」ダイアログが開きます。ここでは変更せずに「OK」をクリックします。

右クリックして、今度は【コイルを挿入】を選択します。

挿入したら任意の名前をつけます。今回はM001としました。
コイル:M001という内部リレーや出力をONにする命令のことです。

名前を入力すると「自動宣言」ダイアログが開くので、今回もそのまま「OKを」クリックします。

「ネットワークを挿入」ボタンを押すと、行が増えます。

同様にしてa接点とコイルを追加し、それぞれM001,Y001とします。

シミュレーションを行う
【オンライン】→【シミュレーション】を選択し、シミュレーションをONにします。

シミュレーションモードとは?
CODESYS IDE 内部で仮想PLCを動かしてテストできる機能です。
実機(例:Raspberry Pi)に接続しなくても、プログラムの論理動作を確認できます。
シミュレーションがONになった。

【オンライン】→【ログイン】を選択。
ダイアログが表示されたら「はい」を選択します

CODESYSの「オンラインモード」とは、
開発PC(CODESYS IDE)から制御対象(PLCやRaspberry Piなど)へ直接接続して、プログラムの転送・実行・デバッグ を行えるモードのことです
実行ボタンをクリックしてデバッグ実行すると、状態が運転に変わります。

X001の設定済みの値をクリックし、TRUEにします。右クリックして、【「Device.Application」のすべての値を書き込み】を選択します。

すると、M001がTRUEになり、Y001もTRUEになりました。

シミュレーションを終えるには、次のようにします。
- ■の停止ボタンをクリック
- 【オンライン】→【ログアウト】をクリック
- 【オンライン】→【シミュレーション】のチェックを外す。
Raspberry PiにCODESYS Runtimeをリモートインストール
Deviceをダブルクリックして開きます。

Deploy Control SLを選

鍵によるSSLログインの場合、鍵ファイルを追加します。


ラスパイへの接続情報を設定し、接続ボタンを押してラズパイに接続します。

「デプロイ」タブで「製品」に「CODESYS Control for Raspberry PI LS」を選択、「バージョン」を選択してから「インストール。をクリックする。

「はい」を選択してインストールします。


デバイスにラズパイのIPアドレス(ここでは192.168.0.5)を入力して、画像がグリーン状態になることを確認する。

以上で、Raspberryへのランタイムインストールは完了です。
GPIOをマッピングする
まずは、次のようなデバッグ用の配線を用意しましょう。

タクトスイッチ1個と、LED1個をそれぞれラズベリーパイに接続します。
今回はGPIO4にLEDを接続(出力)、GPIO26にタクトスイッチを接続(入力)します。
GPIOを設定しましょう。まずGPIOs_A_Bを右クリックして、メニューより【デバイスの更新】を選択します。

GPIOs B+/Pi2を選択して、「デバイスの更新」をクリックします。更新したらダイアログは閉じましょう。

GPIOs_A_Bをダブルクリックして開きます。
GPIO04をOutput、GPIO26をInputに設定します。

次に、変数とGPIOとのマッピングを行いますので「GPIOs I/O マッピング」タブを選択します。Inputを展開し、Bit26(GPIO26の事)の変数を選択状態にし「…」ボタンをクリックして「入力アシスタント」ダイアログを開きます。

GPIO26とX001を紐づけします。
Application→PLC_PRG→X001を選択してOKをクリックします。

GPIO26とX001を紐づけされました。

続いて、GPIO4とY001を紐づけします。同様にOutputのBit4(GPIO04の事)の変数を選択状態にし「…」ボタンをクリックして「入力アシスタント」ダイアログを開き、Y001を選択してOKをクリックします。

これでGPIOと変数が紐づきました。

ラズパイで実行する
【オンライン】→【ログイン】を選択します。

初回のみ「デバイスユーザの追加」ダイアログが表示されます。

OKを押して、先程のユーザ名、パスワードを入力して続行します。
デパイス「Device」上にアプリケーション「Applicaton」が存在しません。アプリケーションを作成してダウンロードを進めますか?
というダイアログが表示されます。「はい」をクリックします。

▶ボタン(運転ボタン)をクリックして運転状態にします。

タクトスイッチが押されていないときは、LEDは消灯しています。

タクトスイッチを押してみましょう。タクトスイッチを押している間、X001がONになり、結果的にY001もONになります。そしてLEDが点灯します。

ピンバック: Raspberry Pi 5とソフトウェアPLCでステッピングモーターを使う – スマートフォン・ジン