Work Entity

Work step · 작업 단계 · Arbeitsschritt
IRI (semanticId)
https://dualsoftdev.github.io/aas-semantics/entity/Work/1/0

설명 / Description / Beschreibung

한국어
단일 작업 단계 — R/G/F/H 상태머신을 가진 시퀀스 실행 단위.
English
Individual work step — a unit of sequence execution with R/G/F/H state machine.
Deutsch
Einzelner Arbeitsschritt — eine Einheit der Sequenzausführung mit R/G/F/H Zustandsmaschine.

다이어그램 / Diagram

전체 구조 / Overview — 이 엔티티가 DS 안에서 위치

Project TokenSpec Recipe · #1 DsSystem ApiDef ApiDef TAG Flow Work ★ Call ApiCall Call₂ Work₂ Write Read Write Read DsSystem Work Call ApiCall ApiDef → DsSystem DsSystem Work Call ApiCall ApiDef → DsSystem ArrowWork ArrowCall Tag-Pair Bus ★ Work

엔티티 상세 / Entity Detail — 내부 구조 · 동작

⚡ Work — Status4 R/G/F/H 상태머신 UML state diagram · 외부 신호(Start↑/Reset) ⊕ 내부 완료 조건으로 전이 [init] R Ready · 0 Ready 실행 준비 / 대기 토큰 도착 대기 do: nothing G Going · 1 Going 실행 중 / 진행 do: Calls 직렬 실행 duration 카운트 F Finish · 2 Finish 완료 / 다음으로 do: 토큰 → next Work Reset 신호 대기 H Homing · 3 Homing 초기화 / 복귀 do: 디바이스 원점 완료 시 R 으로 Start ↑ Calls 완료 Reset Homing 완료 (cyclic) Status4 enum (Enum.fs): Ready = 0 Going = 1 Finish = 2 Homing = 3 ★ tokenRole=Source 는 즉시 R→G; Sink 는 F 후 토큰 소멸
상속 체인 / Inheritance: DsEntityDsChild

F# 타입 정의 / Type Definition

type Work [<JsonConstructor>] internal (flowPrefix: string, localName: string, parentId: Guid) =
    inherit DsChild("", parentId)

    member val Properties  = ResizeArray<WorkSubmodelProperty>()
    member val FlowPrefix  : string  = flowPrefix
    member val LocalName   : string  = localName
    member val ReferenceOf : Guid option   = None     // 다른 Work 참조 (ref 노드)
    member val Status4     : Status4       = Ready    // 런타임 상태 (R/G/F/H)
    member val Position    : Xywh option   = None     // 캔버스 좌표
    member val TokenRole   : TokenRole     = None     // None / Source / Ignore / Sink
    member val Duration    : TimeSpan option = None   // 시뮬 사이클 타임

    // Name = "{FlowPrefix}.{LocalName}" 자동 합성

필드 / Fields

FieldTypeDefaultAAS fieldDescription
IdGuidGuid.NewGuid()Guid전역 고유 식별자 (자동 생성)
Namestring(생성자 인자)Name엔티티 이름
ParentIdGuid(생성자 인자)ParentId부모 엔티티 Id 참조
FlowPrefixstring(인자)FlowPrefix (Skip)Flow 접두어 — Name 의 앞부분
LocalNamestring(인자)LocalName (Skip)Work 로컬명 — Name 의 뒷부분
ReferenceOfGuid optionNoneReferenceOf원본 Work Id (참조 노드일 때)
Status4Status4 enumReadyStatus런타임 상태: Ready=0 · Going=1 · Finish=2 · Homing=3
PositionXywh optionNonePosition캔버스 좌표 (X,Y,W,H)
TokenRoleTokenRole flagsNoneTokenRole토큰 역할: None / Source(시드) / Ignore / Sink
DurationTimeSpan optionNoneDuration설계 사이클 타임 (시뮬용)

상태 / 의미 / States & Semantics

