SensingType 6종 (v3)
Work/Action 의 "끝났다" 인지(완료 판정) 정책 — 3차원 직교 모델의 한 축.
① Normal
실센서 즉시 인정 — 표준 완료 판정
매개변수: 없음
InTag (리미트 스위치, 광센서, 압력 OK 등) 가 활성화되면 즉시 완료 처리. v2 의 SkipInputSensor=false 와 동등.
가장 표준적이며 단순/중간 시나리오의 기본값.
OUT ON → InTag 모니터 → InTag = TRUE → DONE
type SensingType =
| Normal // 실센서 즉시 인정
② Debounce(holdMs)
채터링 방지 — 연속 ON 유지
매개변수: holdMs (밀리초)
센서가 holdMs 동안 연속으로 ON 을 유지해야 완료 인정. 기계식 리미트 스위치의 채터링, 진동이 큰 설비의 광센서 노이즈, 압력 안정 대기에 사용.
OUT ON → InTag = TRUE → wait(holdMs) 동안 유지 → DONE
type SensingType =
| Debounce of holdMs: int // 예: Debounce(30)
③ Virtual
센서 무시 — Work.Duration 종료
매개변수: 없음 (Work.Duration 사용)
InTag 를 보지 않고 Work.Duration 이 경과하면 완료. v2 의 SkipInputSensor=true 와 동등.
시뮬레이션 / 센서 미설치 / 시간 기반 공정 (커피머신 5초, 컨베이어 정지 무인지 등).
OUT ON → wait(Work.Duration) → DONE
type SensingType =
| Virtual // 센서 무시, Work.Duration 으로 종료
④ VirtualDebounce(ms)
가상 + 추가 안정 대기
매개변수: ms (추가 안정 대기 시간)
Virtual (Work.Duration 만료) + 추가 안정 대기 시간. 시뮬레이션과 실제 디바이스 사이의 미세한 시간 차이를 보정하거나, 임계값 도달 후 안정화가 필요한 공정에 사용 (열풍건조 70℃+30s 등).
OUT ON → wait(Work.Duration) → wait(ms) → DONE
type SensingType =
| VirtualDebounce of ms: int // 예: VirtualDebounce(50)
⑤ SensorWithTimeout(timeoutMs)
센서 정상 도달 OR 타임아웃 안전망
매개변수: timeoutMs (안전망 시간)
실센서 도달이 우선이지만, 디바이스 고장 / 통신 단절 / 외부 시스템 무응답 시 타임아웃으로 안전 종료. 무인 라인 / 외부 시스템(비전·로봇·AGV) 협조의 표준 패턴.
OUT ON → InTag = TRUE OR timeout(timeoutMs) → DONE (with status)
type SensingType =
| SensorWithTimeout of timeoutMs: int // 예: SensorWithTimeout(2000)
⏱ 6종 타이밍 다이어그램 (개념)
📊 5×6 매트릭스로 보기
ActionType (5종) × SensingType (6종) = 30 케이스 인터랙티브 매트릭스에서 각 조합의 시나리오 매핑을 확인하세요.
🎯 30 케이스 매트릭스 →