本記事では、OpenPLCとRaspberry Pi 4BでLチカする方法を解説します。
おおよその流れは、「Raspberry Piのセットアップ」→「Lチカの配線」→「OpenPLC Editorによるプログラム作成」です。
準備するもの
| 準備するもの | 用途 |
| PC | OpenPLC Runtimeによるラダー図作成 |
| Rasberry pi 4B | OpenPLCのプログラム実行ハード |
| SDカード | Rasberry pi のOSの書き込み先 |
| ジャンパー線 | Lチカ回路作成用 |
| LED | Lチカ回路作成用 |
| 抵抗 | Lチカ回路作成用 |
| ブレッドボード | Lチカ回路作成用 |
Rasberry pi 4Bは本体以外にも必要なものが多く、面倒だったので、私は以下を購入しました。
Raspberry Piのセットアップ
本章では以下を説明します。
- SDカードへのRaspberry Pi OSダウンロード
- Raspberry Piの立ち上げと基本設定
- Raspberry PiへのOpenPLCインストール
SDカードへのRaspberry Pi OSダウンロード
PCにRaspberry Pi Imagerをダウンロード
- https://www.raspberrypi.com/software/にアクセス
- 「Download for Windows」をクリックしダウンロード

Raspberry Pi にOSをインストール
- SDカードをPCに挿入する
- ダウンロードしたexeを起動する
- ダイアログ上の三項目を設定する
- Raspberry Pi デバイス:Raspberry Pi 4
- OS:Raspberry Pi OS (64-bit)
- ストレージ:SDカードを選択



- 「次へ」ボタンを押し、「設定を編集する」をクリック

- 設定の各タブを設定し、「保存」ボタンを押す
- オプションタブ内はデフォルト設定のままで良い


- 「いいえ」をクリックする→SDカードへのOSの書き込みがスタートする

- OSの書き込みが終了したら、SDカードを取り外す
ラズパイの立ち上げと基本設定
立ち上げ直後のVNC接続で楽にできる-
システム更新
sudo apt update
sudo apt full-upgrade -y
gitインストール
既にインストールされている表示がでたらこの工程は飛ばして良い
sudo apt install -y git build-essential
Raspberry PiへのOpenPLCインストール
OpenPLCリポジトリの取得
cd ~
git clone https://github.com/thiagoralves/OpenPLC_v3.git
cd OpenPLC_v3
インストールスクリプトの実行
./install.sh rpi
インストールが正常に完了すると、以下のようなメッセージが表示されます:

OpenPLCの起動と基本設定
以下のコマンドでOpenPLCを起動:
cd ~/OpenPLC_v3
./start_openplc.sh
起動が成功すると、以下のようなメッセージが表示されます:

Webインターフェースへのアクセス
ここでは、OpenPLCのWebインターフェースへのアクセスを実行することで、
インストールが成功したかどうかを確認します。
二つの方法があります。
A: Raspberry Pi上のブラウザを開き、以下のURLにアクセス
http://localhost:8080
B:別のデバイスからアクセスする場合
http://[RaspberryPiのIPアドレス]:8080
どちらの方法でも、ログイン情報を求められますので、以下を入力。
- ユーザー名:
openplc - パスワード:
openplc

以下の画面にアクセスできましたら正常です。

Lチカの配線
ラズパイ10番ピン(GPIO15) → LED1(+) LED1(-) → 抵抗 → GND(14番ピン)
ラズパイのピン番号とOpenPLCのデバイスの対応表はこちらのOpenPLC公式HPに記載されています。
本記事では、後述するラダー図にて、LEDを定義するOUT信号に「%QX0.1」デバイスを指定しているため、対応する「ラズパイ10番ピン(GPIO15)」を使用しています。
OpenPLC Editorによるプログラム作成
本章ではOpenPLC EditorによるLチカ用のプログラム作成方法を簡潔に説明します。
詳しいOpenPLC Editorの使用方法は以下の記事を参考にしてください。
プロジェクト作成
- OpenPLC Editor を起動する
- タブ「File」→「New」を選択→任意のフォルダを選択
- 「Create a new POU」ダイアログにて、以下を設定し、「OK」ボタンを押す

