รูปปกบทความ

1. 🎯 ตอนที่ 2: ผ่ากระบวนการผลิต Continuous, Discrete และ Batch แบบฉบับ Automation Engineer

สวัสดีครับน้องๆ และเพื่อนวิศวกรทุกคน กลับมาจิบกาแฟคุยกันต่อในซีรีส์ ISA-88 ครับ ก่อนที่เราจะไปลงลึกถึงการเขียนโค้ดหรือการวางโครงสร้างระบบแบบจัดเต็ม สิ่งแรกที่วิศวกร Automation อย่างเราต้องมองให้ออกเวลาเดินเข้าโรงงานคือ “โรงงานนี้ผลิตแบบไหน?”

เชื่อไหมครับว่า ความปวดหัวเกินครึ่งของโปรเจกต์ Automation เกิดจากการที่เราเอา Mindset ของการเขียนโปรแกรมควบคุมแบบหนึ่ง ไปใช้กับกระบวนการผลิตอีกแบบหนึ่ง วันนี้ผมจะมาสรุปคัมภีร์จากมาตรฐาน ISA-88 ให้ฟังว่ารูปแบบการผลิตทั้ง 3 โลกอย่าง Continuous, Discrete และ Batch Process มันต่างกันยังไง แล้วทำไมระบบแบบ Batch ถึงได้ชื่อว่าเป็นบอสใหญ่ที่ท้าทายที่สุดในวงการนี้ครับ

2. 📖 เปิดฉาก (The Hook): เมื่อสายพานลำเลียง คุยคนละภาษากับถังต้ม

ลองนึกภาพตามนะครับ… ถ้าคุณไปเขียนโปรแกรมให้ “โรงงานประกอบรถยนต์” งานของคุณคือการควบคุมเซนเซอร์ มอเตอร์ และหุ่นยนต์ ให้ทำงานเป็นจังหวะตามสายพานที่ไหลไปเรื่อยๆ (เคลื่อนที่, หยุด, ขันน็อต, เคลื่อนที่ต่อ)

แต่ถ้าคุณถูกส่งไป “โรงกลั่นน้ำมัน” งานของคุณจะเปลี่ยนไปโดยสิ้นเชิง คุณไม่ต้องสนใจสายพานลำเลียง แต่ต้องไปเพ่งสมาธิอยู่กับกราฟอุณหภูมิและแรงดัน เพื่อรักษาค่าให้คงที่ (Steady State) ตลอด 24 ชั่วโมง

แล้วถ้าคุณถูกส่งไป “โรงงานผลิตยาหรือเบียร์” ล่ะ? คุณจะต้องเจอกับระบบที่เดี๋ยวก็เปิดวาล์วเติมน้ำ เดี๋ยวก็ต้มให้เดือด เดี๋ยวก็กวน เดี๋ยวก็หยุดรอดูปฏิกิริยาเคมี… ระบบที่ต้องเปลี่ยนสถานะไปมาตาม “สูตร (Recipe)” นี่แหละครับที่ทำให้วิศวกรหลายคนต้องเขียนโค้ดแบบ Spaghetti พอกพูนไปเรื่อยๆ จนแก้ไม่ได้ เพื่อให้เห็นภาพชัดเจน เรามาดูนิยามตามมาตรฐานสากลกันดีกว่าครับ

3. 🧠 แก่นวิชา (Core Concepts): 3 โลกแห่งการผลิตตามนิยามอุตสาหกรรม

