معرفی رابط RS485
RS485 یک استاندارد رابط ارتباطی سریال است که به دلیل سرعت بالا،{1}}انتقال از راه دور، مقاومت در برابر تداخل و قابلیت های اشتراک چند دستگاه-ش معروف است. کاربرد گسترده ای در اتوماسیون صنعتی، خانه های هوشمند، سیستم های امنیتی و سایر زمینه ها پیدا می کند. این مقاله یک نمای کلی از اصول رابط RS485، طراحی مدار، پروتکلهای ارتباطی و راهحلهای مشکلات رایج ارائه میکند.
اصل RS485
رابط RS485 از انتقال دیفرانسیل استفاده می کند و از دو خط سیگنال (A و B) برای حمل سیگنال های سطح ولتاژ استفاده می کند. بزرگی سیگنال به اختلاف ولتاژ بین این دو خط بستگی دارد. در رابط RS485، هر دو خط سیگنال A و B می توانند به عنوان فرستنده یا گیرنده عمل کنند. این روش انتقال دیفرانسیل، رابط RS485 را قادر می سازد تا به طور موثر در برابر نویز و تداخل خارجی مقاومت کند و در نتیجه کیفیت انتقال را تضمین کند.
فیلدهای کاربردی RS485
رابط RS485 به طور گسترده در سناریوهایی استفاده میشود که نیازمند انتقال دادهها به مسافت طولانی، سرعت بالا- پایدار هستند، مانند اتوماسیون صنعتی، خانههای هوشمند، و سیستمهای امنیتی. از نظر فاصله انتقال، RS485 تا 1200 متر و از نظر سرعت انتقال تا 10 مگابیت بر ثانیه را پشتیبانی می کند. این باعث می شود که رابط RS485 به طور گسترده در سناریوهای مربوط به جمع آوری داده، تنظیم، نظارت و کنترل قابل استفاده باشد.

