IEC 61131-3 คืออะไร? มาตรฐานภาษาโปรแกรม PLC ที่วิศวกรอุตสาหกรรมต้องรู้
ในโลกของระบบควบคุมอัตโนมัติ PLC (Programmable Logic Controller) ถือเป็นหัวใจสำคัญที่ขับเคลื่อนกระบวนการผลิตทุกอุตสาหกรรม แต่หลายคนอาจไม่ทราบว่า ภาษาที่ใช้เขียนโปรแกรม PLC นั้นมี มาตรฐานสากล กำหนดไว้ชัดเจนภายใต้ IEC 61131-3 ซึ่งเป็นส่วนที่ 3 ของมาตรฐาน IEC 61131 ที่จัดทำโดย International Electrotechnical Commission
มาตรฐานนี้กำหนด ภาษาโปรแกรม 5 ภาษา ที่สามารถใช้เขียนโปรแกรมควบคุม PLC ได้ ทำให้วิศวกรทั่วโลกสามารถพัฒนาโปรแกรมที่เข้าใจร่วมกัน ลดความซับซ้อนในการดูแลรักษา และยกระดับคุณภาพของระบบควบคุมอุตสาหกรรม
5 ภาษาโปรแกรม PLC ตามมาตรฐาน IEC 61131-3
1. Ladder Diagram (LD) — ภาษาบันได
Ladder Diagram หรือ LD เป็นภาษากราฟิกที่ออกแบบมาให้คล้ายกับ วงจรรีเลย์แบบดั้งเดิม ที่ช่างไฟฟ้าและวิศวกรควบคุมคุ้นเคยกันดี โครงสร้างประกอบด้วยเส้นไฟฟ้าสองเส้นแนวตั้ง (Rail) ซ้าย-ขวา และวงจรลอจิกที่เรียงเป็นขั้นบันได (Rung)
จุดเด่น: อ่านง่าย ตรวจสอบง่าย เหมาะกับ Discrete Logic เช่น ON/OFF Control, Interlocking, Sequential Control
ข้อจำกัด: ไม่เหมาะกับงานคำนวณซับซ้อน หรือ Analog Signal Processing
2. Structured Text (ST) — ภาษาโครงสร้าง
Structured Text หรือ ST เป็นภาษาแบบ High-Level Text-Based ที่มีรูปแบบคล้ายภาษา Pascal รองรับโครงสร้างการเขียนโปรแกรมที่ทรงพลัง เช่น IF-THEN-ELSE, CASE, FOR, WHILE, REPEAT รวมถึงการเรียกใช้ Function และ Function Block
จุดเด่น: เหมาะกับ งานคำนวณซับซ้อน เช่น PID Control, Mathematical Algorithm, Data Processing, String Manipulation
ข้อจำกัด: วิศวกรไฟฟ้าที่ไม่คุ้นเคยกับ Programming อาจใช้เวลาเรียนรู้มากกว่า
3. Function Block Diagram (FBD) — ผังบล็อกฟังก์ชัน
FBD ใช้ บล็อกกราฟิก แทนฟังก์ชันต่างๆ เช่น AND, OR, NOT, Timer, Counter, PID Block โดยเชื่อมต่อข้อมูลเข้า (Input) และข้อมูลออก (Output) ด้วยเส้นเชื่อม (Connection Wire) ทำให้เห็น การไหลของข้อมูล ได้อย่างชัดเจน
จุดเด่น: เหมาะกับ Process Control เช่น ควบคุมอุณหภูมิ ความดัน ระดับ ของเหลว ที่ต้องใช้ Analog Signal ผสมกับ Logic
ข้อจำกัด: โปรแกรมขนาดใหญ่อาจดูซับซ้อน ต้องจัดระเบียบบล็อกให้ดี
4. Instruction List (IL) — รายการคำสั่ง
IL เป็นภาษาแบบ Assembly-like Text ที่ใช้คำสั่งสั้นๆ เช่น LD (Load), ST (Store), AND, OR, ADD, SUB เรียงตามลำดับ แต่ละคำสั่งทำงานทีละบรรทัด
จุดเด่น: ประสิทธิภาพสูง ทำงานเร็ว ใช้หน่วยความจำน้อย เหมาะกับ PLC รุ่นเก่าที่มีทรัพยากรจำกัด
ข้อจำกัด: อ่านยาก ดูแลรักษายาก ปัจจุบัน ถูกลดความสำคัญ ใน IEC 61131-3 Ed.3 และหลายแพลตฟอร์มเลิกรองรับแล้ว
5. Sequential Function Chart (SFC) — ผังลำดับการทำงาน
SFC ได้แรงบันดาลใจจากมาตรฐาน IEC 848 (Grafcet) ใช้แสดง ขั้นตอนการทำงานแบบลำดับ ผ่าน Step (ขั้นตอน) และ Transition (เงื่อนไขเปลี่ยนผ่าน) รองรับทั้ง Linear Sequence, Branch (Divergence/Convergence) และ Parallel Execution
จุดเด่น: เหมาะกับ Sequential Process เช่น สายประกอบ, กระบวนการ Batch, ระบบขนถ่ายวัสดุ ที่มีขั้นตอนชัดเจน
ข้อจำกัด: ไม่เหมาะกับ Logic ที่ไม่มีลำดับชัดเจน เช่น Interlocking ที่ต้องตอบสนองแบบ Event-Driven
เปรียบเทียบ 5 ภาษาโปรแกรม PLC
| ภาษา | ประเภท | เหมาะกับงาน | ความยาก | ความนิยม |
|---|---|---|---|---|
| LD | Graphical | Discrete Logic, Interlocking | ⭐ ต่ำ | ⭐⭐⭐⭐⭐ |
| ST | Text-Based | คำนวณ, Algorithm, Data Processing | ⭐⭐⭐ กลาง | ⭐⭐⭐⭐⭐ |
| FBD | Graphical | Process Control, Analog Loop | ⭐⭐ ต่ำ-กลาง | ⭐⭐⭐⭐ |
| IL | Text-Based | งานเฉพาะทาง, PLC รุ่นเก่า | ⭐⭐⭐⭐ สูง | ⭐⭐ |
| SFC | Graphical | Sequential Process, Batch Control | ⭐⭐ ต่ำ-กลาง | ⭐⭐⭐ |
การเลือกใช้ภาษาให้เหมาะกับงาน (Selection Guide)
ในทางปฏิบัติ ไม่มีภาษาใดดีที่สุด — แต่ละภาษามีจุดแข็งเฉพาะทาง วิศวกรที่เก่งจะ ผสมผสานหลายภาษา ในโปรเจกต์เดียวกัน ซึ่ง IEC 61131-3 อนุญาตให้ทำได้ ยกตัวอย่างเช่น:
- สายประกอบ (Assembly Line): ใช้ SFC กำหนดลำดับขั้นตอนหลัก → LD เขียน Interlocking → ST คำนวณตำแหน่งเซอร์โว
- ควบคุมกระบวนการ (Process Control): ใช้ FBD สร้าง PID Loop → ST เขียน Alarm Logic → SFC จัดการ Batch Recipe
- ระบบขนถ่ายวัสดุ (Material Handling): ใช้ LD ควบคุม Conveyor → SFC จัดการลำดับการทำงาน → ST คำนวณน้ำหนัก
💡 Tip: IEC 61131-3 รองรับ Multi-Language Programming ภายในโปรเจกต์เดียว ทำให้วิศวกรเลือกใช้ภาษาที่เหมาะสมที่สุดสำหรับแต่ละส่วนของระบบ โดยเฉพาะในโปรเจกต์ขนาดใหญ่ที่มีทั้ง Discrete และ Process Control
ฟีเจอร์สำคัญอื่นๆ ของ IEC 61131-3
นอกจาก 5 ภาษาโปรแกรมแล้ว มาตรฐานยังกำหนด โครงสร้างโปรแกรม ที่สำคัญดังนี้:
- POU (Program Organization Unit): หน่วยย่อยของโปรแกรม แบ่งเป็น Program, Function Block, Function
- Variable Declaration: ประกาศตัวแปรแบบ Strongly-Typed รองรับชนิดข้อมูล BOOL, INT, REAL, TIME, STRING ฯลฯ
- Task Configuration: กำหนด Priority และ Execution Cycle ของแต่ละ Task (Cyclic, Event-Driven)
- User-Defined Data Types: สร้าง STRUCT, ENUM, ARRAY เพื่อจัดการข้อมูลซับซ้อน
เทรนด์ปัจจุบัน: ภาษา ST กำลังครองใจ
ในช่วง 5 ปีที่ผ่านมา Structured Text (ST) กลายเป็นภาษาที่ได้รับความนิยมเพิ่มขึ้นอย่างต่อเนื่อง สาเหตุหลักมาจาก:
- ความสามารถในการเขียน Algorithm ซับซ้อน เช่น Motion Control Profile, Statistical Calculation
- การเชื่อมต่อกับ IIoT Platform ที่ต้องจัดการข้อมูล JSON, REST API Call
- รองรับ Object-Oriented Programming (ใน IEC 61131-3 Ed.3) ทำให้โค้ดนำกลับมาใช้ซ้ำได้ดีขึ้น
- เหมาะกับ Version Control (Git) เพราะเป็น Text-Based ต่างจาก Graphical Language
อย่างไรก็ตาม LD ยังคงเป็นภาษาหลัก ในอุตสาหกรรมไทยส่วนใหญ่ โดยเฉพาะโรงงานที่มีช่างไฟฟ้าที่ต้องดูแลโปรแกรม PLC เป็นประจำ
Key Takeaways — สรุปสิ่งสำคัญ
- IEC 61131-3 กำหนดภาษาโปรแกรม PLC มาตรฐานสากล 5 ภาษา: LD, ST, FBD, IL, SFC
- LD (Ladder Diagram) เหมาะกับ Discrete Logic, Interlocking — ยังเป็นภาษายอดนิยมในอุตสาหกรรมไทย
- ST (Structured Text) เหมาะกับงานคำนวณซับซ้อน, IIoT Integration — เป็นเทรนด์ที่กำลังเติบโต
- FBD เหมาะกับ Process Control, SFC เหมาะกับ Sequential Process, IL ลดความสำคัญลง
- สามารถ ผสมผสานหลายภาษา ในโปรเจกต์เดียว ตามความเหมาะสมของแต่ละส่วนงาน
- มาตรฐานรองรับ POU, Strongly-Typed Variables, Task Configuration ที่ช่วยยกระดับคุณภาพโปรแกรม
- IEC 61131-3 Edition 3 เพิ่ม Object-Oriented Programming ให้ PLC Programming ทันสมัยขึ้น
