今回はFANUC ROBOGUIDEのFlagsについて説明します。Flagsは非常に役に立つツールでRegister以外に別なメモリ領域でもあり、様々な状態を一時格納しプログラムやタスクの選択などにも使用できます。
Flagsは下図のように複雑な比較条件のまとめ役として使用可能で、Flagsは基本的にON/OFF状態しかありません。
Implementation1
最初はFlagsの基本操作に慣れていきましょう。5 I/O> I/O 2>2 Flagを開きます。
Flagの操作画面が表示されました。
ON/OFF
ON/OFFボタンをクリックしFlagsのSTATUSを直接変更できます。
下図のように、F[1]はON OFF状態を変更できます。
Input Comment
各FlagのCommentを編集も追加でき、Flagを選択し>DETAILをクリックします。
Commentの編集画面が表示されます。
今回はF[1]のCommentをMyFirstFlagに設定します。
Done!
Implementation2
次はロボットプログラムにFlagsを使ってみましょう。
新しいロボットプログラムを開きます。
INSTをクリックし新規コメントを追加します。
2 I/Oを開きます。
I/O statement 2/2> 2 F[ ]=(..)を選択します。
Done!FlagsのStatementが追加されました。
Direct Statement
F[…]の[ ]中に定数を入力すれば直接あるFlagを指定できます。1つの画面は少々見つらいのでSHIFT+DISPをクリックします。
DISPLAY 1のMENUが表示され、Doubleをクリックし画面を2つに分割しましょう。
Done!
今回のExmapleではF[1]をONにするため、[…]の中に1を入力します。
先程FlagsにCommentも追加しましたので、F[1]にもCommentと一緒に表示するようになりました。
F[1]をONにするので、Mixed logic から6 ONをクリックします。
Done!最後はFWDをクリックしプログラムを実行します。
実際プログラムを実行すると、F[1]がONすることになりました。
Indirect Statement
Flagsの番号をINDIRECT指定する方法も可能で、INDIRECTをクリックします。
F[R[…]]のStatementが表示されました。
F[R[4]]=ON のStatementに定義します。
つまりプログラムにONするFlagsはR[4]によって変わります。
R[4]の現在値は5になり、つまりプログラムが実行すると、F[5]がONになります。
Done!実際プログラムを実行するとF[5]がONになりました。
Complex
Flagsにも複雑なロジック演算結果を一時保存することもでき、Mixed Logic 1/4>1( を追加します。
StatementはF[5]=((..)になります。
DIを比較条件として使用するのでDI[ ]をクリックします。
DI番号を入力し、INSERTボタンをクリックし、また比較条件を追加します。
ANDロジックを選択します。
DI[2]を追加し、F[5]はDI[1]とDI[2]を同時ONするとF[5]もONになります。
F[1]はDI[3] ONとDI[4] OFFでONになります。もし該当する条件を反転したい場合(!)ボタンをクリックしてください。
Done!
うん…プログラムを実行すると、Line4は文法エラーありと表示されます。
Line4のプログラムを修正し、もう一回プログラムを実行します。
複雑な条件比較するとき”)”や”(”の数を確認しまよう。
Done!下図のようにF[1]とF[5]にもONになりました。
Implementation3
最後はFlagsをDI/DOにMappingする方法を紹介します。
Input Mapping
I/O Digital Inの画面を開き>CONFIGをクリックします。
I/O Digital Inの設定画面が表示されます。
FlagをDIにMappingするにはRACK=34,SLOT=1を設定する必要があります。
下図はDI[200-215]がRACK=34,SLOT=1,START=1に設定すると、
DI[200-215]をF[1]からF[15]までMappingすることになります。
Mappingが変更した場合、FCTN>CYCLE POWERでRobot Controllerを再起動します。
DIのMappingを確認します。
下図のようにFlagがONになると該当するDIにも同時に反映されます。
Output Mapping
FlagをDOにMappingするにはRACK=34,SLOT=1を設定する必要があります。
下図はDO[300-315]がRACK=34,SLOT=1,START=1に設定すると、
DI[200-215]をF[100]からF[115]までMappingすることになります。
Robot Controllerを再起動し、DOのMappingを確認します。
下図のようにFlagがONになると該当するDOにも同時に反映されます。