記事の目次
変数とは
数値(データ)を格納しておく部屋です。グローバル変数とローカル変数があります。
グローバル型変数
各プログラムで読み出して処理を行う事ができ、共有できます。変数の宣言は必要ありません。
ローカル型変数
実行中のプログラムのみで使用可能。他のプログラムと共有は出来ません。また、プログラム内で”変数の宣言”が必要になります。
私が主に使う変数
グローバル変数の以下3つです。
- P型
- I型
- F型
P型変数
ロボットの座標を格納します。ポジション型の座標系で3次元空間での位置です。座標系の変数はロボットが移動する為には必ず必要です。
I型変数
整数を格納します。主に、カウントに使用する事が多いです。正の整数≪1.2.3.4・・・≫負の整数≪-1.-2.-3.-4・・・≫
F型変数
実数を格納します。小数点以下とプラス、マイナスの数値です。座標の代入や数値計算などに使用します。例えば≪-105.077≫≪105.007≫
P型変数の登録パターン
手動動作時
- ティーチングモードで目的の位置まで動作させて、その時の座標をP変数に登録する
プログラム実行時
- プログラムで計算上の座標をP変数に代入する
- PLCからI変数に直接書き込み、又はI/Oに2の冪乗で受取った数値をF変数へ変換しP変数へ代入する
I型変数の使用例
プログラムの進行カウント
運転再開時にプログラムの何処から再開するか判断する材料となる。
MOVE L, @P P[1] 'P1(ポジション型の座標)に移動
LET I20 = 1 'I20に1を代入する=P1まで動作したとの記憶にする
2の冪乗で数値をI変数に代入
I/Oに2の冪乗を割付て、ONしたI/Oを数値に変換。1.2.4.8.16.32.64・・・に割付られたI/OのON/OFFで数値変換する。2の冪乗に置き換える事で少ない信号で大きな数値をやり取りできます。
LET I19 = 0 'I変数のI19に0を代入
IF IO[589] = 1 THEN 'もしI/Oの589がONしたら
LET I19 = I19 + 4 'I変数のI19にI19+4の結果を代入
END
IF IO[590] = 1 THEN 'もしI/Oの590がONしたら
LET I19 = I19 + 8 'I変数のI19にI19+8の結果を代入
END IF IF
上記の場合、結果I19に格納される数値は”12”となります。
F型変数の使用例
P型変数の座標に代入
PLCから数値を送る場合I型変数にしか転送できませんので、PLC側で実数を整数にした数値をI型変数に転送してロボットプログラム側で実数に変換する
F[25] = I[25] / 10 'F型変数のF25にI25の数値を÷10(整数から実数となる) した数値を代入
LETX P[20] = F[25] 'P20のX座標にF25の数値を代入する
変数のコメント
変数を使用する場合は、コメントを入力しておく事を忘れずに。コメントとは、”なんの為に使用する変数なのか?”や”なんの意味がある変数なのか?”です。
コメントの入力は以下の2つです。
- プログラムの行に書き込む
- 変数一覧表の”用途”の欄に書き込む
今まで見てきたプロブラムでは変数一覧表に記入されているモノはほとんどありませんでした。これはI/Oにも言える事です。一覧表にコメントが無い場合はプロブラムから変数の意味を判断しなければならず、非常に手間となります。また、一覧表にコメントを入れて置けば、プロブラムを書いた後に、WINCAPSの”コメントを付加”で一覧のコメントが入ります。ですから、必ず一覧の”用途”にコメントを入力しておきましょう。
まとめ
今回説明した3種類の変数が私が使用する基本の変数です。この3種類で殆どまかなっていますが、必要に応じて他の変数も使用する状況があります。
関連記事:【制御/プログラム/PLC】
以上です