• 検索結果がありません。

INPUT文

ドキュメント内 RCX series Programming Manual Japanese (ページ 100-131)

形式:

INPUT [<プロンプト文> ; ] <変数>     [, <変数>     , ]         ,    <ポイント変数>    <ポイント変数>  

      <シフト変数>     <シフト変数>   

意味:

この命令文は、MPBまたはRPBから指定した変数に値を代入します。入力定 義を下記に示します。

1.変数をコンマ(,)で区切って複数個指定した場合、入力データもコンマ

(,)で区切って指定個数分の入力が必要です。

2.<プロンプト文>は、データ入力のためのメッセージを表示するために で囲まれた文字列で指定します。<プロンプト文>に続いて、セミコ ロン(;)を指定した場合、メッセージの後ろに、クエスチョンマーク

(?)とスペースが表示されます。コンマ(,)が指定された場合は、メッ セージの後ろには、何も表示されません。

3.<プロンプト文>を省略した場合、クエスチョンマーク(?)とスペース が表示されます。

4.入力するデータ型は、対応する変数の型と一致する必要があります。ポイ ント変数やシフト変数への入力の場合、足りない要素は、0となります。

5.何も入力しないで、エンターキーのみを入力した場合、0やヌルストリン グ(空の文字列)が入力されたものと見なされます。ただし、複数個指定 の場合、指定個数分のコンマ(,)入力が必要です。

6.指定変数が文字変数でコンマ(,)、ダブルクォーテーション( )や文字 列の前後に意味のあるスペース(1文字空白)を入力する場合、文字列を ダブルクォーテーション( )で囲む必要があります。また、ダブル クォーテーション( )を入力する場合、ダブルクォーテーション( )を 連続して入力する必要があります。

7.ESCキーを入力した場合、この命令はスキップされます。

n

要点 例:

・変数と代入する値の型が異なって

LET(代入)文

形式:

[LET]  <算術代入文>    

       <文字列代入文>   

       <ポイント代入文>  

       <シフト代入文>   

意味:

この命令文は、指定された代入文を実行します。

a.算術代入文 形式:

[LET]  <算術変数>        = <式> 

       <ポイント要素変数>    

       <シフト要素変数>     

       <パラレル出力変数>    

       <内部出力変数>      

       <アームロック出力変数>  

       <タイマ出力変数>     

       <シリアル出力変数>    

意味:

<式>の値を左辺の変数に代入します。

例:

 A!=B!+1

 B%(1,2,3)=INT(10.88)

 LOCZ(P0)=A!

 LOCX(S1)=100.00  DO2()=&B00101101  MO(21,20)=2

 LO(00)=1  TO(01)=0  SO12()=255

n

要点

<ポイント代入文>、<シフト代 入文>を実行中にコントローラの 電源が遮断された場合、 ポイン トチェックサムエラー 、 シフ トチェックサムエラー などのメ モリ関連のエラーが発生する場合 があります。

b.文字列代入文 形式:

[LET] <文字列変数> = <文字列式> 

意味:

<文字列式>の値を文字列変数に代入します。

例:

 A$ =  YAMAHA  B$ =  ROBOT

 D$ = A$ +  −  + B$

c.ポイント代入文 形式:

[LET] <ポイント変数> = <ポイント式> 

意味:

<ポイント式>の値をポイント変数に代入します。

例:

 P1 =P10 --- ポイント10をポイント1へ代入

 P20=P20+P5 --- ポイント20とポイント5を各要素毎に加算し、P20に代入  P30=P30−P3 --- ポイント30からポイント3を各要素毎に減算し、P30に代入  P80=P70*4 --- ポイント70の各要素を4倍して、P80に代入  P60=P5/3 --- ポイント5の各要素を1/3倍して、P60に代入 d.シフト代入文

形式:

[LET] <シフト変数> = <シフト式> 

意味:

<シフト式>の値をシフト変数に代入します。

n

要点

<文字列式>で使用できる演算子 は、+だけです。また、括弧は使 用できません。

n

要点

・<ポイント式>で使用できる演算 子は、4則演算だけです。また、

乗除算の場合、定数または変数の 演算に限られます。

 可能な例 :P15*5 ,P[E]/A  不可能な例:P10*P11 ,3/P10

・乗除算による結果は、ポイント データのタイプにより異なりま す。

