Author Topic: มารู้จัก ค่า Tolerance กันครับ  (Read 2004 times)

0 Members and 1 Guest are viewing this topic.

Offline somphop

  • Full Member
  • ***
  • Thank You
  • -Given: 16
  • -Receive: 105
  • Posts: 118
อ้างอิงจากกระทู้
http://www.cncroom.com/forum/index.php/topic,127.0.html
ที่บอกว่า






ปัญหานี้แก้ได้ตอนที่เราใช้โปรแกรม CAM ต่างๆ สร้างทูลพาท ครับ

เราต้องรู้อยู่แล้วว่าเครื่อง cnc ของเรามีความละเอียดในการเคลื่อนที่ของแต่ละแกนเท่าไหร่

กรณีที่แต่ละแกนไม่เท่ากัน เลือกเอาค่าที่หยาบที่สุด


     อย่างเช่นเครื่องของท่าน ไดนามิค เท่ากับ 0.05 มม

 เราต้องเข้าไปเซ็ตค่า Tolerance  ในโปรแกรม CAM ต่างๆ เสียก่อน 

ค่า Tolerance เป็นค่าทีบอกให้ CAM รู้ว่าเครื่องที่ใช้มีความละเอียดในการเคลื่อนที่เท่าไหร่ จะได้คำนวนทูลพาทแต่ละตำแหน่ง ให้ไม่น้อยเกินกว่าความสามารถที่เครื่อง cnc ฟีดได้  จะได้ไม่เกิดค่าเออเรอร์ สะสม


ถ้าใช้มาสเตอร์แคม ก็เข้าไปที่เมนู Setting > Configulating > Tolerance
ตัวอย่าง

เป็นค่าดีฟ้อลที่มากับโปรแกรม ยังไม่แก้



การเซ็ตค่าโปรแกรมให้เราเลือกตั้งค่าต่างๆได้อย่างละเอียดมาก แต่เอาง่ายๆคือเซ็ตที่  System Torerance ที่เดียว แล้วที่เหลือมันเลือกให้เอง ในที่นี้คือ 0.05 มม







จบข่าว


Offline somphop

  • Full Member
  • ***
  • Thank You
  • -Given: 16
  • -Receive: 105
  • Posts: 118
Re: มารู้จัก ค่า Tolerance กันครับ
« Reply #1 on: February 23, 2009, 03:52:18 PM »
ต่ออีกนิดเผื่อใครใช้ อาร์ทแคม   ก็เหมือนกัน จะมีไดอะร้อก ให้ป้อนตอนทำ ทูลพาทเช่นกัน ความหมายคล้ายกัน







Offline งูๆปลาๆ

  • Jr. Member
  • **
  • Thank You
  • -Given: 41
  • -Receive: 14
  • Posts: 22
Re: มารู้จัก ค่า Tolerance กันครับ
« Reply #2 on: February 25, 2009, 08:09:07 PM »
 :D เพิ่งจะทราบ ขอบคุณมากครับ _/\_

Offline dynamic

  • Jr. Member
  • **
  • Thank You
  • -Given: 8
  • -Receive: 47
  • Posts: 39
Re: มารู้จัก ค่า Tolerance กันครับ
« Reply #3 on: February 26, 2009, 03:02:03 AM »
อ้างอิงจากกระทู้
http://www.cncroom.com/forum/index.php/topic,127.0.html
ที่บอกว่า






ปัญหานี้แก้ได้ตอนที่เราใช้โปรแกรม CAM ต่างๆ สร้างทูลพาท ครับ

เราต้องรู้อยู่แล้วว่าเครื่อง cnc ของเรามีความละเอียดในการเคลื่อนที่ของแต่ละแกนเท่าไหร่

กรณีที่แต่ละแกนไม่เท่ากัน เลือกเอาค่าที่หยาบที่สุด


     อย่างเช่นเครื่องของท่าน ไดนามิค เท่ากับ 0.05 มม

 เราต้องเข้าไปเซ็ตค่า Tolerance  ในโปรแกรม CAM ต่างๆ เสียก่อน 

ค่า Tolerance เป็นค่าทีบอกให้ CAM รู้ว่าเครื่องที่ใช้มีความละเอียดในการเคลื่อนที่เท่าไหร่ จะได้คำนวนทูลพาทแต่ละตำแหน่ง ให้ไม่น้อยเกินกว่าความสามารถที่เครื่อง cnc ฟีดได้  จะได้ไม่เกิดค่าเออเรอร์ สะสม


ถ้าใช้มาสเตอร์แคม ก็เข้าไปที่เมนู Setting > Configulating > Tolerance
ตัวอย่าง

เป็นค่าดีฟ้อลที่มากับโปรแกรม ยังไม่แก้



