プロブラムの処理
処理の順序
プログラムを実行すると、必ず1行目から処理をしていきます。そして、行に記載されている命令を実行します。「END」の命令文はプログラムの終了を意味しており、認識するとプログラムの処理は終了します。逆に考えれば「END」を読ませなければ処理は終わらないと言う事になります。
処理の順序
認識しない記号
プログラムは行ごとに進みますが、記載されている記号にシングルクォーテーション( ’ )が含まれていると、それ以降の文字は認識しません。
認識しない記号
シングルクォーテーションの使う場面
- 命令文のコメント・・・命令文の後にシングルクォーテーションを入れコメントを記載する。
- 命令文自体を無効にする時・・・デバックなどの時に、命令文を無効にしたい時に命令文の最初にシングルクォーテーションを入れます。有効にしたい時にはシングルクォーテーションを削除すれば認識してくれます。
プログラムの構成
プログラムの構成を解説する前に、構成に関わる2つの命令文について説明します。
2つの命令文
プログラムは1行目から処理していきますが、ジャンプと呼ばれる指定した行に飛ぶ命令文や他プログラムの呼出をする命令文がある為、実行中のプログラムを絶対に最後の行まで処理するとは限りません。(基本的には最後まで処理させるように作成します)
それではジャンプ命令と呼出命令を解説します。
ジャンプ命令 「GOTO ラベル名」と「ラベル名:」
ラベルとは、プログラムの節目に設置する目印です。プログラムの途中にラベルを記載しておくと、「GOTO ラベル名」で指定したラベルにジャンプ(指定した行に呼ぶ)します。このラベルの名前は作成者が自分で決めることが出来ますので節目にあった名称にしておくと分かりやすいです。また、同じ名称のラベルは同一プログラムでは使用できません(ジャンプする時に同じ名前ではどちらに飛ぶのか分からなくなるため)
プログラムに設置しておくラベルの記載にもルールがあり「ラベル名:」のようにラベル名の最後にコロン( : )記号を入れ記載しなければラベルとして認識されません。
GOTO ラベル
プログラムを呼出命令 「CALL プログラム名」
CALLでプログラム名を指定すると呼出、実行をします。呼び出されたプログラムがENDまで処理されると元のプログラムに戻ります。呼び出されたプログラムを処理している間は元の実行していたプログラムは次の行には進みません。
CALL
プログラムの構成まとめ
「GOTO ラベル名」や「CALL プログラム名」を使う事でプログラムの構成は幅広くなります。
構成イメージ
このような構成にする目的はプログラムを細分化する為です。もし、GOTOやCALL命令を使用せずにプログラムを作成すると、1つのプログラムの行数が増え情報が膨大になり下記のような問題が起きます。
- 繰り返しの命令を何回も使用しなければならず作成時間が多くなる
- デバック時にどこが悪いのか?の発見が難しくなる
- デバック時に修正する部分が多くなる
- ロボットコントローラー内のデータ使用量が多くなる
このような事に陥らない為にプログラムを細分化をし、特にルーティン命令の共通化(他プログラムとの共用)を意識して作成すると良いと思います。
- ルーティン命令の共通化で作成時間短縮
- プログラムがすっきりしているのでデバック修正の発見が早い
- ルーティン命令の共通化のためデバック修正する部分が少ない
- ロボットコントローラー内のデータ使用量を少なくできる
プログラムの数は増えてしまいますが、細分化のメリットは十分感じられると思います。
関連記事:【制御/プログラム/PLC】
今回は以上です。