در این پست در مورد نحوه کار پروتکل ارتباطی مدباس بین دستگاه ها، خواهیم آموخت.

در مقاله پروتکل ارتباطی مدباس(Modbus) چیست؟ درباره چیستی پروتکل ارتباطی مدباس و انواع مدباس مورد استفاده در صنعت یاد گرفتیم.

1- ساختار پیام در پروتکل ارتباطی مدباس

پیام های مدباس ساختار مشابهی دارند که از 4 فاکتور اصلی تشکیل شده اند.
نظم و ترتیب این فاکتورها در همه پیام ها یکسان است. همین مسئله موجب تجزیه آسان محتوای پیام های مدباس میشود.

در شبکه مدباس ، مکالمه همواره توسط یک master آغاز میشود. master پیامی را ارسال میکند.
با توجه به محتویات آن، slave پیام را تفسیر کرده و به آن پاسخ میدهد.

آدرس دهی فیزیکی slave در سرتیتر هر پیام، مشخص میکند که کدام دستگاه slave باید به پیام پاسخ دهد.
نودهای (nodes) دیگر موجود در شبکه مدباس درصورتی که فیلد آدرس با آدرس خودشان مطابقت نداشته باشد، این پیام را نادیده میگیرند.

آدرس دهی فرمانبر فیزیکی در سرتیتر پیام پروتکل مدباس

توابع مدباس دستورات خواندن و نوشتن را برای حافظه داخلی slave اجرا میکنند تا پیکربندی، نظارت و کنترل ورودی ها و خروجی های slave را ثبت کند.

1-1 دستگاه های مبتنی بر پروتکل مدباس

دستگاه های مبتنی بر پروتکل مدباس به طور معمول،
حاوی یک نقشه رجیستر کلی هستند. با استفاده از این نقشه، پیکربندی، ورودی و خروجی داده ها خوانده و نوشته میشوند.
برای درک بهتر عملیات کلی باید به نقشه رجیستر slave مربوط به دستگاه مراجعه کرد.

مدل داده ها در مدباس دارای یک ساختار ساده شامل چهار نوع داده اساسی است:

  •  ورودی های مجزا (Discrete Inputs).
  •  خروجی های کویل (سیم پیچ)  (Coils Outputs).
  •  ورودی رجیستری یا داده های ورودی (Input Registers or Input Data).
  •  نگهدارنده رجیستری یا داده های خروجی (Holding Registers or Output Data).

ساختار داده در پروتکل مدباس

2-1 واحد داده در پروتکل مدباس (Protocol Data Unit (PDU

محل درخواست خدمات در پیام یا واحد داده پروتکل مدباس یا PDU متشکل است از:
– کد عملکرد یا کد تابع (Function code).
– تعداد داده های (data bytes) درخواست شده توسط master.

واحد داده در پروتکل مدباس

حافظه رجیستری مدباس (memory registers) در هر دستگاه حول چهار نوع مرجع داده سازماندهی میشوند.
این نوع داده ها بیشتر توسط عدد آغازین مورد استفاده در حافظه آدرس دستگاه (memory address)، شناخته میشوند. مانند:

• صفر (0) موجود در رجیستر به معنی: خواندن و یا نوشتن «خروجی های مجزا یا کویل».
• یک (1) موجود در رجیستر به معنی: خواندن «ورودی های مجزا».
• سه (3) موجود در رجیستر به معنی: خواندن «ورودی رجیستری».
• چهار(4) موجود در رجیستر به معنی: خواندن یا نوشتن بر روی « داده خروجی و نگهدارنده رجیستری».

1-2-1 پیام مدباس «فیلد کد عملکرد (Function Code Field)»

«فیلد کد عملکرد» مشخص میکند که با استفاده از کدام گروه داده های رجیستری از slave، آن را میخواند یا مینویسد.
به عنوان مثال، یک کد عملکرد 03، که نگهدارنده رجیستری 40001-40002 را میخواند،
به عنوان داده های رجیستری 0000 آدرس دهی میشود که در فیلد آدرس داده ها در پیام ارسالی به slave قرار میگیرد.

کد عملکرد 03 بر روی موجودی رجیستری نوع (4xxxx) در نقشه داده های slave کار میکند
زیرا درخواست نوع عملیات داده ها نگهدارنده رجیستری مورد استفاده را مشخص میکند و بر آدرس دهی (4xxxx) دلالت دارد.

نقش فیلد کد عملکرد در پروتکل مدباس RTU

فیلدهای PDU به بایت ها تقسیم شده و براساس عنوان فیلد گروه بندی میشوند.

پیام درخواست شامل:

• «آدرس slave  «01.
• «کد عملکردFunction code) 03) »(خواندن از نگهدارنده رجیستری های 4xxxx ).
• «دستور شروع (starting address)» همان بایت های HI و LO یا (0000) هستند که شروع رجیستر را مشخص میکنند.
• «تعداد آدرس هایی (count number of addresses) » که از slave خوانده میشود، معادل است با داده های
رجیستری HI و LO از ارزش تعدادی (0002) و مشخص کننده «تعداد رجیسترهایی» است که از slave خوانده خواهند شد.

