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);
}
 
// 最多等 3 秒让传感器变 ON
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)开/关延迟
void RunEventFunction(bool onoff)手动执行关联事件函数
void ClearLinkFunction(void)解除已关联的事件函数

主要属性

字段用途
Name·ID·Description标识
BoardType·Module·Index物理位置
GroupName分组
Inverse信号反转
CheckFunctionName·EventFunctionName关联函数
MessageUI 显示信息
SubModel型号区分
InitOk初始化完成标志

要点

  • 不要密集轮询 ReadBit(),用 Wait(true, timeout) 降低 CPU 占用
  • 易抖动的信号用 WaitContiCheckContiOn/Off 过滤
  • Inverse = true 的信号到脚本时已被反转