IOBitリファレンス 2022 team.Drakuji 対応I/Oモジュール: USB-IO2.0(AKI) 更新日: 20221030 ●注意 このプログラムおよび動作環境においていかなる事故・損害に対する補償はできません。 このプログラムを使用する前にあらかじめ目的に合わせた入力設定をKm2Net様から配布されている I/Oモジュール設定変更ツールより、I/Oモジュールに適用させる必要があります。 ●概要 このプログラムはHot Soup Processorを使用してKm2Net様のUSB-IO2.0(AKI)を 開発しやすくするための補助ドライバーです。 IOBitの概念は、デジタルI/Oボードの入出力制御において以下の内容を定義し、 デジタル入出力系のI/Oモジュールの命令の共通化とハードウェア制御プログラミングを容易にします。 ◆ピンレベル LOレベル(OFF)を0、HIレベル(ON)を1とする。(入出力のBit表現=IOBit) ◆ピンモード DOUT デジタル出力(0と1で表す出力状態を指定できるピン。 DIN デジタル入力(0と1で表す入力状態を検出するピン。 DIN_PU※ デジタル入力(0と1で表す入力状態を検出するピン。(プルアップ) AOUT アナログ出力(疑似PWM制御ができます)。 AIN※ アナログ入力。 ※USB-IO2.0(AKI)ではDIN_PUとAINはサポートしていません。 ※USB-IO2.0(AKI)ではあらかじめI/Oモジュールに入力設定をしておく必要があります。 ◆ピン番号 統一されていない各種I/Oモジュールのピン名称を通し番号で統一します。 通し番号は定数定義しているので、実際のピン名称で指定もできます。 ●定数設定一覧 カテゴリ 定数設定項目 定数 説明 ▼デバッグ関連 _DISPDEBUG(int) デバッグを表示します。 ※IOBitMainの中でmes命令にて表示されます。 0 非表示 1 表示 _KEYEMU(int) キーエミュレーションの有効無効を設定します。【未実装です】 0 有効 1 無効 ▼I/Oモジュール定義 _PIN(int) 1台のモジュールで扱えるピン数です。 12 ピン数 _SETMODULES(int) 接続するモジュールの数を設定します。 ※認識したモジュール数と異なる場合はOpenModule時にエラーになります。 1から16 モジュール数 ▼IOBit機能関連 IOBIT_TASK_? IOBitメイン関数内のタスク値の定義名です。 0 DISABLE=無効 1 ENABLE=有効 2 EMG=緊急停止 IOBIT_STAT_? 処理結果を示す値の定義名です。 0 OK=正常 1 NG=異常 ▼ピン関連 IOBIT_? ピンに設定されたパラメータ情報の定義名です。 0 PINMODE=ピンモード 1 PINLV=ピンレベル 2 PWMCYCLE=サイクル 3 PWMLO=LOティック 4 PWMCLOCK=クロック IOBIT_PINMODE_? ピンモード値の定義名です。 0 DOUT=デジタル出力 1 DIN=デジタル入力 3 DIN_PUデジタル入力(プルアップ)※使用できません 5 AOUT=アナログ出力(PWM) 6 AIN=アナログ入力※使用できません IOBIT_PINLV_? ピンレベル値の定義名です。 0 LO=ローレベル 1 HI=ハイレベル ▼ピン名定義 J1_? ピン番号を/Oモジュールのピン名(J1ポート)に定義したものです。 0 0=J1_0 1 1=J1_1 2 2=J1_2 3 3=J1_3 4 4=J1_4 5 5=J1_5 6 6=J1_6 7 7=J1_7 J2_? ピン番号を/Oモジュールのピン名(J2ポート)に定義したものです。 0 0=J2_0 1 1=J2_1 2 2=J2_2 3 3=J2_3 ●コマンド命令一覧 カテゴリ コマンド命令・関数 引数 説明 ▼モジュールの接続・切断 OpenModule I/Oモジュールとプログラムの接続を開始します。 モジュールが接続されていない場合、stat変数はIOBIT_STAT_NGとなります。 モジュールの数が定数_SETMODULESと合致しない場合もstat変数がIOBIT_STAT_NGとなります。 正常に処理が完了した場合は、stat変数がIOBIT_STAT_OKとなります。 正常に処理が完了した直後の出力の状態は全てLOになります。 ※基本的にこの関数が正常に処理が完了しない限りその他のコマンド命令は使用できません。 CloseModule I/Oモジュールとプログラムの接続を終了します。 正常に処理が完了した場合は、stat変数がIOBIT_STAT_OKとなります。 正常に処理が完了した直後の出力の状態は全てLOになります。 ※プログラム終了前に必ずCloseModuleを呼び出してください。 GetNumOfModules() モジュールの接続数を取得します。 戻り値int モジュール接続数 ▼メイン関数 IOBitMain I/OBitメイン関数です。 この処理を実行する直前までに変更された全てのピン情報をI/Oモジュールと同期します。 処理完了後、入力ピンの状態は最新の状態に更新されています。 この処理はループルーティンで都度処理する必要があります。 メイン関数を呼び出す間隔が早すぎる場合、接続しているモジュール数によっては正常に処理できないことがあります。 正常に処理が完了した場合は、stat変数がIOBIT_STAT_OKとなります。 ▼ピンの設定 SetPinMode int,int,int 各ピンの役割を指定します。 第1引数 モジュール番号(各I/Oモジュールに割り当てられた通し番号) (1から16) 第2引数 ピン名(指定するピン名) “J1_0”から”J1_7”または”J2_0”から”J2_3” 第3引数 ピンモード IOBIT_PINMODE_DOUT=デジタル出力 IOBIT_PINMODE_DIN=デジタル入力 IOBIT_PINMODE_AOUT=疑似PWM(アナログ)出力 SetDOutPinLv int,int,int IOBIT_PINMODE_DOUTピンの出力状態を設定します。 ※IOBIT_PINMODE_DOUTを指定したモジュールとピンの組み合わせ以外には反映されません。 第1引数 モジュール番号(各I/Oモジュールに割り当てられた通し番号) (1から16) 第2引数 ピン名(指定するピン名) “J1_0”から”J1_7”または”J2_0”から”J2_3” 第3引数 ピン出力レベル IOBIT_PINLV_LO=LOレベル(OFF) IOBIT_PINLV_HI=HIレベル(ON) SetAOutPinPWM int,int,int,int IOBIT_PINMODE_AOUTピンのPWM出力パラメーターを設定します。 ※IOBIT_PINMODE_AOUTを指定したモジュールとピンの組み合わせ以外は反映されません。 第1引数 モジュール番号(各I/Oモジュールに割り当てられた通し番号) (1から16) 第2引数 ピン名(指定するピン名) “J1_0”から”J1_7”または”J2_0”から”J2_3” 第3引数 サイクル (0から9999) 第4引数 LOティック ※10を数える間に5までの間はLOレベルで、6以上になるとHIレベルにする場合  サイクルを”10”、LOティックを”5”にします。 ※サイクルとLOティックを同じ値、またはサイクルよりLOティックを  大きい数字にすると、出力はLOのままになります。 GetPinLv(int,int) 現在の各ピンの入出力状態を取得します。 第1引数 モジュール番号(各I/Oモジュールに割り当てられた通し番号) (1から16) 第2引数 ピン名(指定するピン名) “J1_0”から”J1_7”または”J2_0”から”J2_3” 戻り値int 入出力状態 0=LOレベル(出力の場合はOFF) 1=HIレベル(出力の場合はON) ※IOBIT_PINMODE_DINなど入力に関しては、押されているときにLOレベル  またはHIレベルのどちらかになり、離すとその逆になります。 GetPinInfo(int,int,int) 現在の各ピンの設定情報および状態を取得します。 第1引数 モジュール番号(各I/Oモジュールに割り当てられた通し番号) (1から16) 第2引数 ピン名(指定するピン名) “J1_0”から”J1_7”または”J2_0”から”J2_3” 第3引数 情報の種類 IOBIT_PINMODE=ピンモード IOBIT_PINLV=ピンレベル(入出力状態) IOBIT_PWMCYCLE=サイクル IOBIT_PWMLO=LOティック IOBIT_PWMCLOCK=PWMクロック 戻り値int 第3引数で指定した値 ▼IOBit機能 SetIOBitTask int IOBitメインのタスクを指定します。 第1引数 タスクの種類 IOBIT_TASK_DISABLE=I/Oモジュールと同期しません IOBIT_TASK_ENABLE=I/Oモジュールと同期します IOBIT_TASK_EMG=緊急停止状態にします(基本こちらは使用しません) SetIOBitEmergency int I/Oモジュール出力を緊急停止します。 ※ピンモードがIOBIT_PINMODE_DOUTおよびIOBIT_PINMODE_AOUTのピンを全てLOレベルにします。 ※ピンモードがIOBIT_PINMODE_DINは緊急停止しません。 ※ピンモードのIOBIT_PINMODE_DINは入力状態を検出するために常に微弱電流が流れています。 第1引数 有効・無効 IOBIT_EMG_DISABLE=無効 IOBIT_EMG_ENABLE=有効 GetIOBitStatus() IOBitの状態を文字列説明で返します。 ※この関数はstat変数がIOBIT_STAT_NGのときに原因説明を取得できます。 戻り値str ステータス文字列