SeqMonSm Submodel

Monitoring submodel · 모니터링 서브모델 · Monitoring-Submodel
IRI (semanticId)
https://dualsoftdev.github.io/aas-semantics/sm/SequenceMonitoring/1/0

설명 / Description / Beschreibung

한국어
모니터링 속성을 담는 서브모델 (알람/트렌드/상태)
English
Submodel carrying monitoring properties (alarm/trend/status)
Deutsch
Submodel mit Monitoring-Eigenschaften (Alarm/Trend/Status)

다이어그램 / Diagram

SeqMonSm — SubmodelElement Tree IDTA 02026-1-0 · semanticId: .../sm/SequenceMonitoring/1/0 📊 SystemSnapshot (SMC) 📋 OperationalEvents (SML) 📈 PerformanceMetrics (SMC) WorkStates: Map<Guid, NodeState> CallStates: Map<Guid, NodeState> WorkProgress: Map<Guid, float> DeviceStates: Map<Name, bool> Statistics: ProductionStats StateChanged · ProgressUpdated CycleStarted · CycleCompleted SystemStarted · SystemStopped IOValueChanged · TcUpdated Flow/WorkMtWtUpdated AlarmOccurred MT (Moving Time, ms) WT (Wait Time, ms) TC = MT + WT (Total Cycle) CT (Cycle Time, per Work) → sim/Kpi/* CD 박제 ★ 모든 이벤트는 PostgreSQL signal_event/work/flow 테이블에 기록되어 sim/Kpi/* 산출에 사용됨.

F# 타입 정의 / Type Definition

// ds2 측 SequenceMonitoringSubmodel — Work/Call 의 R/G/F/H 런타임 상태,
// 진행률, 디바이스 IO 값, MT/WT/TC 시간 메트릭, 생산 사이클 이벤트를 수집.

type SystemSnapshot = {
    Timestamp     : DateTime
    SystemName    : string
    WorkStates    : Map<Guid, NodeState>          // R/G/F/H
    CallStates    : Map<Guid, NodeState>
    WorkProgress  : Map<Guid, float>              // 0.0 ~ 1.0
    DeviceStates  : Map<string, bool>             // IO 값
    Statistics    : ProductionStatistics
}

type ProductionStatistics = {
    TotalWorks       : int
    CompletedWorks   : int
    TotalCalls       : int
    CompletedCalls   : int
    ElapsedTime      : float    // seconds
    AverageProgress  : float    // 0.0 ~ 1.0
}

IDTA SubmodelElement Property Table

idShortsemanticIdvalueTypemultiplicity설명 / description
MonitoringConfigurationhttps://admin-shell.io/IDTA/02026/1/0/MonitoringConfigurationSubmodelElementCollection1샘플링 주기 / 보존 정책 / 활성 메트릭 설정
SystemSnapshothttps://admin-shell.io/IDTA/02026/1/0/SystemSnapshotSubmodelElementCollection1최신 상태 스냅샷
WorkStateshttps://admin-shell.io/IDTA/02026/1/0/WorkStatesMap<Guid,NodeState>0..*Work 별 R/G/F/H 현재 상태
CallStateshttps://admin-shell.io/IDTA/02026/1/0/CallStatesMap<Guid,NodeState>0..*Call 별 R/G/F/H 현재 상태
WorkProgresshttps://admin-shell.io/IDTA/02026/1/0/WorkProgressMap<Guid,double>0..*Work 진행률 (0.0~1.0)
DeviceStateshttps://admin-shell.io/IDTA/02026/1/0/DeviceStatesMap<string,bool>0..*IO 태그 현재 값 (sensor/actuator)
OperationalEventshttps://admin-shell.io/IDTA/02026/1/0/OperationalEventsSubmodelElementList0..*운영 이벤트 시퀀스 (10 종)
PerformanceMetricshttps://admin-shell.io/IDTA/02026/1/0/PerformanceMetricsSubmodelElementCollection1MT/WT/TC + KPI 집계
MT_mshttps://admin-shell.io/IDTA/02026/1/0/MTProperty:long0..*Moving Time — 실제 동작 시간 (ms)
WT_mshttps://admin-shell.io/IDTA/02026/1/0/WTProperty:long0..*Wait Time — 대기 시간 (ms)
TC_mshttps://admin-shell.io/IDTA/02026/1/0/TCProperty:long0..*Total Cycle = MT + WT (ms)
StateChangeHistoryhttps://admin-shell.io/IDTA/02026/1/0/StateChangeHistorySubmodelElementList0..*상태 전이 로그 (감사 추적용)

운영 이벤트 / Operational Events

StateChanged
(nodeType, nodeId, oldState, newState, ts, deviceName)
Work/Call 의 R→G→F→H 전이 감지. PostgreSQL: work_state, call 테이블.
ProgressUpdated
(nodeType, nodeId, progress 0.0~1.0, ts, deviceName)
Work 진행률 갱신. PostgreSQL: signal_event.progress_rate.
ProductionCycleStarted
(cycleNum, startTime, flowName)
Takt Time 측정 시작점. 한 cycle = Source Work R→F.
ProductionCycleCompleted
(cycleNum, success, duration, completedWorks, yield)
사이클 완료 시 양품률·소요시간 박제.
SystemStarted
(systemName, startTime, operatorId)
설비 가동 시작. 가동률(Availability) 분자 측정 시작.
SystemStopped
(systemName, stopTime, totalCycles, reason)
정지 사유 기록 (정상/비상/고장).
IOValueChanged
(signal, ioType I/O, value, ts, deviceName)
센서/액추에이터 값 변화. PLC 태그(%IX/%QX) → DS Tag 매핑.
TcUpdated
(signal, tcMs, ts)
실제 사이클타임 측정값. PostgreSQL: signal_event.tc.
FlowMtWtUpdated
(flowName, mtMs, wtMs, ts)
Flow 단위 MT/WT 갱신 → flow.mt, flow.wt 테이블.
WorkMtWtUpdated
(workGuid, workName, mtMs, wtMs, ts)
Work 단위 MT/WT 갱신 → work.mt, work.wt 테이블.
AlarmOccurred
(alarmCode, severity, message, deviceName, ts)
알람 (설비 이상 / 품질 / 안전) 박제.

Submodel 예제 / Submodel Example (JSON)

예제: 차체프레스 라인 1 cycle 모니터링 스냅샷

한 시점의 SystemSnapshot SMC 의 직렬화 — 6-Work 라인이 W2(Going) 진행 중일 때.
{
  "modelType": "Submodel",
  "idShort": "SequenceMonitoringSubmodel",
  "kind": "Instance",
  "semanticId": {
    "type": "ExternalReference",
    "keys": [{"type":"GlobalReference","value":"https://dualsoftdev.github.io/aas-semantics/sm/SequenceMonitoring/1/0"}]
  },
  "submodelElements": [
    {
      "idShort": "SystemSnapshot",
      "modelType": "SubmodelElementCollection",
      "value": [
        { "idShort": "Timestamp",  "modelType":"Property", "valueType":"xs:dateTime", "value":"2026-05-07T09:30:14Z" },
        { "idShort": "SystemName", "modelType":"Property", "valueType":"xs:string",   "value":"PressLine" },
        {
          "idShort": "WorkStates", "modelType":"SubmodelElementList",
          "value":[
            {"idShort":"W1_소재투입","modelType":"Property","valueType":"xs:string","value":"Finish"},
            {"idShort":"W2_1차프레스","modelType":"Property","valueType":"xs:string","value":"Going"},
            {"idShort":"W3_2차프레스","modelType":"Property","valueType":"xs:string","value":"Ready"},
            {"idShort":"W4_트림",    "modelType":"Property","valueType":"xs:string","value":"Ready"},
            {"idShort":"W5_검사",    "modelType":"Property","valueType":"xs:string","value":"Ready"},
            {"idShort":"W6_배출",    "modelType":"Property","valueType":"xs:string","value":"Homing"}
          ]
        },
        { "idShort":"AverageProgress","modelType":"Property","valueType":"xs:double","value":0.42 }
      ]
    },
    {
      "idShort": "OperationalEvents",
      "modelType": "SubmodelElementList",
      "value": [
        {"idShort":"e1","modelType":"SubmodelElementCollection","value":[
          {"idShort":"name","modelType":"Property","valueType":"xs:string","value":"StateChanged"},
          {"idShort":"workName","modelType":"Property","valueType":"xs:string","value":"PressLine.W2_1차프레스"},
          {"idShort":"old","modelType":"Property","valueType":"xs:string","value":"Ready"},
          {"idShort":"new","modelType":"Property","valueType":"xs:string","value":"Going"},
          {"idShort":"ts","modelType":"Property","valueType":"xs:dateTime","value":"2026-05-07T09:30:14.120Z"}
        ]}
      ]
    }
  ]
}

관계 / Relationships

AAS 매핑 / AAS Mapping

SeqMonSm 은 한 AAS 안에 1 개 인스턴스. 실시간 메트릭은 PerformanceMetrics SMC 에 누적, 장기 보존이 필요한 부분은 SequenceLogging 으로 분리 저장. SimulationResult 박제 시 관련 KPI 는 sim/Kpi/* CD 의 semanticId 로 인용.

산업 표준 / Industry Standards

IDTA 02026-1-0 · SequenceMonitoring 표준 (Draft)ISO 22400-2:2014 · MES KPI 정의 (가동률, OEE 등)ISA-95 (IEC 62264) · Level 3 Operations ManagementOPC UA Part 8 · DataAccess (실시간 IO 값 송수신)

관련 CD / Related ConceptDescriptions

학습 가이드 / Appendix Pages

📚 Duality 8 Cases
Case 5: WorkBit = R⊕G⊕F⊕H FSM 의미 — 모니터링 대상

원본 코드 / Source files

AAS ConceptDescription 메타

idShort: SeqMonSm
dataType: STRING