Pusle Control by Mitsubishi PLC

คู่มือคำสั่ง Ladder PLC FX5U - Servo Control (2026)

คู่มือคำสั่ง Ladder PLC FX5U - Servo Control (2026)

อ้างอิงจาก Manual: MELSEC iQ-F FX5 User's Manual (Positioning Control)

⚠️ ข้อควรระวังเรื่องโหมด: FX5U มีรูปแบบการเขียน 2 แบบ คือ
  1. FX5 Mode (Native): ใช้ Device ใหม่ (SM5xxx) และคำสั่งรูปแบบใหม่ (แนะนำ)
  2. FX3 Compatible Mode: ใช้ Device เดิม (SM8xxx) และคำสั่งรูปแบบเดิม (เพื่อความเข้ากันได้กับรุ่นเก่า)
เอกสารนี้จะเน้น FX5 Mode เป็นหลักแต่จะเทียบ FX3 Compatible ให้ด้วย

1. ตาราง Special Relay (SM) และ Special Register (SD)

ตารางนี้เปรียบเทียบ Device ระหว่างโหมด FX5 (Native) และ FX3 Compatible

1.1 Special Relay (ตรวจสอบสถานะและสั่งการ)

ความหมายAxis 1 (Y0)Axis 2 (Y1)รายละเอียด
FX5 (ใหม่)FX3 (เก่า)FX5 (ใหม่)FX3 (เก่า)
Pulse Output Monitor (Busy) SM5516 SM8340 SM5517 SM8350 ON: กำลังจ่ายพัลส์
OFF: หยุดจ่าย (ใช้ Interlock)
Positioning Error SM5532 - SM5533 - ON เมื่อเกิด Error (ดู Code ที่ SD)
Stop Command (หยุดทันที) SM5628 - SM5629 - สั่ง ON เพื่อหยุดพัลส์ทันที (Immediate Stop)
Decel Stop Command (หยุดนุ่มนวล) SM5644 - SM5645 - สั่ง ON เพื่อลดความเร็วแล้วหยุด
Instruction Complete Flag - SM8029 - SM8029 บิตจบคำสั่ง (ใช้ต่อท้ายบรรทัดคำสั่ง)

1.2 Special Register (ค่าตำแหน่งและความเร็ว)

ความหมาย (32-bit)Axis 1 (Y0)Axis 2 (Y1)รายละเอียด
FX5 (ใหม่)FX3 (เก่า)FX5 (ใหม่)FX3 (เก่า)
Current Address (Pulse Unit)
ค่าตำแหน่งปัจจุบัน
SD5502
(SD5503)
SD8340
(SD8341)
SD5542
(SD5543)
SD8350
(SD8351)
แสดงค่าพัลส์ปัจจุบัน
*(FX5 อ่านได้อย่างเดียว ต้องใช้คำสั่ง Preset ถ้าจะแก้ค่า)
Current Speed
ความเร็วปัจจุบัน
SD5504
(SD5505)
- SD5544
(SD5545)
- แสดงความเร็วที่กำลังวิ่งอยู่
Error Code SD5510 - SD5550 - รหัส Error เมื่อเกิดปัญหา
 

2. เจาะลึกคำสั่ง Dog Search Zero Return (DSZR)

คำสั่งนี้ใช้สำหรับทำ Homing (วิ่งหาจุด Home) โดยใช้เซนเซอร์ (Dog Switch) และสัญญาณ Zero (Z-phase) จาก Servo

คำสั่งนี้มี 2 รูปแบบ! ต้องเลือกใช้ให้ถูกกับความต้องการ

แบบที่ 1: แนะนำสำหรับ FX5U

รูปแบบนี้จะไม่ต้องระบุขา Input (Dog/Zero) ในตัวคำสั่ง Ladder

แต่ต้องไปตั้งค่าใน Module Parameter -> High Speed I/O แทน ทำให้โค้ดสะอาดและจัดการง่าย

รูปแบบคำสั่ง: [ DSZR(หรือ DDSZR) S1 S2 D1 D2 ]

  • S1 (OPR Speed): ความเร็ววิ่งหา Dog (High Speed) เช่น 10000 Hz
  • S2 (Creep Speed): ความเร็วคลานเมื่อเจอ Dog แล้ว (Low Speed) เช่น 1000 Hz
  • D1 (Axis No.): ระบุแกนเป็นค่า K เช่น K1 (Axis 1), K2 (Axis 2)
  • D2 (Complete Bit): บิตที่จะให้ ON เมื่อทำ Home เสร็จ (เช่น M0)

