หัวใจสำคัญของการเขียนโปรแกรม PLC Mitsubishi คือการเข้าใจการจัดการหน่วยความจำ หรือที่เรียกว่า Device Symbols ครับ หากเราเลือกใช้ตัวแปรผิดประเภท นอกจากจะทำให้โปรแกรมทำงานผิดพลาดแล้ว ยังอาจทำให้เครื่องจักรเกิดความเสียหายเมื่อเกิดเหตุการณ์ไฟดับได้ บทความนี้จะพาไปเจาะลึกแบบละเอียดที่สุดครับ
1. พื้นฐานที่สำคัญ: Bit Device vs Word Device
- Bit Device (ON/OFF): เก็บสถานะดิจิทัล เช่น
M, L, Bเหมาะสำหรับเงื่อนไข Interlock หรือสั่งงาน Coil - Word Device (Data): เก็บค่าตัวเลข 16-bit หรือ 32-bit เช่น
D, R, ZRเหมาะสำหรับเก็บค่า Sensor, Timer หรือผลการคำนวณ
2. เจาะลึกกลุ่ม Bit Devices (สถานะดิจิทัล)
M (Internal Relay)
รีเลย์ช่วยภายใน จับต้องไม่ได้บน Terminal ใช้เป็นตัวแปรพักค่าทั่วไป
L (Latch Relay)
ทำหน้าที่เหมือน M แต่ "จำสถานะได้แม้ไฟดับ" เพราะสำรองไฟด้วยแบตเตอรี่
B (Link Relay)
บิตสำหรับการสื่อสาร Network เช่น CC-Link ระหว่าง PLC ไปยัง HMI หรือ PLC ตัวอื่น
3. เจาะลึกกลุ่ม Word Devices (เก็บค่าตัวเลข)
D (Data Register)
หน่วยความจำหลัก เก็บเลขได้ตั้งแต -32,768 ถึง 32,767 (ถ้าใช้ 32-bit จะใช้ D สองตัวติดกัน)
R / ZR (File Register)
หน่วยความจำส่วนขยายที่มีความจุสูงมาก นิยมใช้เก็บ "สูตรการผลิต" (Recipe) หรือบันทึก Data Log
4. คัมภีร์รหัส Special Device (M8000+ และ D8000+)
นี่คือรหัสที่ PLC สร้างมาให้เราใช้ตรวจสอบ "สุขภาพ" และ "สถานะ" ของระบบครับ
4.1 สัญญาณระบบและการควบคุม (System Status)
| Device (FX) | Device (FX5U) | หน้าที่ (Function) |
|---|---|---|
| M8000 | SM400 | RUN Monitor: ติดค้างตลอดเวลาที่ PLC รัน |
| M8002 | SM402 | Initial Pulse: ติดแค่ 1 Scan ตอนเริ่ม RUN (ใช้ Reset ค่าเริ่มต้น) |
| M8004 | SM1 | Error Summary: ติดเมื่อมี Error ในระบบ |
| M8005 | SM51 | Battery Low: แจ้งเตือนแบตเตอรี่ภายในต่ำ |
| M8034 | SM1 | All Outputs Disable: สั่งตัดสัญญาณ Y ทุกตัว (Safety Stop) |
4.2 สัญญาณนาฬิกา (Clock Pulse)
| Device | คาบเวลา (Period) | การใช้งาน |
|---|---|---|
| M8011 | 10ms | งานความเร็วสูง |
| M8012 | 100ms | ไฟกะพริบถี่ๆ |
| M8013 | 1 วินาที | ทำไฟ Alarm กะพริบ (ยอดนิยม) |
| M8014 | 1 นาที | นับเวลาเครื่องจักรทำงาน |
4.3 ธงสถานะและการคำนวณ (Math Flags)
| M8020 | Zero Flag: ติดเมื่อผลคำนวณเท่ากับ 0 |
| M8021 | Borrow Flag: ติดเมื่อการลบมีค่าติดลบ |
| M8022 | Carry Flag: ติดเมื่อผลบวกมีค่าเกินขีดจำกัด |
| M8029 | Instruction Complete: ติดเมื่อคำสั่งพิเศษทำงานจบ (เช่น ส่ง Pulse สำเร็จ) |
4.4 ข้อมูลระบบและนาฬิกา RTC (D8000+)
| Device | ข้อมูลภายใน (System Data) |
|---|---|
| D8010 | Scan Time: เวลาที่ใช้ประมวลผล (0.1ms) |
| D8013 | Seconds: วินาทีปัจจุบัน (0-59) |
| D8014 | Minutes: นาทีปัจจุบัน (0-59) |
| D8015 | Hours: ชั่วโมงปัจจุบัน (0-23) |
| D8018 | Year: ปี ค.ศ. ปัจจุบัน |
| D8140-8141 | Pulse Current (Y0): ตำแหน่งปัจจุบันของแกน Y0 (32-bit) |
เคล็ดลับจากประสบการณ์จริง:
ในการเขียนโปรแกรมสื่อสาร (Communication) เช่น RS-485 ผมแนะนำให้ใช้ M8029 เสมอเพื่อเช็คว่าข้อมูลส่งครบหรือยัง ก่อนจะส่งชุดถัดไป จะช่วยให้ระบบเสถียรขึ้นมากครับ!
ต้องการวิศวกรวางระบบ Automation มืออาชีพ?
Xeniel Automation ยินดีให้คำปรึกษา ออกแบบระบบ PLC และแก้ไขปัญหาเครื่องจักรในโรงงานอุตสาหกรรม โซนชลบุรี ระยอง และพื้นที่ใกล้เคียง
ปรึกษาฟรีผ่าน Line โทร 098-965-3845