← 개념 인덱스

SensingType 6종 (v3)

Work/Action 의 "끝났다" 인지(완료 판정) 정책 — 3차원 직교 모델의 한 축.

v3 사양 변경: 옛 6종 (InputSensor / Bypass / Timeout / External / Custom / Composite) 은 모두 폐기되고 새로운 6종 (Normal · Debounce(ms) · Virtual · VirtualDebounce(ms) · SensorWithTimeout(ms) · EdgeRising) 으로 재정의되었습니다. 완료 판정 정책은 ActionType (출력 인터페이스) 및 Work.Duration (디바이스 내부 시간) 과 완전 직교하는 독립 축입니다.

① Normal

실센서 즉시 인정 — 표준 완료 판정
매개변수: 없음

InTag (리미트 스위치, 광센서, 압력 OK 등) 가 활성화되면 즉시 완료 처리. v2 의 SkipInputSensor=false 와 동등. 가장 표준적이며 단순/중간 시나리오의 기본값.

OUT ON InTag 모니터 InTag = TRUE DONE
type SensingType =
    | Normal      // 실센서 즉시 인정
📍 적용 시나리오: S01S04S05S06S07S08S11S15S16S20

② Debounce(holdMs)

채터링 방지 — 연속 ON 유지
매개변수: holdMs (밀리초)

센서가 holdMs 동안 연속으로 ON 을 유지해야 완료 인정. 기계식 리미트 스위치의 채터링, 진동이 큰 설비의 광센서 노이즈, 압력 안정 대기에 사용.

OUT ON InTag = TRUE wait(holdMs) 동안 유지 DONE
type SensingType =
    | Debounce of holdMs: int   // 예: Debounce(30)
📍 적용 시나리오: S03S05S12S14S15S17

③ Virtual

센서 무시 — Work.Duration 종료
매개변수: 없음 (Work.Duration 사용)

InTag 를 보지 않고 Work.Duration 이 경과하면 완료. v2 의 SkipInputSensor=true 와 동등. 시뮬레이션 / 센서 미설치 / 시간 기반 공정 (커피머신 5초, 컨베이어 정지 무인지 등).

OUT ON wait(Work.Duration) DONE
type SensingType =
    | Virtual      // 센서 무시, Work.Duration 으로 종료
📍 적용 시나리오: S04S06S09S13S14S18S19

④ VirtualDebounce(ms)

가상 + 추가 안정 대기
매개변수: ms (추가 안정 대기 시간)

Virtual (Work.Duration 만료) + 추가 안정 대기 시간. 시뮬레이션과 실제 디바이스 사이의 미세한 시간 차이를 보정하거나, 임계값 도달 후 안정화가 필요한 공정에 사용 (열풍건조 70℃+30s 등).

OUT ON wait(Work.Duration) wait(ms) DONE
type SensingType =
    | VirtualDebounce of ms: int  // 예: VirtualDebounce(50)
📍 적용 시나리오: S06S19S20

⑤ SensorWithTimeout(timeoutMs)

센서 정상 도달 OR 타임아웃 안전망
매개변수: timeoutMs (안전망 시간)

실센서 도달이 우선이지만, 디바이스 고장 / 통신 단절 / 외부 시스템 무응답 시 타임아웃으로 안전 종료. 무인 라인 / 외부 시스템(비전·로봇·AGV) 협조의 표준 패턴.

OUT ON InTag = TRUE OR timeout(timeoutMs) DONE (with status)
type SensingType =
    | SensorWithTimeout of timeoutMs: int  // 예: SensorWithTimeout(2000)
📍 적용 시나리오: S09S11S12S14S20

⑥ EdgeRising

1 scan 펄스 감지 (상승 에지)
매개변수: 없음

InTag 의 상승 에지(0→1 전환) 가 검출되면 완료. 광센서 통과 카운팅, 회전 인덱서 1-스텝 도달, 펄스 형태 도착 신호에 사용. 레벨 신호가 아닌 에지 신호 처리.

OUT ON InTag ↑ (rising edge) DONE
type SensingType =
    | EdgeRising   // 1 scan 상승 에지
📍 적용 시나리오: S02S08S10S13

⏱ 6종 타이밍 다이어그램 (개념)

① Normal InTag↑ → 즉시 DONE ② Debounce(holdMs) 노이즈 무시 → holdMs 연속 ON → DONE ③ Virtual OUT (Work.Duration 동안 유지) Duration 만료 → DONE (센서 무시) ④ VirtualDebounce(ms) Duration 만료 → +ms 안정 → DONE ⑤ SensorWithTimeout(timeoutMs) 정상: InTag↑ → DONE / 무응답: timeoutMs → DONE(timeout flag) ⑥ EdgeRising 상승 에지(1 scan) → DONE (펄스 신호 처리) 시간 →

📊 5×6 매트릭스로 보기

ActionType (5종) × SensingType (6종) = 30 케이스 인터랙티브 매트릭스에서 각 조합의 시나리오 매핑을 확인하세요.

🎯 30 케이스 매트릭스 →