เอกสารอ้างอิงและมาตรฐานสากลได้แบ่งกระบวนการผลิต (Technical Processes) ออกเป็น 3 ประเภทหลักๆ ดังนี้ครับ:

  • 1. Continuous Process (กระบวนการผลิตแบบต่อเนื่อง)
    • มันคืออะไร: การผลิตที่มีวัตถุดิบไหลเข้าและสินค้าไหลออกอย่างต่อเนื่องไม่หยุดพัก จุดประสงค์หลักคือการรักษา “สภาวะการทำงานให้คงที่ (Steady Operating State)” ให้นานที่สุดเท่าที่จะทำได้ ถ้าระบบนิ่งแล้วแทบจะไม่ต้องไปยุ่งอะไรกับมันเลย
    • อุตสาหกรรมที่ใช้: โรงกลั่นน้ำมัน (Petroleum refining), โรงงานผลิตก๊าซเอทิลีน (Ethylene production), กระดาษ, เหล็ก
    • เปรียบเทียบ: เหมือน “แม่น้ำ” ที่ไหลอย่างต่อเนื่องตลอดเวลา
  • 2. Discrete Process (กระบวนการผลิตแบบชิ้นส่วน/ไม่ต่อเนื่อง)
    • มันคืออะไร: การผลิตที่ออกมาเป็น “ชิ้นๆ” ที่สามารถนับจำนวนและแยกแยะความแตกต่างของแต่ละชิ้นได้ (Individually labeled) เน้นไปที่ความเร็ว (Speed) และปริมาณ (Throughput) ผ่านกลไกทางเครื่องกลเป็นหลัก
    • อุตสาหกรรมที่ใช้: โรงงานประกอบรถยนต์, ชิ้นส่วนอิเล็กทรอนิกส์, น็อตสกรู, สายพานบรรจุขวด (Bottle filling)
    • เปรียบเทียบ: เหมือน “การต่อเลโก้” ที่ประกอบทีละชิ้นจนเสร็จเป็นรูปร่าง
  • 3. Batch Process (กระบวนการผลิตแบบแบตช์/เป็นรอบ)
    • มันคืออะไร: นิยามตามมาตรฐาน ISA-88 ระบุไว้ว่า “กระบวนการที่นำไปสู่การผลิตวัสดุในปริมาณจำกัด (Finite quantities) โดยนำวัตถุดิบเข้าสู่ขั้นตอนการประมวลผลตามลำดับ (Ordered set of processing activities) ในช่วงเวลาหนึ่งๆ โดยใช้อุปกรณ์หนึ่งชิ้นหรือมากกว่า” กระบวนการนี้ผลผลิตจะออกมาเป็นชุดๆ หรือ “ลอต (Lot)”
    • อุตสาหกรรมที่ใช้: อุตสาหกรรมยา, อาหารและเครื่องดื่ม (เช่น การหมักเบียร์), เคมีภัณฑ์เฉพาะทาง (Specialty chemicals), พลาสติกและกาว
    • เปรียบเทียบ: เหมือน “การทำอาหารในห้องครัว (Kitchen)” ที่เชฟต้องเอาวัตถุดิบมาผสม ต้ม อบ ตามสูตร (Recipe) แล้วออกมาเป็นคุ้กกี้ทีละถาด
รูปประกอบ แผนภาพเปรียบเทียบ Continuous, Discrete, Batch

4. 💻 ร่ายมนต์ควบคุม (System Logic & Configuration): หน้าตาของ Logic แต่ละแบบ

เวลาเรามาออกแบบระบบควบคุม (Control System) โครงสร้างโค้ดของทั้ง 3 รูปแบบนี้จะต่างกันอย่างสิ้นเชิงครับ:

// 1. Continuous Control Logic (เน้น Regulatory Control / PID)
// เป้าหมาย: รักษาอุณหภูมิให้คงที่ตลอด 24 ชั่วโมง
PID_Controller(
    SetPoint := 150.0, 
    ProcessValue := Temp_Sensor.Value, 
    Output => Steam_Valve.Position
);

// 2. Discrete Control Logic (เน้น Interlocking & Sequential ขั้นพื้นฐาน)
// เป้าหมาย: กล่องมาถึง -> หยุดสายพาน -> ขันน็อต -> ปล่อยกล่อง
IF Sensor_Detect_Box AND NOT Robot_Busy THEN
    Conveyor_Motor := FALSE;
    Start_Robot_Action();
END_IF;

// 3. Batch Control Logic (เน้น State Machine และทำงานตามสูตร Recipe)
// เป้าหมาย: ระบบต้องเปลี่ยนพฤติกรรมไปเรื่อยๆ ในถังเดียว ตามที่ Recipe สั่งมา
CASE Batch_Phase_State OF
    IDLE:
        Wait_For_Recipe_Command();
    STARTING:
        Open_Inlet_Valve();
        IF Level >= Recipe_Target_Level THEN 
            Transition_To(RUNNING);
        END_IF;
    RUNNING: // กวนและต้มพร้อมกัน ตามเวลาที่สูตรกำหนด
        Agitator_Start(Speed := Recipe_Speed);
        Temp_Control_Enable(SP := Recipe_Temp);
        IF Timer.Done THEN
            Transition_To(COMPLETING);
        END_IF;
    HOLDING: // เมื่อเกิดเหตุฉุกเฉิน ต้องมี State มารองรับ
        Agitator_Stop();
        Steam_Valve_Close();
END_CASE;

