28.呼び出し命令とマクロ命令の引数

28.1.概要

引数はプログラム呼び出し命令やマクロ命令で呼出すサブプログラムやマクロプログラムに渡すパラメータです。

図202."引数例"に示す例では、メインプログラムMAIN.TPはサブプログラムPROC_1.TPを呼び出し、2つの引数を渡しています。これらの引数はサブプログラムで2つの引数レジスタ「ヒキスウ[1]」と「ヒキスウ[2]」として使用することができます。

図202.引数例

引数例

引数を使用するには、

  1. プログラム呼び出し命令またはマクロ命令で、引数を定義します。

  2. サブプログラムやマクロプログラム内で、引数レジスタを使用できる命令を教示して、引数を使用します。

引数として使用できるものは以下の通りです。

  • 定数

  • 文字列

  • 引数レジスタ

  • レジスタ

  • 文字列レジスタ

以下の内容について説明します。

  • 引数命令の構文

  • 文字列選択

  • 引数レジスタ

  • 引数使用のガイドライン

  • プログラム呼び出し命令とマクロ命令の引数追加

  • サブプログラムでの引数レジスタの追加

28.2.引数命令の構文

以下の命令で引数を使用できます。

  • プログラム呼び出し命令

  • マクロ命令

引数を使用できる命令の例については、表40."引数を使用できる命令"を参照ください。

表40.引数を使用できる命令

命令

プログラム呼び出し命令

ヨビダシ SUBPRG_1(1、レジ[3]、ヒキスウ[1])

マクロ命令

Vacuum_Hand_Release(2.5)

Set_UTOOL(1)


引数の種類については、表41."引数の種類"を参照ください。

表41.引数の種類

引数の型

定数

1、3.5

引数

'Perch'

レジスタ

レジ[6]

引数レジスタ

ヒキスウ[3]

文字列レジスタ

モジレジ[2]


プログラム呼び出し命令

プログラム呼び出し命令の構文を図203."引数付きのプログラム呼び出し命令"に示します。

図203.引数付きのプログラム呼び出し命令

引数付きのプログラム呼び出し命令
引数付きのプログラム呼び出し命令

マクロ命令

マクロ命令の構文を図204."引数付きマクロ命令"に示します。

図204.引数付きマクロ命令

引数付きマクロ命令
引数付きマクロ命令

28.3.文字列選択

引数の教示で文字列を選択した時、サブメニューに選択肢の一覧が表示されます。サブメニューに表示される選択肢は、表42."文字列型引数に関するシステム変数"に示されるシステム変数により設定することができます。

表42.文字列型引数に関するシステム変数

項目

システム変数

備考

ハンドリングツール標準値

文字列種類

第1カテゴリー

$ARG_STRING[i].$title

i = 1-10

1文字以上、最大16文字まで

$ARG_STRING[1].$title = MENUS

確認ウィンドウ機能オプションにより、1番目の設定は使用されます。ここは変更しないでください。確認ウィンドウ作成機能のプログラムが上書きします。

$ARG_STRING[2].$title = 'I/O SIGNALS'

$ARG_STRING[3].$title = 'TOOL'

$ARG_STRING[4].$title = 'WORK'

$ARG_STRING[5].$title = 'POS'

$ARG_STRING[6].$title = 'DEV'

$ARG_STRING[7].$title = 'PALT'

$ARG_STRING[8].$title = 'GRIP'

$ARG_STRING[9].$title = 'USER'

$ARG_STRING[10].$title = 'PREG'

文字列

第2カテゴリー

$ARG_STRING[i].$item j

i = 1-10

j = 1-20

最大16文字まで

$ARG_STRING[2].$item1 = 'トライアウトモード'

$ARG_STRING[3].$item1 = 'TOOL_ITEM1

$ARG_STRING[4].$item1 = 'WORK_ITEM1'

$ARG_STRING[5].$item1 = 'POS_ITEM1'

