CODESYSとラズべリーパイのデフォルト設定では使えるGPIO数は限られています。
しかし簡単な変更でPLCに使えるGPIO数を実質8点から17点に増やすことが可能です。
最新のラズベリーパイ4含めて多くあるGPIOを有効活用する方法を紹介します。
CODESYSとラズベリーパイで使えるGPIOを増やす方法
ラズベリーパイをCODESYSでPLCにする方法を下記記事で紹介させていただきました。
公開して多くの反応をいただきました。
その中で「GPIO2~27は全て使えないのか?」「GPIO5,6などは使えないのか?」と入出力の関連のコメントが一番多かったです。
おそらくデフォルトではPLCの入出力して使えるラズベリーパイのGPIOが少ないためだと思います。
初期設定ではGPIO「4,17,18,22,23,24,25,27,28,29,30,31」の12点しか登録されていません。
(GPIO28,29,30,31は基本存在していないので実質使えるのは8点となります)
簡単な設定の切り替えでPLCの入出力を実質8点から17点に増やせる方法がありましたので紹介します
デバイスの更新で使えるGPIO数が増やせます
CODESYSとラズベリーパイで使えるGPIO数を増やす方法は簡単です。
デバイス箇所の「GPIOs_A_B…」の箇所で右クリックして「デバイスの更新」を選択します
「GPIOs B+/Pi2」を選択して「デバイスの更新」を選択すれば終了です。
使用できるGPIO数が増えています
増やしたGPIOをPLCの入出力として動かしてみた
一応実際に動くかCODESYSで増やしたGPIOでPLCの動作テストしてみました。
CODESYSのダウンロードやインストール方法は下記記事をご参考ください
最終的に増やしたラズベリーパイのGPIOの「GPIO5…入力」「GPIO6…出力」で動かしてみました
もちろんテスト結果は増やしたGPIOの正常動作を確認できました。
入出力の回路図
ラズベリーパイの入出力の回路図としては下記形です。
入力にSW、出力にLEDを付けたシンプルな回路です。
スイッチとLEDの配線
接続はブレッドボード上で配線していきます。
抵抗・LED・SW含めて何処にでも売ってある汎用的な電子工作セットのものを使用しています。
PLCのラダープログラム
PLCのラダーは入力(X001)と出力(Y001)を内部リレー(M001)で結んだ単純なプログラムです。
X001の入力を押した分だけY001の出力するようになっています。
ラズベリーパイ4まで全てをCODESYSは対応している
(ここからはあくまで筆者の見解になります)
なぜCODESYSはデフォルトではGPIOが実質8点の少ない設定になっているかです。
理由としてはGPIOが少ない古いラズベリーパイまで対応しているためと考えています。
昔のラズベリーパイ1BはGPIO26ピンでした(GPIO単独として使えるピンは8本)
ラズベリーパイ2から最新のラズベリーパイ4までGPIOが40ピンと増えています。
共通性を持たせるために基本少ない方にデフォルトを合わせていると思われます。
ラズベリーパイのUART,I2C,SPIのピンはCODESYSでは使えない
最新のラズベリーパイのGPIOは40ピン有りますが、電源・GND・他機能含めて40ピンです。
UART,I2C,SPIの機能が兼用されているピンはCODESYSのPLC入出力では使えませんでした。
GPIO単独で使える17ピンがPLC入出力として使えるようです。
ラズベリーパイ1BでもPLCとして(しっかり)動作します
正直8年ほど前のラズベリーパイ1B含めてCODESYSが今だにサポートしているのは凄いと思います。
(同じメーカー(Broadcom)のCPUとはいえ、全くスペックが別物なのに…)
ちなみに筆者の1Bでも(遅いですが)PLCとしてラズベリーパイがしっかり動作しています
まとめ
GPIOが8点だとPLCの入力4点・出力4点で終わりますが、17点あると使用範囲も増えると思います。
またCODESYSは古い1Bから最新の4Bまでのラズベリーパイ(raspberry pi)がサポートされいます。
無料で試せますのでぜひ皆さまも使ってみてください。
コメント