دورات هندسية

 

 

تحريك ثلاث محاور والوصول بهم إلى نقطة ما في نفس الوقت

النتائج 1 إلى 10 من 10
  1. [1]
    عثمان عبدالعاطي
    عثمان عبدالعاطي غير متواجد حالياً

    عضو

    تاريخ التسجيل: Jun 2006
    المشاركات: 25
    Thumbs Up
    Received: 0
    Given: 0

    تحريك ثلاث محاور والوصول بهم إلى نقطة ما في نفس الوقت

    السلام عليكم ورحمة الله
    كيف يمكن تحريك ثلاث محاور (X, Y, Z) عن طريق (Stepper motors) والوصول بهم إلى نقطة واحدة في نفس الوقت مع اختلاف القيم؟

    إذا كانت القيم مضاعفات لبعضها لا توجد مشكلة هنا ,مثلا:
    X=15, Y=10, z=5.
    المحرك X يتحرك ثلاث أضعاف المحرك Z والمحرك Y يتحرك ضعفي المحرك Z
    لكن إن لم يكن كذلك مثلا (X=17, Y=10, z=3) ستواجهني مشكلة هنا وهي كيف أعطي قيم كسرية كنبضات (Pulses) للمحركات؟ (تتحرك Stepper Motors بناء على النبضات, كل نبضة من الكمبيوتر أو الكنترولر تساوي خطوة).
    بارك الله فيكم.

  2. [2]
    وليد الحديدي
    وليد الحديدي غير متواجد حالياً
    عضو متميز
    الصورة الرمزية وليد الحديدي


    تاريخ التسجيل: Aug 2006
    المشاركات: 315
    Thumbs Up
    Received: 11
    Given: 0
    أخي الكريم ، لا أعرف أين المشكلة ألا يمكنك أن تعطي مثلاً 3 نبضات لأحد المحركات و في نفس الوقت تعطي 10 للآخر و 17 للثالث من خلال برنامجك ؟
    أرجو توضيح السؤال
    و على العموم إذا كنت تريد التحكم بماكنة بثلاثة محاور فهناك الكثير من البرامج الجاهزة لهذا الغرض و يمكنها التحكم باكثر من 3 محاور

    0 Not allowed!



  3. [3]
    حسام الحلبي
    حسام الحلبي غير متواجد حالياً
    جديد


    تاريخ التسجيل: Nov 2007
    المشاركات: 1
    Thumbs Up
    Received: 0
    Given: 0
    يمكن ذلك عن طريق استخدام مخفضات (كل 100 دورة من المحرك تعادل دورة واحدة على خرج المخفض مثلاً) وهذا أمر ضروري جداً في تطبيقات التحكم.

    ومن الممكن أيضاً أن يكون هناك خطأ ولكنه سيصبح صغير ويمكن اهماله.

    0 Not allowed!



  4. [4]
    عثمان عبدالعاطي
    عثمان عبدالعاطي غير متواجد حالياً
    عضو


    تاريخ التسجيل: Jun 2006
    المشاركات: 25
    Thumbs Up
    Received: 0
    Given: 0
    ممكن أن توضح يا أخي ماهي المخفضات وكيف تعمل؟
    بارك الله فيك.

    0 Not allowed!



  5. [5]
    m_saeed_soliman
    m_saeed_soliman غير متواجد حالياً
    عضو


    تاريخ التسجيل: Aug 2007
    المشاركات: 26
    Thumbs Up
    Received: 0
    Given: 0
    جزاكم الله خيرا

    0 Not allowed!



  6. [6]
    نزار ابوفاتح
    نزار ابوفاتح غير متواجد حالياً
    عضو فعال


    تاريخ التسجيل: Dec 2007
    المشاركات: 119
    Thumbs Up
    Received: 1
    Given: 0
    مزيد من الوضوح لو سمحتم

    0 Not allowed!



  7. [7]
    عثمان عبدالعاطي
    عثمان عبدالعاطي غير متواجد حالياً
    عضو


    تاريخ التسجيل: Jun 2006
    المشاركات: 25
    Thumbs Up
    Received: 0
    Given: 0
    السلام عليكم
    ما هي مشكلتك أخي نزار مع السؤال؟ أعتقد أنه واضح.
    هل يمكن أن توضح ما هو الشيء الذي لا تفهمه من السؤال؟
    بارك الله فيك على اهتمامك!

    0 Not allowed!



  8. [8]
    hammoda
    hammoda غير متواجد حالياً
    عضو


    تاريخ التسجيل: Dec 2006
    المشاركات: 12
    Thumbs Up
    Received: 1
    Given: 0

    Lightbulb

    السلام عليكم
    فهمت عليك أخ عثمان
    وأنا أبحث عن الحل مثلك
    والمشكلة أن الأوامر عندي تخرج من Plc
    أما ان كانت تخرج من كمبيوتر فيمكن أن يوجد برامج جاهزة لهذا العمل كما قال الأخ وليد

    0 Not allowed!



  9. [9]
    abadazah
    abadazah غير متواجد حالياً
    جديد
    الصورة الرمزية abadazah


    تاريخ التسجيل: Feb 2007
    المشاركات: 7
    Thumbs Up
    Received: 0
    Given: 0
    انسى موضوع النبضات الان وركز على خوارزمية تعطيك قيم مطلقة وليس نبضات حيث ان الخوارزمية تحتاج منك ادخال (الموقع الحالي للثلاث محاور , الموقع المطلوب للثلاث محاور) وهذايعبر عنه بقيمة طبعا لتعطيك خرج مثلا على هذا النحو

    اذا كان الموقع الحالى للثلاث محاور صفر والموقع المطلوب(x = 10 , y = 5 , z = 1) فإن الخرج سوف يكون على النحو التالي:

    x=1 y=1 z=0
    x=2 y=1 z=0
    x=3 y=2 z=0
    x=4 y=2 z=0
    x=5 y=3 z=0
    x=6 y=3 z=1
    x=7 y=4 z=1
    x=8 y=4 z=1
    x=9 y=5 z=1
    x=10 y=5 z=1
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    الكود
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    يتبع ......................

    0 Not allowed!



  10. [10]
    abadazah
    abadazah غير متواجد حالياً
    جديد
    الصورة الرمزية abadazah


    تاريخ التسجيل: Feb 2007
    المشاركات: 7
    Thumbs Up
    Received: 0
    Given: 0
    void 3D_line(long int x1, long int y1, long int z1, long int x2, long int y2, long int z2)
    {
    long int i, dx, dy, dz, l, m, n, x_inc, y_inc, z_inc, err_1, err_2, dx2, dy2, dz2;

    dx = x2 - x1;
    dy = y2 - y1;
    dz = z2 - z1;
    x_inc = (dx < 0) ? -1 : 1;
    l = abs(dx);
    y_inc = (dy < 0) ? -1 : 1;
    m = abs(dy);
    z_inc = (dz < 0) ? -1 : 1;
    n = abs(dz);
    dx2 = l << 1;
    dy2 = m << 1;
    dz2 = n << 1;

    if ((l >= m) && (l >= n)) {
    err_1 = dy2 - l;
    err_2 = dz2 - l;
    for (i = 0; i < l; i++) {
    output(x1,y1,z1);
    if (err_1 > 0) {
    y1 += y_inc;
    err_1 -= dx2;
    }
    if (err_2 > 0) {
    z1 += z_inc;
    err_2 -= dx2;
    }
    err_1 += dy2;
    err_2 += dz2;
    x1 += x_inc;
    }
    } else if ((m >= l) && (m >= n)) {
    err_1 = dx2 - m;
    err_2 = dz2 - m;
    for (i = 0; i < m; i++) {
    output(x1,y1,z1);
    if (err_1 > 0) {
    x1 += x_inc;
    err_1 -= dy2;
    }
    if (err_2 > 0) {
    z1 += z_inc;
    err_2 -= dy2;
    }
    err_1 += dx2;
    err_2 += dz2;
    y1 += y_inc;
    }
    } else {
    err_1 = dy2 - n;
    err_2 = dx2 - n;
    for (i = 0; i < n; i++) {
    output(x1,y1,z1);
    if (err_1 > 0) {
    y1 += y_inc;
    err_1 -= dz2;
    }
    if (err_2 > 0) {
    x1 += x_inc;
    err_2 -= dz2;
    }
    err_1 += dy2;
    err_2 += dx2;
    z1 += z_inc;
    }
    }
    output(x1,y1,z1);
    }
    /// end
    اي شروحات اضافية انا في خدمة المسلمين///

    0 Not allowed!



  
الكلمات الدلالية لهذا الموضوع

عرض سحابة الكلمة الدلالية

RSS RSS 2.0 XML MAP HTML