ソフトウェアPLC「CODESYS」の使い方まとめ

PLC(シーケンサ)

どうもミソジです。

今回は実質フリー(無料)で使えるのソフトウェアPLC「CODESYS」で「ソフトウェアPLC「CODESYS」の使い方まとめを紹介します

 

「CODESYS」はラズベリーパイでデバッグできるため「自分でPLC(シーケンサ)を色々触ってみたい!」という方におススメな記事となっています。

 

IEC 61131-3に準拠

前回まではラダーを紹介していましたが(最初から読みたい方はこちらから)「CODESYS」はPLCの規格であるIEC61131-3に準拠しているため5つの言語が使用可能です。ラダー(LD)は5つの言語の内の一つです。

 

5つの言語は下記となっています。今回はこの5つの言語で同じ内容のプログラムを動作させるまでの使い方をまとめたいと思います

 

①LD(Ladder Diagram_ラダー・ダイアグラム)

②FBD(Function Block Diagram_ファンクション・ブロック・ダイアグラム)

③SFC(Sequential Function Chart_シーケンシャル・ファンクション・チャート)

④IL(Instruction List_インストラクション・リスト)

⑤ST(Structured Text_ストラクチャード・テキスト)

 

またさらにIEC61131-3には入っていないようですが「CODESYS」が

⑥CFC(Continuous Function Chart_・コンティニュアス・ファンクション・チャート)

も使えるということですので一緒に説明していきます。

 

「CODESYS」のダウンロード・インストール方法

「CODESYS」のダウンロード・インストール方法に関しては記事「PLC(シーケンサ)・ラダーがフリーで使える!おススメ入門ソフト」に記載しましたのでリンク先から参照をお願いします

 

「CODESYS」のラズベリーパイでのデバッグ方法

「CODESYS」のラズベリーパイでのデバッグ方法に関しては記事「ラズベリーパイでPLC(シーケンサ)・ラダーの使い方を学んでみた」に記載しましたのでリンク先から参照をお願いします

 

①LD(Ladder Diagram_ラダー・ダイアグラム)

今回の5つの言語でプログラムする内容は記事「入門編!簡単なPLC・ラダーのプログラムの例を作って動かしてみた」の最後で動かしたプログラム(ラッチ(自己保持)回路 リセット付き)を使います。

 

そのため回路構成①LD(ラダー・ダイアグラム)については前記事と同じプログラムになりますのでリンク先から参照をお願いします

実際に①LD(ラダー・ダイアグラム)を動かした際の動画は下記となります

 

②FBD(Function Block Diagram_ファンクション・ブロック・ダイアグラム)

②のFBD(ファンクション・ブロック・ダイアグラム)でプログラム(ラッチ(自己保持)回路 リセット付き)作成していきます。

 

グラフィカルなブロック図になるので初見の方は①ラダーより②ファンクションブロックの方が見やすいかもしれません。

 

FBDでのプロジェクトの作り方

まずは新規プロジェクトを作成していきます。

更にオブジェクトをどうするか聞かれるので、下記選択をしてあげます

・デバイス…「CODESYS Control for Raspberry Pi SL」
・PLC_PRGの言語…「ファンクションブロックダイアグラム(FBD)」

 

これで無事プロジェクトが完成しました。ファンクションブロックでプログラム書いていきます。

 

FBDでのプログラム作成

基本的なプログラム(ラッチ(自己保持)回路 リセット付き)ですので幾らでも書き方はあるのですが一番楽する方法を取りたいと思います

 

右の「ツールボックス」からSRを選択してドラッグ&ドロップします。

 

入力は「SR」のファンクションブロックにそのまま割り当てれますが、出力はQ1にツールボックスの「割り当て」を選択してドラッグ&ドロップします。

 

名前はラダーで作成した回路をそのまま流用できるように同様に設定します。今回は「SR」回路だけでプログラムは終了です

 

FBDをラズベリーパイ上で動作させる

あとはラダー作成時と同じようにGPIOを割り振り、ビルドしてLAN経由でラズベリーパイにプログラムをダウンロードさせます。(ラズベリーパイ上で動作させる元記事のリンク先はこちらから)

 

ラズベリーパイで使用する入出力ピンも同じにしときます。

 

そして無事FBD(ファンクションブロックダイアグラム)でラッチ回路(リセット付き)が完成しました。

 

実際のプログラムの動きは動画が分かりやすいので下記に張り付けておきます

 

③SFC(Sequential Function Chart_シーケンシャル・ファンクション・チャート)

この章では③SFC(Sequential Function Chart_シーケンシャル・ファンクション・チャート)でプログラム(ラッチ(自己保持)回路 リセット付き)作成していきます。

 

 

SFCはシーケンス制御を「ステップ」間で状態遷移させていきます。プログラムが「今何をしていて」「今何処にいるか」分かりやすい言語となっています

 

SFCでのプロジェクトの作り方

オブジェクトは何時ものように、下記選択をしてあげます

・デバイス…「CODESYS Control for Raspberry Pi SL」
・PLC_PRGの言語…「シーケンシャルファンクションチャート(SFC)」

 

