ApiCall Entity
API call · API 호출 · API-Aufruf
IRI (semanticId)
https://dualsoftdev.github.io/aas-semantics/entity/ApiCall/1/0
설명 / Description / Beschreibung
한국어
Call 과 ApiDef 의 런타임 바인딩 (실제 값/태그 연결).
English
Concrete binding of a Call to an ApiDef with values / tags at runtime.
Deutsch
Konkrete Bindung eines Calls an eine ApiDef mit Werten / Tags zur Laufzeit.
다이어그램 / 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
★ ApiCall
엔티티 상세 / Entity Detail — 내부 구조 · 동작
🔗 ApiCall — Call ↔ ApiDef 런타임 바인딩
apiDefId · originFlowId · InTag/OutTag(IOTag) + ValueSpec(DU)
Caller (Call)
Pickup.Call_1
parent: Work "Pickup"
name: "Robot1.MOVE_TO_A"
apiCalls[0]: this ApiCall
callConditions: [AutoAux]
apiDefId binding
Guid 매칭
Callee (ApiDef)
Robot1.MOVE_TO_A
parent: Robot1 (Device)
ActionType: Pulse
TxGuid → M_Done
RxGuid → M_Trigger
PLC Tag Bindings — physical address pair
InTag (RxGuid 측 — 호출자 → 디바이스)
name:
"M_Trigger"
DataType:
BOOL
PLC Address:
%M001
inputSpec:
{ Case: "Constant", Fields: [true] }
★ Active 시스템이 WRITE → Passive 시스템이 READ (1:1 페어)
OutTag (TxGuid 측 — 디바이스 → 호출자)
name:
"M_Done"
DataType:
BOOL
PLC Address:
%M002
outputSpec:
{ Case: "UndefinedValue" }
★ 디바이스가 WRITE → Active 시스템이 READ (응답 신호)
let
apiCall
=
ApiCall
("MOVE_TO_A_call_1")
apiCall.ApiDefId
<-
Some
moveApi.Id
// bind to ApiDef
apiCall.OriginFlowId
<-
Some
mainFlow.Id
// 호출 컨텍스트 추적
F# 타입 정의 / Type Definition
and ApiCall [<JsonConstructor>] internal (name) =
inherit DsEntity(name)
member val InTag : IOTag option = None // 호출 트리거 태그
member val OutTag : IOTag option = None // 응답 태그
member val ApiDefId : Guid option = None // 바인딩된 ApiDef
member val InputSpec : ValueSpec = UndefinedValue
member val OutputSpec : ValueSpec = UndefinedValue
member val OriginFlowId : Guid option = None // 호출하는 Flow Id
필드 / Fields
Field Type Default AAS field Description Id Guid Guid.NewGuid() Guid전역 고유 식별자 (자동 생성) Name string (생성자 인자) Name엔티티 이름 InTag IOTag option None InTag호출 트리거 태그 (호출자 → 디바이스) OutTag IOTag option None OutTag응답 태그 (디바이스 → 호출자) ApiDefId Guid option None ApiDefId바인딩된 ApiDef Id InputSpec ValueSpec DU UndefinedValue InputSpec입력 값 스펙 (상수/태그 참조/표현식) OutputSpec ValueSpec DU UndefinedValue OutputSpec출력 값 스펙 OriginFlowId Guid option None OriginFlowId호출자 Flow Id (역참조)
관계 / Relationships
예제 (F#) / Example
let apiCall = ApiCall("MOVE_TO_A_call_1")
apiCall.ApiDefId <- Some moveApi.Id
apiCall.OriginFlowId <- Some mainFlow.Id
let inTag = IOTag("M_Trigger", "M001", "이동 시작 신호")
inTag.DataType <- IOTagDataType.BOOL
apiCall.InTag <- Some inTag
let outTag = IOTag("M_Done", "M002", "이동 완료 신호")
outTag.DataType <- IOTagDataType.BOOL
apiCall.OutTag <- Some outTag
moveCall.ApiCalls.Add(apiCall)
AAS 매핑 / AAS Mapping
ApiCall 은 별도 ApiCalls SML 안 SMC 로 저장 (Call.ApiCalls 는 Skip 마킹). ApiDefId 로 후처리 시 ApiDef 와 결합.
원본 코드 / Source files
AAS ConceptDescription 메타
idShort: ApiCall
dataType: STRING