OpenPLC Software Editor for Programmable Logic Controller

โปรแกรม OpenPLC เป็นโปรแกรมสำหรับเขียนคำสั่งควบคุมการทำงานให้กับพีแอลซี (Programmable Logic Controller : PLC) เพื่อให้กระบวนการทำงานเป็นระบบอัตโนมัติ เช่น ในงานอุตสาหกรรม, หุ่นยนต์, บ้านอัจฉริยะ เป็นต้น ซึ่งโปรแกรม OpenPLC จะเหมาะสำหรับผู้ใช้งานที่ชอบการพัฒนาร่วมกับบอร์ดไมโครคอนโทรลเลอร์ต่างๆ อย่าง Arduino, esp32, esp8266, STM32F103CB, Raspberry Pi รวมทั้งอื่นๆ อีกมากมาย ทั้งนี้โปรแกรม OpenPLC ถูกพัฒนาขึ้นตามมาตรฐาน IEC 61131-3 ให้ผู้ใช้สามารถใช้งานได้ฟรี (Open-source) และตัวโปรแกรม OpenPLC เป็นอีกหนึ่งโปรแกรมที่สามารถเรียนรู้การใช้งานต่างๆ ได้ไม่ยากนัก เว็บไซต์ของโปรแกรมเข้าไปที่ https://openplcproject.github.io/

รูปที่ 1 แสดงหน้าแรกของโปรแกรม OpenPLC ซึ่งเป็นโปรแกรมหนึ่งที่มีฟังก์ชั่นการใช้งานหลายส่วน ผู้ใช้งานโปรแกรมสามารถเลือกบอร์ดไมโครคอนโทรลเลอร์ได้มากพอควร รูปแบบการแสดงผลโปรแกรมสามารถจัดการคำสั่งได้ดีเข้าใจง่าย มีเมนูการจำลองการทำงานของโปรแกรม (Simulation) รวมถึงรายละเอียดการใช้งานคำสั่งต่างๆ ที่ช่วยให้การเขียนโปรแกรมการทำงานได้ดียิ่งขึ้น

ในรูปที่ 2 แสดงกลุ่มเมนคำสั่งต่างๆ สำหรับใช้งานสามารถแบ่งออกเป็น 6 กลุ่มคือ กลุ่มที่ 1 จะเป็นการจัดการไฟล์โปรแกรมต่างๆ ที่กำลังเขียนโปรแกรมและพัฒนาอยู่ กลุ่มที่ 2 เป็นกลุ่มคำสั่งของตัวแปรที่ใช้งานเช่น ตัวแปรอินพุตและเอาต์พุต กลุ่มที่ 3 เป็นกลุ่มของการแสดงสถานะการทำงานต่างๆ ที่เกิดขึ้นในปัจจุบัน เพื่อให้ทราบผลการทำงานต่างเช่น การคอมไพล์คำสั่ง เป็นต้น กลุ่มที่ 4 เป็นพื้นที่ของการเขียนโปรแกรมคำสั่งต่างๆ ของผู้ใช้งานและแสดงตัวแปรที่ใช้งานอยู่ กลุ่มที่ 5 เป็นไลบารี่ของคำอธิบายการใช้โปรแกรมคำสั่งต่างๆ และการดีบักการทำงานของโปรแกรม และส่วนสุดท้ายกลุ่มที่ 6 เป็นเมนูฟังก์ชั่นใช้งานต่างๆ ของโปรแกรม เช่น การสร้างไฟล์ใหม่, การลบ, การบันทึกโปรแกรม, การจำลองการทำงานของโปรแกรม, การอัพโหลดโปรแกรม, การเลือกบอร์ดไมโครคอนโทรลเลอร์สำหรับใช้งาน และบล็อกคำสั่งของการเขียนโปรแกรมด้วยภาษา Ladder เป็นต้น

