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)
알람 (설비 이상 / 품질 / 안전) 박제.
예제: 차체프레스 라인 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"}
]}
]
}
]
}
SeqMonSm 은 한 AAS 안에 1 개 인스턴스. 실시간 메트릭은 PerformanceMetrics SMC 에 누적, 장기 보존이 필요한 부분은 SequenceLogging 으로 분리 저장. SimulationResult 박제 시 관련 KPI 는 sim/Kpi/* CD 의 semanticId 로 인용.