اطلاعیه

Collapse
No announcement yet.

آموزش و نمونه برنامه پروتکل rs485

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

    #16
    پاسخ : آموزش و نمونه برنامه پروتکل rs485

    ممنون بابت پاسختون
    من دارم از pic24fj128ga06 استفاده میکنم . حداکثر ولتاژ I/O مربوطه به پایه های ورودی میکرو 3.3 ولت هستند. فکر کنم با ولتاژ 5 ولت براشون مشکلی پیش بیاد . ولی هنوز تست نکردم .

    ممنون میشم راهنمایی کنید.
    "در عجبم از مردمی که خود زیر شلاق ظلم و ستم زندگی می کنند و بر حسینی می گریند که آزادنه زیست" شریعتی
    در جهان روشنایی هایی وجوددارد که در عمیق ترین ظلمات نهانند.

    دیدگاه


      #17
      پاسخ : آموزش و نمونه برنامه پروتکل rs485

      سلام
      من یه پروژه دارم که میکرو رو به کامپیوتر وصل کردم وکامپوتر و میکرو باید به صورت Real Time با هم ارتباط داشته باشن.یعنی از کامپیوتر که اطلاعات میاد روی lcd نمایش بدم و از میکرو بوسیله keypad به کامپیوتر ارسال کنم! برنامه کامپیوتر هم با C# نوشتم و مشکلی نداره.
      ارسال و دریافت هم به صورت جدا درست کار میکنه فقط وقتی پایه های RE و DE به هم وصل میکنم و به پایه میکرو برای تنظیم ورودی و خروجی وصل میکنم درست کار نمیکنه. یعنی دریافت از کامپیوتر دارم ولی وقتی که می خوام ارسال کنم هیچی ارسال نمیشه.
      آیا برای تنظیم ورودی خروخی روش خاصی داره؟!
      برنامه مبکرو هم با C نوشتم.
      کسی میدونه چیکارباید بکنم؟؟ خیلی فوریه اگه کسی میدونه کمک کنه.

      دیدگاه


        #18
        پاسخ : آموزش و نمونه برنامه پروتکل rs485

        سلام اقامجید ممنون که بلاخره لااقل شما جواب دادید
        منم بشدت لنگ ایم موضوع بودم
        من یه مگا16اصلی دارم که3تا مگا8باید دمارو بخونن و ارسال کنن برا اون مگا16و اونم نمایش بده
        حداکثر فاصله من55متر هست میخوام از485استفاده کنم.خریدم ولی هنوز نبستم .
        طبق گفته شما میبندم سخت افزارو ولی چندتا سوال
        1:اولا چکارکنم تداخل نباشه بین ارسال3تا میکرو؟ینی با کد ازمگا16دستور بدم تا به نوبت ارسال کنن؟
        2:همهrxdهای 3تا مگا8ها رو بهtxdمگا16وصل کنم و برعکسش؟
        3:تو برنامه شما128هست و کام1ودارین تومگا16که فقط یهrxd-txdهست برنامه باید چه تغییری کنه؟
        بسیار ممنون میشم از راهنماییتون
        { خلاف قوانین - پاک شد }

        دیدگاه


          #19
          پاسخ : آموزش و نمونه برنامه پروتکل rs485

          نوشته اصلی توسط majidrt27 نمایش پست ها
          سلام دوست عزیز
          سوالی که فرمودید اشکال بنده هم بود و در این انجمن مطرح کردم و خوشبختانه هیچ کس کمکی نکرد(اصلا نمی دونم چرا وقتی یک نفر در مورد rs485 سوالی می پرسه جدی گرفته نمی شه و پاسخ خوبی داده نمی شه) و بنده شخصا آستینا رو بالا زدم.
          rs485 معرکه هست البته اگر چند نکته رو رعایت کنی
          این rs485 ما یک ارتباط نیمه دوطرفه ایجاد میکنه که تا حدود 1200 متر میتونه دیتا رو ارسال کنه.
          اگر بخوای 2 میکرو رو از طریق rs485 با هم ارتباط بدی باید از 2 تا rs485 استفاده کنی.
          فرض کن یکی از میکروها mega 8 و یکی دیگه mega128 هست.(برای این مثال دلیل دارم .چون mega 128 دو تا کانال rx tx داره و دستورات فرق میکنه.
          حالا شما باید تصمیم بگیری که ارتباط یک جهته باشه یعنی اینکه یکی فقط ارسال کنه و یکی دیگه فقط دریافت کنه یا اینکه هر دو هم ارسال کنن هم دریافت
          پایه ی 2 و 3 rs485 رو باید به هم وصل کنی و بعد بزنی به یکی از I/o ها ی میکرو (برای انتخاب جهت ارسال) پایه ی 1 باید وصل بشه به rx و پایه ی 4 باید وصل بشه به tx پایه ی 6 هردو rs485 باید به هم و پایه ی 7 هر دو rs485 باید به هم وصل شن (یعنی a<===a و b<====b) خب سخت افزار تمومه
          توی برنامه ی mega 8 این طور می نویسی

          $regfile = "m8def.dat"
          $crystal = 8000000
          $baud = 1200

          Config Portd.7 = Output
          Portd.7 = 1

          Dim Temp As String * 10
          Dim Temp2 As String * 10

          Temp = "1234"
          Temp2 = "85"
          ''''''''&# 039;'''''''&#03 9;'''''''' ''''''''&# 039;'''''''&#03 9;'''''''' ''''''''&# 039;'''''''&#03 9;'''''''' ''''

          Do

          Print Temp

          Wait 1

          Print Temp2
          Wait 1

          Loop

          End
          Portd.7 = 1 (پایه ی 2و3 rs485 برای تعیین جهت ارسال.وقتی 1 باشه یعنی تو مد ارسال هست)
          وقتی یکی تو مد ارسال هست یکی دیگه باید تو مد دریافت باشه) پس توی mega128 داریم
          $regfile = "m128def.dat"
          $crystal = 8000000
          $baud = 1200
          $baud1 = 1200

          Config Portd.7 = Output
          Portd.7 = 0

          Dim Temp As String * 10
          Dim Temp2 As String * 10
          Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
          Config Com2 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
          Open "com2:" For Binary As #1
          ''''''''&# 039;'''''''&#03 9;'''''''' ''''''''&# 039;'''''''&#03 9;'''''''' ''''''''&# 039;'''''''&#03 9;'''''''' ''''

          Do

          input #1,temp

          Waitms 100

          input #1, Temp2
          Waitms 200

          Loop
          خب پردازیم به توضیح
          Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
          Config Com2 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
          برای mega128 همین دو خط رو کپی پیست کن. اینجا ما com1 و com2 رو کانفیگ کردیم
          Open "com2:" For Binary As #1 تو این خط ما می آیم com2 رو open می کنیم. اگر از rx0 و tx0 استفاده کردی باید com1 رو open کنی ولی اگر rx1 و tx1 رو استفاده کردی باید com2 رو open کنی.
          input #1,temp با این خط ما دیتایی که به com2 میرسه رو تو متغیر temp می ریزیم.
          خیلی نکته ها دیگه می مونه اگه خواستی بگو تا اونجایی که بلد باشم راهنمایی می کنم.
          زکات علم رو باید داد.
          مهندسای عزیز
          من می دونم شما زکات خمس فطریه عیدی و همه و همه رو دادید ولی ما بی سوادا رو لطفا کمک کنید
          سلام منکه هرچی میپرسم جواب نمیدین انگار
          الان من مگا16دارم باید بنویسمcom1؟
          نکات دیگش چیه؟
          { خلاف قوانین - پاک شد }

          دیدگاه


            #20
            پاسخ : آموزش و نمونه برنامه پروتکل rs485

            درود
            مطالب دوستان رو تقریبا خوندم ولی به نظرم قبل از اینکه بخوایم به کسی کمک کنیم بهتره خودمون در این زمینه مطالعه ای داشته باشیم و یا حداقل بدونیم چی به چیه و ما به چی نیاز داریم!

            قبل از هر چیز بدونید که RS485 و RS232 و مشابه اینا پروتکل نیستن و صرفا بستر ارتباطین !!

            دوست عزیز می خوای بین چند میکرو ارتباط برقرار کنی درسته؟
            خب بردت چقدره؟ زیاده ؟
            بگذریم کار ندارم فقط کلی بگم در بستر 485 صرفا شما دوتا سیم نیاز داری و تمام و نیازی به مشترک کردن زمین نیست!
            بعد از اون وقتی چندتا میکرو قراره شبکه بشن باید یک مستر باشه و تعدادی اسلیو که باید برای هر اسلیو یه ادرس داشته باشین و با فراخوانی ادرس توسط مستر دیتا رد و بدل بشه تا تداخل پیش نیاد.
            و من الله توفیق ...
            چرا ناراحتی پاتریک!
            + امروز ی بچه دیدم سرچهارراه گل میفروخت
            - از دیدنش ناراحت شدی؟
            + نه
            پس چی ناراحتت کرده
            + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
            ------------------------------------------------------------------------------------------------------
            تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
            ------------------------------------------------------------------------------------------------------
            محصولات

            دیدگاه


              #21
              پاسخ : آموزش و نمونه برنامه پروتکل rs485

              سلام ممنون از شما
              قبلا عرض کردم یه مگا16دارم و3تا سنسور که یکی حدود30متر و دوتاشون حدود50متر از مستر فاصله دارن
              max485خریدم و مدارم علمی بستم طبق دیتاشیت
              برا برنامش نمیدونم چکار کنم این برنامه اقا مجید رو اوردم تو بیسکام منتها متاسفانه خیلی ارور داره نمیدونم اون 039 ها چی بودن همین039#&هستن یا چیز دیگه بوده به این تبدیل شده
              Open "com2:" For Binary As #1 این خطم برا مگا16ارور میده نمیدونم چیه
              { خلاف قوانین - پاک شد }

              دیدگاه


                #22
                پاسخ : آموزش و نمونه برنامه پروتکل rs485

                من بسکام کار نیستم و برنامه ای که می خواین سخت نیست صرفا باید 4 تا میکرو داشته باشید و یکی رو به عنوان مستر انتخاب کنید. به سه تا برد دیگه هم سه تا ادرس اختصاص می دید و در برنامه مستر هر بار یکی رو صدا می زنه تا مقدار سنسور رو براش قرائت کنه.
                موفق باشید
                چرا ناراحتی پاتریک!
                + امروز ی بچه دیدم سرچهارراه گل میفروخت
                - از دیدنش ناراحت شدی؟
                + نه
                پس چی ناراحتت کرده
                + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
                ------------------------------------------------------------------------------------------------------
                تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
                ------------------------------------------------------------------------------------------------------
                محصولات

                دیدگاه

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