اطلاعیه

Collapse
No announcement yet.

30 فرستنده 1 گیرنده ؟!!

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    30 فرستنده 1 گیرنده ؟!!

    سلام دوستان امروز یه پروژه ای یکی از دوستان مطرح کرده در باره مانیتورینگ یک مرکز سرد خانه در باره سنسور ها هیچ مشکلی نیست ولی در باره 30 اتاق که ممکنه حتی از هم فاصله چند صد متری داشته باشن
    باید همه اطلا عات جمع اوری بشه به سیستم مرکزی برسه سیستم مرکزی یک کامپیوتر هستش
    هیچ مشکلی ندارم ولی در باره وار کردن 30 اطلا عات روی چند رشته سیم کمی مشکل دارم
    پروتکل ما باید 485 باشه خوب ولی چه طوری 30 تا اطلا عات رو بفرستم ؟؟؟
    و با یک میکرو یا کامپیوتر دریافت کنم ؟ :cry:
    [move][img width=133 height=100]http://bargiri.persiangig.com/aks/0.306310001356499787_taknaz_ir.gif[/img][/move]

    #2
    پاسخ : 30 فرستنده 1 گیرنده ؟!!


    یه چیزی به ذهنم رسید !
    میشه max485 رو غیر فعال کرد
    ببینید یه دیتایی از سیستم ما برای همه مراکز سنسور ارسال بشه بر مبنای حضور غیاب !!
    مثلا اقای 1 شما اعلام وضعیت
    اقای یک max485 ارسال رو فعال کنه و اطلاعات رو بفرسته و دباره غیر فعال کنه تا باند برای اقا های بعدی باز شه !!
    بعد اقای 2 اعلام وضعیت
    ... تا اخر
    این کار شدنیه ؟؟
    [move][img width=133 height=100]http://bargiri.persiangig.com/aks/0.306310001356499787_taknaz_ir.gif[/img][/move]

    دیدگاه


      #3
      پاسخ : 30 فرستنده 1 گیرنده ؟!!

      با میکرو می شه ولی باید یه کد ماتریسی براش تعریف کنی(مثل کبیبورد کامپیوتر) بعد می تونی با نرم افزار مطلب یا لب ویو مانیتور کنی
      قبلا یه همچین پروژه ای بهم پیشنهاد شدکه بی خیالش شدم خیلی کار می بره :mrgreen:
      پیامبری که از بلندی بترسد ،هرگز به معراج نمی رسد....

      دیدگاه


        #4
        پاسخ : 30 فرستنده 1 گیرنده ؟!!

        سلام
        می تونین از سیستم وایرلس اطلاعاتو بگیرین و بیخودم شبکش نکنین .

        فرستنده های htm
        " آدمك آخر دنياست بخند " "آدمك مرگ همين جاست بخند "
        "دست خطي که تو را عاشق كرد" "شوخي كاغذي ماست بخند "
        " آدمك خر نشوي گريه كني " " كل دنيا سراب است بخند "
        " آن خدايي كه بزرگش خواندي " " به خدا مثل تو تنهاست بخند "

        دیدگاه


          #5
          پاسخ : 30 فرستنده 1 گیرنده ؟!!

          اگر مشکل سیم کشی وجود نداشته باشه یکی از بهترین کارها استفاده از RS485 هست. اما به این نحو که میکروی دریافت کننده به ترتیب به تک تک میکرو ها درخواستی میفرسته و در صورت جواب داشتن؛ جواب اون میکرو رو میگیره. پیاده سازی این پروتکل خیلی راحت هست. ضمنا برای فاصله چند صد متری سرعتی نزدیک یک مگا بیت هم جواب میده ولی اگه بخوایین میکرو های معمول رو استفاده کنین همین سرعت های معمول مثلا 115200 هم کافیه.
          ولی البته مدار کوپل ولتاژ رو روی میکروی اصلی و مقاومت terminator رو در انتهای شبکه باید منظور کنین. بقیه میکرو ها فقط یک 75176 احتیاج دارن و دیگر هیچ!

          دیدگاه


            #6
            پاسخ : 30 فرستنده 1 گیرنده ؟!!

            خیلی ممنون از توضیح ات دوستان کسی میتونه در باره این شکل ها توضیح بده ؟؟؟؟
            یه سوال عجیب اگه اشتباهی دو تا فرستنده هم زمان بیاد روی خط ؟؟؟؟؟
            چی میشه من فکر میکنم دیتا قاطی میشه در بد ترین حالت هر دو فرستنده میسوزه !!!
            در مورد تفاوت 485 , 75176
            من با این پرو تکل کار کردم ولی الان مشکل شبکه کردنه
            در مورد فرسنده بیسم
            2 دلیل هست که جوابم نه هست
            محیط صنعتی
            عنوان پروژه با سیم هست
            قیمت مد نظره شد 3 تا :redface:
            فایل های پیوست شده
            [move][img width=133 height=100]http://bargiri.persiangig.com/aks/0.306310001356499787_taknaz_ir.gif[/img][/move]

            دیدگاه


              #7
              پاسخ : 30 فرستنده 1 گیرنده ؟!!


              تقریبا از لحاظ علمی توجیح شدم در مورد مقاومت ابتدا و انتهای خط ؟ چند باید باشه ؟؟
              [move][img width=133 height=100]http://bargiri.persiangig.com/aks/0.306310001356499787_taknaz_ir.gif[/img][/move]

              دیدگاه


                #8
                پاسخ : 30 فرستنده 1 گیرنده ؟!!

                این مدار کامل نیست. مقاومت های RT باید 120 اهم باشه و ضمنا برای stable بودن خط موقعی که هیچ کس داده ای نمیفرسته باید با استفاده از دو مقاومت روی خطوط 6 و 7 اونها رو به ترتیب به VCC و GND با یک مقاومت 2.2 کیلو اهمی وصل کنین. منطق کاری هم اینجوریه که میکروی گیرنده یا مستر در ابتدا خط رو در حال ارسال میذاره ولی بقیه 30 تا خط رو در حالت دریافت. مستر شروع به ارسال یک درخواست میکنه. بعد از ارسال آخرین بیت داده سریال میکروی مستر خط رو به حالت دریافت میبره و تنها اون میکرویی که باید جواب بده خط رو به حالت ارسال میبره. جواب رو میفرسته و بعد از ارسال آخرین بیت بلافاصله خط رو به حالت دریافت برمیگردونه. در این صورت هیچ وقت حالتی پیش نمیاد که دو میکرو همزمان بخوان روی خط چیزی بنویسن. البته ممکنه حالتی پیش بیاد که تمام میکرو ها خط رو در حالت دریافت نگهدارن که در این صورت اون دو تا مقاومت 2.2 کیلو خط رو در حالتی قرار میدن که انگار هیچ چیز روی خط نیست. البته در بعضی از شماتیک ها این دو تا مقاومت تا حد 600 اهم هم استفاده شده.
                اگر در پیاده سازی پروتکل هم مشکلی بود بگین تا یک برنامه نمونه آماده کنم.

                دیدگاه


                  #9
                  پاسخ : 30 فرستنده 1 گیرنده ؟!!

                  درود
                  اگر می خواهید سیستم کاملا صنعتی باشه، باید از پروتکلهای صنعتی استفاده کنید، مثلا Modbus
                  ما نمونه هایی زیادی از این پروژه را اجرا کردیم:
                  http://www.pooya-control.com/%D8%B1%D8%A7%D9%87-%D8%AD%D9%84-%D9%87%D8%A7-%D8%AE%D8%AF%D9%85%D8%A7%D8%AA-solutions/monitor-temperature-fridge-industrial-%D8%A7%D8%AA%D9%88%D9%85%D8%A7%D8%B3%D9%8A%D9%88%D 9%86-%D8%B3%D8%B1%D8%AF%D8%AE%D8%A7%D9%86%D9%87-%D8%B5%D9%86%D8%B9%D8%AA%D9%8A-%D9%85%D9%88%D9%86%D9%8A%D8%AA%D9%88%D8%B1%D9%8A%D 9%86%DA%AF-%D9%86%D8%B8%D8%A7%D8%B1%D8%AA-%D8%AF%D9%85%D8%A7

                  موفق باشید
                  در دیر مغان آمد یارم قدحی در دست
                  مست از می می خواران از نرگس مستش مست

                  دیدگاه


                    #10
                    پاسخ : 30 فرستنده 1 گیرنده ؟!!

                    یعنی برای شروع کار من باید یه 485 رو فرستنده بکنم و بقیه رو گیرنده اگه از فرستنده یک چیزی فرستادم توی گیرنده همه باید اونو دریافت کنن ؟!
                    خیلی عالی هستش میرم تست کنم بازم اگه مشکلی بود مطرح میکنم
                    بازم از همه متشکرم
                    [move][img width=133 height=100]http://bargiri.persiangig.com/aks/0.306310001356499787_taknaz_ir.gif[/img][/move]

                    دیدگاه


                      #11
                      پاسخ : 30 فرستنده 1 گیرنده ؟!!

                      اگه بگین کامپایلر تون چیه (من بسکام بلد نیستم ولی یه چیزایی میشه درآورد) میتونم پروتکل رو براتون پیاده سازی کنم. اما فقط یادتون باشه هر میکرو باید یک آی دی خاص داشته باشه تا از طریق اون بشه بین میکروها تفکیک قائل شد. ضمنا بایستی در پروتکل حسب نیاز زمانبندی و حالت broadcast رو هم لحاظ کنین. آی دی رو هم میشه از طریق یک دیپ سوئیچ یا موقع پروگرام کردن ست کرد.

                      دیدگاه


                        #12
                        پاسخ : 30 فرستنده 1 گیرنده ؟!!

                        :mrgreen:
                        متاسفانه من بیسکام بلدم
                        مشکل برنامه نویسی ندارم !!!
                        فقط مشکل سخت افزاری داشتم ولی الان فکر میکنم اونم حل شده
                        بیبینید یه سوال ساده
                        فکر کنید 32 تا 485 روی خط هست همه در حالت گیرنده
                        و همشون وصل شده به یک کامپیوتر و هایپری ترمینال
                        وضعیت یکی از گیرنده ها به حالت فرستنده تغیر پیدا می کنه
                        مثلا کلمه سلام توسط اون ارسال میشه
                        حالا سوال من اینه ؟
                        هم ی 31 سیستم باقی مانده کلمه salam رو دریافت میکنن ؟؟؟؟
                        واسه هر میکرو یه کد مینویسم از صفر تا 31
                        توی سیستم ارسال عدد مورد نظر رو بین 2 کارکتر خاص ارسال میکنم
                        توی همه گیرنده ها اون دریافت شده و فقط وفقط گیرنده ای که مربوط به اونه شروع به ارسال میکنه
                        از لحاظ برنامه نویسی هیچ مشکلی نیست حتی اصول کد گذاری تصحیح خطی
                        عدم پاسخ گویی یک فرستنه و خیلی چیز ها رو بلدم فقط الان باید شبکه بندی 32 تایی ماکس رو تست کنم این مقاومت های حالت بی دیتایی فکر مو یکمی قاطی کرده !!!!!!
                        [move][img width=133 height=100]http://bargiri.persiangig.com/aks/0.306310001356499787_taknaz_ir.gif[/img][/move]

                        دیدگاه


                          #13
                          پاسخ : 30 فرستنده 1 گیرنده ؟!!

                          ببین عزیزم.

                          شبکه RS485 یک شبکه half-duplex هست. یعنی در یک زمان یا میتونی ارسال کنی و یا دریافت. از طرف دیگه این یک شبکه هست. مثل اترنت. روی اترنت هم همه ماشینها چیزی رو که از یکی به دیگری ارسال شده اخذ میکنن و بعد میبینن که آیا مربوط به اونها میشه یا نه. و در صورت نیاز (حتی اگر مربوط به اونها نباشه) پردازش میکنن.
                          میدونی که این فرم ارسال اطلاعات خیلی تاثیر پذیر از نویز نیست. چون در حالت نرمال فقط دو وضعیت برای دو سیگنال A و B وجود داره (در صورتی که منطقا باید چهار وضعیت داشته باشیم). A>B یا B>A. و هیچ وقت نباید A=B باشه. چه صفر و چه یک.
                          حالا اگر شرایطی پیش بیاد که ولتاژی روی هیچ کدوم از خطوط نباشه ممکنه این حالت پیش بیاد. چطوری؟ هیچ کسی ولتاژی اعمال نکنه. یعنی همه ورودی باشن. در این صورت این دو مقاومت کذایی باعث میشن که حالت A=B هیچ وقت پیش نیاد. عمدتا هم این مورد ممکنه یک وضعیت گذری باشه. و نه دائم.

                          تازه این سخت افزاره. در نرم افزار بایستی حالاتی پیش بینی بشه که اگر یک میکروی جنبی که در حال ارسال اطلاعات هست در وسط ارسال مثلا برق اش قطع بشه بقیه میکرو ها بتونن به کار خودشون ادامه بدن. بنا براین یک زمانبندی هم کنار ارتباط سریال احتیاج میشه. و ایضا برای error recovery.

                          راجع به ID هم که گفتین بین صفر تا 31 توصیه میکنم از صفر استفاده نکنین و این رو به عنوان "همه" یا حالت broadcast در نظر بگیرین که اگر مثلا خواستین یک پیغام مشترک رو به همه میکرو ها ارسال کنین مجبور نباشین به تک تک میکرو ها ارسال کنین. البته مسلما این حالت نبایستی منجر به تولید جواب بشه.

                          مواردی مثل گروه بندی رو هم میشه توی این پروتکل لحاظ کرد.

                          باز هم اگر مورد دیگه ای بود در خدمتم.

                          دیدگاه

                          لطفا صبر کنید...
                          X