PLC(プログラマブル・ロジック・コントローラー)の覚え書き


ソフテックだよりの「見やすい・わかりやすいラダーにするために」に触発された。
該当記事
4の外部入出力を内部接点に変えておくのは自分がよくやるやつ。一番変わりやすい部分なので宣言しておくと後が楽なのだ。
基本的には「後で変更するかもしれない要素を変更しやすくしておく」のがいいソフトである。ラダーに限らず。
関連:バグらせないための知識

定数を変数(ワードデバイス)に入れておく

ソフテックだより3の「マジックナンバーを使用しない」と関連する話。
ある固定値をソフト内の複数の場所で使う場合、ワードデバイスに入れてそれを使うようにしておくと、後で数値を変えなければならなくなったとき1か所変えれば済むようになるので楽。

システムデバイスの使い分け

三菱ではSM400が常時ON、SM401が常時OFFだが、常時OFFをSM400のB接点で代用することもできる。
なので、不使用確定のものをSM400のB接点、後で変更予定だが一時的に無効にしておくのをSM401のA接点と使い分けておけば、あとで修正掛けるときに楽に検索できる。

計算はST言語で

ラダーの計算は読みにくい!一般的な四則演算で書けるST言語使え!
ちょっとした計算もインラインST使えるならガンガン使っていこうぜ!
逆にIF文とか使う必要があるならラダーに戻ろう。計算部分だけピンポイントにST言語使うのが理想。

サブルーチンよりファンクションブロック

サブルーチンは引数と返り値がどのデバイスであるかが書かれていないので、コメントを細々書いていないと他の人が見てわかりにくくなりやすい。
ソフテックだよりのやつでも苦労している。
その点ファンクションブロックは右左に引数と返り値を書かないといけないので明確。
ん?Developerでファンクションブロック使えないからだめって?F**K!!

入出力デバイスは実入出力だけに使う

他人のを見るとたまにタッチパネルのボタンやランプをXYに割り当ててるのがあるが、絶対にやってはいけない。
実際の入出力がどのようになっているかは他人が見たときの重要な情報。混乱する原因になるので厳禁。
オムロンのシーケンサがよくないのはここ。実入力、内部デバイス、システムデバイスがごちゃごちゃになっている。NJ以降は知らん。

非常停止回路や部品干渉などは1か所にまとめる

部品2つが同時に動いたときに干渉するような場合、同時に動作しないようにインターロック回路を作るが、動作部分ごとに書いていた場合、1か所変えたが他の部分を変え忘れたということがよく起きる。
インターロック内容をまとめて書いておき、その接点を使いまわすようにすると、変更があったときにそのコイル部分1か所の変更で済むので間違えにくい。

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

編集にはIDが必要です