$ARG_STRING[6].$item1 = 'DEV_ITEM1'

$ARG_STRING[7].$item1 = 'PALT_ITEM1'

$ARG_STRING[8].$item1 = 'GRIP_ITEM1'

$ARG_STRING[9].$item1 = 'USER_ITEM1'

$ARG_STRING[10].$item1 = 'PREG_ITEM1'

F5「文字列」を押した時に、ファンクションキーに表示される単語

$ARG_WORD[i]

i = 1-5

最大7文字まで

$ARG_WORD[1] = '$'

$ARG_WORD[2] = '['

$ARG_WORD[3] = ']'


28.4.引数レジスタ

サブプログラムやマクロプログラムで引数を参照する時、引数レジスタとして参照します。命令の左から右に向かって、最初の引数がヒキスウ[1]、2つ目がヒキスウ[2]となっています。図205."引数レジスタ"を参照ください。

図205.引数レジスタ

引数レジスタ

引数レジスタは、サブプログラムやマクロプログラムの中で、特定の命令で使用することができます。表43."引数レジスタを使用できる命令"に引数レジスタを使用できる命令の一覧を示します。

表43.引数レジスタを使用できる命令

命令

代入文の右辺

レジ[1] = ヒキスウ[1] + レジ[2] + ヒキスウ[4]

モシ レジ[1] = ヒキスウ[1] カツ レジ[2] = ヒキスウ[4] , ジャンプ ラベル[1]

GO[1] = ヒキスウ[2]

モシ レジ[7] = ヒキスウ[1] , ジャンプ ラベル[1]

タイキ AI[1] <> ヒキスウ[2] , ジャンプ ラベル[1]

ユーザザヒョウバンゴウ = ヒキスウ[3]

ツールザヒョウバンゴ = ヒキスウ[4]

インデックスの間接指定

レジ[ ヒキスウ[1] ] = レジ[ ヒキスウ[2] ]

DO[ ヒキスウ[1] ] = オン

プログラム呼び出し命令の引数

ヨビダシ SUBPRG_1(ヒキスウ[5] )

マクロ命令の引数

Hand_3_Release (ヒキスウ[1] )


引数レジスタを間接指定レジスタのインデックスとして使用することはできません。

