1.23.2026

เริ่มต้นการสร้าง Event Handling สำหรับ OPC UA Module

ในการพัฒนาระบบ Industrial IoT (IIoT) การสื่อสารระหว่างเครื่องจักรและระบบควบคุมถือเป็นหัวใจสำคัญ OPC UA (Open Platform Communications Unified Architecture) เป็นโปรโตคอลมาตรฐานที่นิยมใช้กันอย่างแพร่หลาย แต่หัวใจสำคัญที่จะทำให้ระบบตอบสนองได้อย่างรวดเร็วคือการทำ Event Handling ครับ

ทำไมต้องใช้ Event Handling ใน OPC UA?

แทนที่จะใช้วิธีการ Polling (การดึงข้อมูลซ้ำๆ ตามเวลาที่กำหนด) ซึ่งสิ้นเปลืองทรัพยากร การใช้ Event-driven architecture จะช่วยให้ Module ของเราทำงานเฉพาะเมื่อเกิดเหตุการณ์สำคัญเท่านั้น เช่น เมื่ออุณหภูมิสูงเกินกำหนด หรือสถานะเครื่องจักรเปลี่ยนจาก Idle เป็น Running

ตัวอย่างโค้ด: การสร้าง Event Handler ด้วย Node-opcua

ด้านล่างนี้คือตัวอย่างการเขียนโปรแกรมด้วยภาษา JavaScript (Node.js) เพื่อดักจับ Event จาก OPC UA Server:


const { OPCUAClient, AttributeIds, TimestampsToReturn } = require("node-opcua");

// 1. กำหนดค่าการเชื่อมต่อ
const endpointUrl = "opc.tcp://localhost:4840";

async function monitorEvents() {
    const client = OPCUAClient.create({ endpointMustExist: false });
    await client.connect(endpointUrl);
    
    const session = await client.createSession();
    const subscription = await session.createSubscription2({
        requestedPublishingInterval: 1000,
        requestedMaxKeepAliveCount: 20,
        publishingEnabled: true
    });

    // 2. การสร้าง Event Filter เพื่อดักจับ Data Change
    const itemToMonitor = {
        nodeId: "ns=1;s=TemperatureSensor",
        attributeId: AttributeIds.Value
    };

    const monitoringParameters = {
        samplingInterval: 100,
        discardOldest: true,
        queueSize: 10
    };

    const monitoredItem = await subscription.monitor(
        itemToMonitor,
        monitoringParameters,
        TimestampsToReturn.Both
    );

    // 3. Event Handling Logic
    monitoredItem.on("changed", (dataValue) => {
        console.log(" [EVENT] ค่าอุณหภูมิเปลี่ยนเป็น: ", dataValue.value.value);
        // คุณสามารถใส่ Logic การแจ้งเตือนหรือบันทึก Log ได้ที่นี่
    });
}

monitorEvents().catch((err) => console.log("Error:", err));

    

อธิบายการทำงาน

  • Subscription: เปรียบเสมือนการลงทะเบียนขอรับข่าวสารจาก Server
  • MonitoredItem: ระบุ Node หรือข้อมูลที่เราสนใจติดตาม
  • Event Listener (.on("changed")): ส่วนที่จัดการกับข้อมูลเมื่อมีการเปลี่ยนแปลงเกิดขึ้นทันที (Real-time)

การปรับใช้ OPC UA Event Handling จะช่วยลด Bandwidth ในโครงข่ายโรงงานของคุณ และเพิ่มประสิทธิภาพให้ระบบ Automation ทำงานได้อย่างมืออาชีพมากขึ้น

การสื่อสารข้อมูล, ระบบอัตโนมัติ, โปรโตคอลอุตสาหกรรม, เขียนโปรแกรม

เทคนิคการใช้เครื่องมือและเครื่องจักร

