ID : 1512
標準的な使い方
処理の流れ
プロバイダは図のような一連の流れに従って使用します。
接続ステップ(A)では、プロバイダのオブジェクトを生成します。
操作ステップ(B)では、生成したオブジェクトのプロパティやメソッドを使用して機器にアクセスします。切断するまでは、何度でもアクセスができます。
操作終了後は切断ステップ(C)を実施します。切断ステップでは生成したオブジェクトを削除します。
以下にPacScriptでの使い方を説明します。
ここでは、NetwoRCプロバイダを使用し、RC7Mコントローラの変数値の取得、設定の操作を行う方法を例にして、説明します。
PacScriptでの接続(A)のしかた
次の手順で行います。
1. オブジェクトを保持するための変数を用意します。
プロバイダを使って操作を行うためには、各機器との接続用オブジェクトとプロバイダの機能を果たすオブジェクトを生成します。
どのようなオブジェクトがあり、どのような機能を果たすかは、それぞれのプロバイダの取扱説明書を参照してください。
今回の例では、RC7Mとの接続に必要なCaoControllerオブジェクトと、変数にアクセスするためのCaoVariableオブジェクトが必要です。
以下にPacScriptでのコード例を示します。
Dim g_ctrl as Object' CaoControllerオブジェクト用
Dim g_val as Object ' CaoVariableオブジェクト用
2. プロバイダとの接続用オブジェクトを生成します。
CaoControllerオブジェクトを生成するには、プロバイダ名とパラメータを設定します。NetwoRCプロバイダでは、接続先のコントローラのIPアドレスをオプション文字列で指定します。
以下にPacScriptでのコード例を示します。
g_ctrl = cao.AddController("RC", "CaoProv.DENSO.NetwoRC",
"", "conn=eth:10.6.235.60")
ここで、cao.AddControllerのパラメータは下記のようになっており、プロバイダにより設定する値が異なります。詳細は各プロバイダの説明書を参照してください。
パラメータ | 意味 | この例での値 |
---|---|---|
パラメータ1 | コントローラ名 | プログラム作成者が管理用につける名前です。 |
パラメータ2 | プロバイダ名 | プロバイダ毎に決まっている名称を記述します。この例ではNetwoRCプロバイダの名称になっています。 |
パラメータ3 | プロバイダの実行マシン名 | この例では使用していません。 |
パラメータ4 | オプション文字列 | プロバイダ毎に異なります。この例では、通信形態(Ethernet)とIPアドレスを指定しています。 |
3. 操作用オブジェクトを生成します。
接続したい変数のCaoVariableオブジェクトを生成します。NetwoRCプロバイダでは、CaoControllerオブジェクトのメソッドでCaoVariableオブジェクトを生成します。
以下にP型の10番目の変数オブジェクトを生成するコード例を示します。
g_val = g_ctrl.AddVariable("P10", "")
パラメータ | 意味 | この例での値 |
---|---|---|
パラメータ1 | 変数の指定 | 変数名と番号を指定します。 |
パラメータ2 | オプション文字列 | この例では使用していません。 |
PacScriptでの操作(B)のしかた
生成した操作用オブジェクトのプロパティやメソッドを利用して、操作を行います。
ここでは、生成したCaoVariableオブジェクトを使い、変数値の取得と設定を行う方法を例に操作のしかたを説明します。
接続した変数の値は、CaoVariableオブジェクトのValueプロパティを参照することで取得できます。変数値の設定は、Valueプロパティに入力することでできます。以下にコード例を示します。
Dim vntPotision as Variant
vntPotision = g_val.Value ' 値の取得
g_val.Value = Array(50, 50, 50, 0, 0, 0, -1) ' 値の設定
PacScriptでの切断(C)のしかた
生成したオブジェクトを削除します。オブジェクトの生成とは逆の順に削除を行います。
以下にコード例を示します。
g_ctrl.Variables.Remove g_val.Index
g_val = Nothing
cao.Controllers.Remove g_ctrl.Index
g_ctrl = Nothing
その他の例
ここでは、NetwoRCプロバイダを使用し、RC7Mコントローラの変数値の取得、設定の操作を行う方法を例にして説明しましたが、その他の例を下記リンク先で紹介していますので参考にしてください。
書式サンプル1 | NetwoRCプロバイダを使用し、PACプログラムの開始を行う例です。 |
---|---|
書式サンプル2 | NetwoRCプロバイダを使用し、ロボットを動作させる例です。 |
別プログラムへのオブジェクトの渡し方
下記のように呼出されるプログラム側で、オブジェクト変数の引数を用意し、呼出し側で引数にオブジェクト変数名をセットします。
'!TITLE "Pro01"
#include "Pro02.pcs"
Sub Main
Dim Ctrl as Object
Ctrl = cao.AddController("DS" "caoProv.DataStore", "", "")
Call Pro02(Ctrl)
End Sub
'!TITLE "Pro02"
Sub Main(Byref Ctrl as Object)
Dim Value as Object
Value = Ctrl.AddVariable("@Version")
PrintDBG Value
End Sub
ID : 1512