Duality 8 Cases — ds2 의 이중성 원리

DualSoft DS Language 의 8 가지 이중성 (Cases 1–8)
DS 시스템은 하나의 구성 요소가 맥락에 따라 역할과 의미가 달라지는 설계 구조를 채택한다. 구조적 이중성 (Cases 1–4) 과 실행적 이중성 (Cases 5–8) 두 축으로 분류되며, 모든 ds2 엔티티 (Work / Call / Arrow / Tag) 의 의미론적 기반이 된다. 본 페이지는 HelpDS/ds-language.html 의 정식 정의를 lifting 한 참조 문서이며, 각 Case 는 등장하는 ConceptDescription 으로 직접 링크된다.

이중성 분류 (요약)

🏗️ 구조적 이중성 (Cases 1–4)

Case구성 요소설명예시
1System ⊕ Device호출 방향에 따라 능동/수동컨베이어 ↔ 로봇
2Instance ⊕ Reference실행 실체와 참조 대상 구분디지털 트윈
3원인(Bit) ⊕ 결과(Bit)흐름 속에서 원인이자 결과신호 체인
4ReadTag ⊕ WriteTag맥락에 따른 읽기/쓰기 해석데이터 전송

⚡ 실행적 이중성 (Cases 5–8)

Case구성 요소설명활용
5WorkBit = R⊕G⊕F⊕HFSM 기반 상태 흐름상태 머신
6φ(θ) 위상 표현센서 조합 기반 위치 수치화동기화
7Tag = Semantic ⊕ Binding의미 이름과 물리 주소 연결I/O 매핑
8Arrow = Start ⊕ Reset인과 신호 역할 분리제어 흐름

상세 Cases

Case 1System ⊕ Device — 동적 역할 전환— System ⊕ Device — Dynamic Role Switching
DS 시스템은 호출 방향에 따라 'System(능동)' 또는 'Device(수동)' 역할을 동적으로 수행한다.
상황 1A.ApiCall → B.ApiDefA=System, B=Device
상황 2B.ApiCall → A.ApiDefB=System, A=Device
컨베이어(A) → 로봇팔(B) 제품 전달 요청 = A=System / B=Device. 로봇팔(B) → 컨베이어(A) 픽업완료 알림 = B=System / A=Device.
Case 2Instance ⊕ Reference — 디지털 트윈 구조— Instance ⊕ Reference — Digital Twin Structure
Instance 는 new 로 생성된 실 시스템, Reference 는 기존 시스템을 참조하는 읽기 전용 별칭.
정의 방식new 로 생성된 시스템기존 시스템 참조
실행 가능성✅ Active 설정 시 가능❌ 항상 Passive (읽기 전용)
값 변경✅ 가능❌ 불가능
동일 Cylinder 디바이스를 두 번 사용할 때: - Cylinder1 = Instance (실체) - Cylinder1_Mirror = Reference (Cylinder1.Id 참조) → Mirror 는 정의 변경 불가, 표시·시뮬에만 사용.
Case 3Arrow 인과 연결과 Bit 이중성— Causal Arrows ⊕ Bit Duality
흐름의 최소 단위는 Bit. Bit 는 Arrow 인과 연결 속에서 원인이자 결과의 이중성을 가진다.
Work(Bit)시스템 루트의 Bit 그룹외부 ApiDef 에 의해 트리거
Call(Bit)Work 내부 Bit 그룹ApiCall 포함
ApiDef → Work → Call → ApiCall → ApiDef → … (cyclic causal chain)
Case 4Tag = Write ⊕ Read — 데이터 전달— Tag = Write ⊕ Read — Data Transfer
Tag 는 시스템 간 1:1 Pair 연결. Write 측·Read 측이 짝을 이뤄 물리 전송을 표현.
기본 구조Active → Write Tag → [bus] → Read Tag → PassivePair 1:1
Shared Memory공유 변수처럼 다수 접근허용
DB 매핑간접 경로로 다수 접근허용
Active System → Write Tag M_Trigger(M001) → [PLC bus] → Read Tag M_Trigger(M001) → Passive Cylinder. → Cylinder 측은 Read 만 가능 (1:1 페어).
Case 5WorkBit = R ⊕ G ⊕ F ⊕ H — FSM 상태— WorkBit = R ⊕ G ⊕ F ⊕ H — FSM States
Work 의 4개 상태 — 단일 비트(WorkBit) 와 외부 신호 조건에 따라 전이.
Ready (R)Homing 완료 → 진입Start 신호 → 종료외부 제어
Going (G)Start 신호 → 진입내부 작업 완료 → 종료내부 제어
Finish (F)Going 완료 → 진입Reset 신호 → 종료외부 제어
Homing (H)Reset 신호 → 진입초기화 완료 → 종료내부 제어
Ready → [Start↑] → Going → [완료] → Finish → [Reset] → Homing → [초기화 완료] → Ready …
Case 6φ(θ) = Phase ⊕ State Inference— φ(θ) = Phase ⊕ State Inference
Work 의 센서·상태 조건을 위상값 φ(θ) 로 수치화. Binary / Exponential 두 인코딩.
Binaryφ(θ) = (1/2ⁿ) × Σ(2^(i-1) × Vᵢ × Cᵢ,θ) × 2π센서 i 별 비트 가중치
Exponentialφ(θ) = (1/eⁿ) × Σ(e^(i-1) × Vᵢ × Cᵢ,θ) × 2π고지수 센서에 더 큰 가중
디지털 트윈 동기화: 실설비 φ vs 가상설비 φ 비교 → 차이가 임계 초과 시 desync 알람. 알람 탐지: φ 의 급변 또는 역진행 발생 시 이상 징후 분류.
Case 7Tag = SemanticLink ⊕ PhysicalBinding— Tag = SemanticLink ⊕ PhysicalBinding
Tag 는 의미론적 연결과 물리적 바인딩의 이중 역할.
SemanticLink동작의 의미 이름StartCommand, RobotArmReady
PhysicalBinding실제 하드웨어 주소X100, Y102, DB100.DBX0.2, %IX0.0
{ "tagName": "StartSignal", "semantic": "Start", "binding": "X100", "type": "Digital" }
Case 8Arrow = Start ⊕ Reset — 인과 신호— Arrow = Start ⊕ Reset — Causal Signals
Arrow 는 Start (라이징 엣지) 와 Reset (하이 레벨) 두 의미를 동시에 가진다.
Start라이징 엣지이전 Work 의 Finish다음 Work 트리거
Reset하이 레벨현재 Work 의 Going현재 Work 초기화
t0t1t2t3t4t5t6
Work ARGGFFFF
Work BRRRGGFH
Start0001↑000
Reset0001100
컨베이어 완료 (Finish↑) ⟹ 로봇팔 시작 (Start 신호) 로봇팔 실행 (Going■) ⟹ 초기화 조건 활성 (Reset 신호)