United Statesからアクセスのようです。言語設定をEnglishに切り替えますか?
Switch to English site
Skip to main content

PLCアプリケーションのためのRevPi Core 3入門ガイド

RevPi_top_9ab283f210492fd7d6a1951074c55ed94af0c3b3.jpg

ラズパイを搭載したシーケンサ「Revolution Pi Core」のハードウェアセットアップ、チュートリアルの紹介、logi.CAD 3のインストール方法とサンプルプログラムの実行までを紹介する。

私が住んで2年以上になるこの街ではずっと洪水防災用の河川工事が行われている。そのため道路脇の臨時信号機が日常の風景となっている。かつて臨時信号機のレンタルビジネスについて同僚と話し合ったことがあったが、実現していれば今頃は相当な大金持ちになっていたのではないだろうか。その当時、私たちは信号機の自作を真剣に検討したことがあった。信号機とは結局、マイクロプロセッサによって制御されたLEDライトにすぎない。

その同僚は当時 Revolution Pi Core (181-1142) に関わる案件に携わっていた。その経験が信号機作成にいかせるかも・・・との思い至った。RevPi Coreはさまざまな方法でプログラムできるが、信号機には産業用途としての高い信頼性が求められるため、PLCアプローチを採用することに決めた。

従来型PLCとしてのRevolution Pi

RevPi_as_PLC2_b0a73f5369b65deed3d6fcbae4469c7ef0ecaba0.jpg

PLC (プログラマブルロジックコントローラ:いわゆるシーケンサ)は、製造機械の制御用に使われるコンピュータである。それまでのリレー・タイマー・シーケンサーを配線接続した複雑なシステムを使ってた自動車製造は全てPLCに取って代わられた。この旧式の制御システムは、例えば新しい車種のために生産ラインを変更する時などにアップデートを行なうのも困難だった。専門のプログラマと、クリーンで温度管理された動作環境が必要だったのである。そこで、標準的な命令セットを使用して簡単にプログラムできる堅牢なシステムとしてPLCが開発されたという経緯がある。

時間を現在に戻そう。RevPiプラットフォームはこうした背景のもとに構築されており、広範なRaspberry Piエコシステムとソフトウェアサポートを利用することができるだけでなく、IEC 61131規格に準拠したPLCとしてプログラムすることもできるという利点がある。またDINレールに取り付けることもでき、入出力保護機能も付いている優れたモジュラーシステムである。

このプラットフォームの詳細については、同僚のAndrew Backが担当したRevolution Piの紹介文を参照してほしい。

ハードウェアのセットアップ

RevPi_as_PLC_62e5239a1bf9339949e36f7959242b66ef94de3e.jpg

Revolution Piコア3モジュール、DIOモジュール (181-1143) と数個の端子ブロックを短いDINレールに取り付け、レーザーカットMDFに固定した。次に、3つの24V LEDライト (763-7915) をRevolution Pi DIOの最初の3つの出力に接続した。ここで、24Vはベンチ電源から供給した。

RevPiとDIOの初期設定は、Webブラウザで実行するPiCtoryアプリケーションから行なった。本工程については、上記のリンク先のブログ記事で詳しく説明している。

クイックスタートガイドとチュートリアル

大半のPLCと同様に、Revolution PiのプログラムはPC上で作成し、ネットワーク経由でモジュールにダウンロードされる。今回Revolution Pi用の制御アプリケーションの作成にはlogi.CAD 3を使用した。参考にしたKunbus Webサイトのクイックスタートガイドには、ソフトウェアをダウンロードするためのリンクも掲載されている。

また、logi.cals社 (logi.CAD 3の開発者) Webサイトにもチュートリアルがあり、やや異なる情報が掲載されている。私は両方を参照し、不明な部分はYouTubeのチュートリアルを見るという方法をとった。ただしYouTubeの動画はドイツ語で説明を行なっている。英語字幕の利用をおすすめする。

Logi.CAD 3 のインストールと、サンプルの実行

まずはWebブラウザでRevolution Piのセットアップページに戻り、[Services (サービス)]タブを選択し、Logi.RTSを有効にする。これでPLCプログラミング環境のランタイムが有効化される。この操作は、ビデオチュートリアルでのみ説明されている。

RevPi-setup_51c4ca4ebeed8ceac3fb855cfe6e40e4b514002c.png

操作を完了したら、Logi.CAD 3をインストールする。単にファイルを解凍するだけだが、Windowsにプリインストールされている解凍ソフトでは一部のファイル名の長さに対応できないので、別のソフトウェアを使用する必要があった。今回は7Zipが役に立った。

