สั่งงานด้วยสัญญาณ Pulse

ใช้เมื่อต้องการให้ตัวควบคุมภายนอก เช่น PLC หรือ motion controller สั่งมอเตอร์โดยตรงด้วยสัญญาณ pulse แทนการสั่งผ่านบัสสื่อสาร

Important

ตรวจรหัสรุ่นไดรฟ์ก่อน — ไดรฟ์บางรุ่นไม่มีขาอินพุต pulse เลย ตั้งค่าอย่างไรก็ไม่ทำงาน ดูที่ ข้อจำกัดของฮาร์ดแวร์

ตั้งยังไง — ตอบสั้น

ไม่ต้องคำนวณเอง ใช้เครื่องมือตั้งค่าไดรฟ์ แล้วกรอก 3 อย่าง

กรอกอะไร

หาจากไหน

ชนิด encoder ของมอเตอร์

อักษรในรหัสรุ่นบนฉลากมอเตอร์

อัตราทดเกียร์

สเปกเกียร์ เช่น 35

ความถี่สูงสุดของตัวส่ง pulse

สเปกตัวควบคุม เช่น 50 kHz

ถ้าต้องการให้หมุนกลับทาง ติ๊กช่อง "กลับทางหมุน" — ไม่ต้องสลับสาย

แล้วกดปุ่ม "⚡ ตั้งค่าลงไดรฟ์เลย" เครื่องมือจะอ่านค่าเดิมมาให้ดูเทียบก่อน แล้วเขียนให้ครบทุกค่าในคลิกเดียว

Tip

เครื่องมือจัดการค่าทะเบียนภายในของไดรฟ์ให้เอง คุณไม่ต้องรู้ว่ามันคือค่าอะไร

ผลที่จะได้

ตัวอย่าง: ตัวส่ง 50 kHz กับเกียร์ 35

ส่งกี่ pulse ได้เพลาออก 1 รอบ

35,000

เพลาออกหมุนสูงสุด

85.7 rpm

ความละเอียดต่อ 1 pulse

0.010 องศา

ส่งเต็มกำลัง 50 kHz แล้วได้ความเร็วสูงสุดพอดีพิกัดมอเตอร์ — สั่งเกินไม่ได้

ความเร็วสูงสุดขึ้นกับเกียร์

อัตราทดเกียร์

เพลาออกหมุนสูงสุด

ส่งกี่ pulse ต่อรอบ (ที่ 50 kHz)

35 : 1

85.7 rpm

35,000

20 : 1

150 rpm

20,000

10 : 1

300 rpm

10,000

ไม่มีเกียร์

3000 rpm

1,000

Note

ตัวส่งที่เร็วกว่าไม่ได้ทำให้ล้อหมุนเร็วขึ้น — ความเร็วสูงสุดถูกจำกัดด้วย พิกัดมอเตอร์ (3000 rpm) หารด้วยอัตราทดเกียร์เท่านั้น

ตัวส่งที่เร็วกว่าให้ผลเป็นความละเอียดที่มากขึ้น คือส่ง pulse ถี่ขึ้นต่อหนึ่งรอบ

อย่าลืม

ตั้งอะไร

เป็นเท่าไหร่

รูปแบบสัญญาณ

ตามที่ตัวส่งใช้ — ส่วนใหญ่คือ Pulse + Direction

เครื่องมือตั้งค่าที่เหลือให้เองหมด แล้ว กด Save + ปิด-เปิดไฟไดรฟ์ ไม่งั้นค่าหายตอนดับไฟ


หลักการ (รายละเอียด)

จำนวน pulse ที่ส่งเข้าไป คูณด้วยอัตราทดอิเล็กทรอนิกส์ จะได้ระยะที่มอเตอร์หมุน

จำนวน pulse × (A ÷ B) = ระยะที่มอเตอร์หมุน (หน่วย inc)

A และ B ไม่มีค่าตั้งต้นจากโรงงาน คู่มือระบุว่าเป็น user define เพราะขึ้นกับมอเตอร์ เกียร์ และตัวส่ง pulse ที่แต่ละคนใช้ — เครื่องมือตั้งค่าไดรฟ์ คำนวณให้ได้


พารามิเตอร์ที่ต้องตั้ง

A — Gear Factor (ตัวตั้ง)

รายการ

ค่า

ชนิดข้อมูล

Integer16 (มีเครื่องหมาย)

ช่วงที่ตั้งได้

−32768 ถึง 32767

ค่าเริ่มต้น

ไม่มี ต้องตั้งเอง