教示不可:
レジ[ レジ[ ヒキスウ[1] ] ]
教示可能:
ヒキスウ[ [ ヒキスウ[1] ]

28.5.引数使用のガイドライン

引数を正しく使用し、エラーの発生を防ぐために、以下のガイドラインに従ってください。

1つの命令で10個より多い引数を使用しないでください。

プログラム呼び出し命令またはマクロ命令では引数は10個まで使用できます。

7DC3(V8.30)/01以降は、1つの命令で引数を30個まで使用できます。

例として、図206."教示できる引数の数"を参照してください。

図206.教示できる引数の数

教示できる引数の数

データ型が一致していることを確認してください。

引数レジスタのデータ型がサブプログラムやマクロプログラムの命令のデータ型と一致している必要があります。

メインプログラムとサブプログラムで使用されている引数のデータ型の適合性はメインプログラムが実行されるまでチェックされません。メインプログラムで指定されたデータ型がサブプログラム内での引数レジスタの使用と合わない場合、エラーが発生します。

図207."データ型"に示される例では、メインプログラムで2番目の引数に文字列データが指定されている場合、サブプログラムでレジ[3] = ヒキスウ[2]の命令が実行されるとアラームが発生します。

図207.データ型

データ型

追加した引数で必要とされている項目はすべて指定してください。

メインプログラムで命令に追加した引数に必要な項目はすべて指定する必要があります。

レジスタや引数レジスタでは番号の指定が必要です。定数や文字列では値が必要です。図208."引数の指定"で示す例では、定数の引数での値やレジスタの引数での番号が指定されていません。サブプログラム実行時にアラームが発生します。

図208.引数の指定

引数の指定

サブプログラムではメインプログラムで定義した引数を使用してください。

サブプログラム使用する引数レジスタは、呼び出したメインプログラムで指定されている必要があります。

図209."使用できる引数の数"に示す例では、メインプログラムMAIN.TPは1つの引数のみ指定していますが、サブプログラムPROC_1.TPは2番目の引数(ヒキスウ[2])を使用しています。サブプログラムでは定義されていない引数は使用できません。この命令が実行された時、アラームが発生します。

図209.使用できる引数の数

使用できる引数

メインプログラムでは、サブプログラムで使用しない引数も教示することができます。

引数はサブプログラムで使用しなくても、メインプログラムで教示することができます。

任意の引数を渡すために使用することができます。

サブプログラムやマクロプログラムはメインプログラムから呼び出された場合だけ実行します。

引数レジスタが教示されているサブプログラムやマクロプログラムは対応するメインプログラムから呼び出された時だけ実行できます。

メインプログラムがサブプログラムで使用する引数の値を渡します。サブプログラムを独自に実行すると、引数の値が設定されていないため、「ジッコウ-288 パラメータがありません」のアラームが発生します。

28.6.プログラム呼び出し命令とマクロ命令での引数追加

プログラム呼び出し命令やマクロ命令に引数を教示するには、プログラム呼び出し命令とマクロ命令への引数の教示を参照ください。

操作16.プログラム呼び出し命令とマクロ命令への引数の教示

条件

  • TPプログラムが作成されている。

  • プロセスプログラムでない。

手順

  1. 編集するプログラムを選択します。

  2. 入力キーを押します。

  3. プログラム呼び出し命令またはマクロ命令を教示します。

  4. 引数が教示されていない命令に引数を教示するためには

    1. 引数を追加するプログラム呼び出し命令またはマクロ命令にカーソルを移動します。

    2. 右矢印キーを押して命令の最後にカーソルを移動します。

    3. F4[選択]を押します。

    4. 挿入する引数の型を選択します。

      • 定数を挿入するためには、ステップ9に進みます。

      • 文字列を挿入するためには、ステップ10に進みます。

      • 引数レジスタを挿入するためには、ステップ11に進みます。

      • レジスタを挿入するためには、ステップ7に進みます。

      • 文字列レジスタを挿入するためには、ステップ13に進みます。

  5. 既に引数が教示されている命令に引数を挿入するためには、

    1. 引数を挿入するプログラム呼び出し命令またはマクロ命令にカーソルを移動します。

    2. 引数を挿入したい個所の右側にカーソルを移動します。図210."引数を挿入するためのカーソル位置"を参照ください。

      図210.引数を挿入するためのカーソル位置

      引数を挿入するためのカーソル位置


    3. F4[選択]を押します。

    4. 既に教示されている引数の間に引数を挿入する場合、<挿入>を選択してください。

    5. 挿入する引数の型を選択します。

      • 定数を挿入するためには、ステップ9に進みます。

      • 文字列を挿入するためには、ステップ10に進みます。

      • 引数レジスタを挿入するためには、ステップ11に進みます。

      • レジスタを挿入するためには、ステップ7に進みます。

      • 文字列レジスタを挿入するためには、ステップ13に進みます。

  6. 引数を削除するためには

    1. 引数を削除するプログラム呼び出し命令またはマクロ命令にカーソルを移動します。

    2. 削除する引数にカーソルを移動します。

    3. F4[選択]を押します。

    4. <無>を選択します。

      引数が教示されていない場合や、カーソルが行の最後の「)」にある場合、引数は削除されず、サブメニューは閉じます。

  7. レジスタを挿入するためには、

    1. 「レジ[ ]」を選択します。

    2. レジスタ番号を入力し、入力キーを押します。

  8. 間接指定のレジスタを挿入するためには、

    1. 「レジ[ ]」を選択します。

    2. レジスタ番号の指定を、レジ[ ]またはヒキスウ[ ]に変更するためには、カーソルをレジスタ番号に移動し、F3「間接指定」を繰り返し押します。番号の指定が以下のように変化します。

      レジ[ レジ[...] ] -> レジ[ ヒキスウ[...] ] -> レジ[ レジ[...] ] -> ...
      

  9. 定数を挿入するためには

    1. 「定数」を選択します。

    2. 定数の値を入力して、入力キーを押します。

  10. 文字列を挿入するためには

    1. 「文字列」を選択します。

    2. 文字列種類を選択します。

    3. 表示されるメニューから文字列を選択します。

    4. 直接文字列を変更する場合は、F5「文字列」を押し、ファンクションキーを使って文字列を入力します。

    5. 一度入力した後で文字列を変更するためには、カーソルを文字列に合わせて、F5「変更」を押し、ステップ10.bを繰り返します。

      表示される文字列の選択肢を変更したい場合は、システム変数を設定してください。詳しくは、28.3."文字列選択"を参照ください。

  11. 引数レジスタを挿入するためには、

    1. 「ヒキスウ[ ]」を選択します。

    2. 引数レジスタの番号を入力し、入力キーを押します。

  12. 間接指定の引数レジスタを挿入するためには、

    1. 「ヒキスウ[ ]」を選択します。

    2. 引数レジスタ番号の指定を、レジ[ ]またはヒキスウ[ ]に変更するためには、カーソルを引数レジスタの番号に移動し、F3「間接指定」を繰り返し押します。番号の指定が以下のように変化します。

      ヒキスウ[ レジ[...] ] -> ヒキスウ[ ヒキスウ[...] ] -> ヒキスウ[ レジ[...] ] -> ...
      

      間接指定として、ヒキスウ[ ]を教示するためには、カーソルを番号に合わせ、F3「間接指定」を2回押します。

  13. 文字列レジスタを挿入するためには、

    1. 「モジレジ[ ]」を選択します。

    2. 文字列レジスタの番号を入力し、入力キーを押します。

