Data Sources
Data Source i: OPC-UA Server
Parameter | Detail |
---|---|
Discovery URL | opc.tcp://18.141.27.34:3005/discovery |
Endpoint URL | opc.tcp://18.141.27.34:3005 |
Username | mesdev |
Password | Mesdev2025 |
Security Policy | None (อาจต้อง Trust Certificate ของ Server ก่อนเชื่อมต่อ) |
Data to be used for this assignment
ท่านจะต้องดึงข้อมูลจาก OPC-UA Server โดยใช้ชุดข้อมูลต่อไปนี้:
Nut Forming Machines (Production Machines)
ภายใต้ Node:
Objects > Compomax HQ > Machine Monitoring > Forming
ให้เลือก Machines ตามนี้:
FM037 (A)
FM047 (B)
FM057 (C)
จากแต่ละ Machine ให้อ่าน Tags ดังนี้:
Tag Name | Description |
---|---|
Counter | ตัวนับจำนวนชิ้นงานผลิต (Cumulative Count) |
N3StateCode | สถานะเครื่อง (Machine State Code) |
State Code Mapping
N3StateCode | Machine State |
---|---|
801 | Running |
803 | Stopped |
อื่น ๆ | Offline |
HVAC Chiller Pumps (Vibration Monitoring)
ภายใต้ Node:
Objects > Compomax HQ > HVAC > Chiller
ให้เลือก Motor ตามนี้:
Motor 1 > Vibration sensor M1 > VB1 (D)
Motor 2 > Vibration sensor M2 > VB2 (E)
Reference Vibration Data
ไฟล์ Datasheet ที่แนบมาแสดงรายละเอียดการคำนวณ Scaling ของข้อมูล Vibration จาก Modbus Holding Registers ซึ่ง OPC-UA Server ได้แปลงให้เป็น Engineering Unit เรียบร้อยแล้ว (ไม่ต้องคูณ Scaling Value ซ้ำอีก)
ท่านสามารถใช้ค่าใน Engineering Unit จาก OPC-UA Server ตรง ๆ ได้เลย
ค่าเช่น Velocity, Acceleration, Frequency อยู่ในหน่วยมาตรฐาน (เช่น mm/s, G, Hz, °C)
สรุปภาพรวม Node Tree
ดูภาพแนบ (จากไฟล์ที่แนบให้แล้ว) เพื่อเข้าใจลำดับชั้นของ OPC-UA Node Tree สำหรับใช้ในการ Mapping
A, B, C → Nut Forming Machines
D, E → Vibration Sensors for HVAC
หมายเหตุสำคัญสำหรับการออกแบบ
ให้ใช้ข้อมูลจาก Machines A, B, C ในการออกแบบ Production Run, Count History และ State History
ให้ใช้ข้อมูลจาก Vibration Sensors D และ E ในการออกแบบ HVAC Run/Stop, Machine Health และ Alarm Logic
Data source ii: API Server (Energy Meter Data)
API Access Information
Parameter | Value |
---|---|
API URL | https://opcdemoapi.appomax.co/ https://18.141.27.34:3443 |
Authentication | username: mesdev password: Mesdev2025 token: 4lMeo8tYtugGz3STgfBa8QGaUN6MHwsjFUrpdA4xowZTU_pcl0bIoE8SLblTpmVE |
Path | Use the path tree structure below: /Compomax HQ/Energy Monitoring/Floor 3/C07/TotalimpActiveEnergy /Compomax HQ/Energy Monitoring/Floor 3/C07/EqvActivePower |
ข้อมูลพลังงาน (Energy Monitoring) จะไม่อยู่ใน OPC-UA แต่จะให้ผ่าน API Server ที่เตรียมไว้ให้
Asset Structure
ชุดข้อมูลจาก API Server จะแสดงข้อมูลจาก Power Meter ที่ติดตั้งในแต่ละโซนของโรงงาน (Floor Area) ดังนี้:
การใช้งานข้อมูล
ให้นำค่า EqvActivePower และ TotalImpActiveEnergy เป็นค่าหลักในการออกแบบระบบวิเคราะห์การใช้พลังงาน (Energy Consumption)
API Endpoint Format
Request:
GET /tag?cmd=details&path=<path>&options.recurrent=true
path : ตำแหน่งของ Asset/Device ที่ต้องการอ่านข้อมูล
options.recurrent=true : ดึงข้อมูลทั้งหมดใน sub-nodes
ตัวอย่าง URL:
http://<API_SERVER_IP>:3003/tag?cmd=details&path=/SUNN3RGY/BLUELAKE/PVG001/PST001/*&options.recurrent=true
(See above credential)
🔶 2️⃣ Response Format
ระบบจะส่งข้อมูลกลับมาเป็น JSON format เช่น:
{ "description": "", "_templates": ["Derived PVInverter"], "tags": { "ACTIVE_POWER": { "id": 44, "fullPath": "/SUNN3RGY/BLUELAKE/PVG001/PST001/INV001/ACTIVE_POWER", "status": { "value": 1, "ts": 1687688676853 }, "data": { "value": 280.61, "quality": 192, "ts": 1687763588626 }, "config": { ... } } } }
ข้อมูลหลักที่ต้องนำมาใช้งาน:
data.value → ค่า Active Power (kW)
data.ts → Timestamp (Epoch format, milliseconds)
🔶 3️⃣ Fields ที่เกี่ยวข้องในโจทย์นี้
Field | Description | Mapping ในระบบ |
---|---|---|
EqvActivePower | Power usage (kW) | ใช้ในการคำนวณ power15m table |
TotalImpActiveEnergy | Energy counter (kWh) | ใช้ในการตรวจสอบรวมพลังงาน |
(หมายเหตุ: Field อื่น ๆ ใน JSON ไม่ต้องใช้สำหรับโจทย์นี้)
🔶 4️⃣ การแปลงเวลา (Timestamp)
data.ts มีหน่วยเป็น Epoch Milliseconds
ต้องแปลงเป็น timestamp ปกติ (local time) ก่อนนำไปใช้
ตัวอย่าง Python:
from datetime import datetime ts_millis = 1687763588626 ts = datetime.fromtimestamp(ts_millis / 1000)