ตัวอย่าง Ladder (FX5 Style):

       M0 (Start Homing)
|------[ ]--------------------[ DDSZR  K10000  K1000  K1  M100 ]----|
                                      (Speed) (Creep)(Ax1)(Done)

*หมายเหตุ: ต้องไปตั้งค่า Pin DOG (เช่น X0) และ Zero Signal (เช่น X1) ใน Parameter ของโปรแกรม GX Works3 ก่อน

แบบที่ 2: FX3 Compatible Operand (แบบเดิม)

รูปแบบนี้เหมือนรุ่น FX3U คือระบุขา Input ลงไปในคำสั่งเลย (เหมาะสำหรับคนเคยชินหรือแปลงโปรแกรมเก่ามา)

รูปแบบคำสั่ง: [ DSZR S1 S2 D1 D2 ]

  • S1 (DOG Input): ขา Input ที่รับสัญญาณ Dog (เช่น X0)
  • S2 (Zero Input): ขา Input ที่รับสัญญาณ Z-phase (เช่น X1)
  • D1 (Pulse Output): ขาจ่ายพัลส์ (Y0)
  • D2 (Direction Output): ขากำหนดทิศทาง (Y4)

ตัวอย่าง Ladder (FX3 Style):

       M0 (Start Homing)
|------[ ]--------------------[ DSZR  X0  X1  Y0  Y4 ]----|

2.3 ขั้นตอนการทำงานของ Dog Search (Operation Cycle)

เมื่อคำสั่งทำงาน เครื่องจักรจะเคลื่อนที่ตามลำดับดังนี้:

  1. เร่งความเร็ว (Accelerate): มอเตอร์หมุนด้วยความเร็ว OPR Speed (ความเร็วสูง) ไปในทิศทางที่ตั้งไว้ (OPR Direction)
  2. เจอ Dog (Dog ON): เมื่อเซนเซอร์ Dog (Near-point Dog) ถูกแตะ (ON) มอเตอร์จะลดความเร็วลงเหลือ Creep Speed (ความเร็วคลาน)
  3. ผ่าน Dog (Dog OFF): มอเตอร์จะวิ่งต่อไปด้วยความเร็วคลาน จนกว่าจะพ้นระยะเซนเซอร์ Dog (OFF)
  4. ค้นหา Zero Signal: หลังจากพ้น Dog แล้ว PLC จะรอรับสัญญาณ Zero (Z-phase) จาก Servo (หรือนับพัลส์แรก)
  5. หยุด (Stop): เมื่อเจอสัญญาณ Zero ครบตามจำนวนที่ตั้ง (ปกติคือ 1 ครั้ง) มอเตอร์จะหยุดทันที และรีเซ็ตค่า Current Address เป็น 0 (หรือค่าที่ตั้งไว้)
  6. จบการทำงาน: บิต Complete Flag (D2 ในแบบ FX5 หรือ SM8029 ในแบบ FX3) จะทำงาน
 

3. เจาะลึกคำสั่งเคลื่อนที่ (Positioning Instructions)

ส่วนนี้จะอธิบายคำสั่งเคลื่อนที่หลักๆ ที่ใช้บ่อย คือ แบบสัมพัทธ์ (Relative) และ แบบสัมบูรณ์ (Absolute)

3.1 DDRVI (Drive Relative) - การเคลื่อนที่แบบสัมพัทธ์

ใช้สั่งให้เคลื่อนที่ "เพิ่มขึ้นหรือลดลงจากจุดปัจจุบัน" (Incremental Movement)

ตัวอย่าง: ถ้าค่าปัจจุบันคือ 1000 และสั่ง DDRVI K500 ... มันจะวิ่งไปที่ 1500 (1000 + 500)
ถ้าสั่ง DDRVI K-500 ... มันจะวิ่งกลับมาที่ 500 (1000 - 500)

แบบที่ 1: FX5 Operand (แนะนำ)

รูปแบบคำสั่ง: [ DDRVI(หรือ DRVI) S1 S2 D1 D2 ]

  • S1 (Position): ระยะทางที่ต้องการเคลื่อนที่ (Pulse) เช่น K10000
  • S2 (Speed): ความเร็วในการเคลื่อนที่ (Hz) เช่น K5000
  • D1 (Axis No.): ระบุแกน (K1, K2...)
  • D2 (Complete Bit): บิตที่จะให้ ON เมื่อวิ่งถึงเป้าหมาย

ตัวอย่าง Ladder (FX5 Style):

       M1 (Start Move)
|------[ ]--------------------[ DDRVI  K10000  K5000  K1  M101 ]----|
                                      (Dist.) (Speed)(Ax1)(Done)