การรีไซเคิล (10) การทำเฟือง (8) การกัดเฟือง (7) การกลึงไม้ (6) การประกอบ (6) การผลิตรถยนต์ (6) การสร้างฟีดสกรู (6) การกลึงโลหะ (5) การสร้างรถยนต์ (5) การติดตั้ง (4) การผ่าไม้ฟืน (4) การทดลอง (3) การปรับตั้ง (3) การสร้างเครื่องกลึง (3) การกลึงใน (2) การกัดอลูมิเนียม (2) การทำเกลียวไม้ (2) การทำเฟอร์นิเจอร์ (2) การผลิตโซ่ (2) การล็อกมีดกลึง (2) การสาธิต (2) การกลึง (1) การกลึงทองแดง (1) การกลึงเงา (1) การควบคับหุ่นยนต์ (1) การดัดโค้ง (1) การตัดมุม45 (1) การตัดแผ่นเหล็ก (1) การต่อมุมฉาก (1) การทำแผ่นคลัชท์ (1) การทำโช๊คอัพ (1) การทำโต๊ะงาน (1) การทำไม้กระดาน (1) การปูพื้นคอนกรีต (1) การผลิตเชือก (1) การผลิตแผ่นคลัช (1) การผลิตโช๊กอัพ (1) การพับโค้ง (1) การพิมพ์ลายโลหะ (1) การวัดค่าการกลึง (1)

ประเภทของงานที่ใช้เครื่องมือและเครื่องจักร

งานไม้ (31) เครื่องคัดเหรียญ (25) เครื่องขัด (24) เครื่องขัดกระดาษทราย (21) เครื่องจักรทำขนม (19) เครื่องเชื่อม (16) งานโลหะแผ่น (15) เครื่องจักรบดย่อย (14) งานประดิษฐ์ (10) งานกลึงโลหะ (9) งานกัดโฟม (9) งานก่อสร้าง (7) งานกลึง (6) งานหล่อโลหะ (6) งานช่างไม้ (5) งานประปา (5) งานพับโลหะแผ่น (5) งานโลหะ (5) เครื่องคัดไข่ (5) เครื่องงอท่อโค้ง (5) เครื่องขัดไม้ (4) งานปูน (3) งานวายคัท (3) งานเชื่อม (3) งานกลึงไม้ (2) งานเครื่องกล (2) งานเชื่อมเ็หล็ก (2) งานกลึงท่อนไม้ (1) งานช่างก่อสร้าง (1) งานดัด (1) งานผนัง (1) งานแสดงหุ่นยนต์ (1) เครื่องขัดกระดาษทราย makita (1) เครื่องคว้านท่อ (1) เครื่องงอท่อพีวีซี (1) เครื่องงอเหล็กH-Beam (1) เครื่องงอเหล็กแบบมือโยก (1) เครื่องซ่อมล้อแม็ก (1) เครื่องดัดกลมแผ่นอลู (1)

เกี่ยวกับอุปกรณ์ต่างๆ

3D printer DC มอเตอร์ Feed screw Gears Jig Jigจับเจาะ Jigเซาะร่องไม้ Motor Prints3D Robot Arm Table Saw Tool ของเครื่องCNC X-ลิฟท์ กบไสไม้ กระจกรถยนต์ กระจกใส กระดาษทราย กลไกมือหุ่นยนต์ กาวซิลิโคน ก้อนอิฐ คอนเวเยอร์ ฉนวนกันความร้อน ชั้นวางของ ชั้นวางสินค้า ชุดฝึก ชุดเฟือง บอลโลหะ ผ้าทราย มอเตอร์ มอเตอร์ไฟฟ้า อุปกรณ์ก่อสร้าง อุปกรณ์งานไม้ อุปกรณ์จับยึด อุปกรณ์ช่างไม้ อุปกรณ์ซ่อมเกลียว อุปกรณ์ดัดท่อ อุปกรณ์ดัดเหล็ก อุปกรณ์ตัดโฟม อุปกรณ์ต๊าปเกลียวกรู อุปกรณ์ม้วนเหล็ก อุปกรณ์ยกรถมอเตอร์ไซค์ อุปกรณ์ห้องครัว อุปกรณ์ห้องน้ำ อุปกรณ์เครื่องกลึง อุปกรณ์เครื่องมิลลิ่ง อุปกรณ์เครื่องเชื่อม แขนกลCNC