บัญชี

PLC
เริ่มต้น
20 นาที

คำสั่งคุม Servo

เรียนรู้การควบคุม Servo Motor ด้วยคำสั่ง PLSF และ PLSY ของ PLC ตั้งแต่การหมุนต่อเนื่อง การกำหนดจำนวนรอบ การคำนวณ Pulse ไปจนถึงการสร้าง Sequence

อัพเดทล่าสุด: 1/2/2569

ราคาชุดอุปกรณ์

฿13,380

การควบคุม Servo Motor ด้วยคำสั่ง Position Commands

บทเรียนนี้จะสอนการใช้คำสั่ง High Speed Output ของ PLC เพื่อควบคุมตัว Servo Motor ในแบบต่างๆ ตั้งแต่การหมุนแบบต่อเนื่อง การกำหนดจำนวนรอบ ไปจนถึงการสร้าง Sequence การเคลื่อนที่แบบอัตโนมัติ

ความเข้าใจเบื้องต้นเกี่ยวกับ Servo Control

หลักการทำงานของ Servo Drive

ค่า Pulse per revolution เริ่มต้นของ Drive คือ 10,000 Pulse = 1 รอบการหมุน

การคำนวณความเร็วรอบ:

  • ความถี่ 10,000 Hz = หมุน 1 รอบต่อวินาที
  • ความถี่ 5,000 Hz = หมุน 1 รอบต่อ 2 วินาที
  • ความถี่ 20,000 Hz = หมุน 2 รอบต่อวินาที

ขีดจำกัด PLC:

  • ความถี่สูงสุด: 200 kHz (เพียงพอสำหรับงานส่วนใหญ่)

คำสั่ง PLSF - การหมุนแบบต่อเนื่อง

คำสั่ง PLSF ใช้สำหรับสั่งให้ Servo หมุนแบบต่อเนื่องด้วยความถี่ที่กำหนด

การใช้งาน PLSF

PLSF K5000 Y0

Parameter:

  • K5000: ความถี่ 5,000 Hz
  • Y0: ขา Output สำหรับส่ง Pulse

ขั้นตอนการทำงาน

  1. Enable Servo ด้วย M501
  2. เรียกคำสั่ง PLSF เพื่อเริ่มการหมุน
  3. ปรับความเร็ว โดยเปลี่ยนค่าความถี่
  4. หยุดการทำงาน โดย Reset M501

คำสั่ง PLSY - การหมุนจำนวนรอบที่กำหนด

คำสั่ง PLSY ให้ความสามารถในการกำหนดจำนวน Pulse ที่ต้องการออก

การใช้งาน PLSY

PLSY K5000 K20000 Y0

Parameter:

  • K5000: ความถี่ 5,000 Hz
  • K20000: จำนวน Pulse (20,000 = 2 รอบ)
  • Y0: ขา Output

ตัวอย่างการคำนวณ

  • 1 รอบ = 10,000 Pulse
  • 2 รอบ = 20,000 Pulse
  • 0.5 รอบ = 5,000 Pulse

Special Registers สำหรับ Servo Control

Pulse Output Status Register

แกนStatus Registerความหมาย
Y0M8134สถานะการออก Pulse
Y1M8135สถานะการออก Pulse
Y2M8136สถานะการออก Pulse

การใช้งาน:

  • Register เป็น ON เมื่อกำลังออก Pulse
  • Register เป็น OFF เมื่อหยุดการทำงาน
  • เป็น Read Only ไม่สามารถแก้ไขได้

Pulse Accumulation Counter

แกนCounter Registerความหมาย
Y0D8140นับจำนวน Pulse ที่ออกแล้ว
Y1D8142นับจำนวน Pulse ที่ออกแล้ว
Y2D8144นับจำนวน Pulse ที่ออกแล้ว

คุณสมบัติ:

  • เป็นแบบ Double Word
  • ใช้ Monitor ตำแหน่ง ปัจจุบันของ Servo
  • เก็บค่าสะสมการออก Pulse

คำสั่ง DRVI - การเคลื่อนที่แบบ Increment

คำสั่ง DRVI ใช้สำหรับการเคลื่อนที่แบบเพิ่มทีละขั้น พร้อมการควบคุม Acceleration และ Deceleration

การใช้งาน DRVI

DRVI K5000 K20000 K1000 K1000 Y0 Y4

Parameter:

  1. K5000: ความถี่เป้าหมาย (Hz)
  2. K20000: จำนวน Pulse (2 รอบ)
  3. K1000: ค่า Acceleration (ms)
  4. K1000: ค่า Deceleration (ms)
  5. Y0: ขา Pulse Output
  6. Y4: ขา Direction Output

การกำหนดทิศทาง

หมุนทางเดิม:

DRVI K5000 K20000 K1000 K1000 Y0 Y4

หมุนทางกลับ:

DRVI K5000 K-20000 K1000 K1000 Y0 Y4

เคล็ดลับ
หากต้องการตอบสนองแบบ Real-time สามารถเรียกใช้คำสั่ง EDRVI แทนได้

คำสั่ง DRVA - การเคลื่อนที่แบบ Absolute

คำสั่ง DRVA ใช้สำหรับการเคลื่อนที่ไปยังตำแหน่งที่กำหนดแบบสัมบูรณ์

การใช้งาน DRVA

DRVA K10000 K100000 K1000 K1000 Y0 Y4

