第 4 章 リファレンス 27
4.7 関数個別説明(汎用DIO部)
1. SdioOpen
通信モジュールのデジタル入出力デバイスのオープンを行い、以後のデバイスへのアクセスを行える ようにします。
long SdioOpen(
int nDevice // デバイス番号 );
パラメータ nDevice
オープンするデバイス番号を指定します。
戻り値
この関数では下記の戻り値が返されます。詳細は『4.7 戻り値一覧(汎用DIO部)』をご参照くださ い。
正常終了した場合は、IFSDIO_ERROR_SUCCESS が返されます。
使用例
int nDevice = IFSDIO_DEVICENO_TTY_0_1;
long lRet;
lRet = SdioOpen( nDevice );
if(lRet != IFSDIO_ERROR_SUCCESS) { /* オープンに失敗 */
printf("Fail to open the device\n");
}
通信モジュールのデジタル入出力デバイスをオープンします。
2. SdioClose
通信モジュールのデジタル入出力デバイスのクローズを行い、通信モジュールのデジタル入出力デバ イスへアクセスのために使用されていた各種リソースの解放を行い、以後の通信モジュールのデジタ ル入出力デバイスへのアクセスを禁止します。
long SdioClose(
int nDevice // デバイス番号 );
パラメータ nDevice
デバイス番号を指定します。
戻り値
この関数では下記の戻り値が返されます。詳細は『4.7 戻り値一覧(汎用DIO部)』をご参照くださ い。
正常終了した場合は、IFSDIO_ERROR_SUCCESS が返されます。
使用例
int nDevice = IFSDIO_DEVICENO_TTY_0_1;
long lRet;
lRet = SdioClose( nDevice );
通信モジュールのデジタル入出力デバイスのクローズ処理を行います。
3. SdioInputPoint
任意の点数の入力接点の状態を読み込みます。指定した開始接点番号から 1 接点ずつ変数に格納され ます。
long SdioInputPoint(
int nDevice, // デバイス番号
unsinged char *pbBuffer, // 接点状態を返す変数へのポインタ unsigned long ulStartNum, // 入力開始接点番号
unsigned long ulInputNum // 入力接点数 );
パラメータ nDevice
デバイス番号を指定します。
pbBuffer
デバイスから読み取ったデータを受け取るバッファを指すポインタです。
ulStartNum
入力開始接点番号 1~24 を指定してください。
入力接点の指定と、信号は下記のように対応しています。
接点番号 1 2 3 … 31 32
入力信号 IN1 IN2 IN3 … IN31 IN32 1: Low レベル 0:High レベル
ulInputNum
入力接点数を指定してください。
戻り値
この関数では下記の戻り値が返されます。詳細は『4.7 戻り値一覧(汎用DIO部)』をご参照くださ い。
正常終了した場合は、IFSDIO_ERROR_SUCCESS が返されます。
使用例
int nDevice = IFSDIO_DEVICENO_TTY_0_1;
long lRet;
unsigned char bBuffer[8];
lRet = SdioInputPoint( nDevice, &bBuffer[0], 16, 8 );
IN16~23 の状態を入力します。
4. SdioOutputPoint
任意の点数の出力接点の出力を制御します。指定した開始接点番号から 1 接点づつ変数に格納された データで接点を制御します。
long SdioOutputPoint(
int nDevice, // デバイス番号
unsinged char *pbBuffer, // 出力状態を収めている変数へのポインタ unsigned long ulStartNum, // 出力開始接点番号
unsigned long ulOutputNum // 出力接点数 );
パラメータ nDevice
デバイス番号を指定します。
pbBuffer
デバイスから出力させるデータを収めている変数へのポインタです。
ulStartNum
出力開始接点番号 1~24 を指定してください。
出力接点の指定と、信号は下記のように対応しています。
接点番号 1 2 3 … 31 32
出力信号 OUT1 OUT2 OUT3 … OUT31 OUT32 1: Low レベル 0:High レベル
ulOutputNum
出力接点数を指定してください。
戻り値
この関数では下記の戻り値が返されます。詳細は『4.7 戻り値一覧(汎用DIO部)』をご参照くださ い。
正常終了した場合は、IFSDIO_ERROR_SUCCESS が返されます。
使用例
int nDevice = IFSDIO_DEVICENO_TTY_0_1;
long lRet;
unsigned char bBuffer[8] = { 1, 0, 0, 1, 0, 1, 1, 0};
lRet = SdioOutputPoint( nDevice, &bBuffer[0], 16, 8 );
OUT16~23 に値を出力します。
5. SdioInputByte
接点 8 点分のデータを読み込み、1 バイト(8 ビット)の変数に格納します。
long SdioInputByte(
int nDevice, // デバイス番号
unsigned long ulInputNo, // 入力接点位置
unsigned char *pbValue // 接点状態を返す変数へのポインタ );
パラメータ nDevice
デバイス番号を指定します。
ulInputNo
読み込む接点を下記の識別子で指定します。
IFSDIO_IN1_8 IN1~IN8 の 8 点分のデータを読み込みます。
IFSDIO_IN9_16 IN9~IN16 の 8 点分のデータを読み込みます。
IFSDIO_IN17_24 IN17~IN24 の 8 点分のデータを読み込みます。
pbValue
読み込まれたデータを格納する変数へのポインタを指定してください。
戻り値
この関数では下記の戻り値が返されます。詳細は『4.7 戻り値一覧(汎用DIO部)』をご参照くださ い。
正常終了した場合は、IFSDIO_ERROR_SUCCESS が返されます。
備考
取得したデータは下記のようにビット毎に接点と対応しています。
ビット Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 IFSDIO_IN1_8 IN8 IN7 IN6 IN5 IN4 IN3 IN2 IN1 IFSDIO_IN9_16 IN16 IN15 IN14 IN13 IN12 IN11 IN10 IN9 IFSDIO_IN17_24 IN24 IN23 IN22 IN21 IN20 IN19 IN18 IN17 1:Low レベル 0:High レベル
使用例
int nDevice = IFSDIO_DEVICENO_TTY_0_1;
long lRet;
unsigned char bValue;
lRet = SdioInputByte( nDevice, IFSDIO_IN1_8, &bValue );
IN1~8 の状態を bValue に入力します。
6. SdioInputWord
接点 16 点分のデータを読み込み、1 ワード(16 ビット)の変数に格納します。
long SdioInputWord(
int nDevice, // デバイス番号
unsigned long ulInputNo, // 入力接点位置
unsigned short *pwValue // 接点状態を返す変数へのポインタ );
パラメータ nDevice
デバイス番号を指定します。
ulInputNo
読み込む接点を下記の識別子で指定します。
IFSDIO_IN1_16 IN1~IN16 の 16 点分のデータを読み込みます。
IFSDIO_IN17_32 IN17~IN32 の 16 点分のデータを読み込みます。
24 点入力の端子台では、IN25~IN32 のデータは取得できません。
またここのデータは全て 0 になります。
pwValue
読み込まれたデータを格納する変数へのポインタを指定してください。
戻り値
この関数では下記の戻り値が返されます。詳細は『4.7 戻り値一覧(汎用DIO部)』をご参照くださ い。
正常終了した場合は、IFSDIO_ERROR_SUCCESS が返されます。
備考
取得したデータは下記のようにビット毎に接点と対応しています。
ビット Bit15 Bit14 Bit13 … Bit2 Bit1 Bit0
IFSDIO_IN1_16 IN16 IN15 IN14 … IN3 IN2 IN1 IFSDIO_IN17_32 IN32 IN31 IN30 … IN19 IN18 IN17
1:Low レベル 0:High レベル 使用例
int nDevice = IFSDIO_DEVICENO_TTY_0_1;
long lRet;
unsigned short wValue;
lRet = SdioInputWord( nDevice, IFSDIO_IN1_16, &wValue );
7. SdioInputDword
接点 32 点分のデータを読み込み、1 ダブルワード(32 ビット)の変数に格納します。
long SdioInputDword(
int nDevice, // デバイス番号
unsigned long ulInputNo, // 入力接点位置
unsigned long *pdwValue // 接点状態を返す変数へのポインタ );
パラメータ nDevice
デバイス番号を指定します。
ulInputNo
読み込む接点を下記の識別子で指定します。
IFSDIO_IN1_32 IN1~IN32 の 32 点分のデータを読み込みます。
24 点入力の端子台では IN25~IN32 のデータは取得できません。
またここのデータは全て 0 になります。
pdwValue
読み込まれたデータを格納する変数へのポインタを指定してください。
戻り値
この関数では下記の戻り値が返されます。詳細は『4.7 戻り値一覧(汎用DIO部)』をご参照くださ い。
正常終了した場合は、IFSDIO_ERROR_SUCCESS が返されます。
備考
取得したデータは下記のようにビット毎に接点と対応しています。
ビット Bit31 Bit30 Bit29 … Bit2 Bit1 Bit0
IFSDIO_IN1_32 IN32 IN31 IN30 … IN3 IN2 IN1 1:Low レベル 0:High レベル
使用例
int nDevice = IFSDIO_DEVICENO_TTY_0_1;
long lRet;
unsigned long dwValue;
lRet = SdioInputDword( nDevice, IFSDIO_IN1_32, &dwValue );
IN1~32 の状態を dwValue に入力します。
8. SdioOutputByte
接点 8 点分の出力を制御します。
long SdioOutputByte(
int nDevice, // デバイス番号
unsigned long ulOutputNo, // 出力接点位置 unsigned char bValue // 出力データ );
パラメータ nDevice
デバイス番号を指定します。
ulOutputNo
データを出力する接点を下記の識別子で指定します。
IFSDIO_OUT1_8 OUT1~OUT8 の 8 点分のデータを出力します。
IFSDIO_OUT9_16 OUT9~OUT16 の 8 点分のデータを出力します。
IFSDIO_OUT17_24 OUT17~OUT24 の 8 点分のデータを出力します。
bValue
指定した接点へ出力するデータを指定してください。
戻り値
この関数では下記の戻り値が返されます。詳細は『4.7 戻り値一覧(汎用DIO部)』をご参照くださ い。
正常終了した場合は、IFSDIO_ERROR_SUCCESS が返されます。
備考
出力データは下記のようにビット毎に接点と対応しています。
ビット Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 IFSDIO_OUT1_8 OUT8 OUT7 OUT6 OUT5 OUT4 OUT3 OUT2 OUT1 IFSDIO_OUT9_16 OUT6 OUT15 OUT14 OUT13 OUT12 OUT11 OUT10 OUT9 IFSDIO_OUT17_24 OUT24 OUT23 OUT22 OUT21 OUT20 OUT19 OUT18 OUT17 1:Low レベル 0:High レベル
使用例
int nDevice = IFSDIO_DEVICENO_TTY_0_1;
long lRet;
lRet = SdioOutputByte( nDevice, IFSDIO_OUT1_8, 0x12);
OUT1~8 へ 12h を出力します。
9. SdioOutputWord
接点 16 点分の出力を制御します。
long SdioOutputWord(
int nDevice, // デバイス番号
unsigned long ulOutputNo, // 出力接点位置 unsigned short wValue // 出力データ );
パラメータ nDevice
デバイス番号を指定します。
ulOutputNo
データを出力する接点を下記の識別子で指定します。
IFSDIO_OUT1_16 OUT1~OUT16 の 16 点分のデータを出力します。
IFSDIO_OUT17_24 OUT17~OUT32 の 16 点分のデータを出力します。
24 点出力の端子台では OUT25~OUT32 から出力できません。
pwValue
指定した接点へ出力するデータを指定してください。
戻り値
この関数では下記の戻り値が返されます。詳細は『4.7 戻り値一覧(汎用DIO部)』をご参照くださ い。
正常終了した場合は、IFSDIO_ERROR_SUCCESS が返されます。
備考
出力データは下記のようにビット毎に接点と対応しています。
ビット Bit15 Bit14 Bit13 … Bit2 Bit1 Bit0
IFSDIO_OUT1_16 OUT16 OUT15 OUT14 … OUT3 OUT2 OUT1 IFSDIO_OUT17_32 OUT32 OUT31 OUT30 … OUT19 OUT18 OUT17
1:Low レベル 0:High レベル 使用例
int nDevice = IFSDIO_DEVICENO_TTY_0_1;
long lRet;
lRet = SdioOutputWord( nDevice, IFSDIO_OUT1_16, 0x1234);
OUT1~16 へ 1234h を出力します。
10. SdioOutputDword
接点 32 点分の出力を制御します。
long SdioOutputDword(
int nDevice, // デバイス番号
unsigned long ulOutputNo, // 出力接点位置 unsigned long dwValue // 出力データ );
パラメータ nDevice
デバイス番号を指定します。
ulOutputNo
データを出力する接点を下記の識別子で指定します。
IFSDIO_OUT1_32 OUT1~OUT32 の 32 点分のデータを出力します。
24 点出力の端子台では OUT25~OUT32 から出力できません。
dwValue
指定した接点へ出力するデータを指定してください。
戻り値
この関数では下記の戻り値が返されます。詳細は『4.7 戻り値一覧(汎用DIO部)』をご参照くださ い。
正常終了した場合は、IFSDIO_ERROR_SUCCESS が返されます。
備考
出力データは下記のようにビット毎に接点と対応しています。
ビット Bit31 Bit30 Bit29 … Bit2 Bit1 Bit0
IFSDIO_OUT1_32 OUT32 OUT31 OUT30 … OUT3 OUT2 OUT1 1:Low レベル 0:High レベル
使用例
int nDevice = IFSDIO_DEVICENO_TTY_0_1;
long lRet;
lRet = SdioOutputDword( nDevice, IFSDIO_OUT1_32, 0x123456);
OUT1~32 へ 00123456h を出力します。
11. SdioSetLatchLogic
入力信号をラッチする STB 信号の論理を指定します。
long SdioSetLatchLogic(
int nDevice, // デバイス番号
unsigned char bLatchLogic // STB 入力論理 );
パラメータ nDevice
デバイス番号を指定します。
bLatchLogic
入力信号をラッチする STB 信号の論理を以下の識別子で指定します。
IFSDIO_RISE_EDGE STB 信号の立ち上がりでラッチします。
IFSDIO_FALL_EDGE STB 信号の立ち下がりでラッチします。
戻り値
この関数では下記の戻り値が返されます。詳細は『4.7 戻り値一覧(汎用DIO部)』をご参照くださ い。
正常終了した場合は、IFSDIO_ERROR_SUCCESS が返されます。
備考
ラッチするエッジは立ち上がりと立ち下がりを両方同時に指定することもできます。
STB 信号の変化により割り込みを発生させることができますが、この割り込みの設定とラッチの設 定は独立して指定できます。
使用例
int nDevice = IFSDIO_DEVICENO_TTY_0_1;
long lRet;
lRet = SdioSetLatchLogic( nDevice, IFSDIO_RISE_EDGE );
STB 信号の立ち上がりで入力信号をラッチするように設定します。