OpenPLCとRaspberry Pi 4BでLチカしてみた

シーケンス制御

本記事では、OpenPLCとRaspberry Pi 4BでLチカする方法を解説します。

おおよその流れは、「Raspberry Piのセットアップ」→「Lチカの配線」→「OpenPLC Editorによるプログラム作成」です。

準備するもの

準備するもの用途
PCOpenPLC Runtimeによるラダー図作成
Rasberry pi 4BOpenPLCのプログラム実行ハード
SDカードRasberry pi のOSの書き込み先
ジャンパー線Lチカ回路作成用
LEDLチカ回路作成用
抵抗Lチカ回路作成用
ブレッドボードLチカ回路作成用

Rasberry pi 4Bは本体以外にも必要なものが多く、面倒だったので、私は以下を購入しました。

Raspberry Piのセットアップ

本章では以下を説明します。

  • SDカードへのRaspberry Pi OSダウンロード
  • Raspberry Piの立ち上げと基本設定
  • Raspberry PiへのOpenPLCインストール

SDカードへのRaspberry Pi OSダウンロード

PCにRaspberry Pi Imagerをダウンロード

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

起動が成功すると、以下のようなメッセージが表示されます:

ラズベリーパイ再起動後のOpenPLC起動

特に意図的に設定していなければ、ラズベリーパイ再起動後、自動的にOpenPLCは立ち上がります。ですので、./start_openplc.shのコマンド実行は必要なさそうです。

Webインターフェースへのアクセス

ここでは、OpenPLCのWebインターフェースへのアクセスを実行することで、
インストールが成功したかどうかを確認します。

二つの方法があります。

A: Raspberry Pi上のブラウザを開き、以下のURLにアクセス
http://localhost:8080
B:別のデバイスからアクセスする場合
http://[RaspberryPiのIPアドレス]:8080

どちらの方法でも、ログイン情報を求められますので、以下を入力。

  • ユーザー名: openplc
  • パスワード: openplc

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

管理者パスワードの変更したい場合
– Webインターフェース右上の「Users」メニューをクリック
– 「Edit User」をクリック
– 新しいパスワードを設定し、「Save Changes」をクリック

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デバイスの設定する
項目名NameClassTypeLocation
設定LEDGlobalBOOL%QX0.1

IOデバイスやグローバルに使用する変数は、各POU(ここではLEDBlink)ではなく、上記タブで設定する。

Lチカラダー図用のデバイス設定

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

ラダープログラムの作成

本記事では、LEDを1秒点灯→1秒消灯を繰り返すLチカプログラムを作成します。

※詳しいOpenPLCでのラダープログラムの書き方は別記事参照

TasksとInstancesの設定

プログラム実行に関連する設定を行います。

  • 左側のProject1欄内の「Res0」をクリックする→タブ「Config0.Res0」が開く
  • tasksの設定
    Nameでは任意の名前を設定可能です。Triggeringを「Cyclic」、Intervalを「T#20ms」に設定することで、20ms周期のプログラム実行を設定したことになります。
項目NameTriggeringSingleIntervalPriority
設定task0CyclicT#20ms0
  • Instancesの設定
    Nameでは任意の名前を設定可能です。Triggeringを「Cyclic」、Intervalを「T#20ms」に設定することで、20ms周期でのプログラム実行を設定したことになります。
項目NameTypeTask
設定instance0LEDBlinktask0

必須事項ではありませんが、シミュレーションで動作確認を実行します。
※詳しいデバッグ・シミュレーション方法はこちらの記事を参考にしてください

プログラムの動作およびLEDデバイスの1秒周期での点滅が確認できています。

実行ファイルの生成

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

Lチカの実行

起動中のOpenPLCにアクセスする

二つの方法があります。

A: Raspberry Pi上のブラウザを開き、以下のURLにアクセス
http://localhost:8080
B:別のデバイスからアクセスする場合
http://[RaspberryPiのIPアドレス]:8080

どちらの方法でも、ログイン情報を求められますので、以下を入力。

  • ユーザー名: openplc
  • パスワード: openplc

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

管理者パスワードの変更したい場合
– Webインターフェース右上の「Users」メニューをクリック
– 「Edit User」をクリック
– 新しいパスワードを設定し、「Save Changes」をクリック

プログラムのアップロード

  • 「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で遊ぶことができますね!

私も、今後センサや通信の勉強を、この環境を使って学習していきたいと思います。

合わせて読みたい

タイトルとURLをコピーしました