مودباس
مودباس (به انگلیسی:Modbus) یک پروتکل ارتباطاتی سریال میباشد که در سال 1979 توسط شرکت مودیکن برای استفاده در کنترل کنندههای منطقی قابل برنامهریزی (PLC) منتشر شد.ساختاری ساده و قوی دارد و از آن زمان تا کنون به یکی از پروتکل های استاندارد در صنعت بدل گشته است.در حال حاضر یکی از رایجترین پروتکلها در اتصال دستگاههای الکترونیک صنعتی است.دلایلی که پروتکل Modbus در محیطهای صنعتی کاربرد فراوانی دارد عبارتند از: 1. جهت کاربردهای صنعتی توسعه و گسترش یافتهاست 2. به صورت رایگان منتشر شدهاست 3. گسترش پذیری و نگهداری ساده ای دارد
Modbus جهت برقراری ارتباط بین بسیاری (حدود 240) دستگاههای متصل به یک شبکه استفاده میشود، به عنوان مثال این پروتکل جهت اتصال وضعیت دما و رطوبت به یک کامپیوتر قابل استفاده است.Modbus اغلب جهت ارتباط کامپیوتر ناظر با RTUها در سیستمهای اسکادا استفاده میشود.توسعه و بروز رسانی Modbus را سازمان مدیریت Modbus انجام میدهد.این سازمان از کاربران مستقل و تأمین کنندگان دستگاههای سازگار با پروتکل Modbus تشکیل شدهاست.
از آوریل 2004، توسعه و به روز رسانی پروتکل های مدباس توسط سازمان مدباس مدیریت شده است، زمانی که اشنایدر الکتریک حقوق را به آن سازمان منتقل کرد. سازمان Modbus انجمنی از کاربران و تامین کنندگان دستگاه های سازگار با Modbus است که از استفاده مداوم از این فناوری حمایت می کند. سازمان مدباس، یک انجمن تجاری برای ترویج و توسعه پروتکل Modbus است.
محدودیت ها
- از آنجایی که Modbus در اواخر دهه 1970 برای برقراری ارتباط با کنترل کننده های منطقی قابل برنامه ریزی طراحی شد، تعداد انواع داده ها محدود به آنهایی شد که PLC ها در آن زمان درک می کردند.اشیاءدوتایی بزرگ پشتیبانی نمی شوند.
- هیچ راه استانداردی برای یک گره برای یافتن توضیحات یک شی داده وجود ندارد، به طور مثال، یاد بگیرید که یک مقدار ثبات نشان دهنده دمای بین 30 تا 175 درجه است.
- از آنجایی که Modbus یک پروتکل مشتری/سرور (درگذشته ارباب/برده) است. هیچ راهی برای یک دستگاه فیلد برای دریافت داده ها توسط مکانیسم کنترل کننده رویداد (به جز از طریق اترنت TCP/IP، به نام open-mbus) وجود ندارد، زیرا گره مشتری باید به طور معمول هر دستگاه فیلد را نظرسنجی کند و به دنبال تغییرات در داده ها باشد.
Modbus به آدرس دهی 247 دستگاه در یک پیوند داده محدود شده است، که تعداد دستگاه های میدانی را که ممکن است به یک ایستگاه والد متصل شوند محدود می کند (باز هم اترنت TCP/IP یک استثنا است). پروتکل Modbus خود هیچ گونه امنیت در برابر دستورات غیرمجاز یا رهگیری داده ها را فراهم نمی کند.
انواع شی مودباس
انواع شیء زیر ممکن است توسط یک سرور Modbus به یک دستگاه مشتری Modbus ارائه شود:
نوع شی | دسترسی | اندازه | فضای آدرس |
---|---|---|---|
هسته | خواندن-نوشتن | 1 bit | 00001 – 09999 |
ورودی گسسته | فقط خواندنی | 1 bit | 10001 – 19999 |
ثبت ورودی | فقط خواندنی | 16 bits | 30001 – 39999 |
برگزاری ثبت نام | خواندن-نوشتن | 16 bits | 40001 – 49999 |
ارتباطات و دستگاه ها
به هر دستگاهی که با یک Modbus ارتباط برقرار می کند (یعنی انتقال داده) یک آدرس منحصر به فرد داده می شود.
در Modbus RTU، Modbus ASCII و Modbus Plus (که همگی شبکه های چند قطره تک کابلی RS-485 هستند)، فقط گره ای که به عنوان مشتری اختصاص داده شده است می تواند دستوری را آغاز کند. همه دستگاه های دیگر سرور هستند و به درخواست ها و دستورات پاسخ می دهند.
برای پروتکلهایی که از اترنت استفاده میکنند، مانند Modbus TCP، هر دستگاهی میتواند یک فرمان Modbus ارسال کند و بنابراین همه آنها میتوانند به عنوان مشتری عمل کنند، اگرچه معمولاً فقط یک دستگاه این نقش را دارد. بسیاری از مودم ها و دروازه ها از Modbus پشتیبانی می کنند، زیرا یک پروتکل ساده و اغلب کپی شده است. برخی از آنها به طور خاص برای این پروتکل طراحی شده اند. پیاده سازی های مختلف از ارتباطات سیمی یا بی سیم مانند در باند ISM و حتی سرویس پیام کوتاه (SMS) یا سرویس رادیویی بسته عمومی (GPRS) استفاده می کنند. یکی از رایجترین طرحهای شبکههای بیسیم، استفاده از شبکههای مش است. مشکلات معمولی که طراحان باید بر آنها غلبه کنند عبارتند از تاخیر زیاد و مسائل مربوط به زمان است.
دستورات
دستورات Modbus می توانند به دستگاه Modbus دستور دهند:
- مقدار یکی از رجیسترهای آن را که به رجیسترهای هسته و نام نویسی نوشته شده است تغییر دهید
- خواندن یک پورت I/O: خواندن داده ها از یک ورودی گسسته یا از یک هسته
- به دستگاه دستور دهید تا یک یا چند مقدار موجود در رجیسترهای هسته و نگهدارنده خود را ارسال کند
یک دستور مودباس حاوی آدرس مودباس دستگاهی است که برای آن در نظر گرفته شده است (1 تا 247). فقط دستگاه آدرسدهی شده به دستور پاسخ میدهد و به آن عمل میکند، حتی اگر برای دستگاههای دیگر ممکن باشد آن را دریافت کنند (یک استثنا، دستورات قابل پخش خاصی است که به گره 0 ارسال میشود، که بر اساس آنها عمل میشود اما تأیید نمیشوند).
تمام دستورات Modbus حاوی اطلاعات جمع کنترل هستند تا به گیرنده امکان تشخیص خطاهای انتقال را بدهد.
فرمت های فریم
یک "قاب" Modbus از یک واحد داده برنامه (ADU) تشکیل شده است که یک واحد داده پروتکل (PDU) را محصور می کند:
- ADU = آدرس + PDU + بررسی خطا
- PDU = کد تابع + داده.
در فریم های داده Modbus، مهم ترین بایت یک مقدار چند بایتی قبل از بقیه ارسال می شود.
همه انواع Modbus از یکی از قالب های فریم زیر استفاده می کنند.
قالب قاب RTU مودباس
این قالب عمدتاً در خطوط داده سریال ناهمزمان مانند RS-485 استفاده می شود. نام آن به یک ترمینال راه دور اشاره دارد.
نام | طول (بیت) | کارایی |
---|---|---|
شروع | 3.5*8 | حداقل 3+1⁄2 بار کاراکتر (28 بیت) سکوت (شرایط علامت گذاری) |
آدرس | 8 | آدرس ایستگاه |
عملکرد | 8 | کد عملکرد را نشان می دهد. "هسته ها را بخوانید" |
داده | n × 8 | داده + طول بسته به نوع پیام پر می شود |
CRC | 16 | بررسی افزونگی چرخه ای |
پایان | 3.5*8 | حداقل 3⁄2 کاراکتر بار (28 بیت) سکوت (شرایط علامت گذاری) بین فریم ها |
منابع
- ↑ "Modbus home page". Modbus. Modbus Organization, Inc. Retrieved 2 August 2013.
- ↑ "Modbus FAQ". Modbus. Modbus Organization, Inc. Retrieved 1 November 2012.
- ↑ "About Modbus Organization". Modbus. Modbus Organization, Inc. Retrieved 8 November 2012.
- ↑ "Modbus home page". Modbus. Modbus Organization, Inc. Retrieved 2 August 2013.
- ↑ https://modbus.org/docs/Client-ServerPR-07-2020-final.docx.pdf[bare URL PDF]
- ↑ Palmer; Shenoi, Sujeet, eds. (23–25 March 2009). Critical Infrastructure Protection III. Third IFIP WG 11. 10 International Conference. Hanover, New Hampshire: Springer. p. 87. ISBN 978-3-642-04797-8.
- ↑ https://modbus.org/docs/Modbus_Application_Protocol_V1_1b3.pdf
- ↑ http://www.modbus.org/docs/Modbus_Messaging_Implementation_Guide_V1_0b.pdf
- ↑ http://knovel.com/web/portal/browse/display?_EXT_KNOVEL_DISPLAY_bookid=2995&VerticalID=0