ทำระบบ OEE IoT คำนวณประสิทธิภาพเครื่องจักรด้วย PLC
เรียนรู้การทำระบบ OEE (Overall Equipment Effectiveness) แบบ IoT สำหรับคำนวณประสิทธิภาพเครื่องจักร ครอบคลุมสูตรคำนวณ Availability Performance Quality และการเขียนโปรแกรม PLC
อัพเดทล่าสุด: 8/3/2569
ราคาชุดอุปกรณ์
ทำความเข้าใจระบบ 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 ตัวแปร:
- Run Time - เวลาทำงานจริงจาก PLC
- Plan Production Time - เวลาที่กำหนดจาก Production Schedule
- Ideal Cycle Time - เวลามาตรฐานต่อชิ้นงาน
- Good Count - จำนวนชิ้นงาน OK จาก PLC/Sensor
- Total Count - จำนวนชิ้นงานรวม (OK + NG)
การเขียนโปรแกรม 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
- สร้าง Continuous Recipe สำหรับเก็บข้อมูล Model
- กำหนด Recipe Length และ Data Type
- ตั้งค่า Write Recipe to PLC
- ใช้ตำแหน่ง 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
- เก็บข้อมูล Cycle Time จากการทำงานจริง 10,000-100,000 รอบ
- หาค่าเฉลี่ยหรือค่า Maximum เป็น Ideal Cycle Time
- อัปเดตค่าผ่าน 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 ที่ได้จะเป็นเครื่องมือสำคัญในการหาจุดปรับปรุงและเพิ่มประสิทธิภาพการผลิต
มีคำถาม? ติดต่อทีมงาน

