در این جلسه، میخواهیم در مورد پروتکل ارتباطی مودباس (بعضا به صورت مدباس نیز نوشته میشود) و انواعی از آن که در صنعت استفاده میشوند صحبت کنیم.
آنچه که در واقعیت امر و نه صرفا در مباحث تئوری؛ در یک پروسهی اتوماسیون اتفاق میافتد، این است که دستگاههای مختلفی که میخواهند ضمن این پروسه با هم ارتباط داشته باشند و لازم است دیالوگی مابین آنها شکل بگیرد، اغلب از شبکههای ارتباطی و حتی زبانهای مختلفی برای این کار استفاده میکنند.
مودباس به عنوان یک پروتکل ارتباطی باز
بسته به شرکت سازندهی تجهیزات اتوماسیون، ممکن است از یک زبان بسیار ویژه و اختصاصی در ارتباطات استفاده شود و یا از یک زبان معمولی و متداول که در صنعت به خوبی شناخته شده است و البته بسیاری از تولیدکنندگان نیز به منظور اینکه بتوانند تولیداتشان را در بازارهای هدف به فروش برسانند، از همین پروتکلهای شناخته شده و باز (Open Protocol) استفاده میکنند.
منظور از پروتکل باز پروتکلی است که تمام جزییات و مشخصات فنی آن به صورت عمومی منتشر شده و همگان میتوانند رایگان و یا با در دست داشتن مجوزهای لازم، از آن استفاده کنند. این گونه پروتکلها معمولا توسط جمعی از شرکتهای سازنده، کاربران حرفهای، متخصصان و حتی دولتها پشتیبانی میشوند. به این ترتیب کاربران میتوانند این پروتکلها را با اعمال تنظیمات موجود، در طیف گستردهتری از کاربردها به کار بگیرند.
پس میتوان نخستین مزایای پروتکلهای باز را چنین برشمرد که به علت اینکه گروههای مختلفی در تولید و توسعهی آن نقش دارند، پس برای استفاده از آنها و بهره بردن از تمام امکانات فعلی یا آیندهی آنها، منابع و پشتیبانیهای زیادی نیز در دسترس است؛ از جمله از سوی بنیانگذاران، عرضهکنندگان نرمافزارها، شرکتهای نصب و خدمات پس از فروش، گروههای تحقیق و توسعه و …
یکی از معروفترین پروتکلهای باز ارتباطی که امروزه از آن در فرآیندهای اتوماسیون و برای متصل کردن دستگاههای مختلف الکترونیکی استفاده میشود، پروتکل مودباس است. در ادامهی این آموزش، درمورد این پروتکل ارتباطی و انواعی از آن که در صنعت استفاده میشوند صحبت میکنیم.
مودباس چیست؟
پروتکل ارتباطی مودباس، قدیمیترین و با اختلاف بسیار زیاد نسبت به بقیه، پرطرفدارترین پروتکل ارتباطی در اتوماسیون فرآیند و سیستمهای اسکادا (SCADA – سیستم نظارت بر کنترل و جمعآوری دادهها) است.
دانستن طریقهی ایجاد یک شبکه که مبتنی بر پروتکل مودباس کار کند، برای هر مهندس الکترونیک یا تکنسینی که در این زمینهها فعالیت میکند بسیار ضروری است. شاید بپرسید چرا؟ اینکه شما قادر باشید ابزارها و دستگاههایی که توسط سازندگان مختلف تولید شدهاند و هرکدام احتمالا زبان ارتباطی متفاوتی با بقیه دارند را با هم مرتبط کنید، توانمندی بسیار ارزشمند و مورد نیازی است که دیر یا زود شما را تبدیل به یک مهندس یا تکنسین مطلوب و پرطرفدار میکند. پس در اهمیت آن شک نکنید.
پروتکل ارتباطی مودباس نخستین بار در سال 1979 توسط شرکت Modicon و به منظور استفاده در PLCهای تولیدی خودش معرفی و عرضه شد. این شرکت بعدها به شرکت Schneider Electric واگذار و در آن ادغام شد.
این پروتکل یک زبان مشترک برای برقراری ارتباط میان دستگاههای مختلف فراهم میکند. به عنوان مثال، فرض کنید سیستمی داشته باشیم که در آن ابزارهایی برای اندازهگیری دما و رطوبت وجود داشته باشند. پروتکل مودباس کمک میکند که این دستگاهها بتوانند به یک شبکهی واحد متصل شده و نتایج اندازهگیری شدهشان را به یک سیستم نظارت بالا دستی ارسال کنند.
به مرور نهادی ایجاد شد به نام Modbus Organization، متشکل از کاربران و عرضهکنندگان دستگاههایی با قابلیت پشتیبانی از مودباس، که وظیفه آن توسعه و بروز رسانی این پروتکل بود.
انواع مختلف پروتکل ارتباطی مودباس
نسخههای مختلفی از این پروتکل به منظور استفاده در پورتهای سریال و یا اترنت وجود دارند و از مشهورترینهای آنها میتوان موارد زیر را نام برد.
- Modbus RTU
- Modbus ASCII
- Modbus TCP
- Modbus Plus
شرکت Modicon در همان ابتدا اینترفیسی را براساس معماری master-slave برای مودباس منتشر کرد که برای شبکههای چند وجهی (multidrop networks) طراحی شده است. در این مدل، ارتباط بین گرههای مدباس (Modbus nodes) از طریق ارسال پیامهای درخواست (request) و خواندن نوع پیامی که در پاسخ داده میشود فراهم میشود.
تجهیزات فیزیکی پروتکل مودباس
همانطور که گفتیم مودباس یک استاندارد باز است که وظیفهی آن توصیف چگونگی ایجاد و تفسیر پیامهای موجود درگفتگو بین ابزارهای مختلف است. این کار از طریق بسترهای فیزیکی مختلفی قابل انجام است که در زیر آنها را مشاهده میکنید.
- Serial RS-232
- Serial RS-485
- Serial RS-422
- Ethernet
نسخهی اورجینال اینترفیس مودباس بر روی ارتباطات سریال RS-232 اجرا میشد اما اخیرا اغلب مودباسها از RS-485 استفاده میکنند دلیل این کار این است که:
- در فواصل طولانیتر نیز قابل استفاده است.
- سرعت بالاتری دارد.
- امکان استفاده از تعداد بیشتری دستگاه را در یک شبکهی چند وجهی فراهم میکند.
برقرای ارتباط با پروتکل مودباس از طریق ارتباط سریال RS-485 و معماری master-slave، استفاده از دو سیم جداگانه برای ارسال و دریافت پیامها.
زمانی که از اینترفیسهای سادهای مانند RS-232 یا RS-485 استفاده میکنیم، پیغامهای پروتکل مودباس در فرمتی ساده بر روی شبکه جابهجا میشوند و تمام ظرفیت شبکه به همین پروتکل و پیغامهای آن اختصاص مییابد. اما اگر شبکه شما به چندین دستگاه ناهمگن (heterogeneous) نیاز داشته باشد که این دستگاهها از یک شبکه گستردهتر مانند TCP/IP مبتنی بر اترنت استفاده میکنند، فرمت پیامهای مودباس دیگر مانند حالت قبل ساده نخواهد بود و آنها را در قالب تعبیه شده در بسته های اترنت با فرمت تعریف شده برای این پروتکل خواهیم داشت.
بنابراین میتوان نتیجه گرفت که پروتکل مودباس میتواند همزمان با سایر پروتکلهای ترکیبی وجود داشته باشد و مورد استفاده قرار گیرد، با استفاده از همان بسترها و بدون نیاز به سختافزار یا نرمافزار جداگانه.
معرفی ساختار پیامهای پروتکل مودباس
اصلیترین ساختار برای مبادلهی پیام در این پروتکل ساختار نظیر به نظیر یا همان Peer-to-Peer است. بنابراین مودباس را میتوان چه در شبکههایی با ساختار نقطه به نقطه (point-to-point) و چه در شبکههای چند وجهی به خوبی استفاده کرد.
گفتیم که معماری ارتباطات این پروتکل مبتنی بر معماری master-slave طراحی شده است (در صورتی که بر روی اترنت استفاده شود، Client-Server) براساس این معماری تنها یک دستگاه میتواند آغازگر یک ارتباط یا request باشد که همان نود master یا server است.
سایر دستگاهها که slaveها یا clientها هستند، اقدام مقتضی را در پاسخ به این درخواستها انجام میدهند. این اقدام میتواند ارسال دادهای باشد که درخواست شده است و یا انجام کاری که از آنها خواسته شده است.
در این ادبیات، نودهای slave میتوانند هر چیزی باشند از جمله مبدلهای I/O، دریچههای کنترلی، درایورهای شبکه، انواع دستگاههای اندازهگیری که دادههایی را اندازهگیری، جمعآوری یا تحلیل میکنند و میتوانند نتایج آن را برای نود master ارسال کنند. (و این کار را از طریق پروتکل مودباس انجام میدهند)
از آن طرف یک نود master هم میتواند پیغامهایی را به صورت تکی برای هرکدام از نودهای slave ارسال کند و یا آنکه پیغامهایی را به صورت عمومی به تمام slaveها ارسال کند و slaveها، پاسخ تمام پیامهایی که به صورت اختصاصی به آنها ارسال شده است را خواهند داد اما در پاسخ به پیامهایی که به صورت عمومی انتشار مییابند چیزی ارسال نمیکنند.
نکتهی مهمی که در خلال مطلب به طور ضمنی اشاره شد اما بد نیست که مجددا آن را بیان کنیم، این است که نودهای slave خودشان نمیتوانند آغازگر یک مکالمه با نود master باشند و تنها قادر هستند که به درخواستهایی که از سوی master به آنها ارسال میشود پاسخ دهند.
اما درخواستهایی که از سوی master ارسال میشود؛ ممکن است شامل چه چیزهایی باشد؟
- آدرس دقیق هرکدام از نودهای slave
- کد عملیاتی یک تابع خاص که میتواند خواندن یا نوشتن داده توسط slave باشد.
- اگر دستور مبنی بر نوشتن چیزی باشد، دادهی مدنظر برای نوشتن توسط slave نیز ارسال میشود
- دستور بررسی خطا
کدهای بررسی خطا مقادیری هستند که در ابتدای یک مکالمه توسط یکی از طرفین آن مکالمه (master یا slave) تولید میشوند (براساس الگوهایی مشخص) و همراه پیامهای مبادله شده ارسال میشوند. در پایان آن مکالمه مجددا مقادیر آن چک میشوند که اطمینان حاصل شود دادههای مبادله شده در مکالمه همگی صحیح بودهاند.
و پاسخهایی که slaveها ارسال میکنند شامل چه چیزهایی میتواند باشد؟
- تایید دریافت نمودن یک درخواست.
- اطلاعات یا دادهای که از آن درخواست شده است.
- دادههای بررسی خطا
اگر هیچ خطایی وجود نداشته باشند، نود slave دیتای درخواستی را برای master ارسال میکند و اگر در درخواست ارسال شده خطایی وجود داشته باشد و یا slave به هر علتی قادر به پاسخ دادن به آن درخواست نباشد، یک پیغام مشخص مبنی بر وجود خطا در پاسخ ارسال خواهد کرد.
بخش مربوط به بررسی خطا در دادهی ارسالی توسط slave، به master کمک میکند که از صحت دادهی دریافتی اطمینان پیدا کند.
در این آموزش، درمورد پروتکل ارتباطی مودباس و انواعی از آن که در صنعت از آنها استفاده میشود، به طور مختصر و در حد یک آشنایی کلی با شما صحبت کردیم. در آموزشهای بعدی که در مورد این موضوع ارائه میدهیم، در رابطه با ویژگیهای چنین ارتباطی میان دستگاههای مختلف بیشتر توضیح خواهیم داد.
منبع: ترجمه از سایت realpars.com
برای آنکه در بهبود کیفیت مطالب ارائه شده به ما کمک کنید، در قسمت کامنتها ما را مطلع کنید که از نظر شما این آموزش چطور بود؟ مهمترین نکتهای که از آن آموختید و بهترین ایدهای که در ذهن شما ایجاد کرد چه چیزی است؟
اگر این نوشته برایتان مفید بود لطفا کامنت بنویسید.