& Software Engineer Co., Ltd. ผู้นำด้านการจัดจำหน่ายอะไหล่เครื่องจักร CNC (New Parts) พร้อมศูนย์บริการซ่อมบำรุง (Repair), อัปเกรดระบบ (Retrofit), และดัดแปลงเครื่องจักรครบวงจรด้วยทีมวิศวกรผู้เชี่ยวชาญ
© 2026 SP AUTOMATION & SOFTWARE ENGINEER CO., LTD. All rights reserved.
Back to Knowledge Base
เรียนรู้หลักการและวิธีจัดการปัญหาโดยวิศวกรผู้เชี่ยวชาญ
ปรึกษาปัญหาเทคนิค บทนำ: ทำไม Function Block Diagram (FBD) จึงสำคัญในการเขียนโปรแกรม PLC? ในโลกของการควบคุมอัตโนมัติด้วย PLC (Programmable Logic Controller) มีภาษาโปรแกรมหลายรูปแบบที่วิศวกรเลือกใช้ หนึ่งในนั้นคือ Function Block Diagram (FBD) ซึ่งเป็นภาษาที่ได้รับความนิยมอย่างแพร่หลายเนื่องจากมีลักษณะกราฟิกที่เข้าใจง่าย คล้ายกับการออกแบบวงจรดิจิทัล ทำให้การพัฒนาโปรแกรมมีความรวดเร็ว ลดข้อผิดพลาด และง่ายต่อการบำรุงรักษา บทความนี้จะเจาะลึกถึงหลักการทำงาน โครงสร้าง การประยุกต์ใช้ และแนวทางปฏิบัติที่ดีที่สุดในการใช้ FBD เพื่อให้คุณเข้าใจและนำไปใช้งานได้อย่างมีประสิทธิภาพสูงสุด
หลักการพื้นฐานของ Function Block Diagram (FBD) FBD เป็นภาษาโปรแกรมที่แสดงตรรกะการทำงานในรูปแบบของบล็อกฟังก์ชันที่เชื่อมต่อกัน แต่ละบล็อกจะทำหน้าที่เฉพาะอย่าง เช่น ตัวจับเวลา (Timer), ตัวนับ (Counter), ฟังก์ชันทางคณิตศาสตร์ หรือฟังก์ชันควบคุม การทำงานของ FBD จะเป็นการประมวลผลสัญญาณจากอินพุต ผ่านบล็อกฟังก์ชันต่างๆ ไปยังเอาต์พุต
Was this guide helpful? Share Article
ประเมินอาการเสียและปรึกษาช่างผู้เชี่ยวชาญฟรี! บริการซ่อมบอร์ด, เปลี่ยนอะไหล่ (New Part) และดัดแปลงเครื่องจักร ซ่อมจบใน 3 วัน พร้อมรับประกัน 3 เดือน
Test kit after repair No fix, no feeการมองเห็น (Visual Representation): แสดงการไหลของข้อมูลและตรรกะการทำงานอย่างชัดเจนด้วยสัญลักษณ์กราฟิกการนำกลับมาใช้ใหม่ (Reusability): บล็อกฟังก์ชันสามารถสร้างขึ้นและนำไปใช้ซ้ำได้หลายครั้งในโปรเจกต์เดียวกันหรือต่างโปรเจกต์ ทำให้ลดเวลาในการเขียนโปรแกรมความเป็นโมดูล (Modularity): โปรแกรมถูกแบ่งออกเป็นส่วนย่อยๆ ที่จัดการได้ง่าย ทำให้ง่ายต่อการออกแบบ ทดสอบ และแก้ไขการประมวลผลแบบขนาน (Parallel Processing): FBD สามารถจำลองการทำงานของวงจรไฟฟ้าหรือตรรกะที่ทำงานพร้อมกันได้
โครงสร้างและส่วนประกอบของ Function Block Function Block แต่ละตัวประกอบด้วยส่วนสำคัญดังนี้:
อินพุต (Inputs): สัญญาณหรือค่าที่ป้อนเข้าสู่บล็อกฟังก์ชันเพื่อประมวลผล โดยอาจเป็นค่าแบบ Boolean, Integer, Real หรือ Data Type อื่นๆเอาต์พุต (Outputs): ผลลัพธ์ที่ได้จากการประมวลผลของบล็อกฟังก์ชัน ซึ่งจะถูกส่งต่อไปยังบล็อกอื่นหรือไปยังเอาต์พุตทางกายภาพของ PLCตรรกะภายใน (Internal Logic): ส่วนที่กำหนดการทำงานเฉพาะของบล็อกฟังก์ชันนั้นๆ ซึ่งอาจเป็นสมการทางคณิตศาสตร์, ตรรกะแบบ Boolean, หรืออัลกอริทึมที่ซับซ้อนข้อมูลอินสแตนซ์ (Instance Data): ข้อมูลเฉพาะสำหรับแต่ละอินสแตนซ์ (การเรียกใช้งาน) ของบล็อกฟังก์ชัน เช่น ค่าปัจจุบันของตัวนับ หรือค่าที่ตั้งไว้ของตัวจับเวลา ทำให้สามารถใช้บล็อกฟังก์ชันเดียวกันได้หลายครั้งโดยมีสถานะของตัวเองtext
FUNCTION_BLOCK FB_MotorControl
VAR_INPUT
Start_PB : BOOL; (* Start Push Button *)
Stop_PB : BOOL; (* Stop Push Button *)
Motor_Overload : BOOL; (* Motor Overload Status *)
END_VAR
VAR_OUTPUT
Motor_Run : BOOL; (* Motor Running Status *)
END_VAR
VAR
FB_TON_Delay : TON; (* Instance of Timer On Delay *)
FB_R_Trig : R_TRIG; (* Instance of Rising Edge Trigger *)
END_VAR
(* Internal Logic Example *)
(* Motor starts after a delay if Start_PB is pressed and no overload *)
FB_TON_Delay(IN := Start_PB AND NOT Motor_Overload AND NOT Motor_Run, PT := T#5S);
Motor_Run := FB_TON_Delay.Q AND NOT Stop_PB AND NOT Motor_Overload;
ประเภทของ Function Block ที่พบบ่อยในการเขียนโปรแกรม PLC Timers (ตัวจับเวลา): เช่น TON (Timer On Delay), TOF (Timer Off Delay), TP (Pulse Timer) ใช้สำหรับการหน่วงเวลาการทำงานของอุปกรณ์Counters (ตัวนับ): เช่น CTU (Count Up), CTD (Count Down), CTUD (Count Up/Down) ใช้สำหรับนับจำนวนเหตุการณ์Math Functions (ฟังก์ชันทางคณิตศาสตร์): เช่น ADD, SUB, MUL, DIV, SQRT ใช้ในการคำนวณค่าต่างๆComparison Functions (ฟังก์ชันเปรียบเทียบ): เช่น EQ (Equal), GT (Greater Than), LT (Less Than) ใช้ในการเปรียบเทียบค่าเพื่อตัดสินใจทางตรรกะPID Controllers (ตัวควบคุม PID): ใช้ในการควบคุมกระบวนการแบบต่อเนื่อง เช่น การควบคุมอุณหภูมิ, ความดัน, ระดับน้ำSpecialized Functions: บล็อกฟังก์ชันเฉพาะทางที่ผู้ผลิต PLC สร้างขึ้น หรือที่ผู้ใช้สร้างขึ้นเองเพื่อรองรับงานเฉพาะเคล็ดลับจากวิศวกร การเลือกใช้ Function Block ที่เหมาะสมกับงานเป็นสิ่งสำคัญ ควรทำความเข้าใจพารามิเตอร์ของแต่ละบล็อกอย่างละเอียด และพิจารณาความซับซ้อนของตรรกะที่ต้องการ เพื่อประสิทธิภาพสูงสุดในการประมวลผลและลดภาระของ CPU PLC
ข้อดีของการใช้ Function Block Diagram ในการเขียนโปรแกรม PLC ความชัดเจนและง่ายต่อการทำความเข้าใจ: รูปแบบกราฟิกทำให้วิศวกรและช่างเทคนิคเข้าใจการทำงานของโปรแกรมได้ง่าย แม้จะไม่ใช่ผู้เขียนโปรแกรมต้นฉบับลดเวลาในการพัฒนา: ด้วยความสามารถในการนำบล็อกฟังก์ชันกลับมาใช้ใหม่ ช่วยลดเวลาในการเขียนโค้ดซ้ำๆง่ายต่อการดีบักและแก้ไขปัญหา: การแสดงผลแบบกราฟิกช่วยให้ติดตามการไหลของสัญญาณและระบุตำแหน่งของข้อผิดพลาดได้รวดเร็วส่งเสริมความเป็นมาตรฐาน: สามารถสร้างไลบรารีของบล็อกฟังก์ชันมาตรฐานสำหรับการใช้งานในโปรเจกต์ต่างๆ ทำให้เกิดความสอดคล้องกันประสิทธิภาพในการบำรุงรักษา: การปรับเปลี่ยนหรือเพิ่มเติมฟังก์ชันทำได้ง่ายและลดความเสี่ยงที่จะเกิดผลกระทบต่อส่วนอื่นๆ ของโปรแกรม
การประยุกต์ใช้ Function Block Diagram ในงานอุตสาหกรรม FBD มีความยืดหยุ่นสูงและสามารถนำไปประยุกต์ใช้ในงานควบคุมอัตโนมัติได้หลากหลายรูปแบบ ตั้งแต่ระบบง่ายๆ ไปจนถึงระบบที่ซับซ้อน
การควบคุมมอเตอร์: การสตาร์ท/หยุด, การกลับทิศทาง, การป้องกันโหลดเกิน โดยใช้บล็อก Timer, Counter, และ Comparisonการควบคุมกระบวนการ (Process Control): เช่น การควบคุมอุณหภูมิ, ระดับของเหลว, ความดัน ด้วยบล็อก PIDการจัดลำดับการทำงาน (Sequencing): การควบคุมเครื่องจักรที่มีขั้นตอนการทำงานต่อเนื่อง เช่น ระบบบรรจุภัณฑ์, ระบบลำเลียงระบบความปลอดภัย (Safety Interlocks): การสร้างตรรกะเพื่อป้องกันการทำงานผิดพลาด หรือการหยุดฉุกเฉินการจัดการสัญญาณอนาล็อก (Analog Signal Processing): การปรับสเกล, การกรองสัญญาณ, การคำนวณค่าจากเซ็นเซอร์กรณีศึกษา: การควบคุมปั๊มน้ำอัตโนมัติ ในการควบคุมระดับน้ำในถังด้วย FBD เราสามารถใช้บล็อกเปรียบเทียบ (Comparison) เพื่อตรวจสอบระดับน้ำจากเซ็นเซอร์ (Analog Input) และใช้บล็อก Timer เพื่อหน่วงเวลาการทำงานของปั๊ม (Digital Output) เพื่อป้องกันการทำงานถี่เกินไป หรือใช้ PID Block หากต้องการควบคุมระดับน้ำให้คงที่อย่างแม่นยำ
ข้อควรระวังและแนวทางแก้ไขปัญหาที่พบบ่อยในการเขียนโปรแกรม FBD การส่งผ่านพารามิเตอร์ผิดพลาด: ตรวจสอบประเภทข้อมูลและค่าที่ส่งเข้า/ออกจากบล็อกฟังก์ชันให้ถูกต้องเสมอ หากไม่ตรงกันอาจทำให้เกิดข้อผิดพลาดในการคำนวณหรือตรรกะปัญหาเรื่องเวลา (Timing Issues): บล็อก Timer หรือ Counter อาจทำงานไม่ถูกต้องหากมีการเรียกใช้งานผิดจังหวะ หรือมีการรีเซ็ตที่ไม่เหมาะสม ตรวจสอบเงื่อนไขการทำงานและรีเซ็ตให้รอบคอบการจัดการ Instance Data: หากใช้บล็อกฟังก์ชันเดียวกันหลายครั้ง ต้องแน่ใจว่าแต่ละอินสแตนซ์มีพื้นที่เก็บข้อมูลของตัวเอง มิฉะนั้นอาจเกิดการทับซ้อนข้อมูลและทำให้การทำงานผิดพลาดความซับซ้อนของสายเชื่อมต่อ: หากโปรแกรมมีขนาดใหญ่และซับซ้อนมากเกินไป สายเชื่อมต่อระหว่างบล็อกอาจพันกันจนอ่านยาก ควรจัดระเบียบและใช้ Sub-Program หรือ Grouping เพื่อลดความซับซ้อนการ Debugging ที่ยาก: แม้ FBD จะดีบักง่าย แต่ในบางกรณีที่ตรรกะซับซ้อนมาก การติดตามค่าอาจต้องใช้เครื่องมือ Debugging ของ PLC Software อย่างชำนาญ
ข้อควรระวังด้านความปลอดภัย เมื่อใช้ FBD ในระบบควบคุมความปลอดภัย (Safety PLC) ต้องปฏิบัติตามมาตรฐานความปลอดภัยที่เกี่ยวข้องอย่างเคร่งครัด (เช่น IEC 61508, IEC 62061) และใช้ Function Block ที่ได้รับการรับรองด้านความปลอดภัยเท่านั้น การละเลยอาจนำไปสู่อันตรายร้ายแรงต่อชีวิตและทรัพย์สิน
แนวทางการปฏิบัติที่ดีที่สุดในการเขียนโปรแกรม FBD การตั้งชื่อที่ชัดเจน: ใช้ชื่อตัวแปรและบล็อกฟังก์ชันที่สื่อความหมาย เพื่อให้เข้าใจง่ายและบำรุงรักษาได้ในอนาคตการจัดเรียงบล็อก: จัดเรียงบล็อกฟังก์ชันให้เป็นระเบียบ มีการไหลของสัญญาณที่ชัดเจนจากซ้ายไปขวา หรือบนลงล่างการใช้คอมเมนต์ (Comments): เพิ่มคอมเมนต์อธิบายการทำงานของแต่ละบล็อกหรือกลุ่มบล็อกที่ซับซ้อน เพื่อช่วยในการทำความเข้าใจการสร้างบล็อกฟังก์ชันที่นำกลับมาใช้ใหม่ได้: พัฒนาบล็อกฟังก์ชันสำหรับงานที่ทำซ้ำๆ เช่น การควบคุมวาล์วมาตรฐาน, การควบคุมมอเตอร์ เพื่อลดเวลาและเพิ่มความสอดคล้องการทดสอบอย่างละเอียด: ทดสอบการทำงานของแต่ละบล็อกและโปรแกรมโดยรวมอย่างละเอียดในทุกสถานการณ์ที่เป็นไปได้การจัดทำเอกสารประกอบ: บันทึกรายละเอียดของโปรแกรม, การกำหนดค่าพารามิเตอร์, และการทำงานของบล็อกฟังก์ชันที่สร้างขึ้นเองFunction Block Diagram เป็นเครื่องมือที่ทรงพลังและมีประโยชน์อย่างยิ่งในการเขียนโปรแกรม PLC ด้วยความสามารถในการแสดงผลแบบกราฟิกที่เข้าใจง่าย ความเป็นโมดูล และความสามารถในการนำกลับมาใช้ใหม่ ทำให้ FBD เป็นตัวเลือกที่ยอดเยี่ยมสำหรับการพัฒนาโปรแกรมควบคุมอัตโนมัติในหลากหลายอุตสาหกรรม การเรียนรู้และประยุกต์ใช้ FBD อย่างถูกวิธี จะช่วยให้วิศวกรและช่างเทคนิคสามารถสร้างระบบควบคุมที่มีประสิทธิภาพ เชื่อถือได้ และง่ายต่อการบำรุงรักษาในระยะยาว หากคุณต้องการคำปรึกษาเชิงลึกเกี่ยวกับการออกแบบระบบควบคุมด้วย PLC หรือการแก้ไขปัญหาที่ซับซ้อน ทีมวิศวกรผู้เชี่ยวชาญของ SP Automation ยินดีให้คำปรึกษาทางเทคนิคเพื่อช่วยให้โครงการของคุณประสบความสำเร็จ
FBD ใน PLC: หลักการ, โครงสร้าง, การประยุกต์ใช้ & แก้ไขปัญหา | SP Automation