IO・デバイスの設定
LEDのIOデバイスの設定
- 左側のProject1欄内の「Res0」をクリックする→タブ「Config0.Res0」が開く
- 以下のように、LEDのIOデバイスの設定する
| 項目名 | Name | Class | Type | Location |
| 設定 | LED | Global | BOOL | %QX0.1 |

Lチカラダー図用のデバイス設定
- 左側のProject1欄内の「LEDBlink」をクリックする→タブ「LEDBlink」が開く
- 以下のように、デバイスの設定する
グローバル変数「LED」をPOU内で用いるには、明示的に設定する必要がある
※画像内で定義されている「timer_on」「timer_off」は後述するラダー図描画時に自動的に定義されます。
| 項目名 | Name | Class | Type |
| 設定 | LED | External | BOOL |

ラダープログラムの作成
本記事では、LEDを1秒点灯→1秒消灯を繰り返すLチカプログラムを作成します。
※詳しいOpenPLCでのラダープログラムの書き方は別記事参照

TasksとInstancesの設定
プログラム実行に関連する設定を行います。
- 左側のProject1欄内の「Res0」をクリックする→タブ「Config0.Res0」が開く
- tasksの設定
Nameでは任意の名前を設定可能です。Triggeringを「Cyclic」、Intervalを「T#20ms」に設定することで、20ms周期のプログラム実行を設定したことになります。
| 項目 | Name | Triggering | Single | Interval | Priority |
| 設定 | task0 | Cyclic | T#20ms | 0 |
- Instancesの設定
Nameでは任意の名前を設定可能です。Triggeringを「Cyclic」、Intervalを「T#20ms」に設定することで、20ms周期でのプログラム実行を設定したことになります。
| 項目 | Name | Type | Task |
| 設定 | instance0 | LEDBlink | task0 |

必須事項ではありませんが、シミュレーションで動作確認を実行します。
※詳しいデバッグ・シミュレーション方法はこちらの記事を参考にしてください
プログラムの動作およびLEDデバイスの1秒周期での点滅が確認できています。

実行ファイルの生成
- 上部メニューバーの「↓」ボタンを押す

- 任意のフォルダおよび任意の実行ファイル名称を設定し、「保存」ボタンを押す
→実行ファイル(拡張子:.st)が生成される

Lチカの実行
起動中のOpenPLCにアクセスする
二つの方法があります。
A: Raspberry Pi上のブラウザを開き、以下のURLにアクセス
http://localhost:8080
B:別のデバイスからアクセスする場合
http://[RaspberryPiのIPアドレス]:8080
どちらの方法でも、ログイン情報を求められますので、以下を入力。
- ユーザー名:
openplc - パスワード:
openplc

以下の画面にアクセスできましたら正常です。

プログラムのアップロード
- 「Programs」タブをクリックする
- 「ファイルを選択」をクリックする

- 生成した.stファイルを選択し、「開く」をクリックする

- 「Upload Program」をクリックする

- 「Name」欄に任意の名前を入力し、「Upload Program」をクリックする

- コンパイルがスタートする
「Compilation finished successfully!」が表示されればOK

コンパイルが成功すると、「Dashboard」ページでprogram:LEDBlinkになっていることが確認できます。

Hardwareの選択
- 「Hardware」タブ→「Raspberry Pi」を選択

- 一番下までスクロールし、「Save changes」クリック

プログラムの起動
- 「Start PLC」をクリック

正常にプログラムが起動すると、Status:Runningになります。

トラブルシューティング
OpenPLC Runtimeで「Start PLC」ボタンを押しても、「Status: Stopped」になり、「Status: Running」にならない
解決策:設定を再読み込みする
ラズベリーパイのターミナルにて以下を実行。
sudo systemctl stop openplc
sudo systemctl daemon-reloa
sudo systemctl restart openplc
一行目:サービス停止
二行目:設定再読み込み
三行目:再起動
まとめ
本記事では、OpenPLCとRaspberry Pi 4BでLチカする方法を解説しました。
一度環境構築してしまえば、簡単に低価格でPLCで遊ぶことができますね!
私も、今後センサや通信の勉強を、この環境を使って学習していきたいと思います。