State / TypeMeaning
Ready (R)초기/대기 — 토큰 도착하면 Going 으로 전이
Going (G)진행 중 — Calls 실행 중. 완료 시 Finish 로 전이
Finish (F)완료 — 토큰 다음 Work 로 이동, 다음 사이클 위해 Homing 으로 전이
Homing (H)복귀 중 — 리셋 조건 충족 시 Ready 로 복귀

현실 시나리오 / Real-world Scenarios

실제 도메인(자동차·반도체·제철·제약·물류 등)에서 이 CD 가 등장하는 예시.

🚗 Automotive · Body PressPressLine — 현대로보틱스 차체프레스· Cycle ~8s · 120 parts/h
차체 프레스 라인의 6-Work 시퀀스 중 W2 1차프레스 Work. Going(G) 단계에서 Drawing 동작 (1.5s) 을 수행하고, Finish(F) 시 W3 2차프레스로 토큰 전이.
슬라이드하강 (Slide Down)· 1.0s
드로잉 (Drawing)· 1.5s
슬라이드상승 (Slide Up)· 1.0s
🔬 Semiconductor · CVD/PVDCentura 5200 — AMAT 박막증착· Throughput 60 wph · 350°C / 2.5 mTorr
웨이퍼 박막증착 6-Work 라인의 W4 플라즈마생성 Work. RF 파워 1500W 인가 → 플라즈마 안정화까지 1.5s 소요. Duration 필드로 시뮬용 사이클타임 박제.
플라즈마발생 (Plasma Ignition)· 1.5s
RF파워조절 (RF Power Control)· 1.2s
플라즈마안정화 (Plasma Stabilization)· 1.1s
💊 Pharma · Tableting고속 타정 라인· Cycle ~6s · GMP 등급
정제 제조 6-Work 중 W3 타정. Punch 정렬 → 압축력 제어 → 배출 직렬 진행.
펀치정렬 (Punch Alignment)· 0.6s
압축력제어 (Compression)· 0.7s
배출 (Ejection)· 0.5s

ds2.json 스니펫 / Sample JSON

동일 시나리오의 ds2.json 표현

Work 는 GUID 키 딕셔너리 항목. parentId 는 Flow.id, status4=0(Ready), duration 은 시뮬용 사이클타임.
{
  "works": {
    "88888888-8888-8888-8888-888888888888": {
      "id":         "88888888-8888-8888-8888-888888888888",
      "parentId":   "44444444-4444-4444-4444-444444444444",
      "name":       "PressLine.W2_1차프레스",
      "flowPrefix": "PressLine",
      "localName":  "W2_1차프레스",
      "status4":    0,
      "tokenRole":  0,
      "duration":   "00:00:03.5000000",
      "position":   { "x": 240, "y": 200, "w": 120, "h": 40 },
      "properties": []
    }
  }
}

관계 / Relationships

예제 (F#) / Example

let pickup = Work("MainFlow", "Pickup", mainFlow.Id)
pickup.Duration  <- Some (TimeSpan.FromSeconds 12.5)
pickup.TokenRole <- TokenRole.Source     // 토큰 시드 지점
// Name = "MainFlow.Pickup" 자동 생성

AAS 매핑 / AAS Mapping

Work 는 SequenceModel/.../Flows/<flow>/Works SML 안 SMC. Status4 는 시뮬/모니터링 시 런타임 상태.

산업 표준 / Industry Standards

IEC 61131-3 · Sequential Function Chart 매핑 기반ISA-95 (IEC 62264) · Operational Activity Model 호환IDTA 02024-1-0 · SequenceControl 표준 SubmodelElement

관련 CD / Related ConceptDescriptions

학습 가이드 / Appendix Pages

📚 Duality 8 Cases — 이중성 원리
Work = Bit 그룹 (Case 3) + R⊕G⊕F⊕H FSM (Case 5)

원본 코드 / Source files

AAS ConceptDescription 메타

idShort: Work
dataType: STRING