int WriteSharedVarArray ( int sharedVarIdx, int numOfData, variant mosArray[], int idx1, int idx2 );
正常終了では0が、異常終了では1が返却されます。
sharedVarIdx:コピー先の共有変数のインデックス先頭番号を0~65535の範囲で指定します。
numOfData:コピー先の共有変数のデータ個数を、1~200の範囲で指定します。
mosArray[ ]:コピー元の配列変数名を指定します。配列要素数はNumOfDataよりも大きな値である必要があります。配列のデータ型はvariant(short型、long(int)型、float型、double型のいずれかという意味です)が指定できます。
idx1:コピー元の配列の先頭要素番号を指定します。
idx2:0を指定してください。
指定の配列のデータを、共有変数の指定された領域に、一連の配列データとみなしてコピーします。
リードするのは、mosArrayで指定された配列名の、idx1で指定された要素番号から始まる要素のデータです。コピー先はsharedVarIdxを先頭とするnumOfData個分の共有変数の領域です。
すなわち、mosArrayで指定された配列の(idx1)の要素のデータは共有変数の(sharedVarIdx)番目にコピーされ、mosArrayで指定された配列の(idx1+1)の要素のデータは共有変数の(sharedVarIdx+1)番目にコピーされます。同様に、mosArrayで指定された配列の(idx1+ numOfData-1)の要素のデータは共有変数の(sharedVarIdx+numOfData-1)番目にコピーされます。
コピー元の配列要素数はnumOfDataよりも大きな値でなければなりません。これは、例えばnumOfDataに100を、idx1に10を指定した場合は、配列の要素数として110以上が必要になるということです。
本関数で取り扱えるコピー先の配列は1次元配列のみです。
本関数ではコピーの対象は共有変数、配列ともにshort型、long(int)型、float型、double型のいずれかに限られます。
共有関数の詳細は「MOS関数で扱うリソース」の共有変数を参照してください。
〇PCベースコントローラ
〇InterMotion
void main() {
short MDataWr[10];
double posArray[110];
int rc;
・・・・
//MDataWr[0]~MDataWr[9]の配列データを共有変数の0番目から10個分の領域にコピーする
rc = WriteSharedVarArray(0, 10, MDataWr, 0, 0);
・・・・
//posArray[10]~posArray[109]の配列データを共有変数の10010番目から100個分の領域にコピーする
rc = WriteSharedVarArray(10010, 100, posArray, 10, 0);
・・・・
}