محتوای پیام مدباس RTU در پروتکل مدباس

1-1-2-1 یک مثال

مثالی از یک درخواست «خواندن» برای «دو رجیستری اول» از « نگهدارنده رجیستری»در ناحیه 0 و 1 :
(رجیستری از 40001 تا 40002) از دستگاه slave1 در شکل زیر نشان داده شده است.

مثالی از خواندن موجودی رجیستری در پروتکل مدباس

در تصویر بالا، نگهدارنده رجیستری 40108 به عنوان رجیستری 107 در ناحیه داده های پیامِ PDU آدرس دهی شده.

بسیاری از انواع داده ها براساس کاربردشان نامگذاری میشوند.
برای مثال، خروجی فیزیکی یک بیتی، یک کویل نامیده میشود. و یک ورودی فیزیکی تک بیتی، یک ورودی مجزا یا یک مخاطب نامیده میشود.

منبع نامگذاری حافظه رجیستری در پروتکل مدباس

فیلد کد عملکرد پیام، حاوی یک بایت است که به slave میگوید چه کاری باید انجام دهد.
کدهای عملکرد معتبر در محدوده 1 تا 255 هستند، اما همه کدها برای یک slave خاص اعمال نمیشوند.
جدول نشان داده شده در تصویر، زیر مجموعه ای از توابع پروتکل استاندارد مدباس را نشان می دهد.

دستورات استاندارد در پروتکل مدباس

2-2-1 فیلد «داده» در پیام مدباس (Data Field)

در فیلد درخواست «داده» master، اطلاعات اضافی مورد نیاز slave برای تکمیل هر عملیاتی که با «کد عملکرد» مشخص شده، ارائه میشود.

درخواستهای master معمولا شامل موارد زیر است:

  • آدرس نقشه رجیستری map register address) ،slave).
  •  تعداد رجیسترها برای ارائه در درخواست.
  •  هر دستور نوشتن «داده» از write data) ،master).

2- پردازش خطای پیام های مدباس

پاسخ عادی slave، به سادگی کد عملکرد اصلی درخواست را بازتاب میکند.
اما پاسخ خطای slave، کد معادل کد عملکرد اصلی را با استفاده از مهمترین بیت متعلق به (logic 1)، بازمیگرداند.

به عنوان مثال، دستور «خواندن موجودی رجیستری» (کد عملکرد03) دارای کد عملکرد 1 بایتی حاوی 8 بیت دوتایی
0011 0000 (03 Hex) است. اگر دستگاه slave درخواست را بدون خطا قبول کند، همان کد را در پاسخ خود بازمیگرداند.

با این حال، اگر خطایی رخ دهد، slave یک بایت حاوی 8 بیت دوتایی 1000 0011 (مهمترین بیت متعلق به منطق 1) در فیلد «کد عملکرد» باز میگرداند.
همچنین  یک کد منحصر بفرد (کد حذف) را در فیلد داده ها در پاسخ اضافه میکند که به دستگاه slave نوع خطای رخ داده و یا علت خطا را نشان میدهد.

پیام خطا در پروتکل مدباس

3- رایجترین کدهای عملکرد در مدباس RTU

کد عملکرد 01، «کد خواندن کویل (Read Coils)»

برای خواندن رجیستری های پیوسته 1 تا 2000 مربوط به وضعیت کویل ها در یک دستگاه slave استفاده میشود.
درخواست PDU اولین آدرس کویل مربوط به حافظه رجیستری های slave و تعداد کویل هایی که باید از دستگاه slave خوانده شوند را، مشخص میکند.

کد عملکرد 02، «کد خواندن داده های گسسته (Read Discrete Input)»

برای خواندن حالتهای متناوب 1 تا 2000  از خروجی های گسسته مربوط به یک slave راه دور استفاده میشود.
درخواست PDU اولین آدرس ورودی مربوط به حافظه رجیستری های slave و تعداد ورودی هایی که باید از دستگاه slave خوانده شوند را، مشخص میکند.

