🔍 1. Data Sources
🔍

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 ที่เกี่ยวข้องในโจทย์นี้

FieldDescriptionMapping ในระบบ
EqvActivePowerPower usage (kW)ใช้ในการคำนวณ power15m table
TotalImpActiveEnergyEnergy 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)