以前作成したプログラムのドキュメントをアップします。
ステッププログラム、FIFOでの棚管理処理、日時管理等自動バッファ装置で流用できる部分は参考にしてください。
-目次-
本プログラムのプログラミング手法と構成について
1.概要説明
2.プログラム構成について
2-1.プログラム-ブロックについて
2-2.プログラム内容の詳細コメントについて
3.タスクについて(ステップシーケンス処理部)
3-1.タスク構成について
4.プログラムステップについて
4-1.概要
4-2.内容
4-2-1.設定について
4-2-2.ラダーへの記述方法
4-2-3.初期状態について
4-2-4.ステップの進歩方法
4-2-5.ステップの条件分岐方法
4-2-6.実行処理と戻り値の考え方について
4-2-7.動作の記録に関して
4-2-8.フローチャート
5.データ管理方法について
5-1.格納ラック段数処理について
5-2.取り出しラック段数検索処理について
6.ティーチングデータについて
7.基板情報処理エリアについて
8.プログラム資料の紹介と動画提供
本プログラムのプログラミング手法と構成について
1.概要説明
PLC国際標準規格IEC61131-3(=JIS B3503)の基本である「IL,ST,LD,FBDの4言語+SFC1要素」「POU(プログラム構成単位、タスクによる独立実行」を考慮し、弊社で標準化を進めるプログラム手法を取り入れて、設計をしております。
その基本となる動作シーケンスには、単なるステップ(工程歩進)でなく、条件判断処理で自由度が高く、メンテナンス性の高いプログラム手法を用いております。
本ドキュメントは、そのステッププログラムを中心に説明を致します。
2.プログラム構成について
2-1.プログラム-ブロックについて
プログラム名称 内容
P00 主回路 自装置モード切替、GOT表示、パスワード他
P01 基板情報処理1 基板在荷、禁止情報設定
P02 基板情報処理2 基板良品、NG情報
P03 格納先FIFO検索処理 基板格納先FIFO処理
P04 基板廃却処理 基板廃却処理
P09 異常回路 異常処理
P10 取り出しデータ処理 基板時刻情報、基板取出検索処理
P11 ステータス変更 基板発生処理
P20 位置データ処理 ラックティーチング情報、バッファ速度情報
P21 原点復帰処理 原点復帰シーケンス処理
P22 手動ステップ 手動運転シーケンス処理
P23 手動運転 メンテ運転命令
P24 基板受入動作ステップ 基板受入チャックシーケンス処理
P25 基板払出動作ステップ 基板払出チャックシーケンス処理
P27 自動運転ステップ 自動運転シーケンス処理
P29 トラッキング処理 トラッキング処理
P30 SM_ST10[走行] 走行サーボ運転処理
P31 SM_ST12[昇降] 昇降サーボ運転処理
P32 SM_ST14[チャック1] チャック1サーボ運転処理
P33 SM_ST16[チャック2] チャック2サーボ運転処理
P40 自動動作ログ 自動運転時搬送記録処理
P44 クロスCV44制御 クロスコンベヤ44手動運転処理
P50 34モード選択 搬送ライン3/4との運転モード
P90 在荷情報テーブル 上位通信在荷情報テーブル
P99 IE/NetH通信 自装置IE/NetH変換処理
2-2.プログラム内容の詳細コメントについて
プログラムの詳細内容については、P(ポインタ)にコメントを記載しています。
一部Call命令としても使用しています。
ポインタNo. 内容
P0 デバッグ用ダミー回路
P2 制御電源・運転準備入切回路
P4 モード切替・条件回路
P5 各機器の原点及び原点復帰指令回路
P6 装置全体自動運転起動・停止回路
P7 タッチパネル初期設定及び画面切替回路
P8 接点増幅・接点置換回路
P9 各ブロック毎自動運転回路及び手動回路
P10 異常検出回路
P11 表示・ブザー・パトライト
P12 生産実績・上位通信
P13 ワークシフト(PLC内部ワークメモリ)回路
P90 基板滞留状態確認
P100 データ初期化、内部ファイルレジスタ一括初期化
P130 基板在荷情報
P131 ラック内基板情報***
P132 ラック内段情報作成処理
P133 ラック段レシピ情報格納(良品or NG)
P134 ラック使用状況(在荷/禁止)
P170 基板情報編集処理***
P171 基板情報編集
P172 基板情報削除
P173 基板情報発生
P174 基板情報処理位置
P175 基板情報削除実行処理
P176 基板情報発生実行処理
P200 廃却基板処理***
P201 廃却基板情報書込
P202 廃却基板処理実行
P203 全廃却基板処理
P204 廃却基板情報Word情報処理
P205 廃却基板処理条件処理
P208 廃却基板Swap実行処理(基板情報で廃却データを戻す処理)
P210 全廃却基板処理
3.タスクについて(ステップシーケンス処理部)
原点復帰、手動運転、自動運転、受取処理(チャック動作)、払出処理(チャック動作)が主な動作です。
3-1.タスク構成について
①原点復帰処理(原点復帰時のみタスク)
②自動運転(自動運転中の処理)
③手動運転(手動動作の処理)
④受取処理(チャック動作):自動運転及び手動運転時にチャック動作(受取)要求で実行します。また、修理中の場合(復旧時のみ)、単独で実行される処理です。
⑤払出処理(チャック動作):自動運転及び手動運転時にチャック動作(払出)要求で実行します。また、処理中の場合(復旧時のみ)、単独で実行される処理です。
タスクの関連は、下記の通りです。
4.プログラムステップについて
4-1.概要
SFCと同じ機能をラダーで構成させることを目的としたプログラムです。
4-2.内容
4-2-1.設定について
ワードデバイスに数値、連続した必要数のビットエリアを使用します。
4-2-2.ラダーへの記述方法
初期状態は、ワードデバイスで0とします。
ワードデバイスの数値に対応するアウトコイルを設定します。
ワードデバイスをデコードした場合のビットをアウトコイルとします。(基本)
*注意事項 ワードデバイスをすべて記述した後に、ビットのアウトコイル記述をします。
4-2-3.初期状態について
初期ステップは、処理中断、電源立ち上がり、キャンセル状態等で0に戻します。
4-2-4.ステップの進歩方法
ステップ、リセット条件等で初期状態になります。
(例:自動運転STEP(D2310=0)の時、M700=On)
PB(押しボタン)や起動条件(自動運転、運転可能等)で、まずステップを1として、ステップが起動するようにします。
(例:自動運転STEP(D2310=1)の時、M701=On)
注意点:リセット条件、起動条件が類似している場合、ステップが可逆する可能性があるので、ステップをMOVでなくMOVPとしたり、起動条件の立ち上がりを条件として加えるよう考慮します。
ステップが運転状態となってからは、装置の状態や実行条件分岐により、移行するステップをブロックごとに考慮して、遷移させます。
(例:自動運転STEP(D2310<=11)ローダに在荷有の場合の処理、自動運転STEP(D2310<=31)ローダに在荷無の場合の処理)
特別な条件や、ループ処理が必要な場合には、条件判断処理まで戻す記述も可能です。
(例:自動運転STEPで、3/4ライン運転モードの場合、ローダは、ラインからの要求(回収、投入)がない場合でも、処理は先行して進みます。途中で回収、投入信号が切り替わった場合、投入処理から、回収処理に切り替えすることが必要になります。
その場合には、先のローダの在荷状態での判断処理までステップを戻すことになります。)
4-2-5.ステップの条件分岐方法
自動運転処理は、M700(デバイス値0)から始まります。P472は、自動運転条件で運転可能となり、M710(デバイス値10)がオンした状態で、自動運転の判断処理を開始します。
P472 自動運転在荷情報処理 内容について
M710(デバイス値10)で自動運転の判断処理をします。
M102サイクル停止信号があるとこの状態で停止します。
M349ローダの在荷状態で判断をして有の場合、自動運転STEPを11(自動運転で在荷有の条件で、ラインとのモードを判断する処理)へ移行します。
無の場合、自動運転STEPを31(自動運転で、チャック2を受け取り待機位置へ移動)へ移行します。
また、自動運転STEP38(基板受取処理)になった場合で、回収要求がなく投入要求になった場合、自動運転の判断処理に戻ってきます。
P473 自動運転モード判断処理 内容について
M711(デバイス値11)でモード確認処理になります。
M102サイクル停止信号があるとこの状態で停止します。
M349ローダの在荷状態である確認をします。
3/4ラインとの運転モード条件と3/4ラインからの要求信号判断で自動運転STEP12(基板収納先検索)または、自動運転STEP21(CV44への払出処理)へ移行します。
3/4との運転モードで排出モードの場合は、自動運転STEP21(CV44への払出処理)へ、ストックモードの場合は、自動運転STEP12(基板収納先検索)へ移行します。
このような判断ステップをすることで、複雑な条件処理も処理可能となります。
4-2-6.実行処理と戻り値の考え方について
ステップ中に判断処理、または演算処理が必要な場合は、サブルーチン呼び出しのような形で、実行処理ビットをOnします。
実行処理ビットで判断または、演算された処理結果とその戻り値として、必要な戻り値(ビットまたは、ワード)を処理中ステップに返します。
このような処理をすることで、本体のステップをより簡潔にプログラムすることになります。
4-2-7.動作の記録に関して
このステップ処理では、必ずアウトビットがONしているまたは、フローチャートのようにフロー以外へは、突然意向しないので、HMI(GOT等)のアラーム記録を利用してビットの遷移をロギングすることが可能になります。
このため、メンテナンス時にどの処理がどこでどうなっていたのかが明確に判断できます。
CFカードへ保存が可能なので、異常発生時にステップの状況解析ができます。
4-2-8.フローチャート
参考に、原点復帰処理のシーケンス処理をフローチャート示します。
5.データ管理方法について
5-1.格納ラック段数処理について
D5500から201WORD分が良品基板の収納場所をFIFOで書き込みます。
D5710に良品基板収納ラックを読出します。
D5750から201WORD分がNG基板の収納場所をFIFOで書き込みます。
D5960にNG基板収納ラックを読出します。
デバイス 内容 デバイス 内容
D5500 データエリア格納情報数 D5750 データエリア格納情報数
D5501 FIFO良品基板収納番号1 D5751 FIFONG基板収納番号1
D5502 FIFO良品基板収納番号2 D5752 FIFONG基板収納番号2
D5503 FIFO良品基板収納番号3 D5753 FIFONG基板収納番号3
D5504 FIFO良品基板収納番号4 D5754 FIFONG基板収納番号4
D5505 FIFO良品基板収納番号5 D5755 FIFONG基板収納番号5
D5506 FIFO良品基板収納番号6 D5756 FIFONG基板収納番号6
: : : :
D5701 FIFO良品基板収納番号200 D5951 FIFONG基板収納番号200
①.自動運転処理ステップで、基板が自動バッファにあり、または
基板を受け取ります。
②.良品基板かNG基板かを判断。
③.良品基板の場合、D5500から201WORDを0クリアし、FIFOで在荷無でラック番号を転送します。
③-1.NG基板の場合、D5750から201WORDを0クリアし、FIFOで在荷無でラック番号を転送します。
④.③または、③-1が完了した後、FIFOの情報を読出します。
⑤.収納ラックがある場合は、収納先有と収納先番号を返します。ない場合は、収納先無となり、エラーとなります。
-2.取り出しラック段数検索処理について
収納基板の時刻変換処理内容は、下記の表のようにします。
* R4000から32bitで時間情報をラックに入庫した時間情報として書き込みをします。
禁止棚または、NG収納ラックにも入庫時間があります。
FIFO時の処理方法について
①.自動運転処理STEPで、基板払い出しラック検索実行処理がされます。
②.NGまたは、禁止棚の条件でなく、基板が存在する場合、R4500へ時間情報を転送していきます。NGまたは、禁止棚の場合、H7FFFFFFFをデータに書き込みます。
③.R4500からの中で最小値=入庫日付の最も古いラック番号を検索します。
④.検索ラックがすべてH7FFFFFFFの場合は、払い出し無で戻り値を返します。上記でない場合、ラック番号と処理基板有を返します。
⑤.処理基板を払いだし動作を実行します。最小値の場所を取出しのラック番号として返します。
6.ティーチングデータについて
下記のようなファイルレジスタにティーチングデータ 及びサーボの速度指令データを格納しています。
7.基板情報処理エリアについて
基板情報は、下記のようなファイルレジスタに格納します。
8.プログラム資料の紹介と動画提供
資料の提供要望がありました。
少しでも技術共有できれば、うれしい限りです。
プログラム資料共有場所
URL:共有ファイル
https://drive.google.com/file/d/1eQ3_a1T5vx4gSlk6ic0AKSGGZ0PeE5zz/view?usp=sharing
資料に特定の会社名等ないように削除しましたが、削除漏れがありましたら、知らんぷりしてください。
シミュレータ確認画面
0コメント