- 73 - Interface Corporation
DioOutputPoint
任意の点数の出力接点の出力を制御します。
宣言
Declare Function DioOutputPoint Lib “FbiDio.DLL”(ByVal hDeviceHandle As Long,ByRef pBuffer As Long,ByVal dwStartNum As Long,ByVal dwNum As Long) As Long
パラメータ
hDeviceHandle 有効なデバイスハンドルを指定します
pBuffer デバイスから出力するデータを格納するバッファへのポインタを指定しま
す。
dwStartNum 出力接点の開始番号を指定します。
dwNum 出力接点数を指定します。
戻り値
関数が成功すると0が返されます。
関数が失敗すると0以外の値が返ります。関数が失敗した場合の戻り値についてはエラーコード一覧を参照してください。
DioGetBackGroundUseTimer
バックグランド処理で使用するタイマーの情報を取得します。
宣言
Declare Function DioGetBackGroundUseTimer Lib “FbiDio.DLL” (ByVal hDeviceHandle As Long,ByRef pnUse As Long) As Long
パラメータ
hDeviceHandle 有効なデバイスハンドルを指定します
pnUse バックグランド処理で使用するタイマーを示す値が返されます。
値 意味
0 パソコンのタイマーを使用します。
1(0以外) ボード上のタイマーを使用します。ボード上
のタイマを使用する場合、DioSetTimerConfig 関数、DioGetTimerConfig関数、
DioGetTimerCount関数は使用できません。
戻り値
関数が成功すると0が返されます。
関数が失敗すると0以外の値が返ります。関数が失敗した場合の戻り値についてはエラーコード一覧を参照してください。
DioSetBackGroundUseTimer
バックグランド処理で使用するタイマーの設定を行います。
宣言
Declare Function DioSetBackGroundUseTimer Lib “FbiDio.DLL” (ByVal hDeviceHandle As Long,ByVal nUse As Long) As Long
パラメータ
hDeviceHandle 有効なデバイスハンドルを指定します
nUse バックグランド処理で使用するタイマーを示す値を指定します。
値 意味
0 パソコンのタイマ−を使用します。
1(0以外) ボード上のタイマーを使用します。ボード上
のタイマを使用する場合、DioSetTimerConfig 関 数 、 DioGetTimerConfig 関 数 、 DioGetTimerCount関数は使用できません。
戻り値
関数が成功すると0が返されます。
関数が失敗すると0以外の値が返ります。関数が失敗した場合の戻り値についてはエラーコード一覧を参照してください。
- 75 - Interface Corporation
DioSetBackGroundバックグランド関数実行時の接点番号、接点数、処理回数を設定します。
宣言
Declare Function DioSetBackGround Lib “FbiDio.DLL” (ByVal hDeviceHandle As Long,ByVal dwStartPoint As Long,ByVal dwPointNum As Long,ByVal dwValueNum As Long,ByVal dwCycle As Long,ByVal dwCount As Long,ByVal dwOption As Long) As Long
パラメータ
hDeviceHandle 有効なデバイスハンドルを指定します
dwStartPoint バックグランド入力または出力、監視を行う開始接点番号を指定します。
DIボードの場合はピンIN1が1に対応します。DOボードの場合はピンOUT1 が1に対応します。DIOボード(双方向)の場合ピンI/O1が1に対応します。
dwPointNum バックグランド入力または出力を行う接点数を指定します。
dwValueNum 1接点に割り当てるバッファを指定します。
dwCycle バックグランド処理周期/監視分解能を指定します。単位ms。1ms以上1ms
単位で設定可能です。
dwCount 処理回数を指定します。0を指定するとコールしたバックグランド処理は、
DioStopBackGround関数をコールするまで繰り返し処理を行います。
dwOption 将来拡張用です。0を指定して下さい。
戻り値
関数が成功すると、有効なバックグランド処理ハンドルが返されます。
関数が失敗すると-1(INVALID_HANDLE_VALUE(FFFFFFFFh))が返ります。
解説
バックグランド処理に使用するタイマーをパソコンのタイマーとしている場合、dwCycleの値が500ms以下またはCPUの負荷が過 多になると、バックグランド処理が正常に行われなくなる場合があります。
この現象は、使用するタイマーをボード上のタイマーに変更することにより回避できます。
DioFreeBackGround
DioSetBackGroundで設定したバックグランド処理の設定を解放します。
宣言
Declare Function DioFreeBackGround Lib “FbiDio.DLL” (ByVal hDeviceHandle As Long,ByVal hBackGroundHandle As Long) As Long
パラメータ
hDeviceHandle 有効なデバイスハンドルを指定します。
hBackGroundHandle バックグランド処理のハンドルを指定します。
戻り値
関数が成功すると0が返されます。
関数が失敗すると0以外の値が返ります。関数が失敗した場合の戻り値についてはエラーコード一覧を参照してください。
解説
バックグランド処理を行う必要がなくなった時点で必ず本関数で設定を解放してください。バックグランド処理実行中の場合は、
その処理を停止させ設定を解放します。
DioStopBackGround
バックグランド処理を停止します。
宣言
Declare Function DioStopBackGround Lib “FbiDio.DLL” (ByVal hDeviceHandle As Long,ByVal hBackGroundHandle As Long) As Long
パラメータ
hDeviceHandle 有効なデバイスハンドルを指定します。
hBackGroundHandle バックグランド処理のハンドルを指定します。
戻り値
関数が成功すると0が返されます。
関数が失敗すると0以外の値が返ります。関数が失敗した場合の戻り値についてはエラーコード一覧を参照してください。
DioGetBackGroundStatus
バックグランド処理の設定情報、実行状態を取得します。
宣言
Declare Function DioGetBackGroundStatus Lib “FbiDio.DLL” (ByVal hDeviceHandle As Long,ByVal hBackGroundHandle As Long,ByRef pnStartPoint As Long, ByRef pnPointNum As Long,ByRef pnValueNum As Long,ByRef pnCycle As Long,ByRef pnCount As Long,ByRef pnOption As Long,ByRef pnExecute As Long,ByRef pnExecCount As Long,ByRef pnBufferOffset As Long,ByRef pnOver As Long) As Long
パラメータ
hDeviceHandle 有効なデバイスハンドルを指定します。
hBackGroundHandle バックグランド処理のハンドルを指定します。
pnStartPoint 設定された入出力開始接点番号が返されます。
pnPointNum 設定された接点数が返されます。
pnValueNum ひとつの接点に対して確保したバッファ数が返されます。
pnCycle 設定されたバックグランド処理周期、監視分解能が返されます。
pnCount 設定された処理回数が返されます。
pnOption 将来拡張用
pnExecute 実行状態を示す値が返されます。
値 意味
0 停止中
1 実行中
pnExecCount 実行された回数が返されます。
pnBufferOffset 実行中のデータが格納されているオフセット位置が返されます。
pnOver バッファオーバー発生の有無を示す値が返されます。
値 意味
0 −
1 バッファオーバー発生
戻り値
関数が成功すると0が返されます。
関数が失敗すると0以外の値が返ります。関数が失敗した場合の戻り値についてはエラーコード一覧を参照してください。
DioInputPointBack
DioSetBackGround関数で設定した任意の点数の入力接点の状態をバックグランドで読み込みます。
宣言
Declare Function DioInputPointBack Lib “FbiDio.DLL” (ByVal hDeviceHandle As Long,ByVal
hBackGroundHandle As Long,ByRef pBuffer As Long,ByVal nNumberOfBytesToRead As Long,ByRef lpOverlapped As OVERLAPPED) As Long
パラメータ
hDeviceHandle 有効なデバイスハンドルを指定します。
hBackGroundHandle バックグランド処理のハンドルを指定します。
pBuffer バッファへのポインタを指定します。このバッファに任意の点数の入力接点
より取得した状態が格納されます。
nNumberOfBytesToRead デバイスから入力するバイト数を指定します。
lpOverlapped OVERLAPPEDデータ構造体へのポインタを指定します。
戻り値
関数が成功すると0が返されます。Visual Basic上で非同期に実行させる場合、本関数の呼び出しと同時には非同期I/O動作中です ので、リターンコード &hC00008が返されます。
関数が失敗すると0以外の値が返ります。関数が失敗した場合の戻り値についてはエラーコード一覧を参照してください。
解説
nNumberOfBytesToReadは下式により求めます。
nNumberOfBytesToRead = dwPointNum × dwValueNum × 4[sizeof(int)]
dwPointNumとdwValueNumはDioSetBackGround関数に設定した値を指定します。
DioWatchPointBack関数では接点の状態に変化があったときのみ、そのデータの取得を行うのに対し、本関数は、設定された周 期でデータの取得を行います。
- 77 - Interface Corporation
DioOutputPointBackDioSetBackGround関数で設定した任意の点数の出力接点の出力をバックグランドで制御します。
宣言
Declare Function DioOutputPointBack Lib “FbiDio.DLL” (ByVal hDeviceHandle As Long,ByVal hBackGroundHandle As Long,ByRef pBuffer As Long,ByVal nNumberOfBytesToWrite As Long,ByRef lpOverlapped As OVERLAPPED) As Long
パラメータ
hDeviceHandle 有効なデバイスハンドルを指定します。
hBackGroundHandle バックグランド処理のハンドルを指定します。
pBuffer バッファへのポインタを指定します。このバッファに格納した値が任意の
点数の出力接点より出力されます。
nNumberOfBytesToRead デバイスから出力するバイト数を指定します。
lpOverlapped OVERLAPPEDデータ構造体へのポインタを指定します。
戻り値
関数が成功すると0が返されます。Visual Basic上で非同期に実行させる場合、本関数の呼び出しと同時には非同期I/O動作中です ので、リターンコード &hC00008が返されます。
関数が失敗すると0以外の値が返ります。関数が失敗した場合の戻り値についてはエラーコード一覧を参照してください。
解説
nNumberOfBytesToReadは下式により求めます。
nNumberOfBytesToRead = dwPointNum × dwValueNum × 4[sizeof(int)]
dwPointNumとdwValueNumはDioSetBackGround関数に設定した値を指定します。
DioWatchPointBack
DioSetBackGround関数で設定した任意の点数の状態を監視します。
宣言
Declare Function DioWatchPointBack Lib “FbiDio.DLL” (ByVal hDeviceHandle As Long,ByVal
hBackGroundHandle As Long,ByRef pBuffer As Long,ByVal nNumberOfBytesToRead As Long,ByRef lpOverlapped As OVERLAPPED) As Long
パラメータ
hDeviceHandle 有効なデバイスハンドルを指定します。
hBackGroundHandle バックグランド処理のハンドルを指定します。
pBuffer バッファへのポインタを指定します。このバッファに取得した任意の点数
の状態が格納されます。
nNumberOfBytesToRead デバイスから入力するバイト数を指定します。
lpOverlapped OVERLAPPEDデータ構造体へのポインタを指定します。
戻り値
関数が成功すると0が返されます。Visual Basic上で非同期に実行させる場合、本関数の呼び出しと同時には非同期I/O動作中です ので、リターンコード &hC00008が返されます。
関数が失敗すると0以外の値が返ります。関数が失敗した場合の戻り値についてはエラーコード一覧を参照してください。
解説
nNumberOfBytesToReadは下式により求めます。
nNumberOfBytesToRead = dwPointNum × dwValueNum × 4[sizeof(int)]
dwPointNumとdwValueNumはDioSetBackGround関数に設定した値を指定します。
DioInputPointBack関数では設定された周期でデータの取得を行うのに対し、本関数は状態に変化があったときのみ、そのデータ の取得を行います。
DioGetInputHandShakeConfig
DioSetInputHandShakeConfig関数により設定した、制御信号を使用したハンドシェーク入力の設定情報を取得します。
宣言
Declare Function DioGetInputHandShakeConfig Lib “FbiDio.DLL” (ByVal hDeviceHandle As Long,ByRef pnInputHandShakeConfig As Long,ByRef pdwBitMask1 As Long,ByRef pdwBitMask2 As Long) As Long
パラメータ
hDeviceHandle 有効なデバイスハンドルを指定します。
pnInputHandShakeConfig ハンドシェーク入力にSTB1イベントを使用するか否かを示す値が返されま
す。
値 意味
0 STB1イベントを使用しません。
FBIDIO_STB1_ENABLE STB1イベントを使用します。
FBIDIO_STB1_HIGH_EDG E
STB1の立ち上がりエッジのタイミングを STB1信号有効とします
pdwBitMask1 設定された入力データマスクビットが返されます。(IN1〜IN32)
pdwBitMask2 設定された入力データマスクビットが返されます。(IN33〜IN64)
戻り値
関数が成功すると0が返されます。
関数が失敗すると0以外の値が返ります。関数が失敗した場合の戻り値についてはエラーコード一覧を参照してください。
DioSetInputHandShakeConfig
制御信号を使用したハンドシェーク入力の設定を行います。
宣言
Declare Function DioSetInputHandShakeConfig Lib “FbiDio.DLL” (ByVal hDeviceHandle As Long,ByVal nInputHandShakeConfig As Long,ByVal dwBitMask1 As Long,ByVal dwBitMask2 As Long) As Long パラメータ
hDeviceHandle 有効なデバイスハンドルを指定します。
nInputHandShakeConfig ハンドシェーク入力にSTB1イベントを使用するか否かを示す値を指定し
ます。
値 意味
0 STB1イベントを使用しません。
FBIDIO_STB1_ENABLE STB1イベントを使用します。
FBIDIO_ACK2_HIGH_ED FBIDIO_WAIT_LAST_AC K2
GE
ACK2の立ち上がりエッジのタイミングを ACK2信号有効とします
DioOutputHandShake関数/
DioOutputHandShakeEx関数による最終データ の出力後、ACK2の応答があった時点で関数が 完了となります。このフラグを指定しない場 合は、最終データの出力後ACK2の応答を待た ずに上記出力関数が完了となります。
入力データマスクビットを指定します。(IN1〜IN32)
下記のように各ビットが入力接点に対応しています。電源ON時のデフォル トはすべてのデータが無効に設定されています。
Bit31 Bit30 Bit29 … Bit2 Bit1 Bit0 dwBitMask1
IN32 IN31 IN30 … IN3 IN2 IN1
入力データマスクビットを指定します。(IN33〜IN64)
下記のように各ビットが入力接点に対応しています。電源ON時のデフォル トはすべてのデータが無効に設定されています。
Bit31 Bit30 Bit29 … Bit2 Bit1 Bit0 dwBitMask2
IN64 IN63 IN62 … IN35 IN34 IN33 戻り値
関数が成功すると0が返されます。
関数が失敗すると0以外の値が返ります。関数が失敗した場合の戻り値についてはエラーコード一覧を参照してください。