การทำงาน:

  • เคลื่อนที่ไปยังตำแหน่งสัมบูรณ์ 100,000 Pulse
  • ไม่ขึ้นกับตำแหน่งปัจจุบัน
  • เหมาะสำหรับกลับสู่จุดเริ่มต้น

เคล็ดลับ
หากต้องการตอบสนองแบบ Real-time สามารถเรียกใช้คำสั่ง EDRVA แทนได้

การ Reset ตำแหน่ง

DMOV K0 D8140  // Reset position counter เป็น 0

คำสั่ง ZRN - Homing Operation

คำสั่ง ZRN ใช้สำหรับการกลับสู่จุดเริ่มต้นโดยอ้างอิงจาก Hardware Sensor

การใช้งาน ZRN

ZRN K-1000 K-1000 K1000 K1000 X0 Y0 Y4

Parameter:

  1. K-1000: ความเร็วในการหา Home
  2. K-1000: ความเร็ว Creep (หลังเจอ Sensor)
  3. K1000: Acceleration
  4. K1000: Deceleration
  5. X0: Home Sensor Input
  6. Y0: Pulse Output
  7. Y4: Direction Output

ขั้นตอนการทำงาน Homing

  1. หมุนหาจุด Home ด้วยความเร็วปกติ
  2. เจอ Sensor แล้วเปลี่ยนเป็นความเร็ว Creep
  3. หมุนต่อ จนกว่าจะออกจาก Sensor
  4. หยุดที่ขอบ Sensor เป็นจุด Home

การสร้าง Servo Sequence

ตัวอย่าง Multi-Step Sequence

// Stage 0: เริ่มต้น Sequence
LD M600
LDD= D600 K0
LDI M601 (NC)
MOV K1 D600

// State 1: เคลื่อนที่ 2 รอบ
LDD= D600 K1
DRVA K10000 K20000 K1000 K1000 Y0 Y4

// เช็ค Complete
LDD= D8140 K20000
LD M8134 (Falling Edge)
MOV K2 D600

// Stage 2: เคลื่อนที่อีก 1 รอบ (ช้า)
LDD= D600 K2  
DRVA K5000 K30000 K1000 K1000 Y0 Y4

// เช็ค Complete
LDD= D8140 K30000
LD M8134 (Falling Edge)
MOV K3 D600

// Stage 3: กลับจุดเริ่มต้น
LDD= D600 K3
DRVA K10000 K0 K1000 K1000 Y0 Y4

// เช็ค Complete
LDD= D8140 K0
LD M8134 (Falling Edge)
MOV K1 D600

การจัดการ Sequence Control

ข้อควรระวัง:

  • ตรวจสอบ Complete Status ก่อนขั้นตอนถัดไป
  • ใช้ขอบขาลงของ M8134 เพื่อเช็คว่าการเคลื่อนที่เสร็จสิ้น
  • เช็ค D8140 เพื่อยืนยันตำแหน่ง

การตั้งค่า Drive Parameter

การเปลี่ยนโหมด Drive

เข้า Drive Parameter:

P05.17 = 2  // เปลี่ยนเป็นโหมด Position Control

หมายเหตุ: ต้องปิด-เปิด Drive ใหม่หลังเปลี่ยนค่า

การปรับแต่งค่าต่างๆ

ค่าที่สามารถปรับได้:

  • Pulse per revolution
  • Inertia compensation
  • Acceleration/Deceleration curves

การแก้ปัญหาที่พบบ่อย

ปัญหา: Servo ไม่หมุนตามที่กำหนด

สาเหตุและแนวแก้:

  1. ตรวจสอบการ Enable - ให้แน่ใจว่า M501 ทำงาน
  2. เช็ค Drive Parameter - ยืนยันค่า P05.17 = 2
  3. ตรวจสอบ Pulse per revolution - อาจต้องปรับค่าให้เหมาะสม

ปัญหา: Homing ไม่แม่นยำ

แนวแก้:

  1. ลดความเร็ว Creep ให้น้อยลง
  2. เช็ค Sensor Response - ให้แน่ใจว่า Sensor ทำงานปกติ
  3. ปรับ Acceleration/Deceleration ให้เหมาะสม

เคล็ดลับการใช้งาน

การออกแบบ Motion Profile

  1. เริ่มด้วยความเร็วต่ำ เพื่อทดสอบระบบ
  2. ใช้ Acceleration ที่เหมาะสม ป้องกันการสั่นสะเทือน
  3. เพิ่ม Safety Margin สำหรับ Position Accuracy

การ Monitor และ Debug

  • ใช้ D8140 เพื่อ Monitor ตำแหน่งแบบ Real-time
  • ใช้ M8134 เพื่อเช็ค Motion Status
  • เก็บ Log การเคลื่อนที่เพื่อวิเคราะห์ปัญหา

สรุป

การควบคุม Servo Motor ด้วย PLC ต้องเข้าใจหลักการทำงานของคำสั่งแต่ละประเภท:

  • PLSF/PLSY สำหรับการหมุนพื้นฐาน
  • DRVI หรือ EDRVI สำหรับการเคลื่อนที่แบบ Increment
  • DRVA หรือ EDRVA สำหรับการเคลื่อนที่แบบ Absolute
  • ZRN สำหรับ Homing Operation

การใช้ Special Registers เช่น M8134 และ D8140 จะช่วยในการ Monitor และควบคุม Sequence ได้อย่างมีประสิทธิภาพ ทำให้สามารถสร้างระบบอัตโนมัติที่มีความแม่นยำและเชื่อถือได้