سلام بچه ها
من میخوام یه شبکه rs485 درس کنم...خیلی وقته هم سرچ کردم حالا دارم روش کار میکنم...یه چیزی شبیه modbus ساختم :mrgreen:
و الان دارم با پروتئوس و فقط با پورت سریال تستش میکنم ... ولی نمیدونم چرا وقتی slave از یکی بیشتر میشه مستر که یه درخواستی از هر slave میکنه ، با اینکه slave پاسخ درست رو میفرسته ولی اصلا مستر چیزی دریافت نمیکنه !؟
فایل شبیه سازی رو گذاشتم تست کنید لطفا...وقتی پایه rx ها وصل هست(حتی همه اسلو ها) مشکل نداره ولی وقتی پایه tx اسلو ها وارد مدار میشه خط tx کلا تعطیل میشه :angry:
روش کار اینجوریه :
id مستر 00 هس و اسلو 1 هم 01 و اسلو 2 ، 02
مستر با این قالب یه در خواستی میفرسته...
و طول مجاز کل دستور هم 100 بیت هس...
فرض درخواستی از طرف مستر به اسلو شماره 2 و کد در خواست ad و دیتای 5 یعنی adc شماره 5 رو بخون و برام بفرست اینجوری میشه :
حالا اگه اسلو1 رو ما بخوایم 01 میزاریم جای آدرس )address(
توی عکس معلومه روی همه ال سیدی ها نشون میده که چه داده ای اومده و یا ارسال شده با : snd> و rec>
اینا مهم نیس تو شبیه ساز معلومه....
من همه rx , tx های مستر هارو بهم زدم و rx اسو رو به tx مستر و tx اسو رو به rx مستر زدم....
وقتی فقط مستر و یدونه اسلو توی شبکه هس درس کار میکنه...
اینم عکسش :

الان اسلو 2 مقدار 18.17 رو از روی adc خونده و ارسال کرده ...
یعنی اسلو 02 به مستر 00 داده adc با مقدار 18.17 رو ارسال کرده...
ولی وقتی دومی وارد مدار بشه انگار خط TX مختل میشه ، چون من یدونه میکرو دیگه گذاشتم که هر داده ای روی این باس سریال بود(rx مستر یا همون tx اسلوها)
روی ال سیدیش نشون بده...تو عکس بالا میبینید که وقتی اسلو 2 روشنه هم ال سیدی بالایی هم ال سیدی پایینی داده رو نشون میدن ، تا اینجا درست کار میکنه...
ولی وقتی اسلو 1 رو روشن میکنم کلا روی خط tx اسلو ها هیچی نیس...رو ال سیدی اسلو ها نشون میده که دارن داده رو میفرستنا....ولی توی خط هیچ نیس... :angry: :angry:

روی lcd اسلو ها معلومه که اونا درهواست رو دریافت کردن و دارن adc هارو ارسال میکنن...ولی روی tx هیچی نیس...روی lcd بالایی هم هیچی نیومده...
مستر هم که داره درخواست خودشو میفرسته...حالا اگه tx یکی از اسلو هارو از مدار خارج کنین مدار درس کار میکنه...
کلافه شدم:'(
مشکل کجاس؟؟؟
دانلود شبیه ساز :
http://par3eh.com/Storage/eca/rs232-network/network.zip
با تشکر
من میخوام یه شبکه rs485 درس کنم...خیلی وقته هم سرچ کردم حالا دارم روش کار میکنم...یه چیزی شبیه modbus ساختم :mrgreen:
و الان دارم با پروتئوس و فقط با پورت سریال تستش میکنم ... ولی نمیدونم چرا وقتی slave از یکی بیشتر میشه مستر که یه درخواستی از هر slave میکنه ، با اینکه slave پاسخ درست رو میفرسته ولی اصلا مستر چیزی دریافت نمیکنه !؟
فایل شبیه سازی رو گذاشتم تست کنید لطفا...وقتی پایه rx ها وصل هست(حتی همه اسلو ها) مشکل نداره ولی وقتی پایه tx اسلو ها وارد مدار میشه خط tx کلا تعطیل میشه :angry:
روش کار اینجوریه :
id مستر 00 هس و اسلو 1 هم 01 و اسلو 2 ، 02
مستر با این قالب یه در خواستی میفرسته...
کد:
:[id sender>2bit][address>2bit][request>2bit][data];
فرض درخواستی از طرف مستر به اسلو شماره 2 و کد در خواست ad و دیتای 5 یعنی adc شماره 5 رو بخون و برام بفرست اینجوری میشه :
کد:
:0002ad5;
توی عکس معلومه روی همه ال سیدی ها نشون میده که چه داده ای اومده و یا ارسال شده با : snd> و rec>
اینا مهم نیس تو شبیه ساز معلومه....
من همه rx , tx های مستر هارو بهم زدم و rx اسو رو به tx مستر و tx اسو رو به rx مستر زدم....
وقتی فقط مستر و یدونه اسلو توی شبکه هس درس کار میکنه...
اینم عکسش :

الان اسلو 2 مقدار 18.17 رو از روی adc خونده و ارسال کرده ...
کد:
;0200ad18.17;
ولی وقتی دومی وارد مدار بشه انگار خط TX مختل میشه ، چون من یدونه میکرو دیگه گذاشتم که هر داده ای روی این باس سریال بود(rx مستر یا همون tx اسلوها)
روی ال سیدیش نشون بده...تو عکس بالا میبینید که وقتی اسلو 2 روشنه هم ال سیدی بالایی هم ال سیدی پایینی داده رو نشون میدن ، تا اینجا درست کار میکنه...
ولی وقتی اسلو 1 رو روشن میکنم کلا روی خط tx اسلو ها هیچی نیس...رو ال سیدی اسلو ها نشون میده که دارن داده رو میفرستنا....ولی توی خط هیچ نیس... :angry: :angry:

روی lcd اسلو ها معلومه که اونا درهواست رو دریافت کردن و دارن adc هارو ارسال میکنن...ولی روی tx هیچی نیس...روی lcd بالایی هم هیچی نیومده...
مستر هم که داره درخواست خودشو میفرسته...حالا اگه tx یکی از اسلو هارو از مدار خارج کنین مدار درس کار میکنه...
کلافه شدم:'(
مشکل کجاس؟؟؟
دانلود شبیه ساز :
http://par3eh.com/Storage/eca/rs232-network/network.zip
با تشکر

دیدگاه