اطلاعیه

Collapse
No announcement yet.

شبکه میکرو با rs485 یا rs232

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

    شبکه میکرو با rs485 یا rs232

    سلام خدمت دوستان عزیز
    10 تا میکرو با چه روشی در فاصله 50 متری جواب میده
    rs485 یا rs232 ؟
    اگه دوستان برنامه به زبان بیسک ویا شماتیکی از مدار بزارن ممنون میشم
    روش کار به این صورنه که وقتی یک پین از هر میکرو ست بشه دستور به تمامی میکرو ها ارسال بشه و پین تعریفی آنها ریست بشه
    مثلا 10 تا درب داریم وقتی 1 درب باز شد تمامی درها بسته شوند
    -------------------------------------------------------------------------------
    بنده ارتباط سیمی را ترجیح میدهم ممنون از همه
    خدایا مرا آن ده که آن به

    #2
    پاسخ : شبکه میکرو با rs485 یا rs232

    نوشته اصلی توسط arashdj
    سلام خدمت دوستان عزیز
    10 تا میکرو با چه روشی در فاصله 50 متری جواب میده
    rs485 یا rs232 ؟
    اگه دوستان برنامه به زبان بیسک ویا شماتیکی از مدار بزارن ممنون میشم
    روش کار به این صورنه که وقتی یک پین از هر میکرو ست بشه دستور به تمامی میکرو ها ارسال بشه و پین تعریفی آنها ریست بشه
    مثلا 10 تا درب داریم وقتی 1 درب باز شد تمامی درها بسته شوند
    -------------------------------------------------------------------------------
    بنده ارتباط سیمی را ترجیح میدهم ممنون از همه
    سلام
    باید از rs485 استفاده کنید.
    با rs232 میتونید فقط 2 دستگاه رو به هم وصل کنید.
    برای آشنایی با این پروتکل و روش کار برید اینجا:
    http://www.eca.ir/forum2/index.php?topic=71279.0
    البته به زبان سی هست ولی اگه روش کار رو متوجه بشید خودتون میتونید بنویسید.
    تولید کننده انواع تابلو فرمان آسانسور با تکنولوژی روز دنیا

    دیدگاه


      #3
      پاسخ : شبکه میکرو با rs485 یا rs232

      ممنون خوب بود ولی اگه یه زبان بیسیک کار پیدا بشه واسه ما مبتدیا ترجمه کنه عالی میشه
      :smile:
      خدایا مرا آن ده که آن به

      دیدگاه


        #4
        پاسخ : شبکه میکرو با rs485 یا rs232

        نوشته اصلی توسط arashdj
        ممنون خوب بود ولی اگه یه زبان بیسیک کار پیدا بشه واسه ما مبتدیا ترجمه کنه عالی میشه
        :smile:
        به همین زودی همشو خوندی؟
        اگه کسی کمک نکرد تا شب یه سمپل میزارم
        ویرایش----------------------------------------------------------
        یه سمپل قبلا داشتم گشتم نبود :cry:
        روش کار رو میگم شما خودتون بنویسید.
        تو این پروتکل فقط یک مستر وجود داره و بقیه باید در حالت اسلیو باشند.
        برای کار شما که میخوای در صورت یک شدن یک پین از هر میکرو بقیه میکرو ها تحت تاثیر قرار بگیرن باید یک یک میکرو ها توسط مستر اسکن بشن و اگه پین مورد نظر از میکرو یک شده بود مستر کدی را به همه میکرو ها ارسال کند تا کار مربوطه رو انجام بدن.
        در مورد روش ارسال و دریافت هم که یه ارتباط سریال ساده هست و تو pdf توضیح داده شده.
        تولید کننده انواع تابلو فرمان آسانسور با تکنولوژی روز دنیا

        دیدگاه


          #5
          پاسخ : شبکه میکرو با rs485 یا rs232

          بله کل پی دی اف رو خوندم :biggrin:
          دقیقا به همین روشی که شما میگید هست کار که اسکن انجام بشه
          میخواستم از این روش شبکه استفاده نکنم که دیگه راهی جز این به ذهنم نمیرسید
          چون بقیه میکروها باید متوجه بشن فک نکنم راه دیگه وجود داشته باشه
          از راهنماییتون ممنون
          اگه مثال و سورسم دارین که عالی میشه
          خدایا مرا آن ده که آن به

          دیدگاه


            #6
            پاسخ : شبکه میکرو با rs485 یا rs232

            فرض کنیم 20 عدد MAX485 توی یک شبکه به هم وصل شدن برای جلوگیری از تداخل اطلاعات همه این 20 آیسی رو در حالت دریافت قرار میدن و برای هر گیرنده یک ID تعریف میکنن .موقع ارسال بوسیله همین ID مشخص میشه که میخواین به کدوم گیرنده اطلاعات بدین و یا بگیرین. تو بسکام برای RS485 از دستور زیر متونید استفاده کنید

            کد:
            $regfile = "m16def.dat"
            $crystal = 8000000
            $baud = 19200
            $hwstack = 42
            $swstack = 40
            $framesize = 40
            
            
            Config Print = Portb.1 , Mode = Set             ' specify RS-485 and direction pin
            Config Portb.1 = Output                   'set direction register to output
            Reset Portb.1
            
            
            Do
            
              Print "TEST RS-485"
              Wait 1
            
            Loop
            
            End
            تو این مثال پایه B.1 به عنوان کنترل کننده MAX485 انتخاب شده یعنی موقع ارسال اطلاعات این پایه 1 میشه و با اتمام ارسال دوباره صفر میشه

            دیدگاه


              #7
              پاسخ : شبکه میکرو با rs485 یا rs232

              بله متوجه شدم ولی سواد برنامه نویسیم کمه :redface:
              اگه امکانش هست یه شبیه سازی پروتوس بکنید 2 تا یا 3 میکرو به همین روش اسکن
              خدایا مرا آن ده که آن به

              دیدگاه


                #8
                پاسخ : شبکه میکرو با rs485 یا rs232

                http://uplod.ir/j7al6xb4jf6o/RS485.7z.htm

                دیدگاه


                  #9
                  پاسخ : شبکه میکرو با rs485 یا rs232

                  بسیار سپاسگذار دوست عزیز :applause:
                  دارم روش کار میکنم ببینم اونی که میخوام میشه واقعا گل کاشتی
                  خدایا مرا آن ده که آن به

                  دیدگاه


                    #10
                    پاسخ : شبکه میکرو با rs485 یا rs232

                    سلام مهدی
                    با تشکر از راهنماییت
                    یه سوال: این کتابخانه $lib "modbus.lbx" توی بسکام چیه؟
                    یا این دستور PRINT [#x,] MAKEMODBUS(slave, function, address, varbts که یه فریم مدباس می سازه.
                    اگه باهاش کار کردی لطفا راهنمایی کن.

                    دیدگاه


                      #11
                      پاسخ : شبکه میکرو با rs485 یا rs232

                      سلام
                      فرض کنید که شما یه دستگاه دارید که در قسمت حافظه دستگاه مثلا 10 تا ریجیستر تعریف کردین

                      ریجیستر اول یه عدد یک بایتی ذخیره میکنه
                      ریجستر دوم یه عدد word
                      ریجیستر سوم یه رشته متن 2 کاراکتری
                      ریجیستر چهارم یه عدد long
                      ریجیستر پنجم یه عدد اعشاری float
                      .....

                      این روالی هست که تو دستگاه هایکه از مودباس استفاده میکنن اجرا میشه. حالا فرض کنید که مثلا 30 تا از این دستگاه ها به هم وصل شده باشن. برای مشخص کردن اینکه میخوایم از کدوم دستگاه اطلاعات بخونیم به هر کدوم از این 30 تا دستگاه باید یه ID جداگانه بدیم (یه عدد بین 0 تا 255). این ID میشه همون شماره Slave . حالا بسته به اینکه از کدوم Slave بخوایم کدوم ریجیستر رو بخونیم از دستور زیر استفاده میکنیم

                      مثال: اگر بخوایم ریجیستر پنجم از دستگاه 18 بخونیم با توجه به اینکه ریجیستر پنجم از نوع Float چهار بایتی ( 2 کلمه ) هست باید اینجوری بنویسیم

                      (PRINT MAKEMODBUS(18, 3, 5, 2
                      برای اینکه بدونید ریجیسترهای هر دستگاه چه نوع هست و آدرسش چیه باید به منوالش مراجعه کنید

                      دیدگاه


                        #12
                        پاسخ : شبکه میکرو با rs485 یا rs232


                        سوال در مورد این پست داشتم http://www.eca.ir/forum2/index.php?topic=75196.0

                        این گیت های نات تو ورودی و خروجی rx - tx از میکرو به max485 برای چی استفاده میشه ؟
                        لازم هست ؟

                        میشه استفاده نکرد ؟

                        دیدگاه


                          #13
                          پاسخ : شبکه میکرو با rs485 یا rs232

                          نوشته اصلی توسط electrosanat
                          سوال در مورد این پست داشتم http://www.eca.ir/forum2/index.php?topic=75196.0
                          این گیت های نات تو ورودی و خروجی rx - tx از میکرو به max485 برای چی استفاده میشه ؟
                          لازم هست ؟
                          میشه استفاده نکرد ؟
                          سلام
                          [s]تو پروتیوس max485 نیست ولی max487 هست که با اضافه کردن 2 تا گیت not به max487 تبدیل میشه به max485. پس اگه از max485 استفاده کنید نیازی به استفاده از گیتهای not ندارید و میتونید حذف کنید. [/s]

                          دیدگاه


                            #14
                            پاسخ : شبکه میکرو با rs485 یا rs232

                            با سلام

                            من این مدار را عملی با max485 بستم و از مگا 128 به عنوان مستر و دو تا مگا 32 به عنوان اسلیو استفاده کردم ارتباط برقرار میشه ولی رو ال سی دی جلو adc1 , adc2 عدد 1023 را نمایش میده و تغیر هم نمیکنه !! من از adc1 استفاده کردم و دستور W = Getadc(0) را به دستور W = Getadc(1) تغیر دادم

                            اینم برنامه راستی کریستالم 12 مگ خارجی هست

                            $regfile = "M8def.dat"
                            $crystal = 11059200
                            $hwstack = 50
                            $swstack = 50
                            $framesize = 50


                            Config Adc = Single , Prescaler = Auto
                            Start Adc


                            '**************** RS-485 ************
                            $baud = 9600
                            On Urxc Rec0_isr
                            Enable Urxc

                            Enable Interrupts


                            Config Print = Portd.6 , Mode = Set
                            Config Portd.6 = Output
                            Reset Portd.6

                            Dim Udr_0 As Byte
                            Dim S0 As String * 30
                            Dim Rs_485_text As String * 20



                            Dim W As Word




                            Do





                            W = Getadc(0)

                            If Rs_485_text = "DEVICE_1" Then
                            Rs_485_text = ""
                            Waitms 10
                            Print W
                            End If



                            Loop


                            End







                            Rec0_isr:

                            Udr_0 = Udr

                            Select Case Udr_0

                            Case 13:

                            Rs_485_text = S0
                            S0 = ""

                            Case 10:


                            Case Else

                            S0 = S0 + Chr(udr_0)

                            End Select

                            Return

                            دیدگاه


                              #15
                              پاسخ : شبکه میکرو با rs485 یا rs232

                              برنامه رو برای mega128 و mega32 عوض کردام یه بار دیگه تست کنید

                              http://s1.picofile.com/file/7778945585/RS485_mega128.zip.html

                              دیدگاه

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