XScript マニュアル · Chapter 20

title: "DIO — デジタル入出力" chapter: 20 images:

  • xscript-dio-example.png

DIO — デジタル入出力

IO[name] でアクセス。IO Editor で登録した名前で個別ビットの入出力を行います。

DIO 使用例

if (IO[START_BTN].ReadBit() == true) {
    IO[LAMP_RUN].WriteBit(true);
}
 
// センサが ON になるまで最大 3 秒待つ
if (IO[LOAD_SENSOR].Wait(true, 3000) == false) {
    ShowError("E_LOAD_TIMEOUT");
    return false;
}

メソッド

メソッド用途
bool ReadBit(void)現在ビット読み取り
bool WriteBit(bool SetOn)ビット出力
bool ToggleBit(void)現在値を反転
bool Wait(bool waitOn, int TimeOut)指定状態になるまで待機(ms)
bool WaitConti(bool waitOn, int TimeOut, int ContiTime)指定状態が ContiTime 継続するまで待機
bool CheckContiOn(int timeMsec)ON 状態が timeMsec 以上継続しているか
bool CheckContiOff(int timeMsec)OFF 状態が timeMsec 以上継続しているか
bool Contains(string keyword)名前にキーワードを含むか
bool InitBoard(void)ボード初期化
void SetDelayOn(int delay) / void SetDelayOff(int delay)ON/OFF 遅延
void RunEventFunction(bool onoff)連動イベント関数の手動実行
void ClearLinkFunction(void)連動イベント関数の解除

主なプロパティ

フィールド用途
NameIDDescription識別
BoardTypeModuleIndex物理位置
GroupNameグループ
Inverse信号反転
CheckFunctionNameEventFunctionName連動関数
MessageUI メッセージ
SubModelモデル区分
InitOk初期化完了フラグ

ヒント

  • ReadBit() を密にポーリングせず Wait(true, timeout) で CPU 使用量を抑える
  • チャタリングの恐れがある信号は WaitConti または CheckContiOn/Off でフィルタリング
  • Inverse = true の信号はスクリプトに届いた時点で既に反転済み