ポイントデータがパルス単位の場 合、演算結果の各要素は整数に変 換後に代入されます。

ポイントデータがミリ単位の場 合、演算結果の各要素は小数点第 2までの実数に変換後に代入され ます。

n

要点

・<シフト式>で使用できる演算子 は、加減算だけです。また、括弧

LO文(アームロック出力)

形式:

[LET]  LO0([b,・・・,b])  = <式> 

       LO(0b,・・・,0b)   

ビット指定bの値は、0〜7である。

<式>の値は、整数化し、左辺で指定されたビット指定に対応した下位のビット が有効である。

意味:

この命令文は、指定された値をLOポートに出力し、軸移動の禁止や解除を行い ます。

LO(00)〜LO(07)は、1軸〜8軸に対応します。オン状態で軸の移動 は禁止されます。

例:

 LO0()=&B00001010 ---- 第2軸、第 4 軸の移動を禁止します。

 LO0(2 , 1)=&B10 ---- 第 3 軸の移動を禁止します。

関連する命令:RESET, SET

n

要点

・移動を開始する軸に対して有効で す。

・ビット指定は、右から昇順で記述 してください。

MO文(内部出力)

形式:

[LET]  MOm([b,・・・,b])  = <式> 

       MO(mb,・・・,mb)   

ポート番号mの値は、2〜7,10〜17,20〜27である。

ビット指定bの値は、0〜7である。

<式>の値は、整数化し、左辺で指定されたビット指定に対応した下位のビット が有効である。

意味:

この命令文は、指定された値をMOポートに出力します。

例:

 MO2()=&B10111000

--- MO(27,25,24,23)がオンし、MO(26,22,

21,20)がオフします  MO2(6,5,1)=&B010

--- MO(25)がオンし、MO(26,21)がオフします。

 MO3() = 15

--- MO(33,32,31,30)がオンし、MO(37,36,

35,34)がオフします。

 MO(37,35,27,20)=A

--- MO(37,35,27,20)に変数Aを整数化したときの下 位4ビットの内容を出力します。

関連する命令:RESET, SET

n

要点

・MO0()とMO1()への出力 ができません。

・MO0()には、ビット0から順 に第1軸〜第8軸の原点センサの 状態が出力されます。原点センサ がオンすると1、オフすると0と なります。

・MO1()には、ビット0から順 に第1軸〜第8軸の軸ホールド状 態が出力されます。軸ホールド状 態であれば1、それ以外の状態で あれば0となります。ホールド状 態とは軸が目標位置に到達してい ることを示します。

・ビット指定は、右から昇順で記述し てください。

MOVE文(絶対位置移動命令)

形式:

MOVE  PTP ,<ポイント指定>[,オプション[,オプション] ]       P

      L       C 意味:

この命令は、メインロボット軸の絶対位置移動命令を実行します。

したがって、メインロボット軸として設定されている軸はすべて対象となりま す。サブロボット軸や付加軸設定されている軸は、この移動命令で移動しませ ん。

移動の種類 : PTP、直線補間、円弧補間 ポイント指定: 直接数値指定、ポイント定義指定

オプション : 速度指定、アーチモーション指定、STOPON条件指定、

CONT指定、加速度指定、減速度指定、座標平面指定、

ポート出力指定

移動の種類

PTP(Point to Point)移動

すべての移動対象軸の動作が完了後(公差範囲以内に軸到着後)、PTP移動を 開始し、すべての移動対象軸がアウト有効位置範囲以内に入ると命令を終了しま す。移動対象軸は、同時到着します。このときの経路は、保証されません。

MOVE P 命令に続く次の命令の注意点

MOVE P 命令の次の命令が信号出力命令などの実行可能な命令の場合、移動対 象軸がアウト有効位置範囲以内に入ると次の命令を開始します。つまり、目標位 置の公差範囲以内に軸が到着する前に次の命令を開始することになります。

例:

信号出力(DOなど)

DELAY

HALT

HOLD WAIT

アウト有効位置範囲以内に入ると、信号が出力されます。

アウト有効位置範囲以内に入ると、DELAY命令が実行され、時間の待ちが 始まります。

アウト有効位置範囲以内に入ると、プログラムが停止し、かつリセットさ れます。そのため、移動が停止します。

