LANGUAGE
日本語 English

関数名

ReadVariable

定 義

variant ReadVariable (short ProcNo, char pVariableName[] );

戻り値

取得した値を返却します。返却値のデータ型は、参照先のグローバル変数のデータ型と一致させてください。

引 数

ProcNo:アクセス先のプロセス番号を1~100の範囲で指定します。
pVariableName:指定プロセス上のグローバル変数名を指定します。NULL終端の文字列で指定しますので変数名をダブルクォーテーションで括るか、または文字配列変数を使用してください。構造体のメンバも指定可能です。

概 要

指定のプロセスから指定のグローバル変数の値を取得します。

詳 細

プロセスから取得できるのはグローバル変数の値に限られます。ローカル変数は取得できません。
指定のプロセスがシステム上にアサインされていない場合や、指定のプロセスに指定したグローバル変数が存在しない場合はランタイムエラーとなります。
本関数の戻り値のデータ型は、必ず参照するグローバル変数と同一のデータ型としてください。異なるデータ型とした場合、正しい結果が得られません。(正しい結果が得られなくてもエラーにはならない。)

備考

前処理の候補

後処理の候補

他処理の候補

対応HW

〇PCベースコントローラ
〇InterMotion

使用例


char	g_VChr;
int	g_VInt;
double	g_VDbl;
struct	tagPosAttrib {
	int speed;
	double pos0[MaxRobAxes];
};
tagPosAttrib g_PosAtr;
・・・・
//プロセス1上のg_VIntP1変数のデータ型はint型
//プロセス2上のg_VDblP2変数のデータ型はdouble型
//プロセス3上のg_PosAtrP3変数のデータ型はtagPosAttrib構造体と同一型
void main() {
	char varName[10];
	・・・・
	//プロセス1のg_VIntP1変数をリードします
	strcpy(varName, "g_VIntP1");
	g_VInt = ReadVariable(1, "g_VIntP1");
	//これもプロセス1のg_VIntP1変数をリードします
	g_VInt = ReadVariable(1, varName);
	//プロセス2のg_VDblP2変数をリードします
	g_VDbl = ReadVariable(2, "g_VDblP2");
	//プロセス3のg_PosAtrP3変数のspeedメンバをリードします
	g_PosAtr.speed = ReadVariable(3, "g_PosAtrP3.speed");
	//データ型が異なるため正しい結果が得られない
	g_VChr/*char型*/ = ReadVariable(1, "g_VintP1"/*int型*/);
	//これもデータ型が異なるとみなされます
	g_VDbl/*double型*/ = ReadVariable(3, "g_PosAtrP3.speed"/*構造体メンバ*/);
	・・・・
}