การเซ็ตค่าโปรแกรมให้เราเลือกตั้งค่าต่างๆได้อย่างละเอียดมาก แต่เอาง่ายๆคือเซ็ตที่  System Torerance ที่เดียว แล้วที่เหลือมันเลือกให้เอง ในที่นี้คือ 0.05 มม







จบข่าว



ผมขอคำอธิบาย error สะสมหน่อยครับคิดอย่างไร

Offline niranam

  • *Banned*
  • Newbie
  • *
  • Thank You
  • -Given: 69
  • -Receive: 202
  • Posts: 2
Re: มารู้จัก ค่า Tolerance กันครับ
« Reply #4 on: February 26, 2009, 08:40:48 AM »
ขอบคุณครับ

Offline somphop

  • Full Member
  • ***
  • Thank You
  • -Given: 16
  • -Receive: 105
  • Posts: 118
Re: มารู้จัก ค่า Tolerance กันครับ
« Reply #5 on: February 26, 2009, 10:13:15 AM »
ผมใช้คำว่าเออเร่อร์สะสมน่าจะไม่ค่อยถูกต้องนักครับ  :-* แต่จะเป็นค่าเออเร่อร์หรือความผิดเพี้ยน ณ จุดนั้นๆ เท่านั้น

คือการอ้างอิงตำแหน่งของโปรแกรมคุมเครื่องCNC ที่เราใช้กันมักจะใช้จุดอ้างอิงตลอดการทำงาน ที่จุดๆเดียวในที่นี้คือ x0 y0 z0 ที่เราต้องเซ็ตให้เครื่องรับรู้ในครั้งแรกที่เซ็ตชิ้นงานเข้า-กับเครื่อง และทุกครั้งที่แกนมีการเลื่อนจากตำแหน่งด้วยสาเหตุอื่นที่ไม่ใช่การการสั่งงานของโปรแกรมควบคุม

ทีนี้เมื่อสมมุติว่าเครื่องมีความละเอียดเท่ากับ 0.05 มม/สเต็บ ถ้าเราสั่งให้หัวกัด ขยับไปที่ x0.03 เครื่องก็ยังคงอยู่ที่ x0 ถ้ากำลังเซาะร่องอยู่ร่องที่ได้ก็จะมีตำแหน่งคลาดเคลื่อนจากที่เราตั้งใจไว้ 0.03 มม
แต่เมื่อเราสั่ง x0.38 เครื่องจะเลื่อนหัวกัดไปที่ x0.05 ซึ่งก็ไม่ตรงที่เราต้องการเป๊ะๆ  แต่เมื่อคำสั่งถัดไป เป็น x10 ณ ตำแหน่งนี้ เครื่องก็จะเคลื่อนมาที่ x10 เป๊ะโดยไม่มีความผิดพลาด แต่เมื่อใดก็ตามที่gcode สั่งให้เคลื่อนที่สเต้บนั้นน้อยกว่า 0.038 อีกก็จะมีค่าเออเร่อร์เกิดอีกครั้ง ณ จุดนั้น และจะกลับมาถูกต้องอีกครั้งเมื่อมีการสั่งงานให้เคลื่อนไปในตำแหน่งที่ลงตัวกับสเต็บที่เครื่องทำได้   คือจะไม่ส่งผลให้เกิดการผิดตำแหน่งเหมือนกับการ หลุดสเต็บของมอเตอร์ ที่ตำแหน่งต่างๆหลังจากมีการหลุดสเต็บจะเพี้ยนไปทั้งหมด
และการเซ็ตค่า Telerance  ไม่ให้ละเอียดเกินกว่าที่เครื่อง CNC จะเคลื่อนที่ได้จริงๆ จะช่วยลดเวลาในการคำนวน และลดขนาดไฟล์ Gcode ลงได้ นั่นคือไม่ต้องคำนวนตำแหน่งที่เล็กเกินกว่าความสามารถของเครื่องออกมา ซึ่งถึงจะคำนวนมาให้เครื่องก็ไม่ขยับอยู่ดี
 :'(

Offline Weerasak

  • Global Moderator
  • Hero Member
  • *****
  • Thank You
  • -Given: 909
  • -Receive: 1822
  • Posts: 1603
Re: มารู้จัก ค่า Tolerance กันครับ
« Reply #6 on: February 27, 2009, 12:08:34 AM »
สรุปว่าไม่มีเออเร่อร์สะสม ถ้าจะผิดก็ผิดพลาดที่เศษเสี้ยวของตัวเลขที่ถูกปัดทิ้ง

