หน้าแรกคู่มือIOTทำระบบ OEE IoT คำนวณประสิทธิภาพเครื่องจักรด้วย PLC
IOT
ขั้นสูง
25 นาที

ทำระบบ OEE IoT คำนวณประสิทธิภาพเครื่องจักรด้วย PLC

เรียนรู้การทำระบบ OEE (Overall Equipment Effectiveness) แบบ IoT สำหรับคำนวณประสิทธิภาพเครื่องจักร ครอบคลุมสูตรคำนวณ Availability Performance Quality และการเขียนโปรแกรม PLC

อัพเดทล่าสุด: 8/3/2569

ราคาชุดอุปกรณ์

฿9,580

ทำความเข้าใจระบบ OEE

OEE (Overall Equipment Effectiveness) หรือประสิทธิผลโดยรวมของเครื่องจักร เป็น Metric สำคัญที่คำนวณจาก 3 ดัชนีหลัก:

ดัชนี Availability (ความพร้อมใช้งาน)

สูตร: Availability = Run Time ÷ Plan Production Time × 100

  • Run Time: เวลาที่เครื่องจักรทำงานได้จริง
  • Plan Production Time: เวลาที่วางแผนให้เครื่องจักรทำงาน

ตัวอย่าง: เครื่องจักรกำหนดทำงาน 8 ชั่วโมง แต่ทำงานได้จริงเพียง 6 ชั่วโมง

  • Availability = 6 ÷ 8 = 0.75 = 75%

ดัชนี Performance (สมรรถภาพ)

สูตร: Performance = (Ideal Cycle Time × Total Count) ÷ Run Time × 100

  • Ideal Cycle Time: เวลาที่ควรใช้ผลิต 1 ชิ้นงาน
  • Total Count: จำนวนชิ้นงานทั้งหมดที่ผลิตได้

ตัวอย่าง:

  • Run Time: 6 ชั่วโมง (21,600 วินาที)
  • Ideal Cycle Time: 10 วินาที/ชิ้น
  • ควรผลิตได้: 2,160 ชิ้น
  • ผลิตได้จริง: 1,728 ชิ้น
  • Performance = 1,728 ÷ 2,160 = 80%

ดัชนี Quality (คุณภาพ)

สูตร: Quality = Good Count ÷ Total Count × 100

  • Good Count: จำนวนชิ้นงานที่ผ่านมาตรฐาน
  • Total Count: จำนวนชิ้นงานทั้งหมด

การคำนวณ OEE

สูตรสุดท้าย: OEE = Availability × Performance × Quality ÷ 10,000

เกณฑ์มาตรฐาน: OEE ที่ดีควรอยู่ในช่วง 70-80% ขึ้นไป

ตัวแปรสำคัญในระบบ OEE

ระบบ OEE ต้องการข้อมูลพื้นฐาน 5 ตัวแปร:

  1. Run Time - เวลาทำงานจริงจาก PLC
  2. Plan Production Time - เวลาที่กำหนดจาก Production Schedule
  3. Ideal Cycle Time - เวลามาตรฐานต่อชิ้นงาน
  4. Good Count - จำนวนชิ้นงาน OK จาก PLC/Sensor
  5. Total Count - จำนวนชิ้นงานรวม (OK + NG)

สำคัญ
ตัวอย่างโค้ดในบทความนี้จะเป็น Pseudo Code หากต้องการจะเขียนตามแนะนำให้อ้างอิงจากคลิปวิดีโอ

การเขียนโปรแกรม PLC

การตั้งค่า Real-Time Clock

// Copy Real-time clock ไปยัง Data Register
TID M8151 D0

// ตั้งค่า RTC Format เป็น Decimal
// Project Settings > RTC Format = Decimal

การนับ Plan Production Time

// เช็คเวลาเริ่มทำงาน
LDW= (D3 = D13 AND D4 = D14 AND D5 = D15)
SET M2 K1  // เริ่มนับ Plan Production Time


// เช็คเวลาสิ้นสุดทำงาน
LDW= (D3 = D23 AND D4 = D24 AND D5 = D25)
RST M2 K1 // หยุดนับ Plan Production Time

// นับ Plan Production Time ทุก 1 วินาที
LD M2 LD M8016 // M8016 = 1 second pulse
INCD D30  // Increment Plan Production Time

การนับ Run Time

// นับ Run Time เมื่อเครื่องจักรทำงาน
LD M1 LD M8016 // M1 = Machine Running, M8016 = 1 second pulse
INCD D32  // Increment Run Time

การนับ Cycle Time และชิ้นงาน

// เริ่มนับ Cycle Time
LD S0 AND Rising Edge
SET M4 K1 // เริ่มนับ Cycle Time
MOV K0 D40 // Reset Cycle Time

