راه اندازی پروتکل مدباس ( ModBus TCP IP ) در بستر Ethernet

بازگشت به آموزشگاه

پروتکل مدباس TCP IP در بستر اترنت یکی از پروتکل های معروف در شبکه های پرسرعت صنعتی می باشد. به علت این که این پروتکل در لایه اپلیکیشن ( Application Layer ) قرار دارد، میتوان آن را بر روی انواع بستر های فیزیکی RS232 ، RS422 ، RS485 ، Ethernet و … پیاده سازی نمود. در مقاله قبلی به معرفی و پیاده سازی این پروتکل بر روی بستر RS485 پرداختیم و در این مقاله می خواهیم این پروتکل را بر روی بستر Ethernet پیاده سازی نماییم. به علت شباهت زیاد مدباس TCP IP و RTU به یکدیگر توصیه می شود ابتدا مقاله قبلی را بخوانید :


راه اندازی پروتکل مدباس ( ModBus RTU/ASCII ) در بستر RS485


همچنین برای راه اندازی پروتکل مدباس TCP IP بر روی بستر Ethernet نیاز به رعایت قوانین حاکم بر شبکه های کامپیوتری داریم. بنابراین توصیه می شود ابتدا با مطالعه دو مقاله زیر اصول اولیه شبکه های کامپیوتری و همچنین خواص پروتکل اترنت را فرا گیرید :


آشنایی با اصول و مبانی شبکه های کامپیوتری

آشنایی با پروتکل اترنت ( Ethernet ) و شبکه های محلی ( LAN )


معرفی پروتکل مدباس TCP IP

پروتکل مدباس TCP IP یکی از نسخه های پرکاربرد پروتکل شبکه ای مدباس می باشد. این پروتکل از نظر قالب بندی بسیار شبیه به پروتکل مدباس RTU است. در این پروتکل از لایه فیزیکی اترنت ( Ethernet ) به عنوان بستر تبادل دیتا استفاده می شود. شکل زیر مقایسه ای میان دو نگارش مختلف از پروتکل مدباس نشان داده شده است.

همانطور که مشاهده می کنید پروتکل مدباس در لایه اپلیکیشن قرار دارد و در سمت راست نگارش TCP IP و در سمت چپ نگارش RTU یا ASCII نمایش داده شده است. بر خلاف مدباس RTU/ASCII که ارتباط آن ها بر اساس Master و Slave بود در پروتکل مدباس TCP IP ارتباط به صورت Client و Server می باشد. بنابراین وسیله هایی که Master بوده اند اکنون Client و وسیله هایی که Slave بوده اند اکنون به عنوان Server در شبکه مدباس TCP IP شناخته می شوند. شروع کننده ارتباط در شبکه مدباس TCP IP کلاینت می باشد.


ویژگی های شبکه مدباس TCP IP

پیاده سازی شبکه مدباس بر روی بستر اترنت خواصی ایجاد می کند که در پیاده سازی مدباس در بستر های RS232 ، RS422 و RS485 نیست. این خواص عبارتند از :

  • شبکه Modbus TCP IP، میتواند هر تعداد Client و هر تعداد Server داشته باشد.
  • در شبکه مدباس بر اساس TCP IP، کلاینت میتواند با هر تعداد سرور ارتباط داشته باشد.همچنین سرور میتواند به چندین کلاینت پاسخ دهد.
  • هر وسیله موجود در شبکه مدباس TCP IP میتواند یک بار به عنوان کلاینت و بار دیگر به عنوان سرور عمل کند.
  • کلاینت در شبکه مدباس TCP IP میتواند چندین درخواست ( request ) مختلف به یک سرور خاص یا چندین سرور مختلف بفرستد بدون آن که منتظر پاسخ هر یک باشد.

شکل زیر یک شبکه مدباس TCP IP نمونه را نشان می دهد که کلیه موارد فوق در آن وجود دارد :


راه اندازی شبکه مدباس TCP IP

برای پیاده سازی شبکه مدباس TCP IP موارد زیر را در نظر بگیرید :

  • شبکه مدباس TCP IP را تنها میتوان بین تجهیزاتی که دارای پورت شبکه ( RJ45 ) و قابلیت اتصال به شبکه اترنت دارند، پیاده سازی کرد.
  • در شبکه های محلی معمولا از سوئیچ های شبکه برای اتصال تجهیزات به یکدیگر استفاده می شود و توپولوژی شبکه Star است.
  • تجهیزات دارای پروتکل مدباس و دیگر تجهیزات غیر مدباسی نظیر پرینتر، اسکنر و … میتوانند روی یک شبکه کامپیوتری قرار گیرند و بدون مشکل کنار هم کار کنند.
  • تجهیزات مدباسی و غیر مدباسی موجود در شبکه بایستی آی پی آدرس منحصر به فرد داشته باشند.
  • هر پروتکلی در لایه کاربرد ( Application Layer ) دارای پورت خاصی است مثلا پورت پروتکل Http در لایه کاربرد 80 می باشد. پورت پروتکل مدباس 502 است.