28.7.サブプログラムでの引数レジスタの追加

サブプログラムで引数レジスタを追加する場合、サブプログラムでの引数レジスタの追加を参照ください。

操作17.サブプログラムでの引数レジスタの追加

条件

  • プログラム呼び出し命令またはマクロ命令が教示されたTPプログラムが作成されている。

手順

  1. 編集するサブプログラムまたはマクロプログラムを選択します。

  2. 入力キーを押します。

  3. ヒキスウ[ ]を含む命令を挿入します。表44."引数レジスタを使用できる命令"を参照ください。

    表44.引数レジスタを使用できる命令

    命令

    代入文の右辺

    レジ[1] =ヒキスウ[1] + レジ[2] + ヒキスウ[4]

    モシ レジ[1] =ヒキスウ[1] カツ レジ[2] = ヒキスウ[4], ジャンプ ラベル[1]

    GO[1] =ヒキスウ[2]

    モシ レジ[7] =ヒキスウ[1], ジャンプ ラベル[1]

    タイキ AI[1] <>ヒキスウ[2], ジャンプ ラベル[1]

    ユーザザヒョウバンゴウ = ヒキスウ[3]

    ツールザヒョウバンゴウ = ヒキスウ[4]

    インデックスの間接指定

    レジ[ヒキスウ[1] ] = レジ[ ヒキスウ[2] ]

    DO[ヒキスウ[1] ] = オン

    プログラム呼び出し命令の引数

    ヨビダシ SUBPRG_1(ヒキスウ[5] )

    マクロ命令の引数

    Hand_3_Release (ヒキスウ[1] ]


  4. 挿入した命令で、ヒキスウ[ ]に変更したい項目にカーソルを移動します。

  5. F4[選択]を押します。

  6. 「ヒキスウ[ ]」を選択します。

  7. 引数レジスタの番号を入力し、入力キーを押します。

  8. 間接指定としてヒキスウ[ ]を教示するためには、カーソルをインデックスに移動し、F3「間接指定」を2回押します。