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

مساعدة أرجوكم

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

السلام عليكم عندي مشروع تخرج وهو التحكم ب6محركات عن طريق منفذ الطابعة وقد استطعت التحكم به وايقافه وتغيير جهة دورانه ولكن

عندما أريد ايقافه في مكان معين وجدت أن التايمر غير دقيق لذلك فكرت في استخدام سينسور عن طريق مدخل

لمنفذ الطابعة ولكن أريد الشيفرة البرمجية(فيجوال بيسك6)لكي يعد الحاسب عدد النبضاتin

واستطيع أن أوقف المحرك عند عدد نبضات معينة

والشكر الجزيل سلفا

#2

سلام اخي daneal

باي لغة برمجت التحكم بمنفذ الطابعة لتحرك ال6 محركات ؟

و ما نوع السينسور الذي تستعمل ؟

#3

أهلا اخيbitofsoul البرمجة بالفيجوال بيسك6 والسينسور الذي استعمله هو سينسور محرك برام الرسيفر

حيث أريد من المحرك أن يقف عند عدد نبضات أحددها للسينسور عن طريق الحاسب وشكرا ةعلى سرعة الرد

#4

السلام عليكم و رحمة الله و بركاته

حسننا لست بمتخصص في لغة ال vb :( لكن كل ما استطيع ان اقوله هو ان طريقة السنسور هذا ستعقد الامور بعض الشيء ,لان الparallel port في هذه الحالة سوف لن اقول انه سيجبر على التحكم في ال6 موتور فحسب , و انما سيستقبل كذالك معطيات السنسور "التسلسلية" مما سيصعب عمل البارالل.

اقتباس
عندما أريد ايقافه في مكان معين وجدت أن التايمر غير دقيق

لماذا غير دقيق ؟

#5

التايمر غير دقيق لأن سرعة الموتور تتغير حسب ارتفاع جهد الشبكة الكهربائية صعودا او هبوطا

#6

بالاضافة الى ان المحرك يحمل اوزان ويفرغها في كل مرة

#7
اقتباس
ولكن أريد الشيفرة البرمجية(فيجوال بيسك6)لكي يعد الحاسب عدد النبضاتin
اقتباس
والسينسور الذي استعمله هو سينسور محرك برام الرسيفر

إفترض المتحول i هو لمعرفة حالة القطب المدخل له الحساس أهو 1 أو 0

تضع في تايمر :

Private Sub Timer1_Timer()
If i = 1 And b = 0 Then f = f + 1: b = 1
If i = 0 Then b = 0

'هنا إذا F = 50 نبضة
If f = 50 Then MsgBox "أوقف المحرك"
End Sub

ثم كان يجب تضع سؤالك في قسم الفوجول بيسك

#8

أخي bitofsoul

اقتباس
لست بمتخصص في لغة ال vb sad.gif

إذا أردت تتعلم الفوجول بيسك إدخل للقسم وإن شاء الله سأعلمك ماتحتاجه

بالمناسبة الفوجول بيسك تعتبر من أسهل اللغات

#9

شكرا للاخ عبد العزيز ولكن ليس هذه الشفرة التي اريدها وانما اريد ان اصل السينسور بالمدخل 10 فرضا واطلب من الفيجوال ان يعد

عدد النبضات الآتية من المدخل 10 عندها اخاطب الوتور بأمر انه عندما تكون عدد النبضات الآتيه من المدخل 10 هي 1000 نبضة

عندها يقف المحرك والسلام عليكم

#10
اقتباس
إذا أردت تتعلم الفوجول بيسك إدخل للقسم وإن شاء الله سأعلمك ماتحتاجه

بالمناسبة الفوجول بيسك تعتبر من أسهل اللغات

اشكرك سيد عبد العزيز , فعلا هذا لطف منك :).

#11
اقتباس
شكرا للاخ عبد العزيز ولكن ليس هذه الشفرة التي اريدها وانما اريد ان اصل السينسور بالمدخل 10 فرضا واطلب من الفيجوال ان يعد

عدد النبضات الآتية من المدخل 10 عندها اخاطب الوتور بأمر انه عندما تكون عدد النبضات الآتيه من المدخل 10 هي 1000 نبضة

عندها يقف المحرك والسلام عليكم

هذه هي بالضبط الشفرة التي طلبتها

السنسور الذي تقصده هو قاطع مغنطيسي فيجب عليك وصله بالسالب ثم إدخاله للقطب رقم 10 ثم وصل مقاومة 1كيلوأوم للموجب ، ويمكن أنت عامل العكس ، لا أعرف أنت كيف متعامل مع القطب 10 من برنامجك.

وكما قلت لك : إفترض المتحول i هو لمعرفة حالة القطب المدخل 10 أهو + أو -

التايمر هنا يعد النبضات الموجبة عند تغيرها ويعطيها للمتحول F فعندما تصبح F مساوية 1000 تقوم بتنفيذ الأمر المطلوب وهو إيقاف المحرك.

#12

كلامك أخي عبد العزيز منطقي جدا أنا استطيع التحكم بجهة دوران المحرك وايقافه عن طريق دالة out

ولكن السيفرة البرمجية الخاصة الخاصة بالin غير متوفرة لدي فإذا كنت تعرفها اكتبها لي رجاءا وشكرا

#13
اقتباس
أنا استطيع التحكم بجهة دوران المحرك وايقافه عن طريق دالة out

أعرف

اقتباس
ولكن السيفرة البرمجية الخاصة الخاصة بالin غير متوفرة لدي فإذا كنت تعرفها اكتبها لي رجاءا وشكرا

أنا برأيي تحط كودك هنا وما يحتوي لنشوفه ونجاوب عليه

تم تعديل هذه المشاركة بواسطة عبد العزيز اليوسفي في 27 مارس 2007 في 22:44

#14

أحد الوتورين وصل بالبن 7 و6

تحريك الى اليمين

Private Sub Command1_Click()

Out &H378, 40

تحريك الى اليسار

Private Sub Command2_Click()

Out &H378, 20

ايقاف

Private Sub Command3_Click()

Out &H378, 0

أما الشيفرة البرمجية الخاصة بالIN لأجعل الموتور يقف عند عدد نبضات محددة للسنسور فلا اعرفها

#15

السلام عليكم و رحمة الله

لتوضيح الامور :)

post-97047-1175091230_thumb.jpg

#16

راجع الموضوع للأخ hanysaad على الرابط:

/index.php?showtopic=71831

تفضل:

Dim i As Integer

Private Sub Timer1_Timer()
i = Inp(&H379) And 8   'حالة المدخل 10

If i = 1 And b = 0 Then f = f + 1: b = 1
If i = 0 Then b = 0

If f = 1000 Then Out &H378, 0
End Sub

تم تعديل هذه المشاركة بواسطة عبد العزيز اليوسفي في 28 مارس 2007 في 23:33

#17

شكرا لكم جميعا

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

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