ในรูปที่ 3 แสดงการเลือกบอร์ดไมโครคอนโทรลเลอร์ สำหรับนำใช้งานเป็น PLC โดยให้คลิกที่โลโก้ Arduino (สีเขียว) ที่เมนู Upload Program to Arduino Board จากนั้นจะแสดงหน้าต่างใหม่ให้เลือกไมโครคอนโทรลเลอร์ (เช่น Arduino UNO, Arduino Mega, ESP8266 เป็นต้น) และจะเห็นพอร์ต COM Port ที่เราเชื่อมต่อกับโปรแกรมอยู่
รูปที่ 4 แสดงตำแหน่งขาสำหรับบอร์ดควบคุม Arduino UNO ที่นำมาใช้งาน โดยตำแหน่งขาอินพุตและเอาต์พุตของบอร์ดควบคุมที่เลือกใช้งาน จะต้องให้ตรงกับโปรแกรมคำสั่งที่กำหนดไว้ ซึ่งเราสามารถเข้าไปที่เว็บเพจ (https://autonomylogic.com/docs/2-4-physical-addressing/) เพื่อดูรายละเอียดต่างๆ เมื่อเลือกบอร์ดควบคุมต่างๆ ทั้งนี้การทราบตำแหน่งขาใช้งานจะสัมพันธ์กับการกำหนดค่าตัวแปรให้กับตำแหน่งขาในโปรแกรมได้ถูกต้อง
รูปที่ 5 คลิปวิดีโอแนะนำการใช้งานโปรแกรม OpenPLC เบื้องต้น ที่ช่อง Youtube ซึ่งจะเป็นคลิปแนะนำการใช้งานโปรแกรม, การใช้งานฟังก์ชั่นต่างๆ และเมนูคำสั่ง, การกำหนดขาอินพุตและเอาต์พุตให้กับบอร์ดไมโครคอนโทรลเลอร์ที่นำมาใช้และตัวอย่างการเขียนโปรแกรม Ladder ให้กับบอร์ด ESP8266 เพื่อให้เรียนรู้การใช้งานโปรแกรมได้ง่ายขึ้น [สำหรับช่อง Youtube แนะนำโปรแกรม คลิกที่นี่]

รูปที่ 6 แสดงตัวอย่างการทดลองเขียนโปรแกรมด้วยภาษา Ladder สำหรับศึกษาการใช้งานโปรแกรมทั่วไป ให้สามารถต่อวงจรร่วมกับบอร์ดควบคุม โดยในตัวอย่างนี้จะใช้บอร์ดควบคุม Arduino UNO นอกจากนี้ยังรวมถึงการกำหนดค่าตัวแปร เพื่อให้เข้าใจการใช้งานโปรแกรมได้อย่างถูกต้องต่อไป

ในรูปที่ 7 แสดงวงจรและการต่ออุปกรณ์ให้กับบอร์ดควบคุม Arduino UNO จะเห็นว่าที่ตำแหน่างขาอินพุต D2, D3 จะมีตัวต้านทาน R1 และ R2 ต่อลงกราวด์หรือเรียกว่า (R Pull-Down) โดยขาอินพุตจะรับสถานะเป็นลอจิก 1 (Active High Level) และในส่วนขาเอาต์พุต D12, D13 จะสามารถต่อเข้ากับแอลอีดีได้โดยตรงหรือจะใช้ตัวต้านทานเพิ่มเติมได้เช่นกัน ซึ่งในรูปจะใช้ตัวต้านทานค่า R3, R4 เท่ากับ 330R ในการลดกระแสที่จ่ายให้แอลอีดีลง

ในรูปที่ 8 เป็นการอัพโหลดโปรแกรมคำสั่งการเปลี่ยนคำสั่ง Ladder Diagram ที่เขียนขึ้นให้เป็นภาษาเครื่องสำหรับชิฟประมวลผลด้วยการคอมไพล์คำสั่ง จากนั้นโปรแกรมจะสามารถอัปโหลดไปยังบอร์ดควบคุม Arduino ต่างๆ ตามที่เลือกใช้งาน โดยให้คลิกที่โลโก้ Arduino (สีเขียว) ที่เมนู Upload Program to Arduino Board ซึ่งจะแสดงหน้าต่างการอัพโหลดใหม่ ต่อมาให้คลิกที่ Upload รอการอัพโหลดสักครู่ โดยจะมีข้อความแจ้งสถานะให้ทราบดังแสดงในกรอบสีแดง

ในรูปที่ 9 เป็นลักษณะของการต่อบอร์ดควบคุม Arduino UNO กับสวิตช์และแอลอีดีแสดงผล โดยใช้โปรแกรมคำสั่งที่ยกตัวอย่างและอธิบายการทำงานของโปรแกรมไว้เบื้องต้น ซึ่งในรูปจะมีสวิตช์ 2 ตัวที่จะทำหน้าที่เริ่มทำงาน (Start) และสวิตช์หยุดการทำงาน (Stop) ซึ่งในการทดลองจะเป็นแอลอีดีสีเขียวจะติดสว่างเมื่อกดวิตช์เริ่มการทำงาน (SW2) ส่วนแอลอีดีสีแดงจะติดสว่างทุกครั้ง เมื่อกดสวิตช์หยุดการทำงาน (SW1) เพื่อแสดงสถานะการกดสวิตช์ให้ทราบ

รูปที่ 5 การอัพโหลดโปรแกรมคำสั่งการเปลี่ยนคำสั่ง Ladder Diagram
สำหรับโปรแกรม OpenPLC เป็นโปรแกรม Editor อีกหนึ่งโปรแกรมที่มีฟังก์ชั่นการใช้งานหลายส่วน เหมาะสำหรับผู้ที่ต้องการพัฒนาระบบควบคุมอัตโนมัติที่ซับซ้อนร่วมกับบอร์ดไมโครคอนโทรลเลอร์ต่างๆ โดยเฉพาะ Arduino ซึ่งกล่าวโดยสรุปจุดเด่นของโปรแกรม OpenPLC คือ ในเรื่องของเป็นโปรแกรมใช้งานได้ฟรี (Open source)และทำงานตามมาตรฐาน IEC 61131-3 สามารถเขียนโปรแกรมได้ถึง 5 ภาษา Ladder Diagram (LD) แผนภาพบันไดคล้ายกับวงจรไฟฟ้า, Function Block Diagram (FBD) แผนภาพฟังก์ชันบล็อก, Structured Text (ST) ภาษาข้อความเชิงโครงสร้างคล้ายภาษาโปรแกรมระดับสูง, Instruction List (IL) รายการคำสั่ง, Sequential Function Chart (SFC) แผนภาพฟังก์ชันตามลำดับขั้นตอน นอกจากนี้โปรแกรม OpenPLC มีผู้ใช้งานและนักพัฒนาที่คอยสนับสนุนอย่างต่อเนื่อง
Reference
- https://openplcproject.github.io/
- https://openplcproject.github.io/plcopen-editor/
- https://autonomylogic.com/docs/2-4-physical-addressing/
- https://www.youtube.com/watch?v=xpTBpFHyluw
- https://www.youtube.com/watch?v=1xeDI9pxNk8
- https://www.youtube.com/watch?v=6aNna-Cfzyg
- https://www.eonet.ne.jp/~sunray/OpenPLC.pdf
- https://control.com/technical-articles/plc-ladder-logic-on-an-arduino-introduction-to-openplc/
- https://www.allaboutcircuits.com/projects/learn-to-build-a-photoelectric-switch-using-an-arduino-uno-and-openplc/
- https://github.com/thiagoralves/editor/blob/openplc-master/arduino/src/hal/uno_leonardo_nano_micro_zero.cpp