XScript 手册 · Chapter 20
title: "DIO — 数字输入输出" chapter: 20 images:
- xscript-dio-example.png
DIO — 数字输入输出
以 IO[name] 访问。按 IO Editor 中注册的名称逐位读写。
캡처 대기
public/manual/gui/xscript-dio-example.png示例
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 | 关联函数 |
Message | UI 显示信息 |
SubModel | 型号区分 |
InitOk | 初始化完成标志 |
要点
- 不要密集轮询
ReadBit(),用Wait(true, timeout)降低 CPU 占用 - 易抖动的信号用
WaitConti或CheckContiOn/Off过滤 Inverse = true的信号到脚本时已被反转