IDTA 02022-1-0
https://dualsoft.com/aas/submodel/sequenceSimulation
쉬운 설명
시퀀스 시뮬레이션이 뭔가요?
시퀀스 시뮬레이션은 실제 설비 없이 공정 흐름을 가상으로 재현하는 기술입니다. 공장의 컨베이어, 로봇 팔, 센서 등이 어떤 순서로 움직이는지를 컴퓨터에서 미리 테스트할 수 있습니다. SimScenario로 전체 시나리오를 설계하고, SimWork로 작업 단위를, SimCall로 세부 동작을 정의하여 복잡한 공정도 체계적으로 모델링합니다.
💡 쉬운 비유: 오케스트라 리허설
시퀀스 시뮬레이션은 오케스트라의 리허설과 같습니다.
지휘자(SimScenario)가 전체 악보를 가지고, 각 파트(SimWork)가
바이올린, 첼로, 플루트 등의 연주 구간을 담당합니다.
각 악기의 개별 음표(SimCall)가 정확한 타이밍에 연주되어야
아름다운 교향곡이 완성됩니다. 본 공연(실제 생산) 전에 리허설(시뮬레이션)로
모든 타이밍과 조화를 미리 검증하는 것입니다.
SimScenario (시나리오)
전체 공정의 설계도입니다. 몇 개의 작업이 있고, 어떤 순서로 진행되는지, 속도는 얼마나 빠르게 할지 등 전체 시뮬레이션 설정을 담고 있습니다.
SimWork (작업 단위)
"재료 투입", "가공", "검사" 같은 작업 단위입니다. 준비(R) → 실행(G) → 완료(F) → 복귀(H) 4단계 상태를 거치며, 자신만의 실행 시간을 측정합니다.
SimCall (세부 동작)
"컨베이어 시작", "그리퍼 열기" 같은 가장 작은 동작 단위입니다. 각 동작의 소요 시간, 시작 조건, 완료 조건을 세밀하게 정의할 수 있습니다.
NodeState (상태 관리)
R(Ready, 준비) → G(Going, 실행) → F(Finished, 완료) → H(Homing, 복귀)로 이어지는 상태 흐름입니다. 모든 작업과 동작이 이 상태를 따릅니다.
🎯 핵심 효과
실제 설비 없이 공정 검증
병목 구간 사전 파악
사이클 타임 최적화
충돌/간섭 사전 감지
PLC 코드 사전 검증
SimScenario
시뮬레이션 시나리오 컨테이너
SimScenario {
Works: Map<Guid, SimWork>
Calls: Map<Guid, SimCall>
ApiDefs: Map<Guid, SimApiDef>
ApiCalls: Map<Guid, SimApiCall>
TickMs: 100 // 기본 틱 간격
SpeedMultiplier: 0.1 ~ 1000
TimeIgnore: bool
}
SimWork
작업 단위 (R/G/F/H 상태 포함)
SimWork {
guid: "uuid-string"
name: "Material Loading"
calls: [SimCall...]
homingDurationMs: 500
predecessorGuids: []
state: "R|G|F|H"
mtMs: 0 // Machine Time
wtMs: 0 // Wait Time
}
SimCall
단위 동작 (R/G/F 상태만)
SimCall {
guid: "uuid-string"
name: "Conveyor Start"
parentWorkGuid: "..."
durationMs: 1000
condition: SimConditionSpec
predecessorGuids: []
state: "R|G|F"
progress: 0-100
}
SimConditionSpec
조건 명세 (전이 조건)
SimConditionSpec {
type: "Auto|Common|ActiveTrigger"
expression: null | "expr"
ioTag: "SensorA"
expectedValue: true | false
timeout: 0
}
// Auto: 즉시 전이
// Common: 외부 트리거
// ActiveTrigger: 능동 트리거
NodeState
R → G → F → H 상태 전이 머신
R
Ready
→
G
Going
→
F
Finished
→
H
Homing
↻
R (Ready)
준비 상태 - 실행 대기
G (Going)
실행 상태 - 동작 중
F (Finished)
완료 상태 - 동작 완료
H (Homing)
복귀 상태 - Work only
Events
SimulationEvents (10종)
| 이벤트 | 설명 | 분류 |
|---|---|---|
| StateChanged | Work/Call 상태 전이 발생 | State |
| ProgressUpdated | 진행률 업데이트 (완료 Work/Call 수) | Progress |
| IOValueChanged | I/O 태그 값 변경 | IO |
| FlowMtWtUpdated | 전체 흐름 MT/WT 업데이트 | Metric |
| WorkMtWtUpdated | 개별 Work MT/WT 업데이트 | Metric |
| TcUpdated | Total Cycle 시간 업데이트 | Metric |
| SimulationStarted | 시뮬레이션 시작 | Cycle |
| SimulationStopped | 시뮬레이션 정지 | Cycle |
| CycleStarted | 사이클 시작 | Cycle |
| CycleCompleted | 사이클 완료 | Cycle |
MT
Machine Time
First Call G → Last Call F
WT
Wait Time
Work G → First Call G
TC
Total Cycle
MT + WT (전체 사이클)
액추에이터 모델링
시퀀스 구조화
조건/병렬 시나리오
분기 처리
시간 기반 시뮬레이션
타임라인 분석
외부 시뮬레이터 연계
Unity/Unreal