اگر با تجهیزات صنعتی یا اتوماسیون سر و کار داشته باشید، مطمئناً اسم Modbus به گوشتان خورده است. این یک پروتکل ارتباطی قدیمی ولی همچنان پرکاربرد است که در خیلی از پروژههای صنعتی استفاده میشود. دلیل محبوبیت آن، سادگی، قابلیت پیادهسازی راحت و پشتیبانی گسترده از انواع تجهیزات است.
شاید برایتان سوال باشد که: “در دنیایی که پر از تکنولوژیهای جدید مثل Ethernet/IP و Profinet است، چرا هنوز از Modbus استفاده میشود؟” جواب آن واضح است؛ چون هنوز در خیلی از پروژهها، به خصوص پروژههایی که هزینه مهم است یا نیاز به ارتباط ساده دارند، Modbus بهترین انتخاب محسوب میشود.
در این مقاله قرار است کامل و بیکموکاست با پروتکل Modbus آشنا بشویم.
تاریخچه پروتکل Modbus
پروتکل Modbus در سال ۱۹۷۹ میلادی توسط شرکت Modicon (که اکنون بخشی از شرکت شناختهشده Schneider Electric است) طراحی و ارائه شد. هدف اصلی از توسعه این پروتکل، ایجاد روشی استاندارد و ساده برای تبادل داده بین کنترلکنندههای منطقی قابل برنامهریزی (PLC) و دیگر تجهیزات صنعتی بود.
ویژگی منحصر بهفرد Modbus در آن زمان، Open بودن آن بود. این بدان معناست که استفاده از آن برای سازندگان و برنامهنویسان بدون پرداخت حق امتیاز یا لایسنس امکانپذیر بود. همین موضوع باعث شد که این پروتکل به سرعت در میان تولیدکنندگان تجهیزات صنعتی رواج یابد و به استانداردی دوفاکتو در صنعت تبدیل شود.
با گسترش اتوماسیون صنعتی در دهههای اخیر، این پروتکل همچنان بهروزرسانی شده و نسخههای مختلفی از آن مانند RTU، ASCII و TCP ارائه گردیده که در بخشهای بعدی مقاله به تشریح کامل هرکدام خواهیم پرداخت.
پروتکل Modbus چیست
Modbus یک پروتکل ارتباطی مبتنی بر معماری Master-Slave یا همان Client-Server است که به منظور تبادل داده بین تجهیزات صنعتی طراحی شده است. در این مدل، یک دستگاه به عنوان Master فرمان صادر میکند و سایر دستگاهها به عنوان Slave اطلاعات را دریافت یا ارسال مینمایند.
دادهها در Modbus به صورت فریمهایی شامل آدرس دستگاه، نوع عملیات، دادههای مورد نظر و کد بررسی صحت (CRC) منتقل میشوند. این پروتکل در اصل بر پایه انتقال داده از طریق درگاههای سریال (مانند RS-232 و RS-485) شکل گرفت اما با پیشرفت فناوری، نسخههای تحت شبکه (Modbus TCP) نیز توسعه یافتند.
سادگی در پیادهسازی و فهم ساختار دادهها، یکی از دلایل اصلی محبوبیت این پروتکل در صنایع مختلف بوده است. از خواندن وضعیت ورودیها و خروجیها گرفته تا ثبت مقادیر دما، فشار و سطح مایعات، همه این عملیاتها به سادگی از طریق Modbus قابل اجرا میباشند.
نحوه عملکرد پروتکل Modbus
در پروتکل Modbus، تعاملات ارتباطی بین دستگاهها به صورت درخواست و پاسخ انجام میگیرد. یعنی دستگاه Master یک درخواست خاص (مانند خواندن داده یا نوشتن مقدار) را به یکی از دستگاههای Slave ارسال میکند و آن دستگاه در پاسخ، داده مربوطه را ارسال مینماید یا تأیید انجام عملیات را ارائه میدهد.
ساختار کلی فریمهای داده در Modbus شامل بخشهای زیر است:
- آدرس دستگاه Slave: مشخصکننده گیرنده داده.
- کد عملکرد (Function Code): نوع عملیات مورد نظر (خواندن، نوشتن و…).
- آدرس رجیستر یا دادههای هدف: محلی که داده باید از آن خوانده یا در آن نوشته شود.
- چکسوم (CRC یا LRC): جهت اطمینان از صحت انتقال اطلاعات.
این پروتکل از نظر ساختاری بسیار سبک و ساده است و به راحتی در میکروکنترلرها، PLCها و تجهیزات سنجش قابل پیادهسازی است. در نسخههای سریال، ارتباط عموماً از طریق RS-485 انجام میشود که اجازه اتصال چندین دستگاه روی یک باس را فراهم میکند. در نسخه TCP نیز دادهها از طریق شبکههای Ethernet منتقل میشوند.
انواع پروتکل Modbus
پروتکل Modbus در قالب سه نسخه اصلی عرضه شده است که هر کدام با توجه به محیط و نوع بستر ارتباطی مورد استفاده قرار میگیرند:
Modbus RTU
نسخه RTU، پرکاربردترین شکل Modbus است که دادهها را به صورت باینری منتقل میکند. این ویژگی باعث افزایش سرعت و کاهش حجم فریمهای انتقالی میشود. در این حالت، دادهها در قالب فریمهایی متراکم و فشرده بر بستر RS-485 یا RS-232 منتقل میشوند.
Modbus ASCII
در این نسخه، دادهها به صورت کاراکترهای ASCII ارسال میشوند. خوانایی بیشتری برای انسان دارند اما نسبت به RTU، دادهها حجم بیشتری پیدا میکنند که در نتیجه سرعت پایینتری خواهد داشت. این نسخه در برخی محیطهای خاص با نیاز به تفسیر دستی دادهها کاربرد دارد.
Modbus TCP
با توجه به نیاز صنایع به یکپارچهسازی تجهیزات با شبکههای محلی و اینترنتی، نسخه TCP طراحی شد که فریمهای Modbus را در قالب بستههای TCP/IP بر بستر شبکههای Ethernet ارسال میکند. این مدل، برای سیستمهای مدرن و توزیعشده بسیار مناسب است.