بررسی و تشریح شبکه صنعتی مدباس
در این مقاله در خصوص یکی دیگر از پروتکل های معروف در اتوماسیون صنعتی در خدمت شما دوستان و مهندسان عزیز هستیم.امیدوارم که مطالب زیر که حاصل تحصیل،تحقیق و تجربه می باشد مفید و راه گشای مسائل بوجود آمده در مسیر موفقیتتان قرار گیرد.
تاریخچه:
شبکه ی مدباس اولین بار در سال 1979 توسط شرکت Modicon که بعدها زیر مجموعه ای از اشنایدر الکتریک گردید،معرفی شد.
شرکت Modicon ابتدا این پروتکل ارتباطی را به جهت استفاده در PLC ها رایح کرد ولی بتدریج پروتکل مدباس به صورت یک استاندارد پذیرفته شد و توسط بسیاری از شرکت های تولید کننده تجهیزات اتوماسیون مورد استفاده قرار گرفت.
شبکه مدباس به صورت یک استاندارد باز(Open Source) می باشد و به همین دلیل به سهولت می توان بین تجهیزات با برندهای مختلف ارتباط ایجاد کرد.
انواع پروتکل های شبکه مدباس
شبکه مدباس دارای سه نسخه اصلی است که ویژگی های آن ها با هم تفاوت دارد.
نسخههای پروتکل مودباس برای پورت سریال و اترنت و دیگر شبکهها که مجموعه پروتکل اترنت را پشتیبانی میکنند، موجود است. اکثر دستگاههای مودباس روی لایه فیزیکی
EIA-485 ارتباط برقرار میکنند.
1) Modbus RTU,ASCII:
(واحد پایانه از راه دور) RTU: Remote Terminal Unit
( کد استاندارد آمریکایی برای تبادل اطلاعات ) ASCII: American Standard Code For Information Interchange
این پروتکل بر روی پورت سریال و لایه فیزیکی RS-232 ،RS-422 ، RS-485 ،امواج رادیویی،فیبر نوری و سلولار(شبکه تلفن همراه) به صورت Master/Slave کار می کند.سرعت تبادل اطلاعات 115Kb/s تا 1200b/s بوده و مسافت 1 تا 1.3 کیلومتری تحت شرایط خاص که در ادامه مقاله بیان می شود،را پوشش می دهد.این پروتکل در هرم اتوماسیون،عموما در لایه کنترل و لایه ی فیلد مورد استفاده قرار می گیرد.
حداکثر تجهیزاتی که در این پروتکل می توانند در داخل شبکه قرار بگیرند بدون استفاده از ریپیتر،31 تجهیز و با استفاده از ریپیتر و تشکیل سگمنت،حداکثر 247 تجهیز می باشد.(آدرس های Slave می تواند از 1 تا 247 قرار گیرند و آدرس 0 برای عملیات Broadcast رزرو شده است.)
-تفاوت هایی در مد انتقال RTU و ASCII وجود دارد که در شکل زیر بررسی شده است:
♦ مدباس RTU که به مدباس باینری (Modbus-B یا Modbus Binary)معروف است،بدلیل کوتاه بودن فریم داده،سرعت تبادل بالایی نسبت به مد ASCII دارا می باشد.
(مد RTU حداکثر سایز داده 256 بایت بوده ولی در مد ASCII ماکزیمم سایز داده به 513 بایت می رسد).معمول ترین و مناسب ترین پیاده سازی در دسترس برای مودباس،مد RTU است.
♦ تشخیص خطا در داده (Check Sum) در مدباس RTU بوسیله ی (CRC(Cyclic Redundancy Check که 2 بایت هست انجام می گیرد ولی در مدباس ASCII تشخیص خطا یا همان چک سام بوسیله ی (LRC(Longitudinal Redundancy Check که 1 بایت می باشد صورت می گیرد.
* چک سام چگونه وجود خطا را بررسی می کند؟
چک سام،پیام ارسالی Master را محاسبه کرده و سپس برای Slave ارسال می کند.حال پیام برگشتی از Slave که به عنوان پاسخ می باشد،مجددا توسط چک سام محاسبه شده و با مقدار ارسالی Master مقایسه می گردد.اگر اختلافی تشخیص داده شود یعنی Slave نتوانسته پیامی برای Master ایجاد کند.
-فریم داده در مدباس RTU:
*مدباس ASCII که به مدباس کاراکتری(Modbus_A) شناخته می شود،بیشتر به عنوان تست مورد استفاده قرار گرفته و برای ارتباط از کارکترهای اسکی استفاده می کند.
-فریم داده در مدباس ASCII:
-چهار اصطلاح Start Bit,Stop Bit,Data Bit و Parity در مدهای RTU وASCII کاربرد دارد که در زیر هر کدام تعریف شده اند:
Start Bit: بیت شروع می باشد که برای هر دو مد عدد 1 قرار می گیرد.
Data Bit: طول داده ارسالی با این گزینه مشخص می شود که در مد RTU هشت بیت و در مد ASCII هفت بیت انتخاب میشود.
Parity: یا بیت توازن،که دارای دو نوع زوج و فرد است.مثلا در نوع زوج(Even)،اگر تعداد یک ها در هر بایت زوج بود،بیت پریتی صفر می شود تا زوج بودن بایت فرد نشود و اگر تعداد یک ها در یک بایت فرد بود،پریتی یک شده و تعداد آن ها را زوج می کند.
Stop Bit: بیت پایانی فریم داده می باشد و سایز آن بسته به انتخاب Parity می باشد.
***باید توجه شود که تمام تجهیزاتی که در داخل شبکه قرار دارند از یک مد(RTU یا ASCII) استفاده کنند.
>>> مشاهده جدول کارکترها اسکی <<<
2) Modbus TCP/IP:
پروتکل ارتباطی از نوع CSMA/CD یا همان پروتکل برخورد یاب بوده و لایه فیزیکی آن مشابه اترنت و به صورت Client/Server می باشد.این پروتکل مشابه شبکه اترنت بوده وبر طبق مدل OSI،در لایه ترنس پورت،TCP و در لایه نتورک IP تعیین می شود.
سرعت شبکه مدباس TCP مشابه اترنت بوده و در رنج 10 تا 100 مگابیت/ثانیه می باشد.این پروتکل در هرم اتوماسیون،در لایه های مدیریت و سوپروایزری مورد استفاده قرار می گیرد.
در نگاه کلی Modbus TCP/IP همان پروتکل ModbusRTU ميباشد كه با اينترفيس TCP/IP روي شبكه Ethernet كار ميكند و در آن TCP براي اطمينان از ارسال درست ديتا و IP براي اطمينان از آدرس دهي و مسير يابي صحيح بكار ميرود.
Modbus TCP/IP فريم استاندارد پيام مدباس را به فريم استاندارد TCP در پورت 502 كه اصطلاحاً به آن فريم MBAP که مخفف ModbBus Application Protocol می باشد تبدیل می کند.
3) Modbus Plus:
بر اساس پروتکل Token یا ارسال نشانه کار می کند و از نرخ تبادل اطلاعات نسبتا بالایی حدود 1Mb/s با لایه فیزیکی RS-485 برخوردار است.پروتکل مدباس پلاس برخلاف نسخه پايه بعنوان يك استاندارد باز طرح نشده است و انحصاری شرکت مدیکان می باشد.
در این پروتکل تعداد نودهای شبکه یا تجهیزات قرار گرفته در شبکه بدون ریپیتر 32 عدد و با ریپیتر ماکزیمم 64 عدد با طول 1800 متر قابل اتصال می باشد.البته با استفاده از کابل های فیبر نوری می توان مسافت های طولانی تر را نیز استفاده کرد.
معایب شبکه مدباس RTU و ASCII:
-پروتکل مدباس در برابر دستورات غیر مجاز یا رهگیری داده هیچ نوع امنیتی را فراهم نمی کند.
-در مدباس RTU و ASCII به علت ارتباط سریال،نرخ تبادل دیتا در مقایسه با سرعت شبکه های ارتباطی امروزی که 100Mb/s و یا چند Gb/s می باشند سرعت پایینی است.
-در ارتباط سریال که به صورت Master/Slave است،تنها یک Master می تواند در شبکه قرار گیرد و بقیه نودها Slave هستند؛این بدین معنی است که تنها بر روی باس یک Master اجازه صحبت با گروهی ازSlaveها را دارد.
-از آنجا که توسط RS-232 تنها دو وسیله و با RS-485 بین 20 تا 30 وسیله امکان ارتباط وجود دارد از این رو با افزایش وسایل بیشتر، نیاز به ارتباطات پیچیده درختی است.
نحوه ی ارتباط Master و Slave در شبکه مدباس
اين لايه از تكنيك دسترسي Master/Slave استفاده می کند. بنابراين در هر لحظه فقط يك مستر ميتواند باس را در اختيار داشته و با ماكزيمم 247 وسيله Slave كه به همان باس متصل هستند ارتباط برقرار كند. بديهی است در اين تكنيك دسترسي،slave ها هيچگاه بدون درخواست مستر،ديتايي را نمي فرستند و هيچگاه نيز با يكديگر ارتباط برقرار نمي كنند. این نحوه ی ارتباط در لایه دیتا لینک مدل OSI پیاده سازی می شود.
-مستر به دو روش درخواست خود را ارسال می کند:
1-Unicast: در این مد،Master در میان تمامی Slaveها فقط یک Slave را خطاب قرار داده و درخواست دیتا می کند.بدیهی است که در این مد باید Slaveها هر کدام آدرس منحصر به فرد داشته باشند.
2-Broadcast:در اين حالت مستر پيام خود را برای تمامSlave ها ميفرستد ولي هيچ پاسخي به مستر بر نمیگردد. اين مد از جمله براي نوشتن فرامين (Writing Commands) بكار ميرود.برای مد Broadcast آدرس صفر ،رزرو شده است.
شکل زیر سطح دسترسی پروتکل های مدباس را به لایه های مدل OSI نشان می دهد.
(OSI :Open Systems Interconnection)
بررسی لایه ی فیزیکی Modbus RTU/ASCII
RS-232:
این استاندارد به صورت Point_To_Point می باشد.این یعنی تعداد Node در Rs-232 فقط 2 عدد است.یک مستر و یک اسلیو. در استاندارد Rs-232 حداکثر طول کابل 15 متر و با کابل ها ی خازنی حداکثر 50 متر با نرخ دیتا 115Kb/s قابل دسترس است.علت کاربرد داشتن در فواصل کم تفاضلی نبودن این استاندارد می باشد.یعنی تمامی سطح ولتاژها نسبت به سطح زمین بوده و کاملا نویز پذیر می باشد.اینکه سطح ولتاژها نسبت به زمین است را اصطلاحا Single-ended می گویند که در بعضی از ماژول های PLC های مختلف این اصطلاح استفاده می شود.
*نحوه ی پردازش سیگنال:در سمت فرستنده سیگنالهای بین -5 تا -25 ولت به عنوان یک منطقی و از 5 تا 25 ولت صفر منطقی هستند. در سمت گیرنده سیگنالهای بین -3 تا -25 ولت به عنوان یک منطقی و از 3 تا 25 ولت صفر منطقی هستند. سیگنالهای بین -3 تا 3 در محدوده ی غیر مجازند.
RS-485:
این استاندارد به صورت Multi_Point یا Multi Drop بوده و در شبکه های صنعتی Profibus و Modbus RTU بسیار مورد استفاده قرار می گیرد. سیم بندی RS-485 می تواند به صورت دوسیمه(Half-Duplex) و یا چهارسیمه(Full-Duplex) باشد.لازم بذکر است که می توان این نوع سیم بندی را با تغییر آرایش به یکدیگر تبدیل نمود.بدین معنی که یک تجهیز دارای شبکه مدباس Rs-485 که به صورت 4 سیمه است را می توان به یک تجهیز مدباس Rs-485 دوسیمه متصل نمود و بالعکس.
در این استاندارد بر خلاف Rs-232،سیگنالها بصورت تفاضلی سنجیده می شوند یعنی ولتاژ A نسبت به B سنجیده می شود.یکی از مزایای بزرگ این استاندارد،استفاده از تقویت کننده تفاضلی است که نویز پذیری کمتر نسبت به RS232 را ایجاد می کند.بدلیل اینکه در این استاندارد سطح ولتاژ سیگنال ها مورد بررسی است و نسبت به زمین نمی باشد،اصطلاحا روش دیفرانسیلی(Deferential) گفته می شود که بعضی از ماژول های انالوگ PLC از این روش استفاده می کنند.
*** هر شبکه ای که بستر ارتباطی آن RS-485 می باشد،حتما باید از ترمیناتور(Terminator) در ابتدا و انتهای خط استفاده کند.ترمیناتور،مقاومت هایی هستند که در از بین بردن اثر نویز در مسافت های زیاد و خالی کردن انرژی باقیمانده خط در حالت عادی مورد استفاده قرار می گیرند.
RS-422:
در این استاندارد حداکثر طول کابل بین 800 تا 1200 متر می تواند پوشش دهی داشته باشد.بر خلاف RS-485،فقط نوع 4سیمه یا Full-Duplex را پشتیبانی می کند.حداکثر تعداد گیرنده 10 عدد می باشد و مشابه Rs-485 بدلیل استفاده از آپ آمپ تفاضلی نویز ناپذیر است.
***کانکتورهای مورد استفاده در لایه ی فیزیکی برای هر سه نوع استاندارد RS-232/485/422:
کانکتور میتواند به یکی از دو صورت DB-9 یا RJ45 باشند.
RJ45 استانداردهای )
نکات لازم جهت پوشش دهی RS-485 در فواصل طولانی تا 1 کیلومتر:
طول کابل Trunk یا باس اصلي شبكه،همانطور که گفته شد محدود است و این محدودیت بستگی به سرعت انتقال دیتا،مشخصات کابل مانند خازن کابل،تعداد تجهیزات موجود در شبکه با توپولوژی Daisy Chain(زنجیر وار) و نیز آرایش خروجی 2 سیمه و 4 سیمه بودن شبکه،بستگی دارد.
برای نرخ دیتا 9.6Kb/s با کابل (AWG26(13mm² یا ضخیم تر و سیستم 2 سیمه،طول کابل Trunk به 1 کیلومتر می رسد.برای سیستم 4 سیمه با مشخصات فوق طول کابل نصف می شود.
آدرس دهی رجیسترها و حافظه ها در شبکه مدباس
برای اینکه بتوانیم عملکرد یک اسلیو را در خواندن و یا نوشتن تعیین کنیم از Function Codeها استفاده می کنیم. هر فانکشن متشکل از یک بایت می باشد.
⇔ فانکشن کدهای رایج در شبکه مدباس :
آشنایی با نرم افزار Modbus Poll
تست،شبیه سازی و برنامه نویسی این سه ویژگی را در نرم افزار Modbus Poll در اختیار دارید.
*پروتکل های ارتباطی استفاده شده در این نرم افزار:
-مدباس RTU -مدباس ASCII -مدباس TCP/IP -مدباس UDP/IP
- RTU,ASCII over TCP/IP
-RTU,ASCII over UDP/IP
*لینک دانلود نرم افزار پرکاربرد Modbus Poll
[ مجتبی ادهمی-مدیریت فنی مهندسی اینسترو کنترل]