قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

   

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 31-05-2015, 05:36 AM المشاركة 25   
افتراضي



السلام عليكم
اخي حسن كما تعلم مواضيع الاتصالات والبروتوكولات صعبه عادتا وخاصه RS485 بسبب كتره slaves
ما هي طريقتك لرؤيه ان master و ال slavesيرسلو وسيتقبلوا بطريقه صحيحه اقصد طريقه فحص الاخطاء ؟؟
هل ستستخدم بروتوس فقط ام سترى البيانات على شاشه متلا؟؟
السلام عليكم

أخي العزيز انا اريد تجربه على البروتيس واقع العملي
لكن تكوين جدول زمني وعمليه مخاطبه بين master و ال slaves جدها صعبه

مشكله اخي تصادم البيانات يحصل فقط في الارسال
لذلك انا اضع هذا الكود وهو يعمل
مثلا هذا في master

كود:
void send_data_through_rs485()
{
 GIE_bit=0;
 flag_new_data=0;
 kk[0]=100;
 kk[1]=output_relay_save[0];
 kk[2]=0;
 delay_ms(250);
 RS485Master_Send(kk,3,100);
 RS485Master_Send(kk,3,100);
 GIE_bit=1;
 
}
وهذا في slave

كود:
void send_data_through_rs485()
{
  GIE_bit=0;
 led_send=1;
 net[0]=100;
 net[1]=recived_data_from_net;
 delay_ms(250);
 RS485Slave_Send(net,2);
 RS485Slave_Send(net,2);
 flag_new_data=0;
 led_send=0;
 GIE_bit=1;
}

على فكره انا لاأخلي البيك يرسل البيانات بأستمرار من خلال البرتوكول RS485 اي
فقط لما تكون هناك البيانات جديده
وطريقه اختبار هذه هي اني اخزن البيانات القديمه في متغير مثلا old_received والبيانات جديده اخزنها في new_received
واختبر هل old_received =new_received فأذا كانت قيم متساويه اذن لايوجد داعي لارسال القيم ام اذا لا اجعل flag_new_data=1 وايضا
old_received =new_received ومن ثم ارسل البيانات الجديده خلال البرتوكول RS485
كود:
if(flag_new_data==1)
       {
        send_data_through_rs485();
       }
وهذا مشروع يستخدم master و3 slaves
http://up.top4top.net/downloadf-top4...d7381-rar.html

وهي نفس طريقه أعلاه

بالنسبه هناك led لحاله error لكي ينبهك على ان هناك مشاكل في البيانات

تحياتي


التعديل الأخير تم بواسطة : حسن هادي محمود بتاريخ 31-05-2015 الساعة 06:29 AM
اعلانات

zamalkawi
:: مهندس جيد ::
تاريخ التسجيل: May 2013
المشاركات: 260
نشاط [ zamalkawi ]
قوة السمعة:
قديم 03-06-2015, 09:28 AM المشاركة 26   
افتراضي


هل بحثت في الويكيبديا؟

اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 03-06-2015, 04:07 PM المشاركة 27   
افتراضي


لا اخي لم أبحث الويكيبديا ولكن سأبحث لعلي اجد شيئ

تحياي


hamzazayyad
:: مهندس متميز ::
تاريخ التسجيل: Aug 2005
الدولة: موزنبيق
المشاركات: 696
نشاط [ hamzazayyad ]
قوة السمعة:
قديم 04-06-2015, 09:30 AM المشاركة 28   
افتراضي


السلام عليكم

أخي العزيز انا اريد تجربه على البروتيس واقع العملي
لكن تكوين جدول زمني وعمليه مخاطبه بين master و ال slaves جدها صعبه

مشكله اخي تصادم البيانات يحصل فقط في الارسال
لذلك انا اضع هذا الكود وهو يعمل
مثلا هذا في master

كود:
void send_data_through_rs485()
{
 GIE_bit=0;
 flag_new_data=0;
 kk[0]=100;
 kk[1]=output_relay_save[0];
 kk[2]=0;
 delay_ms(250);
 RS485Master_Send(kk,3,100);
 RS485Master_Send(kk,3,100);
 GIE_bit=1;
 
}
وهذا في slave

كود:
void send_data_through_rs485()
{
  GIE_bit=0;
 led_send=1;
 net[0]=100;
 net[1]=recived_data_from_net;
 delay_ms(250);
 RS485Slave_Send(net,2);
 RS485Slave_Send(net,2);
 flag_new_data=0;
 led_send=0;
 GIE_bit=1;
}

على فكره انا لاأخلي البيك يرسل البيانات بأستمرار من خلال البرتوكول RS485 اي
فقط لما تكون هناك البيانات جديده
وطريقه اختبار هذه هي اني اخزن البيانات القديمه في متغير مثلا old_received والبيانات جديده اخزنها في new_received
واختبر هل old_received =new_received فأذا كانت قيم متساويه اذن لايوجد داعي لارسال القيم ام اذا لا اجعل flag_new_data=1 وايضا
old_received =new_received ومن ثم ارسل البيانات الجديده خلال البرتوكول RS485
كود:
if(flag_new_data==1)
       {
        send_data_through_rs485();
       }
وهذا مشروع يستخدم master و3 slaves
http://up.top4top.net/downloadf-top4...d7381-rar.html

وهي نفس طريقه أعلاه

بالنسبه هناك led لحاله error لكي ينبهك على ان هناك مشاكل في البيانات

تحياتي
اخي حسن هل الكود السابق شغال؟؟ وهل يوجد مشاكل؟؟


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 04-06-2015, 09:39 PM المشاركة 29   
افتراضي


اخي حسن هل الكود السابق شغال؟؟ وهل يوجد مشاكل؟؟
نعم أخي كود يشتغل
ارجو متابعه هذا الموضوع
http://www.qariya.info/vb/showthread...159#post960159
تحياتي



الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 05:53 PM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)