کد عملکرد 03، «کد خواندن نگهدارنده رجیستری (Read Holding Registers)»

برای خواندن محتویات یک بلوک متوالی از نگهدارنده رجیستری مربوط به یک slaveِ راه دور استفاده میشود.
درخواست PDU شروع آدرس رجیستری و تعداد رجیسترهایی که باید از دستگاه slave خوانده شوند را، مشخص میکند.

کد عملکرد 04، «کد خواندن رجیستری های ورودی (Read Input Registers)»

برای خواندن 1 تا 125 از رجیستری های ورودی پیوسته در یک دستگاهِ راه دور استفاده میشود.
درخواستPDU شروع آدرس رجیستری و تعداد رجیسترها را، مشخص میکند.

کد عملکرد 05، «کد خواندن تک کویل (Read Input Registers)»

برای نوشتن یک خروجی یکتا به صورت ON یا OFF در یک دستگاه slaveِ راه دور استفاده میشود.

کد عملکرد 06، «کد خواندن تک رجیستر (Write Single Register)»

برای نوشتن یک نگهدارنده رجیستریِ یکتا در یک دستگاه slave راه دور استفاده میشود.
درخواست PDU آدرس حافظه رجیستریِ مربوط به slave را که باید نوشته شود، تعیین میکند.

کد عملکرد 15، «کد خواندن کویل های چندگانه (Write Multiple Coils)»

برای اعمال بر روی هر یک از کویل های متوالی در یک دستگاه slave راه دور استفاده میشود.
درخواست PDU آدرس حافظه کویلهای ON یا OFF  شده رامشخص میکند.

کد عملکرد15 در پروتکل مدباس

کد عملکرد 16، «کد نوشتن رجیستری های چندگانه (Write Multiple Registers)»

برای نوشتن یک بلوک از رجیستری های پیوسته از 1 تا 123 رجیستر در یک دستگاه slave راه دور استفاده میشود.

این کدهای عملکرد در مدباس، نمایانگر رایجترین کدهای دستوری خواندن و نوشتن هستند.
و میتوانید برای آشنایی بیشتر، مشخصات پروتکل مدباس (Modbus protocol specification) را دوباره بررسی کنید.

4- برنامه شبیه سازی پروتکل مدباس (Modbus Protocol Simulator Software)

ارتباط دستگاه های slave یا PLC های کنترل کننده و یا کامپیوترها را میتوان با استفاده از برنامه شبیه ساز مدباس بر روی کامپیوتر شخصی اجرا کرد.

اتصال میتواند سریال یا اترنت و به صورت یک master یا slave باشد.
این نرم افزار امکان استفاده از تمام کد های عملکرد (کدهای دستوری) مربوط به ارتباطات پروتکل مدباس را میدهد.
با استفاده از این کدها براحتی میتوان خواندن و نوشتن را با یک slave انجام داد.

میتوان از یک کامپیوتر برای اجرای برنامه شبیه سازی slave استفاده کرد
و کامپیوتر دیگری را برای اجرای برنامه شبیه سازی master به کار برد.

برنامه شبیه ساز ساختار master و slave در پروتکل مدباس

اتصال به یک slave ابتدا با تنظیم پارامترهای ارتباط برای سریال پورت COM انجام میشود.

تنظیمات پورت سریال COM برنامه slave در پروتکل مدباس

سپس با وارد کردن آدرس slave در فیلد شناسه دستگاه، (به عنوان مثال 1)،
انتخاب کد دستوری01  برای خواندن موقعیت کویل های  slave در آدرس 0001  و خواندن طول 100 کویل، انجام میشود.

محیط و تنظیمات برنامه slave در پروتکل مدباس

همچنین، چندین شرکت ارائه دهنده محصولات و پشتیبانی برای کمک به شما در استفاده از ارتباط پروتکل وجود دارد.
ProSoft Technologies، HMS Industrial Communication و MOXA از جمله این شرکتها هستند.

در این مقاله چگونگی کار پروتکل ارتباطی مدباس را توضیح دادیم. امیدواریم هرآنچه برای ساخت یک پروژه کنترل حرکت نیاز است را آموخته باشید.

مقاله بالا بخشی از بسته جامع اتوماسیون صنعتی
(بسته جامع +30) است.

برای مشاهده کامل این بسته کلیک کنید.

مشاهده بسته اتوماسیون صنعتی
بسته جامع اتوماسیون صنعتی

در نماتک نظر دهید