طراحی مدار RS485
طراحی مدار برای رابط RS485 مستلزم در نظر گرفتن عوامل متعددی مانند فاصله انتقال، سرعت ارتباط، حفاظت در برابر صاعقه و ایزوله است. در زیر، طراحی مدار رابط RS485 را از هر یک از این جنبه ها معرفی می کنیم.
فاصله انتقال
رابط RS485 به دلیل انتقال دیفرانسیل از فواصل انتقال بیشتر پشتیبانی می کند. با این حال، در کاربردهای عملی، عواملی مانند امپدانس خط انتقال، تداخل و کیفیت سیگنال محدودیت هایی را بر برد انتقال اعمال می کنند. برای به حداقل رساندن تلفات و اعوجاج سیگنال، معمولاً توصیه می کنیم هنگام طراحی مدارهای رابط RS485، فاصله انتقال را به 1.2 کیلومتر محدود کنید.
سرعت ارتباط
رابط RS485 می تواند به سرعت ارتباطی تا 10 مگابیت بر ثانیه دست یابد. در کاربردهای عملی، ما به طور کلی نرخ ارتباط مناسب را بر اساس شرایط خاص انتخاب می کنیم. سرعت های ارتباطی بالاتر بازده انتقال را افزایش می دهد اما پیچیدگی و نیازهای فنی مدار رابط را نیز افزایش می دهد.
حفاظت در برابر صاعقه
با توجه به محیط پیچیده صنعتی، رابط های RS485 اغلب با اختلالات مختلفی مانند صاعقه، الکتریسیته ساکن و نوسانات مواجه می شوند. برای محافظت از مدارهای رابط RS485، اقدامات حفاظتی در برابر صاعقه ضروری است. اجزایی مانند محافظ های اضافه ولتاژ قابل تنظیم و وریستورهای اکسید فلزی (MOV) می توانند برای دستیابی به حفاظت در برابر برخورد صاعقه استفاده شوند.
انزوا
در سناریوهای خاصی، جداسازی بین رابط RS485 و مدارهای دیگر مورد نیاز است. این را می توان با استفاده از اجزایی مانند کوپلرهای نوری یا کوپلرهای مغناطیسی برای جداسازی سیگنال ها به دست آورد. این به طور موثر از حلقه های زمین بالقوه و تداخل نویز جلوگیری می کند و قابلیت اطمینان و پایداری مدار رابط را افزایش می دهد.
پروتکل های ارتباطی RS485
در کاربردهای عملی، رابط های RS485 به مشخصات پروتکل و قالب بندی داده ها نیز نیاز دارند. پروتکل های ارتباطی رایج RS485 شامل Modbus، Profibus و CANopen هستند. هر پروتکل دارای ویژگی های متمایز و سناریوهای قابل اجرا است که امکان انتخاب بر اساس الزامات خاص را فراهم می کند. در زیر، ما در درجه اول پروتکل Modbus RTU را معرفی می کنیم که پرکاربردترین پروتکل انتقال در پروژه های ما بر اساس رابط های RS485 است.
مقدمه ای بر Modbus RTU
Modbus RTU یک پروتکل ارتباطی صنعتی به طور گسترده ای است که یکی از پروتکل های ارتباطی سریال مبتنی بر چارچوب Modbus است. این پروتکل عمدتاً برای ارتباط سریال بین دستگاه هایی مانند کنترلرهای PLC، حسگرها و محرک ها استفاده می شود، این پروتکل تبادل داده ها را تسهیل می کند. این مقاله به جزئیات معانی خاص هر ثبات در پروتکل Modbus RTU میپردازد، نمونههایی از انتقال و دریافت دادهها را برای هر کد تابع ارائه میکند، و جمع مهم CRC را برجسته میکند.
فرمت داده پروتکل Modbus RTU
پروتکل Modbus RTU از ارتباط سریال برای انتقال داده استفاده می کند.
به طور مشخص:
فیلد Address آدرس دستگاه برده را در ارتباط مشخص می کند که می تواند هر مقداری بین 0 تا 247 باشد.
کد تابع نوع داده و جهت خواندن/نوشتن را مشخص می کند که معمولاً یک عدد صحیح بین 1 تا 127 است.
فیلد داده حاوی محتوای واقعی داده است.
Checksum (CRC) یکپارچگی بسته داده را تأیید می کند.
کدهای تابع پروتکل Modbus RTU
در پروتکل Modbus RTU، کدهای تابع مختلف نشان دهنده انواع داده های متمایز و جهت خواندن/نوشتن هستند. در زیر کدهای تابع رایج و معانی آنها آورده شده است:
01: ثبت کویل را بخوانید
02: ثبت ورودی گسسته را بخوانید
03: ثبت نام نگه دارید را بخوانید
04: ثبت ورودی را بخوانید
05: ثبت یک سیم پیچ را بنویسید
06: ثبت یک نگهدارنده را بنویسید
15: چندین رجیستر سیم پیچ بنویسید
16: چندین رجیستر نگهداری بنویسید
رجیسترهای آدرس پروتکل Modbus RTU
آدرسهای دستگاه و آدرسهای ثبت پارامترهای حیاتی برای ارتباط در پروتکل Modbus RTU هستند. رجیسترهای آدرس را می توان به چهار نوع زیر دسته بندی کرد:
ثبت کویل (رجیستر کویل)
رجیسترهای کویل مقادیر بولی (0 یا 1) را ذخیره می کنند. کدهای تابع 01، 05 و 15 برای کار بر روی رجیسترهای سیم پیچ مجاز هستند. وضعیت هر سیم پیچ را می توان با یک بیت باینری نشان داد.
به عنوان مثال، اگر سیم پیچ در بیت 0x0001 روی 0 تنظیم شود، مقدار باینری آن 00000000 00000001. است اگر سیم پیچ روی 1 تنظیم شود، مقدار باینری آن به 00000000 00000010. تغییر می کند.
ثبت ورودی گسسته
ثبت ورودی گسسته مقادیر سوئیچهای ورودی باینری را ذخیره میکند و فقط خوانده میشود، و کد تابع مربوطه 02 است. تفاوت بین ثبت ورودی گسسته و ثبت کویل در این است که نشان میدهد سوئیچ به جای وضعیت فعلی، در وضعیت روشن است یا خیر.
برگزاری ثبت نام
Holding Register متغیرهای عدد صحیح 32 بیتی را ذخیره می کند. کدهای تابع 03، 04، 06 و 16 اجازه عملیات خواندن/نوشتن در Holding Register را می دهند. مقادیر موجود در Holding Register می تواند انتقال داده ها را بین دستگاه ها تسهیل کند یا توسط کاربران به عنوان پارامترهای کنترلی مربوطه سفارشی شود.
ثبت ورودی
رجیسترهای ورودی متغیرهای عدد صحیح 32-بیتی را ذخیره میکنند و از عملیات فقط خواندنی با کد تابع 04 پشتیبانی میکنند. مانند نگهداشتن رجیسترها، مقادیر موجود در ثباتهای ورودی را میتوان بین دستگاهها منتقل کرد اما توسط کاربران قابل تغییر نیستند.
بررسی CRC پروتکل Modbus RTU
برای اطمینان از قابلیت اطمینان ارتباطات پروتکل Modbus RTU، این پروتکل از روش بررسی افزونگی چرخه ای (CRC) برای تأیید یکپارچگی بسته های داده استفاده می کند. کد چک CRC بر اساس بسته های داده ارسالی و دریافتی محاسبه می شود و به طور همزمان در هر دو انتهای ارسال و دریافت تأیید می شود.
با در نظر گرفتن رجیستر نگهداری خوانده شده (کد تابع: 03) به عنوان مثال، مقادیر هگزادسیمال جمع کنترلی CRC برای بسته های داده ارسالی و دریافتی آن به ترتیب 0x39 و 0x3E است. بسته های داده ارسالی و دریافتی خاص به شرح زیر است:
فرستنده-بسته داده ارسال شده: 01 03 00 00 00 01 C4 0B
در این بسته، 6 بیت اول (01 03 00 00 00 01) فرمت پروتکل Modbus RTU را نشان می دهد، در حالی که دو بیت آخر (C4 و 0B) جمع کنترلی CRC را تشکیل می دهند.
بسته دریافتی در گیرنده: 01 03 02 00 01 39 3E
در این بسته داده، 6 بیت اول 01 03 02 00 01 39 مقدار ثبت نگهدارنده دریافتی (دو بایت) را نشان میدهند، در حالی که دو بیت آخر 3E و 39 جمع کنترلی محاسبهشده CRC هستند.
نمونه انتقال پروتکل Modbus RTU
در زیر یک مثال ساده انتقال پروتکل Modbus RTU برای خواندن دادهها از رجیستر نگهدارنده دستگاه است:
فرستنده ارسال می کند: 01 03 00 00 00 02 C5 9A
گیرنده دریافت می کند: 01 03 04 00 00 00 66 CB
این مثال رجیستر نگهداری دستگاه 01 را با استفاده از کد تابع 03 می خواند و به دو بایت در آدرس رجیستر 0x0000 دسترسی دارد. بنابراین، بسته داده دریافتی حاوی مقادیر 0x0000 و 0x0000، یعنی 0x0000 0000 است که در هگزادسیمال به صورت 0x66CB نشان داده شده است.
نتیجه گیری
این مقاله اصولاً اصول، برنامههای کاربردی، طراحی مدار، پروتکلهای ارتباطی و راهحلهای عیبیابی رابطهای RS485 را پوشش میدهد. رابط های RS485 کاربرد گسترده ای در اتوماسیون صنعتی، خانه های هوشمند، سیستم های امنیتی و سایر زمینه ها پیدا می کنند. با این حال، عواملی مانند فاصله انتقال، سرعت ارتباط، حفاظت در برابر صاعقه و ایزوله باید در نظر گرفته شوند تا از قابلیت اطمینان و پایداری مدار رابط اطمینان حاصل شود. دانش اولیه پروتکل Modbus RTU معرفی شده است، از جمله قالب داده، کدهای تابع، ثبت آدرس و جمع کنترل CRC. در کاربردهای عملی، پروتکل Modbus RTU به طور گسترده برای ارتباط بین دستگاهها در سیستمهای کنترل اتوماسیون صنعتی استفاده میشود. هنگام خواندن داده ها، باید توجه ویژه ای به انتخاب آدرس دستگاه، آدرس ثبت و کد عملکرد شود.