次に、logiCAD3.exeファイルをダブルクリックしてプログラムを起動する(私はデスクトップにショートカットも置いた)。「Workplace」ファイルを保存する場所を尋ねるプロンプトが表示されるので、デフォルトの保存先を選択する。この時、Windowsファイアウォールがプログラムの一部の機能をブロックしていたため、Windowsセキュリティ警告が表示された。この場合は[Allow Access (アクセスを許可する)]をクリックし、プログラムが起動するのを待つ。

ここまで私は順調に進められていたが、RevPiコア3にダウンロードした"RevolutionPiTutorial17"プロジェクトを送信するために[Build and Load (ビルドとロード)]ボタンをクリックしようとしたところ、つぎのエラーメッセージが表示された。

unknown_system_library_718497e2902e801ba5bc9925745456793665dacd.png

このエラーメッセージが表示されたことをKunbusサポートに連絡すると、問題を解決する方法を説明したフォーラムの投稿へのリンクが送られてきた。ドイツ語の記事だったが、結局のところ、単に2つのフォルダを削除すれば正常にビルドされるようになることが分かった。

クイックスタートガイドに戻り、つぎはRevPiのサンプルプロジェクトを開く。そのためにはまず[File (ファイル)]メニューを開き、[New/Project...(新規/プロジェクト)]を選択し、"Logi,CAD 3 Templates"を開く。

logiCAD3Templates_5fbd8d1b7b206159b783942e3040afdd258c1750.png

"logi.CAD 3 Project for Revolution Pi"を開くと「プロジェクト名」を求めるプロンプトが表示される。私は"Sample"という名前を付け、デフォルトの場所に保存した。

logiCadSample2_933c450231cbf2d798544e2e3c2a696d1250aada.png

これを開いた後[globals /sample fie (グローバル/サンプルファイル)]にRevPiのIPアドレスを入力するのは、チュートリアルのガイドに従って行えばよい。

ここでPiCtoryに戻る。既存の設定をチェックし、これから使用する3つの出力の名前を変更し、[File/Save (ファイル/保存)]を選択して設定を保存する。そして[Tools (ツール)]メニューの[Reset Driver (ドライバのリセット)]をクリックして設定を有効にした。

PiCtory_config_export_9f38bfddd634405c58638ab1d8ce77b42fde7fcf.png

ここで、logi.CAD 3で使用する設定の詳細をエクスポートする必要がある。[File/Export (ファイル/エクスポート)]を選択し、ポップアップボックスで[Structured Text IEC 61131-3]を選択し、[show only (表示のみ)]を選択すると、グローバル変数がウィンドウに表示される。

PiCtory_config_export2_794c0a959b8a79d30de81ca0787a5e2f76252033.png

ウィンドウの内容をコピーしてlogi.CAD3に戻り、[globals]フォルダで[sample.global]ファイルを開き、その内容を削除して、クリップボードからテキストを貼り付ける。

次に私は、RevolutionPiProgram.iesctファイル内のコードを、ガイドにあった下記のコードに置き換えた。

PROGRAM RevolutionPiCounterProgram
	VAR
		value : BOOL;
	END_VAR
	VAR_EXTERNAL
		RevPiLED : BYTE;
		Output_Pin_1 : BOOL;
	END_VAR
	
	IF value THEN
		RevPiLED := 0;
		Output_Pin_1 := False;
		value := False;
	ELSE
		RevPiLED := 1;
		Output_Pin_1 := True;
		value := TRUE;
	END_IF;
END_PROGRAM

次に、左側の列の上部にあるタブをクリックして[Instances View (インスタンスビュー)]に切り替え、[RevolutionPi/ RevolutionPiResource]を選択する。緑色の歯車アイコンをクリックしてRevolution Piに接続し、[Build and Upload (ビルドしてアップロード)]ボタンを押す。ここで、RevPi Core3のLEDと、Revolution PI DIOのピン1に接続されたLEDが点滅するのを確認できた。

今後の予定

ここまで来たら、あとは標準的な信号シーケンスでライトのオンとオフを切り替える方法を考え出すだけだ。そのためにはPLCプログラミング言語/環境の基礎に取り組む必要があるのだが、それは今後の投稿でご紹介する。

I have a background in the arts, environmental conservation and IT support. In my spare time I do a bit of DJing and I like making things.
DesignSpark Electrical Logolinkedin