แบบที่ 2: FX3 Compatible Operand (แบบเดิม)

รูปแบบคำสั่ง: [ DDRVI S1 S2 D1 D2 ]

  • S1 (Position): ระยะทาง (Pulse)
  • S2 (Speed): ความเร็ว (Hz)
  • D1 (Pulse Output): ขาจ่ายพัลส์ (Y0)
  • D2 (Direction Output): ขากำหนดทิศทาง (Y4)

ตัวอย่าง Ladder (FX3 Style):

       M1 (Start Move)
|------[ ]--------------------[ DDRVI  K10000  K5000  Y0  Y4 ]----|

3.1.3 ขั้นตอนการทำงาน (Operation Cycle)

  1. เริ่มทำงาน (Start): เมื่อคำสั่งทำงาน มอเตอร์จะเริ่มหมุน
  2. เร่งความเร็ว (Accelerate): ความเร็วจะค่อยๆ เพิ่มขึ้นจนถึง Speed ตามเวลา Accel Time ที่ตั้งใน Parameter
  3. คงที่ (Constant): วิ่งด้วยความเร็วคงที่
  4. ลดความเร็ว (Decelerate): เมื่อใกล้ถึงระยะทางที่กำหนด จะเริ่มลดความเร็วลง ตามเวลา Decel Time
  5. หยุด (Stop): มอเตอร์หยุดหมุนเมื่อครบจำนวนพัลส์
  6. จบการทำงาน: บิต Complete Flag (D2 หรือ SM8029) จะทำงาน

3.2 DDRVA (Drive Absolute) - การเคลื่อนที่แบบสัมบูรณ์

ใช้สั่งให้วิ่งไปที่ "ตำแหน่งเจาะจงโดยอ้างอิงจากจุด Home (0)" (Absolute Movement)

ตัวอย่าง: ถ้าค่าปัจจุบันคือ 1000 และสั่ง DDRVA K5000 ... มันจะวิ่งไปข้างหน้าอีก 4000 เพื่อให้ไปหยุดที่เลข 5000
ถ้าสั่ง DDRVA K0 ... ไม่ว่าจะอยู่ที่ไหน มันจะวิ่งกลับไปที่จุด 0 เสมอ

แบบที่ 1: FX5 Operand (แนะนำ)

รูปแบบคำสั่ง: [ DDRVA(หรือ DRVA) S1 S2 D1 D2 ]

  • S1 (Target Position): ตำแหน่งปลายทางที่ต้องการไป (Address) เช่น K5000
  • S2 (Speed): ความเร็วในการเคลื่อนที่ (Hz)
  • D1 (Axis No.): ระบุแกน (K1, K2...)
  • D2 (Complete Bit): บิตที่จะให้ ON เมื่อวิ่งถึงเป้าหมาย

ตัวอย่าง Ladder (FX5 Style):

       M2 (Go to 5000)
|------[ ]--------------------[ DDRVA  K5000   K3000  K1  M102 ]----|
                                      (Target)(Speed)(Ax1)(Done)

แบบที่ 2: FX3 Compatible Operand (แบบเดิม)

รูปแบบคำสั่ง: [ DDRVA S1 S2 D1 D2 ]

  • S1 (Target Position): ตำแหน่งปลายทาง (Address)
  • S2 (Speed): ความเร็ว (Hz)
  • D1 (Pulse Output): ขาจ่ายพัลส์ (Y0)
  • D2 (Direction Output): ขากำหนดทิศทาง (Y4)

ตัวอย่าง Ladder (FX3 Style):

       M2 (Go to 5000)
|------[ ]--------------------[ DDRVA  K5000   K3000  Y0  Y4 ]----|

3.2.3 ขั้นตอนการทำงาน (Operation Cycle)

  1. คำนวณระยะ (Calculation): PLC จะเช็คตำแหน่งปัจจุบัน (Current Address) เทียบกับ เป้าหมาย (Target S1) เพื่อดูว่าต้องวิ่งไปทิศทางไหนและไกลเท่าไหร่
  2. เริ่มทำงาน (Start): มอเตอร์ออกตัวไปในทิศทางที่ถูกต้อง
  3. เร่ง-คงที่-ลดความเร็ว: ทำงานเหมือน DDRVI
  4. หยุด (Stop): มอเตอร์หยุดเมื่อค่า Current Address ตรงกับค่า Target (S1) เป๊ะๆ
  5. จบการทำงาน: บิต Complete Flag จะทำงาน

-- สิ้นสุดเอกสารฉบับแก้ไข --

Visitors: 11,478