سلام دوستان من می خوام یک دیمر تحت پروتکل مدباس با میکرو وبرنامه نویسی بیسک درست کنم اگه کسی اطلاعاتی داره ممنون میشم
اطلاعیه
Collapse
No announcement yet.
مدباس RT-U
Collapse
X
-
پاسخ : مدباس 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
موفق باشیشبنم از سعی به سرچشمه خورشید رسید صائب تبریزی
-
پاسخ : مدباس RT-U
سلامنوشته اصلی توسط شهاب طاهری
من ارتباط سریال با کامپیوتر را کامل انجام دادم ، اما الان میخوام فریم را تحت مدباس ارسال کنم.
اگه امکانش هست نمونه کدی برای ارتباط با مدباس RTU با کدویژن قرار بدید .Reveng will surely come... Your hard time are ahead
// - - - - - - - - - -
برگه های کتاب به منزله بالهایی هستند که روح ما را به عالم نور و روشنایی پرواز میآ*دهند. فرانسوا ولتر
// - - - - - - - - - -
اگر برای هرچیزی به غیر از علاقه ی شدیدتان به الکترونیک تلاش کنید ، خیلی دور نخواهید رفت / خیلی هم خوب نخواهید شد.
// - - - - - - - - - -
دیدگاه
-
پاسخ : مدباس RT-U
دیتا طبق فریم خاصی دسته بندی و ارسال میشه که برای مدهای مختلف متفاوت هست. میتونید به Manual های موجود مراجعه کنید.نوشته اصلی توسط hamidrezam2سلام.دوستان من میخوام با avrیا armدما رو سنس کنم و با پورت rs485 و پروتکل مدباس دیتا رو بفرستم فقط الان موندم چطور طبق این پروتکل دیتا رو بفرستم؟لطفا دوستان اگه اطلاعاتی دارن یه توضیحی بدن
ممنون
سخت افزار را درست کردید؟Reveng will surely come... Your hard time are ahead
// - - - - - - - - - -
برگه های کتاب به منزله بالهایی هستند که روح ما را به عالم نور و روشنایی پرواز میآ*دهند. فرانسوا ولتر
// - - - - - - - - - -
اگر برای هرچیزی به غیر از علاقه ی شدیدتان به الکترونیک تلاش کنید ، خیلی دور نخواهید رفت / خیلی هم خوب نخواهید شد.
// - - - - - - - - - -
دیدگاه
-
پاسخ : مدباس RT-U
ممنون سعید جاننوشته اصلی توسط Saeid.exeدیتا طبق فریم خاصی دسته بندی و ارسال میشه که برای مدهای مختلف متفاوت هست. میتونید به Manual های موجود مراجعه کنید.
سخت افزار را درست کردید؟
تقریبا یه هفته پیش تونستم با بسکام راه اندازیش کنم :wow:
ولی واقعا سخت بود فقط دو هفته کامل درگیرش بودم :cry2:
دیدگاه
-
پاسخ : مدباس RT-U
با چه دستگاهی ارتباط برقرار کردید؟نوشته اصلی توسط hamidrezam2ممنون سعید جان
تقریبا یه هفته پیش تونستم با بسکام راه اندازیش کنم :wow:
ولی واقعا سخت بود فقط دو هفته کامل درگیرش بودم :cry2:
اگر برای نرم افزار حالتی تعریف بشه که کاربر مستر و اسلیو بودن را حودش انتخاب کنه ، جالب تر در میاد . و یک سری کارهایی شبیه این هم میشه انجام داد
مثلا یه نکته ای که خیلی مهمه اینه که حتما باید از وقفه سریال برای دریافت دیتا استفاده بشه تا دیتا ار دست نره.Reveng will surely come... Your hard time are ahead
// - - - - - - - - - -
برگه های کتاب به منزله بالهایی هستند که روح ما را به عالم نور و روشنایی پرواز میآ*دهند. فرانسوا ولتر
// - - - - - - - - - -
اگر برای هرچیزی به غیر از علاقه ی شدیدتان به الکترونیک تلاش کنید ، خیلی دور نخواهید رفت / خیلی هم خوب نخواهید شد.
// - - - - - - - - - -
دیدگاه
-
پاسخ : مدباس RT-U
اگر چه شما هم مثل خیلی از کاربرهای دیگه، پرسشی را مطرح کرده و سپس ناپدید شده اید، اما عرض می کنم که کمپایلر بسکام؛ کتابخانهنوشته اصلی توسط dmosavi04... می خوام یک دیمر تحت پروتکل مدباس با میکرو و برنامه نویسی بیسیک درست کنم ...
MODBUS.LBX و دستور MAKEMODBUS را برای راحتی اجرای این پروتکل در اختیار قرار می دهد اما محدودیتهائی در این زمینه وجود دارد مثلا،
تنها فانکشن کدهای 16 & 06, 03 در بسکام پشتیبانی می شوند. من پیشتر این مشکل را در وب سایت رسمی mcselec مطرح کرده ام، اما تا کنون پاسخ یا راه حلی ارائه نشده است:
دیدگاه
-
پاسخ : مدباس RT-U
من میخواستم با پی ال سی ارتباط بگیرم ولی هنوز روی پی ال سی تستش نکردم اما با دو سه تا نرم افزار شبیه ساز مدباس توی سیستم شبیه سازی کردم روی پورت 232 و جواب گرفتمنوشته اصلی توسط سعید خیریبا چه دستگاهی ارتباط برقرار کردید؟
اگر برای نرم افزار حالتی تعریف بشه که کاربر مستر و اسلیو بودن را حودش انتخاب کنه ، جالب تر در میاد . و یک سری کارهایی شبیه این هم میشه انجام داد
مثلا یه نکته ای که خیلی مهمه اینه که حتما باید از وقفه سریال برای دریافت دیتا استفاده بشه تا دیتا ار دست نره.
اره از وقفه استفاده کردم که دائما چک بشه ولی فکر نمیکنم نیازی باشه که مستر یا اسلیو بودن دستگاه قابل تعیین باشه چون مثلا توی همین دستگاه خب همیشه پی ال سی مستره و اگر بخوایم به جز پی ال سی کار کنیم چرا با مد باس راه اندازی بشه پروتکل های دیگه مثل 1wire , i2c به نظر من خیلی راحت تر و سبکتر هستن که میتونیم استفاده کنیم
فقط کاش به جای avr با arm میتونستم بنویسمش که البه تا 80 درصدشو نوشتم ولی مرحله اخر مشکل خوردم :cry: :cry2:
دیدگاه
-
پاسخ : مدباس RT-U
مهمترین نقص این کتابخانه اینه که فقط از Modbus Master پشتیبانی میکنه و نمیشه Slave رو با اون پیاده سازی کرد.کتابخانه
MODBUS.LBX و دستور MAKEMODBUS را برای راحتی اجرای این پروتکل در اختیار قرار می دهد اما محدودیتهائی در این زمینه وجود دارداز آنجایی که آموزش ماهی گیری برای من بسیار مهم تر هستش، به همین خاطر، در این انجمن، تاجایی که بتونم جواب مطلبی رو مستقیم نمیگم و تلاش میکنم با آدرس دادن و کمی جستجو به جواب برسید. اگر عاشق الکترونیک باشید، دنبال جواب خواهید گشت.
دیدگاه
-
پاسخ : مدباس RT-U
با چه آرمی؟ فرقی نمیکنه که با چه آیسی کار کنین . الگوریتمش همونه فرقی ندارن فقط یه سری دیفاین عوض میشه.نوشته اصلی توسط hamidrezam2فقط کاش به جای avr با arm میتونستم بنویسمش که البه تا 80 درصدشو نوشتم ولی مرحله اخر مشکل خوردم :cry: :cry2:
من دارم یه کتابخونه مرجع برای مدباس RTU و ASCII می نویسم که تمام دستورات و رجیسترها را فرم دهی کردم ، وقت نکردم کاملش کنم اما انشالله تکمیل بشه ارسال می کنم.نوشته اصلی توسط مرتضی امانیمهمترین نقص این کتابخانه اینه که فقط از Modbus Master پشتیبانی میکنه و نمیشه Slave رو با اون پیاده سازی کرد.Reveng will surely come... Your hard time are ahead
// - - - - - - - - - -
برگه های کتاب به منزله بالهایی هستند که روح ما را به عالم نور و روشنایی پرواز میآ*دهند. فرانسوا ولتر
// - - - - - - - - - -
اگر برای هرچیزی به غیر از علاقه ی شدیدتان به الکترونیک تلاش کنید ، خیلی دور نخواهید رفت / خیلی هم خوب نخواهید شد.
// - - - - - - - - - -
دیدگاه
-
پاسخ : مدباس RT-U
LPC1768نوشته اصلی توسط سعید خیریبا چه آرمی؟ فرقی نمیکنه که با چه آیسی کار کنین . الگوریتمش همونه فرقی ندارن فقط یه سری دیفاین عوض میشه.
اره درسته ولی در اخر به مشکل محاسبه کد خطا به مشکل خوردم.یعنی دو بار از برنامه محاسبه خطا استفاده کردم اول برای تشخیص خطای کد دستوری که میاد و درست جواب داد
دوم برای ساخت کد و فرستادن اون به مستر که از همون روش قبل استفاده کردم ولی خطا داشت و جواب نداد
حالا به نظر شما باید چیکار کنم که با آرم هم بتونم جواب بگیرم؟
دیدگاه
-
پاسخ : مدباس RT-U
از این تابع برای کد CRC استفاده کنید:نوشته اصلی توسط hamidrezam2LPC1768
اره درسته ولی در اخر به مشکل محاسبه کد خطا به مشکل خوردم.یعنی دو بار از برنامه محاسبه خطا استفاده کردم اول برای تشخیص خطای کد دستوری که میاد و درست جواب داد
دوم برای ساخت کد و فرستادن اون به مستر که از همون روش قبل استفاده کردم ولی خطا داشت و جواب نداد
حالا به نظر شما باید چیکار کنم که با آرم هم بتونم جواب بگیرم؟
(متغیر 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
// - - - - - - - - - -
برگه های کتاب به منزله بالهایی هستند که روح ما را به عالم نور و روشنایی پرواز میآ*دهند. فرانسوا ولتر
// - - - - - - - - - -
اگر برای هرچیزی به غیر از علاقه ی شدیدتان به الکترونیک تلاش کنید ، خیلی دور نخواهید رفت / خیلی هم خوب نخواهید شد.
// - - - - - - - - - -
دیدگاه
-
پاسخ : مدباس RT-U
به این لینک هم سر بزنید:
http://www.eca.ir/forum2/index.php?topic=20764.15Reveng will surely come... Your hard time are ahead
// - - - - - - - - - -
برگه های کتاب به منزله بالهایی هستند که روح ما را به عالم نور و روشنایی پرواز میآ*دهند. فرانسوا ولتر
// - - - - - - - - - -
اگر برای هرچیزی به غیر از علاقه ی شدیدتان به الکترونیک تلاش کنید ، خیلی دور نخواهید رفت / خیلی هم خوب نخواهید شد.
// - - - - - - - - - -
دیدگاه
-
پاسخ : مدباس 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 بایتی هست قرارش دادیم درسته؟
حلا اگه دیتا هایی که قراره بفرستیم بیشتر شد یعنی به عبارتی به جای یک متغیر دو یا بیشتر خواستیم بفرستیم باید چیکار کنیم؟
من از همین برنامه برای چک کردن درستیه اطلاعات ورودیم استفاده کردم و درست جواب داد فقط نمیدونم چرا برای دیتا های خروجی که قراره به مستر فرستاده بشه درست جواب نمیده
دیدگاه











دیدگاه