اطلاعیه

Collapse
No announcement yet.

مدباس RT-U

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

    مدباس RT-U

    سلام دوستان من می خوام یک دیمر تحت پروتکل مدباس با میکرو وبرنامه نویسی بیسک درست کنم اگه کسی اطلاعاتی داره ممنون میشم

    #2
    پاسخ : مدباس RT-U

    سلام
    فعلا اینا رو بخون:
    http://www.mcselec.com/index.php?opt...&Itemid=41
    http://www.automation.com/library/ar...tion-to-modbus
    http://www.procdev.com/technical/modbusframing.asp
    http://www.ccontrolsys.com/w/How_to_...TU_Message_CRC
    http://www.modbustools.com/modbus.html
    موفق باشی
    شبنم از سعی به سرچشمه خورشید رسید صائب تبریزی

    دیدگاه


      #3
      پاسخ : مدباس RT-U

      سلام
      من ارتباط سریال با کامپیوتر را کامل انجام دادم ، اما الان میخوام فریم را تحت مدباس ارسال کنم.
      اگه امکانش هست نمونه کدی برای ارتباط با مدباس RTU با کدویژن قرار بدید .
      Reveng will surely come... Your hard time are ahead
      // - - - - - - - - - -
      برگه های کتاب به منزله بالهایی هستند که روح ما را به عالم نور و روشنایی پرواز میآ*دهند. فرانسوا ولتر
      // - - - - - - - - - -
      اگر برای هرچیزی به غیر از علاقه ی شدیدتان به الکترونیک تلاش کنید ، خیلی دور نخواهید رفت / خیلی هم خوب نخواهید شد.
      // - - - - - - - - - -

      دیدگاه


        #4
        پاسخ : مدباس RT-U

        سلام.دوستان من میخوام با avrیا armدما رو سنس کنم و با پورت rs485 و پروتکل مدباس دیتا رو بفرستم فقط الان موندم چطور طبق این پروتکل دیتا رو بفرستم؟لطفا دوستان اگه اطلاعاتی دارن یه توضیحی بدن
        ممنون

        دیدگاه


          #5
          پاسخ : مدباس RT-U

          نوشته اصلی توسط hamidrezam2
          سلام.دوستان من میخوام با avrیا armدما رو سنس کنم و با پورت rs485 و پروتکل مدباس دیتا رو بفرستم فقط الان موندم چطور طبق این پروتکل دیتا رو بفرستم؟لطفا دوستان اگه اطلاعاتی دارن یه توضیحی بدن
          ممنون
          دیتا طبق فریم خاصی دسته بندی و ارسال میشه که برای مدهای مختلف متفاوت هست. میتونید به Manual های موجود مراجعه کنید.
          سخت افزار را درست کردید؟
          Reveng will surely come... Your hard time are ahead
          // - - - - - - - - - -
          برگه های کتاب به منزله بالهایی هستند که روح ما را به عالم نور و روشنایی پرواز میآ*دهند. فرانسوا ولتر
          // - - - - - - - - - -
          اگر برای هرچیزی به غیر از علاقه ی شدیدتان به الکترونیک تلاش کنید ، خیلی دور نخواهید رفت / خیلی هم خوب نخواهید شد.
          // - - - - - - - - - -

          دیدگاه


            #6
            پاسخ : مدباس RT-U

            نوشته اصلی توسط Saeid.exe
            دیتا طبق فریم خاصی دسته بندی و ارسال میشه که برای مدهای مختلف متفاوت هست. میتونید به Manual های موجود مراجعه کنید.
            سخت افزار را درست کردید؟
            ممنون سعید جان
            تقریبا یه هفته پیش تونستم با بسکام راه اندازیش کنم :wow:
            ولی واقعا سخت بود فقط دو هفته کامل درگیرش بودم :cry2:

            دیدگاه


              #7
              پاسخ : مدباس RT-U

              نوشته اصلی توسط hamidrezam2
              ممنون سعید جان
              تقریبا یه هفته پیش تونستم با بسکام راه اندازیش کنم :wow:
              ولی واقعا سخت بود فقط دو هفته کامل درگیرش بودم :cry2:
              با چه دستگاهی ارتباط برقرار کردید؟

              اگر برای نرم افزار حالتی تعریف بشه که کاربر مستر و اسلیو بودن را حودش انتخاب کنه ، جالب تر در میاد . و یک سری کارهایی شبیه این هم میشه انجام داد
              مثلا یه نکته ای که خیلی مهمه اینه که حتما باید از وقفه سریال برای دریافت دیتا استفاده بشه تا دیتا ار دست نره.
              Reveng will surely come... Your hard time are ahead
              // - - - - - - - - - -
              برگه های کتاب به منزله بالهایی هستند که روح ما را به عالم نور و روشنایی پرواز میآ*دهند. فرانسوا ولتر
              // - - - - - - - - - -
              اگر برای هرچیزی به غیر از علاقه ی شدیدتان به الکترونیک تلاش کنید ، خیلی دور نخواهید رفت / خیلی هم خوب نخواهید شد.
              // - - - - - - - - - -

              دیدگاه


                #8
                پاسخ : مدباس RT-U

                نوشته اصلی توسط dmosavi04
                ... می خوام یک دیمر تحت پروتکل مدباس با میکرو و برنامه نویسی بیسیک درست کنم ...
                اگر چه شما هم مثل خیلی از کاربرهای دیگه، پرسشی را مطرح کرده و سپس ناپدید شده اید، اما عرض می کنم که کمپایلر بسکام؛ کتابخانه
                MODBUS.LBX و دستور MAKEMODBUS را برای راحتی اجرای این پروتکل در اختیار قرار می دهد اما محدودیتهائی در این زمینه وجود دارد مثلا،
                تنها فانکشن کدهای 16 & 06, 03 در بسکام پشتیبانی می شوند. من پیشتر این مشکل را در وب سایت رسمی mcselec مطرح کرده ام، اما تا کنون پاسخ یا راه حلی ارائه نشده است:


                دیدگاه


                  #9
                  پاسخ : مدباس RT-U

                  نوشته اصلی توسط سعید خیری
                  با چه دستگاهی ارتباط برقرار کردید؟

                  اگر برای نرم افزار حالتی تعریف بشه که کاربر مستر و اسلیو بودن را حودش انتخاب کنه ، جالب تر در میاد . و یک سری کارهایی شبیه این هم میشه انجام داد
                  مثلا یه نکته ای که خیلی مهمه اینه که حتما باید از وقفه سریال برای دریافت دیتا استفاده بشه تا دیتا ار دست نره.
                  من میخواستم با پی ال سی ارتباط بگیرم ولی هنوز روی پی ال سی تستش نکردم اما با دو سه تا نرم افزار شبیه ساز مدباس توی سیستم شبیه سازی کردم روی پورت 232 و جواب گرفتم
                  اره از وقفه استفاده کردم که دائما چک بشه ولی فکر نمیکنم نیازی باشه که مستر یا اسلیو بودن دستگاه قابل تعیین باشه چون مثلا توی همین دستگاه خب همیشه پی ال سی مستره و اگر بخوایم به جز پی ال سی کار کنیم چرا با مد باس راه اندازی بشه پروتکل های دیگه مثل 1wire , i2c به نظر من خیلی راحت تر و سبکتر هستن که میتونیم استفاده کنیم
                  فقط کاش به جای avr با arm میتونستم بنویسمش که البه تا 80 درصدشو نوشتم ولی مرحله اخر مشکل خوردم :cry: :cry2:

                  دیدگاه


                    #10
                    پاسخ : مدباس RT-U

                    کتابخانه
                    MODBUS.LBX و دستور MAKEMODBUS را برای راحتی اجرای این پروتکل در اختیار قرار می دهد اما محدودیتهائی در این زمینه وجود دارد
                    مهمترین نقص این کتابخانه اینه که فقط از Modbus Master پشتیبانی میکنه و نمیشه Slave رو با اون پیاده سازی کرد.
                    از آنجایی که آموزش ماهی گیری برای من بسیار مهم تر هستش، به همین خاطر، در این انجمن، تاجایی که بتونم جواب مطلبی رو مستقیم نمیگم و تلاش میکنم با آدرس دادن و کمی جستجو به جواب برسید. اگر عاشق الکترونیک باشید، دنبال جواب خواهید گشت.

                    دیدگاه


                      #11
                      پاسخ : مدباس RT-U

                      نوشته اصلی توسط hamidrezam2
                      فقط کاش به جای avr با arm میتونستم بنویسمش که البه تا 80 درصدشو نوشتم ولی مرحله اخر مشکل خوردم :cry: :cry2:
                      با چه آرمی؟ فرقی نمیکنه که با چه آیسی کار کنین . الگوریتمش همونه فرقی ندارن فقط یه سری دیفاین عوض میشه.

                      نوشته اصلی توسط مرتضی امانی
                      مهمترین نقص این کتابخانه اینه که فقط از Modbus Master پشتیبانی میکنه و نمیشه Slave رو با اون پیاده سازی کرد.
                      من دارم یه کتابخونه مرجع برای مدباس RTU و ASCII می نویسم که تمام دستورات و رجیسترها را فرم دهی کردم ، وقت نکردم کاملش کنم اما انشالله تکمیل بشه ارسال می کنم.
                      Reveng will surely come... Your hard time are ahead
                      // - - - - - - - - - -
                      برگه های کتاب به منزله بالهایی هستند که روح ما را به عالم نور و روشنایی پرواز میآ*دهند. فرانسوا ولتر
                      // - - - - - - - - - -
                      اگر برای هرچیزی به غیر از علاقه ی شدیدتان به الکترونیک تلاش کنید ، خیلی دور نخواهید رفت / خیلی هم خوب نخواهید شد.
                      // - - - - - - - - - -

                      دیدگاه


                        #12
                        پاسخ : مدباس RT-U

                        نوشته اصلی توسط سعید خیری
                        با چه آرمی؟ فرقی نمیکنه که با چه آیسی کار کنین . الگوریتمش همونه فرقی ندارن فقط یه سری دیفاین عوض میشه.
                        LPC1768
                        اره درسته ولی در اخر به مشکل محاسبه کد خطا به مشکل خوردم.یعنی دو بار از برنامه محاسبه خطا استفاده کردم اول برای تشخیص خطای کد دستوری که میاد و درست جواب داد
                        دوم برای ساخت کد و فرستادن اون به مستر که از همون روش قبل استفاده کردم ولی خطا داشت و جواب نداد
                        حالا به نظر شما باید چیکار کنم که با آرم هم بتونم جواب بگیرم؟

                        دیدگاه


                          #13
                          پاسخ : مدباس RT-U

                          نوشته اصلی توسط hamidrezam2
                          LPC1768
                          اره درسته ولی در اخر به مشکل محاسبه کد خطا به مشکل خوردم.یعنی دو بار از برنامه محاسبه خطا استفاده کردم اول برای تشخیص خطای کد دستوری که میاد و درست جواب داد
                          دوم برای ساخت کد و فرستادن اون به مستر که از همون روش قبل استفاده کردم ولی خطا داشت و جواب نداد
                          حالا به نظر شما باید چیکار کنم که با آرم هم بتونم جواب بگیرم؟
                          از این تابع برای کد CRC استفاده کنید:
                          (متغیر PDU دقیقا دیتاهای قبل از CRC هست که باید با هم محاسبه بشه . عدد 5 توی حلقه ی For هم مربوط به تعداد متغیر هایی هست که باید در محاسبه CRC لحاظ بشوند)

                          کد:
                          // Generate CRC16 (SaeidKheiri)
                          	for(i=0; i<=5; i++){
                          		CRC ^= PDU[i];
                          		for( j=0; j<=7; j++){
                          			if( CRC & 1 ){
                          				CRC >>= 1;
                          				CRC ^= 0xA001;
                          			}else{
                          				CRC >>= 1;
                          			}
                          		}
                          	}
                          Reveng will surely come... Your hard time are ahead
                          // - - - - - - - - - -
                          برگه های کتاب به منزله بالهایی هستند که روح ما را به عالم نور و روشنایی پرواز میآ*دهند. فرانسوا ولتر
                          // - - - - - - - - - -
                          اگر برای هرچیزی به غیر از علاقه ی شدیدتان به الکترونیک تلاش کنید ، خیلی دور نخواهید رفت / خیلی هم خوب نخواهید شد.
                          // - - - - - - - - - -

                          دیدگاه


                            #14
                            پاسخ : مدباس RT-U

                            به این لینک هم سر بزنید:

                            http://www.eca.ir/forum2/index.php?topic=20764.15
                            Reveng will surely come... Your hard time are ahead
                            // - - - - - - - - - -
                            برگه های کتاب به منزله بالهایی هستند که روح ما را به عالم نور و روشنایی پرواز میآ*دهند. فرانسوا ولتر
                            // - - - - - - - - - -
                            اگر برای هرچیزی به غیر از علاقه ی شدیدتان به الکترونیک تلاش کنید ، خیلی دور نخواهید رفت / خیلی هم خوب نخواهید شد.
                            // - - - - - - - - - -

                            دیدگاه


                              #15
                              پاسخ : مدباس RT-U

                              نوشته اصلی توسط سعید خیری
                              از این تابع برای کد CRC استفاده کنید:
                              (متغیر PDU دقیقا دیتاهای قبل از CRC هست که باید با هم محاسبه بشه . عدد 5 توی حلقه ی For هم مربوط به تعداد متغیر هایی هست که باید در محاسبه CRC لحاظ بشوند)

                              کد:
                              // Generate CRC16 (SaeidKheiri)
                              	for(i=0; i<=5; i++){
                              		CRC ^= PDU[i];
                              		for( j=0; j<=7; j++){
                              			if( CRC & 1 ){
                              				CRC >>= 1;
                              				CRC ^= 0xA001;
                              			}else{
                              				CRC >>= 1;
                              			}
                              		}
                              	}
                              ممنون سعید جان
                              تا جایی که من فهمیدم PDU بافر اطلاعات خروجی هستش که هشت بایتیه و عدد 5 توی حلقه اول یعنی تمام کدها به جز دوتا بایت اخر که مربوط به crc هستند
                              عدد 7 حلقه دوم هم که فکر کنم چون اطلاعاتمون 8 بایتی هست قرارش دادیم درسته؟
                              حلا اگه دیتا هایی که قراره بفرستیم بیشتر شد یعنی به عبارتی به جای یک متغیر دو یا بیشتر خواستیم بفرستیم باید چیکار کنیم؟
                              من از همین برنامه برای چک کردن درستیه اطلاعات ورودیم استفاده کردم و درست جواب داد فقط نمیدونم چرا برای دیتا های خروجی که قراره به مستر فرستاده بشه درست جواب نمیده

                              دیدگاه

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