สั่งงานด้วยสัญญาณ Pulse
ใช้เมื่อต้องการให้ตัวควบคุมภายนอก เช่น PLC หรือ motion controller สั่งมอเตอร์โดยตรงด้วยสัญญาณ pulse แทนการสั่งผ่านบัสสื่อสาร
Important
ตรวจรหัสรุ่นไดรฟ์ก่อน — ไดรฟ์บางรุ่นไม่มีขาอินพุต pulse เลย ตั้งค่าอย่างไรก็ไม่ทำงาน ดูที่ ข้อจำกัดของฮาร์ดแวร์
ตั้งยังไง — ตอบสั้น
ไม่ต้องคำนวณเอง ใช้เครื่องมือตั้งค่าไดรฟ์ แล้วกรอก 3 อย่าง
กรอกอะไร |
หาจากไหน |
|---|---|
ชนิด encoder ของมอเตอร์ |
อักษรในรหัสรุ่นบนฉลากมอเตอร์ |
อัตราทดเกียร์ |
สเปกเกียร์ เช่น |
ความถี่สูงสุดของตัวส่ง pulse |
สเปกตัวควบคุม เช่น |
ถ้าต้องการให้หมุนกลับทาง ติ๊กช่อง "กลับทางหมุน" — ไม่ต้องสลับสาย
แล้วกดปุ่ม "⚡ ตั้งค่าลงไดรฟ์เลย" เครื่องมือจะอ่านค่าเดิมมาให้ดูเทียบก่อน แล้วเขียนให้ครบทุกค่าในคลิกเดียว
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 ต้องตรงกับที่ตัวควบคุมส่งมาจริง คำนวณแทนไม่ได้ ต้องดูจากสเปกของตัวส่ง
ค่า |
รูปแบบ |
อธิบาย |
|---|---|---|
|
CW / CCW |
สองสายแยกกัน สายหนึ่งสั่งหมุนตามเข็ม อีกสายทวนเข็ม |
|
Pulse + Direction |
สายหนึ่งส่ง pulse อีกสายบอกทิศ — นิยมที่สุด |
|
A / B |
สัญญาณสองเฟสแบบ encoder |
|
422 — สอง pulse |
แบบ differential ทนสัญญาณรบกวนกว่า |
|
422 — Pulse + Direction |
|
|
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 (เลข |
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 ต่อรอบ |
|---|---|---|
|
incremental 2500 PPR |
10,000 |
|
magnetoelectric 16 บิต |
65,536 |
|
absolute 16 บิต |
65,536 |
ต่างกัน 6.5 เท่า — ใช้ค่าผิดแล้วอัตราทดจะผิดตามทั้งหมด อ่านจากฉลากมอเตอร์เท่านั้น ไดรฟ์ไม่มีค่านี้ให้อ่าน
ลำดับที่แนะนำตอนตั้งจริง
อ่านรหัสรุ่น ไดรฟ์และมอเตอร์จากฉลาก
กด Read ที่รูปแบบสัญญาณ เพื่อให้ไดรฟ์บอกขนาดข้อมูลจริง
คำนวณ A กับ B ด้วยเครื่องมือตั้งค่าไดรฟ์
ตั้ง PD_Filter ถ้าสายยาวหรือมีสัญญาณรบกวน
ตั้ง Frequency_Check ให้สูงกว่าความถี่ที่ใช้จริง
ตั้ง โหมด = −4 และ Controlword = 0x2F
อ่าน Master_Speed ยืนยันว่า pulse มาถึงไดรฟ์จริง
กด Save แล้วปิด-เปิดไฟไดรฟ์ ไม่งั้นค่าหายตอนดับไฟ