قالب بندی داده ها در پروتکل مدباس TCP IP

در شبکه های مبتنی بر TCP IP همواره ابتدا کلاینت درخواست ( Request ) به سرور می فرستد و سپس سرور پاسخ ( Response ) می دهد. در شبکه مدباس TCP IP هم اینگونه است. قالب ارسال درخواست و دریافت پاسخ در مدباس TCP IP بسیار شبیه به قالب مدباس RTU می باشد. در حقیقت در پروتکل مدباس TCP IP قالب دیتا همان قالب مدباس RTU است که دو بخش از آن حذف شده و 4 بخش به آن اضافه شده است. شکل زیر این موضوع را نشان می دهد :

همانطور که مشاهده می کنید در قالب بندی مدباس TCP IP بخش CRC به طور کامل حذف شده است و بخش Slave ID نیز تبدیل به Unit ID شده است. همچنین Transaction ID ، Protocol ID و Length نیز به ابتدای قالب اضافه شده است. شکل زیر تعداد بایت های هر بخش را نشان داده است.

همانطور که مشاهده می کنید به بخشی که از مدباس RTU در قالب بندی فوق وجود دارد PDU و به بخش جدیدی که به آن اضافه شده است MBAP Header و به کل این قالب ADU گفته می شود.

شناسه انجام ( Transaction ID )

این دو بایت عددی است که برای شناسایی پکت های ارسال یا دریافت شده مورد استفاده قرار می گیرد. کلاینت هر درخواستی که ارسال می کند، یک شناسه انجام برای آن در نظر می گیرد که در صورت جابجایی درخواست ها ترتیب آن ها مشخص شود. سرور هم با دریافت این شناسه بدون تغییر آن را برای کلاینتی که درخواست فرستاده برمی گرداند. برای روشن شدن موضوع شکل زیر را در نظر بگیرید:

همانطور که مشاهده می کنید کلاینت 3 درخواست مختلف خواندن از سه سیم پیچ ( coil ) مختلف با شناسه های 1 و 2 و 3 ارسال کرده است اما ترتیب دریافت آن ها به هر علتی ( پیچیدگی شبکه، شلوغ بودن سرور و … ) دچار جابجایی شده است و پاسخ آن ها با شناسه های 3 و 2 و 1 دریافت شده است. بنابراین پکت ها هر چند که جابجا دریافت شده است اما چون دارای شناسه است گم نمی شود.

شناسه پروتکل ( Protocol Identifier )

این دو بایت برای کاربردهای آینده رزرو شده است و همواره صفر در نظر گرفته می شود.

طول ( Length )

این دو بایت همواره برابر با مجموع طول دیتاهای بعد از خود می باشد. یعنی برابر است با طول Unit ID + Function Code + Data یا به عبارت دیگر Data + 2

شناسه دستگاه ( Unit ID )

در پروتکل مدباس TCP IP شناسایی اصلی دستگاه ها توسط آدرس IP صورت می گیرد که برای هر وسیله منحصر به فرد است. بنابراین Unit ID صرفا یک عددی فرعی است که کاربرد آن تنها برای تبدیل مدباس TCP IP به مدباس RTU/ASCII کاربرد دارد مانند شبکه زیر :


پیاده سازی شبکه مدباس TCP IP با استفاده از W5500 و میکروکنترلر STM32

برای پیاده سازی شبکه مدباس TCP IP از آی سی کنترلر اترنت W5500 ساخت شرکت Wiznet و میکروکنترلر STM32F407 استفاده کردیم. در شکل زیر برد طراحی شده را مشاهده می کنید:

قبلا از این برد در پروژه راه اندازی وب سرور http با آی سی W5500 استفاده کرده بودیم و اکنون در همان پروژه با حذف لایه http و جایگزین کردن لایه مدباس TCP IP به پروژه اخیر می رسیم.


نحوه تست شبکه مدباس TCP IP با نرم افزار Modbus Poll

برای ارتباط با سرور طراحی شده از نرم افزار Modbus Poll (Master/Client) استفاده می کنیم. آخرین ورژن این نرم افزار از طریق لینک زیر قابل دریافت می باشد:


دانلود نرم افزار Modbus Poll V9.4.1.1421 x64


بعد از دانلود و نصب نرم افزار فوق برای اتصال به سرور تنظیمات زیر را انجام می دهیم


دانلود سورس پروژه راه اندازی پروتکل مدباس TCP IP شامل :

  • سورس راه اندازی سرور مدباس TCP IP روی میکروکنترلر STM32F407 و کنترلر اترنت W5500 به زبان C و کامپایلر Keil
  • سورس تنظیمات اولیه در نرم افزار Stm32CubeMx
  • توضیحات نحوه پروگرام و تست مدباس TCP IP

لینک خرید آنلاین از فروشگاه الکترو ولت

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

بازگشت به آموزشگاه