SFCでのプログラム作成

SFCでは主に「ステップ」「切り替え」「アクション」をドラッグ&ドロップしていくことになります。置きたい箇所にドラッグドロップしていきましょう

 

最初は初期ステップ「Init」しかありませんが、「ステップ」「切り替え」を2個重ねるとビルドする際にNGがでます。状態遷移をイメージして一つずつプログラムを書いていきましょう。

 

筆者も初めてSFCを触るのは初めて・素人でしたが、下記のプログラムを作成しました。※動作は似せましたが①②で作成したプログラムと細かい箇所が違っているかもしれません。ご了承ください

 

SFCをラズベリーパイ上で動作させる

GPIOの設定は①②と同様に設定すればOKです。SFCはプログラム動作させてから「Init」から遷移・スタートします。

 

こちらもプログラム動作は動画の方が見やすいですので下記に載せておきます

④IL(Instruction List_インストラクション・リスト)

④IL(Instruction List_インストラクション・リスト)に関しては結論から言いますとビルドが通らず、最後のプログラム動作までたどり着けませんでした。

 

しかしせっかくなので途中までの流れを記載しときたいと思います。

※もしILでビルド通せてプログラム実行できた方いれば、コツなどコメント欄につぶやいて貰えると大変助かります

 

ILでのプロジェクトの作り方

④ILはデフォルトでPLC言語の選択肢にありません。どうやら大分古い?言語で「CODESYS」側もどちらかというと非推奨みたいです。

 

ILを選択肢に出すには「ツール」⇒「オプション」を選択して

 

ILエディタの項目で「ILの有効化」をチェック入れる必要があります。

 

その後は何時ものプロジェクト作成後のPLC言語に選択肢が出てきます

 

ILでのプログラム作成

ILでもプログラム(ラッチ(自己保持)回路 リセット付き)作成してビルドしたところ「OR」「AND(N)」が使えないとエラーが出て止まってしまいました

 

色々と調べて対応したのですが上手くいかず、ILに関してはこれでギブアップとします。

 

⑤ST(Structured Text_ストラクチャード・テキスト)

⑤ST(Structured Text_ストラクチャード・テキスト)でプログラム(ラッチ(自己保持)回路 リセット付き)作成していきます。

 

STはソフトのC言語のように「IF」「+,-,=」など条件式・論理演算を使ってプログラムしく言語です。どちらかというとソフト向けの言語となっています

 

STでのプロジェクトの作り方

STでのプロジェクトの作り方も今までと同様です。下記選択をします

・デバイス…「CODESYS Control for Raspberry Pi SL」
・PLC_PRGの言語…「構造化テキスト(ST)」

 

STでのプログラム作成

STのプログラム作成は本当に自由です。C言語のようにプログラムを書いていくだけです。特にドラッグ&ドロップすることはありません

 

筆者もほぼST言語・ソフトに関して素人でしたが、下記のプログラムを作成しました。※動作は似せましたが①②③④で作成したプログラムと細かい箇所が違っているかもしれません。ご了承ください

 

STをラズベリーパイ上で動作させる

GPIO類は今までと同じですので、結果のみを貼っておきます。

 

書いたST言語の条件・論理演算に従い出力Y001が決まっていきました。ある意味ラダー初心者にはこれが一番書きやすいかもしれません。

 

動画は文字だけになってしまうので、プログラム箇所は何時もより大きくして下記に載せておきます。

⑥CFC(Continuous Function Chart_・コンティニュアス・ファンクション・チャート)

⑥CFC(Continuous Function Chart_・コンティニュースファンクション・チャート)はPLCの規格であるIEC61131-3に入っているわけではないですが、ブロックレベルで一番書きやすいかと思います。

 

既にある「AND」「OR」「SR」などのブロック(ツール)を自由な形で繋いでいきます

 

CFCでのプロジェクトの作り方

さすがにもうほぼ省略しますが、何時ものようにPLC言語で「CFC」を選択してもらえれば大丈夫です。

 

CFCでのプログラム作成

実質②のFBDで説明した「SR」のブロックが同様に使えますので、同様にブロックになった入力・出力に線をつないでいくだけです

 

CFCをラズベリーパイ上で動作させる

結果も②のFBDとほぼ変わらないので、動画だけ貼っておきます

まとめ・感想

如何でしたでしょうか。「CODESYS」は個人でソフトウェアPLCをこれだけ使い倒してラズベリーパイでデバッグができます。

 

「自宅でPLC(シーケンサ)・ラダー回路の勉強・デバッグをしてみたい!」という方には非常に使いやすいソフト・環境だと思います。ぜひ使ってみてください

 

次の記事では今までの回路を改造してラズベリーパイからシーケンス制御で24Vリレーを動作させています。よろしければご覧ください

ラズベリーパイでシーケンス制御入門! 24Vリレーを動かしてみた
今回はラズベリーパイ(raspberry pi)でソフトウェアPLC「CODESYS」とNPNトランジスタを使って簡単なシーケンス制御を組んでみました。 実際の工場で使われるPLC(シーケンサ)のように24Vリレーを動作させていきます...

 

 

コメント