اطلاعیه

Collapse
No announcement yet.

کنترولر CNC با استفاده از AVR

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    کنترولر CNC با استفاده از AVR

    :

    #2
    پاسخ : کنترولر CNC با استفاده از AVR


    من یک بار این کارداشتم انجام دادم اما توی یک قسمت به مشکل برخوردم که هیچ کس نتونست حلش کنه ؟
    حداقل قابلیت هایی که این جور دستگاه ها باید داشته باشن به طور خلاصه نوشتم البته تمامی اینا رو بسیاری از موارد دیگه (که اگه خواستی برات می نویسم ) با مشورت و تحقیق زیاد بدست آوردم
    1 - برنامه G CODE رو ساپورت کنه (چون اکثر این دستگاه ها این زبان برنامه نویسی رو ساپورت می کنن )
    2- تعیین نقطه صفر مطلق در ابتدای راه اندازی دستگاه
    3- تعیین نقطه صفر نسبی در هر لحظه
    4- نصب کیبورد کامپیوتر برای برنامه نویسی در حالت دستی و LCD گرافیکی برای نمایش اطلاعات مورد نیاز حین برنامه نویسی و اجرای کار
    5- قابلیت اتصال مستقیم به کامپیوتر برای برنامه ریزی
    6- استفاده از MMC CARD برای ذخیره اطلاعات و بازیابی
    7- امکانات کنترل دور گسترده موتورها ( حالت راه انداز نرم ازطریق نرم افزاری و تنظیمات دور در حین کار )
    8- کورس حرکتی محور ها به طور دلخواه و تعیین زاویه پله به طور دلخواه به منظور استفاده در دستگاه های مختلف
    9- مد TEACH
    10-انواع حرکت (دایره ای ، بیضی ، تحت هر زاویه دلخواه و .... )

    در زمینه الکترونیک و برنامه نویسی کمتر مشکل بوجود میاد ولی در قسمتهای مکانیکی :cry: :cry: :cry:

    یک سوال ؟
    فرض کن دقت دستگاه 0.01 میلیمتر باشه ! حالا می خواهیم به اندازه 0.03 میلیمتر در محور X و به اندازه 0.05 میلیمتر روی محور Y حرکت کنیم (البته برای داشتن شیب یکنواخت بایستی دو محور با هم حرکت کنند) سوال اینجاست که این فواصل پالسی و زمانی رو چطور تقسیم می کنی







    اگه مردم می دونستن زمان چقدر با ارزشه دیگه هیچ وقت کفش بند دار نمی خریدن البرت انیشتن

    دیدگاه


      #3
      پاسخ : کنترولر CNC با استفاده از AVR

      با سلام

      دوست عزیز من بهمراه یک مهندس مکانیک مبادرت به ساخت این دستگاه نمودم و با توجه به وسواسی که مهندسین مکانیک نسبت به دقت این نوع دستگاهها دارند سعی کردم توسط استفاده از یک روش مطمعن حداکثر دقت را ایجاد نمایم با توجه به کاربرد موتورهای پله ای در تمام وضعیت های مشابه آنچه شما مثال زده اید به خطای صفر رسیدم.قسمت مکانیک دستگاه شامل سه استپ موتور می باشد که توسط تسمه تایمینگ به بخش های متحرک کوپل شده اند درایورهای موتور ها در مد 0.9 درجه SETUP شده اند با توجه به قطر کوپلینگ موتورها برای جابجایی به اندازه 0.05 موتور ها باید 15 پالس بزنند نحوه حرکت موتورها ب گونه ای است حتی اگر سه محور دارای مقادیر متفاوتی باشند بزرگترین مقدار خوانده شده ملاک محاسبه حرکت قرار می گیرد و در نتیجه سه محور بصورت همزمان به نقاط تعیین شده می رسند.
      بخش مربوط محاسبات حرکت
      [][TEACHING_MAX_DATA=max(abs(SETPOINT_TEACH_X1-SETPOINT_TEACH_X0),(max(abs(SETPOINT_TEACH_Y1-SETPOINT_TEACH_Y0),abs(SETPOINT_TEACH_Z1-SETPOINT_TEACH_Z0))));
      SLOP_X_AXIS=(SETPOINT_TEACH_X1-SETPOINT_TEACH_X0)/TEACHING_MAX_DATA;
      SLOP_Y_AXIS=(SETPOINT_TEACH_Y1-SETPOINT_TEACH_Y0)/TEACHING_MAX_DATA;
      SLOP_Z_AXIS=(SETPOINT_TEACH_Z1-SETPOINT_TEACH_Z0)/TEACHING_MAX_DATA;
      REGISTER_PULSE_COUNTER=PULSE_COUNTER;
      if(TEACHING_MAX_DATA>0){PULSE_COUNTER=PULSE_COU NTER+1;}

      REGISTER_VALU_X_AXIS=VALU_X_AXIS;
      REGISTER_VALU_Y_AXIS=VALU_Y_AXIS;
      REGISTER_VALU_Z_AXIS=VALU_Z_AXIS;

      VALU_X_AXIS=(PULSE_COUNTER*SLOP_X_AXIS)+SETPOINT_T EACH_X0;
      VALU_Y_AXIS=(PULSE_COUNTER*SLOP_Y_AXIS)+SETPOINT_T EACH_Y0;
      VALU_Z_AXIS=(PULSE_COUNTER*SLOP_Z_AXIS)+SETPOINT_T EACH_Z0;



      XXL=abs(VALU_X_AXIS)-abs(REGISTER_VALU_X_AXIS);
      YYL=abs(VALU_Y_AXIS)-abs(REGISTER_VALU_Y_AXIS);
      ZZL=abs(VALU_Z_AXIS)-abs(REGISTER_VALU_Z_AXIS);


      if(XXL>=1 || XXL<=-1) {PORTD.1=1;}
      if(YYL>=1 || YYL<=-1) {PORTD.3=1;}
      if(ZZL>=1 || ZZL<=-1) {PORTD.5=1;}

      if((PULSE_COUNTER*SLOP_X_AXIS)<0) PORTD.0=1;
      if((PULSE_COUNTER*SLOP_Y_AXIS)<0) PORTD.2=1;
      if((PULSE_COUNTER*SLOP_Z_AXIS)<0) PORTD.4=1;
      if((PULSE_COUNTER*SLOP_X_AXIS)>0) PORTD.0=0;
      if((PULSE_COUNTER*SLOP_Y_AXIS)>0) PORTD.2=0;
      if((PULSE_COUNTER*SLOP_Z_AXIS)>0) PORTD.4=0;/left][/left]


      در اولین فرصت نحوه عملکرد این برنامه برایتان توضیح خواهم داد
      استفاده از MMC و LCD گرافیکی جزء برنامه های بعدی من می باشد درحال حاضر LCD این دستگاه 4*20 کاراکتری می باشد.البته قابلیت اتصال کی بورد کامپیوتر را دارد .

      [img][/img]

      دیدگاه


        #4
        پاسخ : کنترولر CNC با استفاده از AVR

        ok.

        دیدگاه

        لطفا صبر کنید...
        X