วิธีใช้เชลล์การบริหารสินทรัพย์
ในบทความของฉัน “ Digital Twin คืออะไร? ” ฉันอธิบายแนวคิดของเทคโนโลยีดิจิตอลทวิน
บทความนี้เป็นบทช่วยสอนเกี่ยวกับวิธีใช้ Digital Twin กับซอฟต์แวร์โอเพ่นซอร์สที่มีอยู่จริง
โดยเฉพาะอย่างยิ่ง ฉันจะแสดงวิธีใช้ Asset Administration Shell กับซอฟต์แวร์จาก ที่เก็บ admin-shell-io GitHub ของ Industrial Digital Twin Association
Digital Twin คืออะไร?เชลล์การบริหารสินทรัพย์
The Asset Administration Shell (AAS) เป็นการดำเนินการคู่ดิจิทัลสำหรับอุตสาหกรรม 4.0 ขณะนี้ข้อกำหนด AAS ได้อธิบายไว้เป็นสองส่วนใน [1] และ [2] นอกจากนี้ยังมีมาตรฐานสากลที่อยู่ระหว่างการพัฒนา เช่น IEC 63278: Asset Administration Shell สำหรับการใช้งานในอุตสาหกรรม
แนวคิดเบื้องหลัง AAS คือการสรุปเนื้อหาแบบดิจิทัล เชลล์สินทรัพย์และการจัดการรวมกันเรียกว่าคอมโพเนนต์ Industry 4.0
metamodel UML ของ AAS ได้รับการบันทึกไว้ใน [1] กล่าวโดยย่อ ในระดับบนสุดเรามี AAS ซึ่งเชื่อมโยงกับสินทรัพย์ ในระดับถัดไป เรามีโมเดลย่อยหลายโมเดลที่แต่ละโมเดลมีองค์ประกอบข้อมูล เช่น ตัวแปรหรือไฟล์
ดูเอกสาร API ได้ใน [2] ขณะนี้ มีเพียง HTTP/REST API เท่านั้นที่ได้รับการบันทึกไว้ มีการวางแผนรองรับ MQTT และ OPC UA ในอนาคต
AASX แพ็คเกจ Explorer
AASX Package Explorer ใช้เพื่อสร้างและแก้ไขไฟล์ *.AASX
AASX Package Explorer แบบโอเพ่นซอร์สมีให้ใช้งานฟรีบนGitHubซึ่งมีไฟล์ปฏิบัติการสำหรับ Windows 10 ดาวน์โหลดและแตกไฟล์เวอร์ชันล่าสุด เช่นaasx-package-explorer.2023–02–03.alpha.zipแล้วเรียกใช้AasxPackageExplorer.exe .
หากต้องการดูตัวอย่าง ให้ไปที่File → Openและเปิดcontent-for-demo/Example_AAS_ServoDCMotor_21.aasx นี่จะเป็นการเปิดตัวอย่าง AAS ต่อไปนี้สำหรับมอเตอร์กระแสตรง
ในระดับบนสุดมี ExampleMotor AAS ในระดับถัดไปมีสี่รุ่นย่อย แต่ละโมเดลย่อยมีคุณสมบัติและค่าของมัน
ตัวอย่างเช่น เราพบค่าคงที่MaxRotationSpeed ภายใต้TechnicalData ตัวแปรRotationSpeed อยู่ภายใต้OperationalData
หากคุณต้องการเปลี่ยนค่าหรือเพิ่มโมเดลย่อยหรือคุณสมบัติใหม่ คุณต้องเปิดใช้งานการแก้ไขโดยเลือกพื้นที่ทำงาน →แก้ไข
เซิร์ฟเวอร์ AASX
เซิร์ฟเวอร์ AASX จัดเตรียม REST API เพื่อโต้ตอบกับฝาแฝดดิจิทัลของเรา
ซอฟต์แวร์โอเพ่นซอร์สมีให้ใช้ฟรีบนGitHubซึ่งมีไบนารีสำหรับ Windows และ Linux มีคอนเทนเนอร์ Docker ให้ด้วย
บน Windows ให้ดาวน์โหลดและแตกไฟล์เวอร์ชันล่าสุด เช่นAasxServerWindows.2022–01–13.alpha.zip จากนั้นเรียกใช้startForDemo.bat
ตอนนี้คุณควรเห็นข้อความต่อไปนี้:
C:\AasxServerWindows>AasxServerWindows.exe --rest --no-security --data-path aasxs
Serving the AASXs from: aasxs
Security 1 Startup - Server
Security 1.1 Load X509 Root Certificates into X509 Store Root
Loading aasxs\Example_AAS_ServoDCMotor_21.aasx...
Please wait for the servers to start...
Connect to REST by: localhost:51310
http://localhost:51310/
REST Server started.
Servers successfully started. Press Ctrl-C to exit...
รับเชลล์การบริหารสินทรัพย์ที่มีอยู่
หากต้องการตรวจสอบไฟล์ *.aasx ที่มีอยู่ทั้งหมดบนเซิร์ฟเวอร์ ให้ใช้
GET http://localhost:51310/server/listaas
สิ่งนี้จะให้คำตอบต่อไปนี้แก่คุณ:
{
"aaslist": [
"0 : ExampleMotor : [IRI] http://customer.com/aas/9175_7013_7091_9168 : aasxs\\Example_AAS_ServoDCMotor_21.aasx"
]
}
รับองค์ประกอบโมเดลย่อย
ต่อไป มาอ่านRotationSpeed ปัจจุบัน กับคำขอ HTTP ต่อไปนี้:
GET http://localhost:51310/aas/ExampleMotor/submodels/OperationalData/elements/RotationSpeed
หรือ
GET http://localhost:51310/aas/0/submodels/OperationalData/elements/RotationSpeed
สิ่งนี้จะให้คำตอบแก่เรา:
{
"elem": {
"value": "4370",
"valueId": null,
"semanticId": {
"keys": [
{
"type": "ConceptDescription",
"local": true,
"value": "http://customer.com/cd//1/1/18EBD56F6B43D895",
"index": 0,
"idType": "IRI"
}
]
},
"constraints": [],
"hasDataSpecification": [],
"idShort": "RotationSpeed",
"category": "VARIABLE",
"modelType": {
"name": "Property"
},
"valueType": {
"dataObjectType": {
"name": "integer"
}
},
"kind": "Instance",
"descriptions": null
}, ...
}
GET http://localhost:51310/aas/ExampleMotor/submodels/OperationalData/elements/RotationSpeed/value
{
"value": "4370"
}
ตอนนี้ เรามาเปลี่ยนRotationSpeed เป็นค่าใหม่1234ด้วยคำขอ HTTP ต่อไปนี้:
PUT http://localhost:51310/aas/ExampleMotor/submodels/OperationalData/elements
กับ Payload (Body) จากelemเนื้อหาด้านบน:
{
"value": "1234",
"valueId": null,
"semanticId": {
"keys": [
{
"type": "ConceptDescription",
"local": true,
"value": "http://customer.com/cd//1/1/18EBD56F6B43D895",
"index": 0,
"idType": "IRI"
}
]
},
"constraints": [],
"hasDataSpecification": [],
"idShort": "RotationSpeed",
"category": "VARIABLE",
"modelType": {
"name": "Property"
},
"valueType": {
"dataObjectType": {
"name": "integer"
}
}
}
ลบองค์ประกอบโมเดลย่อย
สุดท้าย เราสามารถลบ คุณสมบัติ RotationSpeed ด้วยคำขอ HTTP ต่อไปนี้:
DELETE http://localhost:51310/aas/ExampleMotor/submodels/OperationalData/elements/RotationSpeed
บทสรุป
ใช้ AASX Package Explorer เพื่อสร้างแฝดดิจิทัลของคุณเอง AASX Server จัดเตรียม HTTP/REST API ด้วยคำสั่ง GET, PUT และ DELETE
ข้อกำหนด AAS ยังอยู่ระหว่างการพัฒนา ดังนั้นซอฟต์แวร์ AASX ยังอยู่ในช่วงอัลฟ่าและอาจมีการเปลี่ยนแปลงได้
กรณีการใช้งานด้านล่างแสดงสิ่งที่เป็นไปได้ในปัจจุบัน ตัวอย่างเช่น การวัดตามเวลาจริงจะถูกส่งจากกล่องสาธิตจริงไปยัง Digital Asset Administration Shell นอกจากนี้ AAS ยังมีเอกสาร PDF และโมเดล 3D CAD
อ้างอิง
[1] Platform Industrie 4.0: รายละเอียดของShell การบริหารสินทรัพย์ — ตอนที่ 1 (2022)
[2] Platform Industrie 4.0: รายละเอียดของShell การบริหารสินทรัพย์ — ตอนที่ 2 (2021)
แหล่งข้อมูลเพิ่มเติม
เพิ่มระดับการเข้ารหัส
ขอบคุณที่เป็นส่วนหนึ่งของชุมชนของเรา! ก่อนที่คุณจะไป:
- ปรบมือให้กับเรื่องราวและติดตามผู้เขียน
- ดูเนื้อหาเพิ่มเติมในสิ่งพิมพ์ Level Up Coding
- ติดตามเรา: Twitter | LinkedIn | จดหมายข่าว





































![รายการที่เชื่อมโยงคืออะไร? [ส่วนที่ 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)