คอมเมนต์สไตล์รุ่นพี่: เห็นไหมครับว่าโค้ดของ Batch จะต้องใช้ State Machine เข้ามาจับ เพราะเครื่องจักร (Unit) เครื่องเดียว ต้องเปลี่ยนบทบาทไปเรื่อยๆ จากแค่เป็นถังเติมน้ำ กลายเป็นถังต้ม และกลายเป็นถังกวน ในขณะที่ Continuous เครื่องจักรจะทำหน้าที่เดิมซ้ำๆ ไปตลอด

5. 🛡️ เคล็ดลับจากคัมภีร์ลับ (Under the Hood / Pro-Tips): ทำไม Batch ถึงปราบเซียน?

จากประสบการณ์และตำราระดับลึก การทำ Automation ให้ระบบ Batch นั้นมีความท้าทายมากที่สุด ด้วยเหตุผลต่อไปนี้ครับ:

  1. ต้องเก่งทั้ง Analog และ Discrete: ระบบ Batch ต้องการการควบคุมทั้งแบบ Continuous (เช่น การควบคุมอุณหภูมิด้วย PID ให้นิ่งเป๊ะระหว่างที่เกิดปฏิกิริยาเคมี) และแบบ Discrete (เช่น การเปิด/ปิดวาล์ว หรือมอเตอร์กวนตามลำดับขั้นตอน) แถมในกระบวนการแบบแบตช์ สัดส่วนของสัญญาณ I/O แบบ Discrete มักจะมากกว่า Analog ถึง 10 เท่า!
  2. การแปรผันของเงื่อนไข (Widely Varying Process Conditions): ในระบบ Continuous สภาวะต่างๆ จะถูกทำให้คงที่ แต่ในถัง Batch Reactor เช่น ตอนเริ่มต้มกับตอนที่ปฏิกิริยาเคมีเกิดเต็มที่ การถ่ายเทความร้อน (Heat transfer) อาจแตกต่างกันถึง 50 เท่า! ค่าพารามิเตอร์ของ PID ที่จูนไว้ตอนแรกอาจจะใช้ไม่ได้ในเฟสถัดไป
  3. การแย่งชิงทรัพยากร (Allocation and Arbitration): โรงงาน Batch มักมีการใช้ทรัพยากรร่วมกัน (Shared-use resources) เช่น มีถังผสม 3 ถัง แต่มีปั๊มสูบน้ำร้อนแค่ตัวเดียว ระบบจะต้องมี Logic มาจัดการว่า “ใครจะได้คิวใช้ปั๊มก่อน” และ “จะจัดการคิวอย่างไรไม่ให้ระบบเกิด Deadlock”
  4. ระบบจัดการเหตุฉุกเฉิน (Exception Handling): ระหว่างที่สูตรกำลังรันเกิดมีวาล์วเสีย หรือวัตถุดิบหมด ระบบจะไม่หยุดนิ่งๆ แบบ Discrete แต่ต้องมี State Machine คอยสลับสถานะไปที่ “HOLD” เพื่อรักษาความปลอดภัย และรอให้ Operator เข้ามาแก้ไขก่อนจะกลับไปรันต่อ (RESTART)

6. 🏁 บทสรุป (To be continued…)

จะเห็นได้ว่ากระบวนการผลิตแบบ Batch เป็นเหมือนจุดศูนย์รวมความซับซ้อนของการควบคุมโรงงานครับ เพราะเราต้องเขียนโค้ดเพื่อรองรับความยืดหยุ่น (Flexibility) ในการเปลี่ยนสูตรสินค้าอยู่ตลอดเวลา และนี่แหละคือเหตุผลสำคัญที่สุดที่มาตรฐาน ISA-88 ถูกสร้างขึ้นมา เพื่อเป็นโครงสร้าง (Framework) ที่ช่วยจัดระเบียบให้เราสามารถจัดการกับความซับซ้อนนี้ได้โดยที่โค้ดไม่พัง!

ในตอนหน้า เราจะมาเริ่มชำแหละ Physical Model ของ ISA-88 กันดูครับว่า เขาแบ่งระดับชั้นเครื่องจักรในโรงงาน (Process Cell, Unit, Equipment Module) กันอย่างไร เพื่อให้รองรับสูตรการผลิตได้อย่างไร้รอยต่อ รอติดตามกันนะครับ!


ต้องการที่ปรึกษาด้านการวางระบบ Automation, PLC/SCADA และมาตรฐาน ISA-88 ให้กับโรงงานของคุณ? ทีมงาน WP Solution พร้อมให้บริการออกแบบและติดตั้งระบบแบบครบวงจร ดูรายละเอียดบริการของเราได้ที่: www.wpsolution2017.com หรือพูดคุยปรึกษาเบื้องต้นได้ที่ Line: wisit.p