الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

time Stepper Motors

مغلق
بدأه ابومهراس في 25 يونيو 2007 · 5 رد · 1,701 مشاهدة · في التحكم الصناعي وربط الحاسب بالعالم الخارجي
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

لدي استفسار لو سمحت

هل هناك دالة في الفيجوال بيسك تعطي زمن تأخير (Delay time) يقدر بالميكروسكند, أحتاج ذلك لتشغيل (Stepper Motors), فمن المعلوم أنها تحتاج لترددات عالية نسبيا بحدود (15KHZ) أو أعلى,

هناك دالة في لغة السي تعطي زمن تأخير كحد أدنى (1ms) أي أعلى تردد يمكن الحصول عليه بحدود (1KHZ), لكن هذا التردد لا يعمل على تشغيل المحركات بالسرعة المطلوبة,

وإذا لم يكن هنالك دالة مخصصة لهذا الغرض ماذا يمكنني عمله للتغلب على هذه المشكلة علما بأنى استخدمت دوال API لكن دون جدوى لانه يعطينى زمن تاخير اكبر مثلا :

Out &h378,1

Time delay

Out &h378,0

Time delay

والدالة المطلوبة هي التي ستحل مكان time delay

بارك الله فيكم

#2

الطريقة هي استخدام معالج خارجي (ميكروكنتولر) وترسل له الزمن الذي تريد و يكون الحاسب لارسال البيانات وواجهة المستخدم

39_22.gif

تزود من التقوى فإنك لا تدري *** إذا جن ليل هل تعيش إلى الفجر

فكم من فتى أمسى وأصبح ضاحكاً *** وقد نسجت أكفانه وهو لا يدري

لقراءة القرآن الكريم و سماعه و تفسيره ........

ماذا يعني انني مسلم سني؟

قصة غريبة

ConflictResolution.gif

#3
عماد الخليل كتب:

الطريقة هي استخدام معالج خارجي (ميكروكنتولر) وترسل له الزمن الذي تريد و يكون الحاسب لارسال البيانات وواجهة المستخدم

السلام عليكم

شكرا لك استاذنا على الرد

ولكن كونت opreating system لماكينة CNC Engraving machine والوقت الذى استخدمته فى النظام هو for ولكن من المعلوم انها تختلف من معالج الى اخر واستخدمت دوال API ولكن تعطينى وقت كبير بالسكند واوريد دالة تعطى بالملى سكند ويكون شخص استخدمها سابق فى مشروع وكنت المحركات من نوع Stepper motors

وشكرا

#4

اخ ابو مهراس يتم عمل زمن التاخير بالبيسك من خلال نظام loop وهو الافضل من الناحية العملية وقد قمت بتطبيقه ونجح معي في التحكم بالمحرك الخطوي ، واتمنى منك ان تعمل على اضافة الصور والفيديو لمشاركتك عن الماكينة حتى نستفيد من خبرتكم .

قال تعالى (( إن اللذين يخشون ربهم بالغيب لهم مغفرة وأجر كبير ))

الملك

#5

اخى فى الله اذا اردت لن اعمل لك delay اى وقت انت تريده

لكن بلغة الاسمبلى

من فضلك اخبرنى فقط

ممكن اعملك delay 50.000لميكرو الى اى شىء تريده

#6

تستعمل تعليمة لغة التجميع RDTSC (Read Time-Stamp Counter)

تعليمة قوية توجد فقط في معالجات البانتيوم ( إنطلاقا من البانتيوم 1).

//  # seconds = # cycles / frequency
 // For Delphi 2 & 3 - 88 cycles
procedure RDTSC(var Cycles: Comp); assembler;
asm
  // EAX points to Cycles
  MOV  ECX,EAX	 // ECX points to Cycles
  DB   $0F,$31	 // RDTSC opcode, result Int64 in EAX and EDX
  MOV  [ECX+4],EDX // Hi DWORD
  MOV  [ECX],EAX   // Lo DWORD
end;

// Delphi 4 &5 - 84 cycles
function RDTSC: Int64; assembler;
asm
  DB $0F,$31 // RDTSC opcode, result Int64 in EAX and EDX
end;

// Delphi6 and above - 84 cycles
function RDTSC: Int64; assembler;
asm
  RDTSC  // result Int64 in EAX and EDX
end;

سأتغيب عن المنتدى وستكون لي زيارات خفيفة بين الحين و الحين

يا صاحب الهم إن الهم منفرج.....................أبشر بخير فإن الفارج الله.

اليأس يقطع أحيانا بصاحبه..........................لا تيأس فإن الكافي الله.

الله يحدث بعد العسر ميسرة.........................لا تفزعن فإن الصانع الله.

إذا بليت فثق بالله وارض به...................فإن الذي يكشف البلوى هو الله.

و الله ما لك غير الله من أحد.......................فحسبك الله في كل لك الله

أخوكم مراد

27_06_06_05_21_41_1151410901logo_adl_wal_ihsan.jpg

هذا الموضوع مغلق.

مواضيع مشابهة