【上級編】IAI RSELによるSELプログラム作成 プログラム参考例公開

f:id:vv_6ong_3ka_cp:20210406212850p:plain

様々なSEL言語プログラムの紹介をしてきましたが、今回はプログラムの参考例を紹介しようと思います。

SEL言語プログラムはシングルタスクであり、ラダープログラムのような仮想的なマルチタスクのような処理が苦手です。

このあたりでSEL言語が苦手というソフト屋さんも多くいると思いますが、動作フローをしっかり構築すればラダープログラムのような仮想的なマルチタスクを実現することができます。

今回はSEL言語プログラムの参考例を紹介します。

※あくまでも参考ですので注意をお願い致します。

www.niwakafa.com
www.niwakafa.com

広告


RSEL プログラム新規作成方法

SELプログラム動作フロー プログラムNo.1
f:id:vv_6ong_3ka_cp:20210406080049p:plain

Point.SEL言語のようにシングルタスクのプログラムは動作フローを先に考える

SEL言語はロボシリンダの動作が優先のため、シングルタスクを採用しています。

FA機械の制御屋さんはラダープログラムで考えてしまいがちのためSEL言語のようなシングルタスクとつじつまが合わないです。

ラダープログラム = 仮想的にマルチタスク
※すべての出力結果を全プログラムの演算後に行うため

SEL言語プログラム = プログラム内はシングルタスク

ラダープログラムとSEL言語プログラムで違いがありますので、SEL言語プログラムで抜け出せないような状態(ダンマリ停止)が起きないように、動作フローでラダープログラムのような仮想的なマルチタスクを考えるようにしましょう。

SELプログラム動作フロー プログラムNo.2
f:id:vv_6ong_3ka_cp:20210406080101p:plain

Point.並列処理プログラムを起動し現在位置や軸停止命令を用意する

動作フローを考えていても、動作している最中はプログラムは待機状態になる命令が存在します。

ロボシリンダが動作中、プログラムが停止されると現在位置や軸停止命令を行うことができないため、並列処理プログラムを起動させ外部から指令を出すようにしましょう。

※今回はプログラムNo.2の参考を用意しておりません。すみません。

SEL言語プログラム 参考例
f:id:vv_6ong_3ka_cp:20210406080115p:plain

Point.動作フローのようにダンマリ停止しないように注意する

残念ながら実機で動作確認ができておりませんが、上記のようにダンマリ停止しないようにプログラムを心がけましょう。

IAIの参考プログラムもありますが、あくまでも参考で途中停止や不具合の発生は考えていないようなプログラムとなっております。

私のプログラムでは
1.プログラム上で待ちの箇所を作らない
2.動作はMOVL命令のみなので動作キャンセル命令で停止する
3.目標位置はPLCからのリモートデバイスから読込、毎回位置を変更できる

CC-Linkで接続している利点も生かしながらプログラムのダンマリもないように仕上げたつもりです。

参考にしてもらえたら幸いです。

まとめ
・SEL言語プログラムはシングルタスクのため待ちを作らないようにする
・動作キャンセルしてもプログラムでダンマリ停止しないようにする
・CC-Linkなどのフィールドネットワークの利点を考慮しパラメータ調整できるようにプログラム設計をする



www.niwakafa.com
www.niwakafa.com
www.niwakafa.com
www.niwakafa.com