// คำนวณ Cycle Time
LD M4 AND M8016
INCD D40  // Increment Cycle Time

// นับชิ้นงาน OK
LD M3 LDP X0 pressed twice THEN
SET Y0 K1  // Output OK signal
INC D41  // Increment OK Count

// นับชิ้นงาน NG
SET Y1 K1  // Output NG signal
INC D42  // Increment NG Count

การสร้างหน้าจอ HMI

การตั้งค่า Recipe

  1. สร้าง Continuous Recipe สำหรับเก็บข้อมูล Model
  2. กำหนด Recipe Length และ Data Type
  3. ตั้งค่า Write Recipe to PLC
  4. ใช้ตำแหน่ง LW10000 สำหรับเก็บข้อมูล Recipe

การแสดงผล OEE

ใช้ Arc Chart สำหรับแสดงค่า A, P, Q, และ OEE:

Data Type: 32-bit Floating Point
Min Value: 0
Max Value: 100
Address: LW20000 (สำหรับ A)
Address: LW22000 (สำหรับ P)  
Address: LW24000 (สำหรับ Q)
Address: LW26000 (สำหรับ OEE)

การเขียน Script คำนวณ

การสร้างตัวแปร

c
// ตัวแปรพื้นฐาน (จาก PLC)
int RunTime = ReadPLC("D32");
int PlanTime = ReadPLC("D30"); 
float IdealCycleTime = ReadPLC("LW10000");
int OKCount = ReadPLC("D41");
int NGCount = ReadPLC("D42");

// ตัวแปรสำหรับผลลัพธ์
float A, P, Q, OEE;

การคำนวณ A (Availability)

c
if (PlanTime != 0) {
    A = ((float)RunTime / (float)PlanTime) * 100;
} else {
    A = 0;
}

การคำนวณ P (Performance)

c
int TotalCount = OKCount + NGCount;
if (RunTime != 0 && TotalCount > 0) {
    P = ((IdealCycleTime * TotalCount) / RunTime) * 100;
} else {
    P = 0;
}

การคำนวณ Q (Quality)

c
if (TotalCount != 0) {
    Q = ((float)OKCount / (float)TotalCount) * 100;
} else {
    Q = 0;
}

การคำนวณ OEE

c
OEE = (A * P * Q) / 10000;

// เขียนผลลัพธ์กลับไป HMI
WritePLC("LW20000", A);
WritePLC("LW22000", P);
WritePLC("LW24000", Q);
WritePLC("LW26000", OEE);

เคล็ดลับการพัฒนา

การแบ่งหน้าที่

  • PLC: รับผิดชอบการควบคุมเครื่องจักรและเก็บข้อมูลพื้นฐาน
  • HMI: รับผิดชอบการคำนวณ OEE และแสดงผล

การปรับปรุง Ideal Cycle Time

  1. เก็บข้อมูล Cycle Time จากการทำงานจริง 10,000-100,000 รอบ
  2. หาค่าเฉลี่ยหรือค่า Maximum เป็น Ideal Cycle Time
  3. อัปเดตค่าผ่าน Recipe หรือ HMI

การแก้ปัญหาที่พบบ่อย

ปัญหา: หน้าจอค้าง

สาเหตุ: การหารด้วย 0 ในการคำนวณ แก้ไข: เพิ่มเงื่อนไขตรวจสอบค่า 0 ก่อนการคำนวณ

ปัญหา: ค่า OEE ผิดปกติ

สาเหตุ: Data Type ไม่ถูกต้อง แก้ไข: ใช้ 32-bit Floating Point สำหรับการคำนวณทศนิยม

ปัญหา: ไม่สามารถแยกชิ้นงาน OK/NG

แก้ไข:
  • ใช้ Vision Sensor สำหรับตรวจสอบคุณภาพ
  • เพิ่ม Inspection Station ในกระบวนการผลิต
  • ยอมรับว่าจะนับได้เฉพาะ Total Count

สรุป

ระบบ OEE ช่วยวิเคราะห์ประสิทธิภาพเครื่องจักรผ่าน 3 ดัชนี คือ Availability, Performance และ Quality การพัฒนาระบบต้องอาศัยความร่วมมือระหว่าง PLC สำหรับเก็บข้อมูลและ HMI สำหรับการคำนวณแสดงผล การแบ่งหน้าที่อย่างชัดเจนจะช่วยให้ระบบมีเสถียรภาพและง่ายต่อการบำรุงรักษา ค่า OEE ที่ได้จะเป็นเครื่องมือสำคัญในการหาจุดปรับปรุงและเพิ่มประสิทธิภาพการผลิต