ตัวตั้งของอัตราทด ติดลบได้ ซึ่งเป็นวิธีกลับทิศหมุนโดยไม่ต้องสลับสาย

ยิ่งค่ามาก มอเตอร์ยิ่งหมุนไกลต่อหนึ่ง pulse — แปลว่าส่ง pulse น้อยลง แต่ความละเอียดหยาบขึ้น

B — Gear Divider (ตัวหาร)

รายการ

ค่า

ชนิดข้อมูล

Unsigned16 (ไม่มีเครื่องหมาย)

ช่วงที่ตั้งได้

1 ถึง 65535

ค่าเริ่มต้น

ไม่มี ต้องตั้งเอง

Warning

ห้ามตั้งเป็น 0 — เป็นตัวหาร ถ้าเป็นศูนย์อัตราทดจะไม่มีความหมาย

ส่วนใหญ่ตั้งเป็น 1 แล้วปรับที่ A อย่างเดียวก็พอ จะใช้ B เมื่ออัตราทดที่ต้องการไม่ลงตัวเป็นจำนวนเต็ม

รูปแบบสัญญาณ — PD_CW

รูปแบบการต่อสายจากตัวส่ง pulse ต้องตรงกับที่ตัวควบคุมส่งมาจริง คำนวณแทนไม่ได้ ต้องดูจากสเปกของตัวส่ง

ค่า

รูปแบบ

อธิบาย

0

CW / CCW

สองสายแยกกัน สายหนึ่งสั่งหมุนตามเข็ม อีกสายทวนเข็ม

1

Pulse + Direction

สายหนึ่งส่ง pulse อีกสายบอกทิศ — นิยมที่สุด

2

A / B

สัญญาณสองเฟสแบบ encoder

10

422 — สอง pulse

แบบ differential ทนสัญญาณรบกวนกว่า

11

422 — Pulse + Direction

12

422 — encoder

Warning

คู่มือระบุขนาดข้อมูลของค่านี้ไม่ตรงกันสองที่ — บทหนึ่งบอก 1 ไบต์ อีกบทบอก 2 ไบต์

กด Read ก่อนเขียนเสมอ เพราะไดรฟ์จะบอกขนาดจริงกลับมาเอง ไม่ต้องเดา

PD_Filter — ตัวกรองสัญญาณ

รายการ

ค่า

ชนิดข้อมูล

Unsigned16

หน่วย

มิลลิวินาที

กรองสัญญาณรบกวนบนสาย pulse ใช้เมื่อสายยาวหรือเดินใกล้สายไฟกำลัง

ตั้งสูงเกินไปจะหน่วง — ไดรฟ์ตอบสนองช้าลงตามค่าที่ตั้ง เริ่มจากค่าต่ำก่อน แล้วค่อยเพิ่มถ้ายังเจอสัญญาณรบกวน

Frequency_Check — เพดานความถี่

รายการ

ค่า

ชนิดข้อมูล

Unsigned16

หน่วย

pulse ต่อมิลลิวินาที

ถ้านับ pulse ใน 1 มิลลิวินาทีได้เกินค่านี้ ไดรฟ์จะแจ้ง over frequency error

เป็นตัวป้องกันไม่ให้สัญญาณรบกวนถูกนับเป็น pulse จริงจนมอเตอร์พุ่ง

การแปลงหน่วย: ความถี่ 200 kHz = 200 pulse/ms ควรตั้งสูงกว่าความถี่ที่ใช้จริงราว 50% เผื่อไว้


ค่าที่ต้องตั้งคู่กันเสมอ

โหมด pulse ไม่ได้ใช้แค่ค่าในกลุ่มข้างบน ต้องตั้ง 2 อย่างนี้ด้วย

โหมดการทำงาน

ตั้งเป็น -4 (pulse train control) — ถ้าไม่ตั้ง ค่าอัตราทดที่ตั้งไว้จะไม่มีผลเลย

ค่าอื่นที่ไดรฟ์รับ: 1 = ตำแหน่ง · 3 = ความเร็ว · 4 = แรงบิด · 6 = กลับจุดอ้างอิง

Controlword

Warning

โหมด pulse ใช้ 0x2F ไม่ใช่ 0x0F เหมือนโหมดอื่น

ถ้าใช้ 0x0F มอเตอร์จะไม่ enable แล้วมักไปไล่หาสาเหตุผิดจุดที่อัตราทด


ค่าที่ใช้ตรวจสอบ (อ่านอย่างเดียว)

Master_Speed