アウト有効位置範囲以内に入ると、プログラムを一時停止します。そのた め、移動が停止します。

アウト有効位置範囲以内に入ると、WAIT命令が実行されます。

目標位置の公差範囲以内に軸が到着してから次の命令を実行する場合は、

WAIT ARM 文を使用してください。

P1

DO(20)をオン MOVE P,P1

WAIT ARM DO(20)=1

DO(20)をオン MOVE P,P1

DO(20)=1

公差 目標位置

アウト有効位置

HOLD実行

(プログラム一時停止)

MOVE P,P1 WAIT ARM HOLD MOVE P,P1

HOLD

公差

アウト有効位置 目標位置

HOLD実行

(プログラム一時停止)

例:

 MOVE  P,P0  MOVE  PTP,P0

--- 現在位置からメインロボット軸がP0で指定された位置へ移動

・直線補間移動

すべての移動対象軸の動作が完了後(公差範囲以内に軸到着後)、直線移動を開 始し、直後に命令を終了します(直後に命令を終了するとは、プログラム上の命 令処理が遷移することを意味し、移動対象軸は目標位置に移動します)。した がって、直後にある命令は、移動対象軸が移動開始直後から実行されます。たと えば、直後の命令が信号出力命令(DO など)の場合、移動開始直後から信号が 出力されます。

また、直前の命令が MOVE 命令で、かつ、直線補間または円弧補間の場合、移 動経路を前後の加減速部分を接続し、停止することなく移動対象軸が移動しま す。移動対象軸は、同時到着します。

ただし、STOPON 条件指定がある場合は、移動動作を開始し、すべての移動対 象軸の動作の完了(公差範囲以内に軸到着)を待ちます。

n

要点

・RCX14x:Ver.8.64未満、RCX22x:

Ver9.11未満のバージョンのコント ローラでは、直線補間を実行できる のはタスク1のみです。

・速度および加速度、ポイント間の 距離によっては、滑らかな経路移 動ができない場合があります。

・速度および加速度、ポイント間の 距離によっては、経路間の速度が 一定しない場合があります。

・R軸設定のあるロボットではR軸 の移動距離によっては、R軸の速 度が高くなりすぎてエラーになる ことがあります。

目標位置の公差範囲以内に軸が到着してから次の命令を実行する場合は、

WAIT ARM 文を使用してください。

P1

DO(20)をオン MOVE L,P1

WAIT ARM DO(20)=1

DO(20)をオン MOVE L,P1 DO(20)=1

公差 目標位置

HOLD実行

(プログラム一時停止)

MOVE L,P1 WAIT ARM HOLD MOVE L,P1

HOLD

公差 目標位置

HOLD実行

(プログラム一時停止)

例:

 MOVE L,P0,P1 --- 現在位置からメインロボット軸がP0,

P1で指定された位置へ移動 P0

現在位置 

P1

・円弧補間移動

円弧補間の場合、現在位置と中間位置と目標位置の 3 つの位置で 1 つの円弧を 形成します。

すべての移動対象軸の動作が完了後(公差範囲以内に軸到着後)、円弧移動を開 始し、直後に命令を終了します(直後に命令を終了するとは、プログラム上の命 令処理が遷移することを意味し、移動対象軸は目標位置に移動します)。した がって、直後にある命令は、移動対象軸が移動開始直後から実行されます。たと えば、直後の命令が信号出力命令(DO など)の場合、移動開始直後から信号が 出力されます。

また、直前の命令が MOVE 命令で、かつ、直線補間または円弧補間の場合、移 動経路を前後の加減速部分を接続し、停止することなく移動対象軸が移動しま す。移動対象軸は、同時到着します。

n

要点

・円弧補間の動作可能な範囲は、半 径5000.00mm〜1.00mmです。

・RCX14x:Ver.8.64未満、RCX22x:

Ver.9.11未満のバージョンのコント ローラでは、円弧補間を実行できる のはタスク1のみです。

・円弧補間は、ポイント指定が偶数 個の指定となります。

・速度および加速度、円弧半径によっ ては、円弧が歪む場合があります。

・R軸設定のあるロボットではR軸 の移動距離によっては、R軸の速 度が高くなりすぎてエラーになる ことがあります。

ドキュメント内 RCX series Programming Manual Japanese (ページ 100-131)