ผมเคยเขียนกระทู้โต้ตอบเรื่องทำนองเดียวกันกับ Greg ผู้ประดิษฐ์ SmoothStepper ซึ่ง quote ที่ 2 จากข้อความด้านล่าง ได้อธิบายสิ่งคล้ายกัน ตรงนี้น่าเป็นหลักฐานว่า Mach3 ทำงานเหมือนกับที่คุณสมภพอธิบายไว้

ต่อไปนี้เป็นการอธิบายสิ่งที่เกิดขึ้นที่ปลายเศษเสี้ยวของแกน x ที่วิ่งไปและวิ่งกลับ จาก x0 -> x0.75 -> x0

Mach3 ประมวลพิกัดต่างๆของคำสั่ง G-code เป็นแบบเลขจุดทศนิยมและทำงานอิสระจากการเอาท์พุทให้สเต็ปปิ้งมอเตอร์ เช่นเมื่อการเคลื่อนที่เช่นแกน x วิ่งผ่านค่าย่อยสเต็ปที่เล็กสุด(ในที่นี้สมมุติให้เป็น 0.5) เช่นวิ่งจาก 0 ไป 0.75 ก็จะมีสัญญาณ step pulse ออกไปให้ตัวขับ (driver) สั่งให้มอเตอร์ขยับสเต็ป และยังวิ่งต่อไปที่พิกัด 0.75 แล้ววิ่งกลับ ซึ่งตรงนี้็ยังไม่มีอะไรเกิดกับส่วนที่เกินมา 0.25 (ในความเป็นจริง Mach3 ได้ประมวลและวิ่งไปถึง 0.75 จริงแต่ pulse ออกแค่หนึ่ง pulse ที่ตำแหน่ง 0.5 และวิ่งกลับ)

ขณะวิ่งกลับ สัญญาณ dir จะถูกเปลี่ยนขั้วและเมื่อ x วิ่งผ่านจุดตัดในขากลับคือ 0.5 ก็มีสัญญาณ step pulse เกิดขึ้นอีกที และได้เปลี่ยนทิศไปก่อนหน้านี้แล้วจะทำให้สเต็ปปิ้งขยับกลับที่เดิม

ถ้าการวิ่งจาก x0 ไป x2.33 และกลับมา x-1.60 และ pulse จะเกิดขึ้นตามจุดต่อไปนี้ครับ
-->                    0.0  0.5  1.0  1.5  2.00
  -1.5 -1.0 -0.5   0.0  0.5  1.0  1.5  2.00  <--

หมายเหตุ ตัวเลขด้านบนสมมุติให้หน่วยย่อยสเต็ปอยู่ที่ 0.5 ครับ


สังเกตว่าภายใน Mach3 จะไม่มี error สะสม เพียงแต่เศษเสี้ยวของปลายสุดจะถูกเพิกเฉย

http://www.warp9td.com/index.php?option=com_fireboard&Itemid=33&func=view&id=992&catid=7&limit=6&limitstart=18#1004
----------------------------------------------
Hi Greg,

Quote
I love your ascii art. Good job
Thank you for your compliment.

Quote
That part you might be missing is that (assuming your drawing reflects the way the SS did it in prior plugins) the ‘v’ is at about 0.375 steps past the point where it output a step. Let's say it stopped at ‘v’, sat there for a while, and then Mach commanded it to move 0.7 steps further. As it passes 0.5 it will toggle the step high. When it passes 1.0 it will bring the step low and stop 0.075 steps beyond. Remember, Mach does everything in floating point. The SS maintains the fractional component.

I understand you now and the meaning of ‘asserted’. Mach3 control the all motions value, SS plug-in watch for increase or decrease of the position value, x,y,z… until the value across over tick point, here is 1.0, then SS plug-in manage to generate transition output signal. This is why you have to force the step signal back to the initial level when it asserted for sometime.

But why Mach3 with PP doesn’t have this problem Or because it been fixed like the way you did long ago Or it just gives a short pulse (now the wave form is not 50% duty cycle for sure) after the tick point and the coming move will generate another tick and so on. In case of ending partial move like we are discussing is also fine, it doesn’t care the left over value, similarly we round a number up.

  Also, the pulse width wide enough for optoisolators and other things to settle down (this value is on Motor tuning and Setup). Can we check this behaviour of PP by oscilloscope or just ask Art?

However, I have no doubt on accuracy by the way that you implemented it in v.13 and I’m please with filter feature too.

Thanks
Weerasak
----------------------------------------------

Offline niranam

  • *Banned*
  • Newbie
  • *
  • Thank You
  • -Given: 69
  • -Receive: 202
  • Posts: 2
Re: มารู้จัก ค่า Tolerance กันครับ
« Reply #7 on: February 27, 2009, 08:40:21 AM »
ขอบคุณครับ
เวลา เขียนใน Mastercam จะได้ แก้ไข / อ้างอิง ได้