ความเร็ว pulse ที่วิ่งเข้ามาจริง หน่วย pulse/ms ยังไม่คูณอัตราทด

Important

นี่คือค่าแรกที่ควรดูเวลาต่อแล้วมอเตอร์ไม่หมุน

อ่านได้ 0 = สัญญาณยังมาไม่ถึงไดรฟ์ → ปัญหาอยู่ที่สายหรือตัวส่ง ไม่ต้องเสียเวลาไล่หาที่อัตราทดหรือรูปแบบสัญญาณเลย

Slave_Speed

ความเร็วหลังคูณอัตราทดแล้ว หน่วยเดียวกัน

เทียบกับ Master_Speed เพื่อยืนยันว่าอัตราทดที่ตั้งไว้ทำงานตามที่คิด


ข้อจำกัดของฮาร์ดแวร์

ค่าตามคู่มือ

ความถี่สูงสุดของขาอินพุต pulse

ต่ำกว่า 500 kHz

แรงดันอินพุต

3.3 – 24 V

ขา DIN ธรรมดา (IN1–IN4)

ต่ำกว่า 1 kHz — ใช้รับ pulse ไม่ได้

ความเร็วพิกัดมอเตอร์

3000 rpm (เลข 30 ในรหัสรุ่น)

Warning

ไดรฟ์บางรุ่นไม่มีขาอินพุต pulse

คู่มือระบุว่ารุ่นที่ลงท้ายด้วย C และ E บางแบบรองรับไฟเลี้ยงลอจิก 24V แต่ ไม่รองรับฟังก์ชัน pulse input — ตั้งค่าอย่างไรก็ไม่ทำงาน

ดูรหัสรุ่นเต็มบนฉลากไดรฟ์ก่อนเริ่ม

อย่าออกแบบให้วิ่งที่ 500 kHz เต็มเพดาน

500 kHz คือค่าที่ไดรฟ์ รับได้ ไม่ใช่ค่าที่ควรใช้จริง

  • คู่มือเขียนว่า "ต่ำกว่า 500 kHz" ไม่ใช่ "เท่ากับ"

  • ตัวส่ง pulse ฝั่งผู้ใช้มักเป็นคอขวดก่อน (แบบ open-collector ทั่วไปจบที่ราว 100 kHz)

  • ยิ่งความถี่สูง สายยิ่งต้องสั้นและควรเป็นแบบ differential

แนะนำออกแบบให้อยู่ที่ 100–200 kHz แล้วใช้ค่า A ดันความถี่ลงมา


ข้อควรรู้

Note

อัตราทดเกียร์ไม่มีผลกับข้อจำกัดความถี่

เพราะ pulse ไปขับที่ตัวมอเตอร์ ส่วนเกียร์อยู่ปลายน้ำ — เกียร์มีผลแค่กับจำนวน pulse ต่อรอบเพลาออก และความเร็วสูงสุดของเพลาออก ไม่ได้ทำให้ส่ง pulse ช้าลง

ความละเอียดของ encoder เปลี่ยนทุกอย่าง

จำนวน inc ต่อรอบมอเตอร์ขึ้นกับ encoder ที่ติดมากับมอเตอร์ ดูจากอักษรในรหัสรุ่น

อักษร

ชนิด encoder

inc ต่อรอบ

A

incremental 2500 PPR

10,000

M

magnetoelectric 16 บิต

65,536

K

absolute 16 บิต

65,536

ต่างกัน 6.5 เท่า — ใช้ค่าผิดแล้วอัตราทดจะผิดตามทั้งหมด อ่านจากฉลากมอเตอร์เท่านั้น ไดรฟ์ไม่มีค่านี้ให้อ่าน


ลำดับที่แนะนำตอนตั้งจริง

  1. อ่านรหัสรุ่น ไดรฟ์และมอเตอร์จากฉลาก

  2. กด Read ที่รูปแบบสัญญาณ เพื่อให้ไดรฟ์บอกขนาดข้อมูลจริง

  3. คำนวณ A กับ B ด้วยเครื่องมือตั้งค่าไดรฟ์

  4. ตั้ง PD_Filter ถ้าสายยาวหรือมีสัญญาณรบกวน

  5. ตั้ง Frequency_Check ให้สูงกว่าความถี่ที่ใช้จริง

  6. ตั้ง โหมด = −4 และ Controlword = 0x2F

  7. อ่าน Master_Speed ยืนยันว่า pulse มาถึงไดรฟ์จริง

  8. กด Save แล้วปิด-เปิดไฟไดรฟ์ ไม่งั้นค่าหายตอนดับไฟ