Offline dynamic

  • Jr. Member
  • **
  • Thank You
  • -Given: 8
  • -Receive: 47
  • Posts: 39
Re: มารู้จัก ค่า Tolerance กันครับ
« Reply #8 on: February 27, 2009, 11:35:58 PM »
สรุปว่าไม่มีเออเร่อร์สะสม ถ้าจะผิดก็ผิดพลาดที่เศษเสี้ยวของตัวเลขที่ถูกปัดทิ้ง

ผมเคยเขียนกระทู้โต้ตอบเรื่องทำนองเดียวกันกับ Greg ผู้ประดิษฐ์ SmoothStepper ซึ่ง quote ที่ 2 จากข้อความด้านล่าง ได้อธิบายสิ่งคล้ายกัน ตรงนี้น่าเป็นหลักฐานว่า Mach3 ทำงานเหมือนกับที่คุณสมภพอธิบายไว้

ต่อไปนี้เป็นการอธิบายสิ่งที่เกิดขึ้นที่ปลายเศษเสี้ยวของแกน x ที่วิ่งไปและวิ่งกลับ จาก x0 -> x0.75 -> x0

Mach3 ประมวลพิกัดต่างๆของคำสั่ง G-code เป็นแบบเลขจุดทศนิยมและทำงานอิสระจากการเอาท์พุทให้สเต็ปปิ้งมอเตอร์ เช่นเมื่อการเคลื่อนที่เช่นแกน x วิ่งผ่านค่าย่อยสเต็ปที่เล็กสุด(ในที่นี้สมมุติให้เป็น 0.5) เช่นวิ่งจาก 0 ไป 0.75 ก็จะมีสัญญาณ step pulse ออกไปให้ตัวขับ (driver) สั่งให้มอเตอร์ขยับสเต็ป และยังวิ่งต่อไปที่พิกัด 0.75 แล้ววิ่งกลับ ซึ่งตรงนี้็ยังไม่มีอะไรเกิดกับส่วนที่เกินมา 0.25 (ในความเป็นจริง Mach3 ได้ประมวลและวิ่งไปถึง 0.75 จริงแต่ pulse ออกแค่หนึ่ง pulse ที่ตำแหน่ง 0.5 และวิ่งกลับ)

ขณะวิ่งกลับ สัญญาณ dir จะถูกเปลี่ยนขั้วและเมื่อ x วิ่งผ่านจุดตัดในขากลับคือ 0.5 ก็มีสัญญาณ step pulse เกิดขึ้นอีกที และได้เปลี่ยนทิศไปก่อนหน้านี้แล้วจะทำให้สเต็ปปิ้งขยับกลับที่เดิม

ถ้าการวิ่งจาก x0 ไป x2.33 และกลับมา x-1.60 และ pulse จะเกิดขึ้นตามจุดต่อไปนี้ครับ
-->                    0.0  0.5  1.0  1.5  2.00
  -1.5 -1.0 -0.5   0.0  0.5  1.0  1.5  2.00  <--

หมายเหตุ ตัวเลขด้านบนสมมุติให้หน่วยย่อยสเต็ปอยู่ที่ 0.5 ครับ


สังเกตว่าภายใน Mach3 จะไม่มี error สะสม เพียงแต่เศษเสี้ยวของปลายสุดจะถูกเพิกเฉย

Weerasak
----------------------------------------------

ถ้ามองระยะการเคลื่อนที่ตามที่คุณ วีระศักดิ์ เขียนผมเข้าใจตามนี้นะครับ (สมมุติ 1 สเต็ปเท่ากับ 0.5)เป้าหมายคือ 2.33
แบบการเคลื่อนที่  >>0.0  0.5  1.0 1.5 2.0 (.33คือค่าที่ต้องหายไป)

1 การเคลื่อนจากจุดหนึ่งไปยังจุดหนึ่ง  = ( (ค่าจุดสิ้นสุด - ด้วยปัจจุบัน) < จะต้องมากกว่าค่าระยะทางต่อ1สเต็ป)
2 สมมุติว่าเปลี่ยนจากค่า2.33 เป็น 2.48 ตำแหน่งที่ 2.00เหมือนกัน
3 ถ้าป้อนค่าลักษณะแบบนี้แกนจะเคลื่อนที่หรือไม่เคลื่อน
   g0 x0.25
   g0 x0.33
   g0 x0.44
หมายเหตุ  ตอนลอง ใช้ demo mach3 เซ็ตค่าแกน X  0.5/step ปรากฎว่าตัวเลขบนจอเคลื่อน (ไม่มีเครื่องให้ลองสงสัยต้องทำไว้เล่นซักตัว)