پروتکل مودباس یک پروتکل صنعتی است که در سال 1979 برای ایجاد ارتباط بین دستگاه های اتوماسیون توسعه یافت. مودباس که در ابتدا به عنوان یک پروتکل در سطح برنامه برای انتقال دادهها بر روی یک لایه سریال اجرا شد، گسترش یافته است تا شامل پیاده سازی روی سریال، TCP/IP و پروتکل دیتاگرام کاربر (UDP) شود. این مقاله یک نمای عمیق از اجرای این پروتکل را ارائه میدهد.
پروتکل مودباس یک پروتکل درخواست-پاسخ است که با استفاده از رابطه master-slave پیاده سازی شده است. در یک رابطه master-slave، ارتباط همیشه به صورت جفت اتفاق میافتد (یک دستگاه باید یک درخواست را آغاز کند و سپس منتظر پاسخ باشد) و دستگاه آغازگر (Master) مسئول شروع هر تعامل است. به طور معمول، Master یک رابط ماشین انسانی (HMI) یا سیستم کنترل نظارتی و جمع آوری داده (SCADA) و Slave یک سنسور، کنترل کننده منطقی قابل برنامه ریزی (PLC) یا کنترل کننده اتوماسیون قابل برنامه ریزی (PAC) است. محتوای این درخواستها و پاسخها و لایههای شبکهای که این پیامها از طریق آن ارسال میشوند، توسط لایههای مختلف پروتکل تعریف میشوند.
در پیادهسازی اولیه، مودباس یک پروتکل واحد بود که روی سریال ساخته شده بود، بنابراین نمیتوان آن را به چند لایه تقسیم کرد. با گذشت زمان، واحدهای داده برنامه های کاربردی مختلف برای تغییر قالب بسته مورد استفاده در سریال یا اجازه استفاده از شبکه های TCP/IP و پروتکل دیتاگرام کاربر (UDP) معرفی شدند. این منجر به جدایی پروتکل اصلی، که واحد داده پروتکل (PDU) را تعریف میکند، و لایه شبکه، که واحد داده برنامه (ADU) را تعریف میکند، شد.
PDU و کدی که آن را مدیریت میکند، هسته مشخصات پروتکل برنامه مودباس را تشکیل میدهد. این مشخصات فرمت PDU، مفاهیم مختلف داده مورد استفاده توسط پروتکل مودباس، استفاده از کدهای تابع برای دسترسی به آن دادهها، و پیاده سازی و محدودیتهای خاص هر کد تابع را تعریف میکند.
فرمت Modbus PDU به عنوان یک کد تابع به دنبال مجموعهای از دادههای مرتبط تعریف میشود. اندازه و محتویات این داده ها توسط کد تابع تعریف میشود و کل PDU (کد تابع و داده) نمی تواند از 253 بایت بیشتر باشد. هر کد تابعی رفتار خاصی دارد که بردها میتوانند به طور انعطاف پذیر بر اساس رفتار برنامه مورد نظر خود پیاده سازی کنند. مشخصات PDU مفاهیم اصلی را برای دسترسی و دستکاری داده ها تعریف میکند. با این حال، یک برده ممکن است دادهها را به گونهای مدیریت کند که به صراحت در مشخصات تعریف نشده باشد.
به طور کلی دادههای قابل دسترسی پروتکل مودباس در یکی از چهار بانک داده یا محدوده آدرس ذخیره میشوند: سیمپیچها، ورودیهای گسسته، ثبتهای نگهدارنده و ثبتهای ورودی. مانند بسیاری از مشخصات، نام ها ممکن است بسته به صنعت یا کاربرد متفاوت باشد. به عنوان مثال، رجیسترهای نگهدارنده ممکن است به عنوان رجیسترهای خروجی و سیم پیچ ها به عنوان خروجی های دیجیتال یا گسسته شناخته شوند. این بانکهای داده نوع و حقوق دسترسی به داده های موجود را تعریف میکنند. دستگاه های Slave دسترسی مستقیم به این دادهها دارند که به صورت محلی روی دستگاهها میزبانی میشوند. دادههای قابل دسترسی پروتکل مودباس عموماً زیر مجموعهای از حافظه اصلی دستگاه هستند. در مقابل، استادان Modbus باید از طریق کدهای تابع مختلف درخواست دسترسی به این داده ها را داشته باشند. رفتار هر بلوک در جدول زیر توضیح داده شده است.
این بلوکها به شما امکان محدود کردن یا اجازه دسترسی به عناصر مختلف داده و همچنین ارائه مکانیسم های ساده شده در لایه برنامه برای دسترسی به انواع داده های مختلف را میدهند.
بلوکها کاملا مفهومی هستند. آنها ممکن است به عنوان آدرسهای حافظه جداگانه در یک سیستم خاص وجود داشته باشند، اما ممکن است همپوشانی داشته باشند. به عنوان مثال، سیم پیچ یک ممکن است در همان مکان در حافظه وجود داشته باشد که بیت اول کلمه با نگه داشتن ثبات یک نشان داده شده است. طرح آدرس دهی کاملاً توسط دستگاه برده تعریف میشود و تفسیر آن از هر بلوک حافظه بخش مهمی از مدل داده دستگاه است.
این مشخصات هر بلوک را به عنوان حاوی فضای آدرسی به اندازه 65536 (216) عنصر تعریف میکند. در تعریف PDU، Modbus آدرس هر عنصر داده را از 0 تا 65535 تعریف میکند. با این حال، هر عنصر داده از 1 تا n شماره گذاری میشود که n حداکثر مقدار 65536 را دارد. یعنی سیم پیچ 1 در بلوک سیم پیچ در آدرس 0 است، در حالی که ثبت نام نگهدارنده 54 در آدرس 53 در بخشی از حافظه است که Slave به عنوان رجیسترهای نگهدارنده تعریف کرده است.
محدوده کامل مجاز توسط مشخصات لازم نیست توسط یک دستگاه مشخص اجرا شود. به عنوان مثال، یک دستگاه ممکن است تصمیم بگیرد که سیم پیچ ها، ورودی های گسسته یا رجیسترهای ورودی را پیاده سازی نکند و به جای آن فقط از رجیسترهای نگهدارنده 150 تا 175 و 200 تا 225 استفاده کند.
اگرچه مشخصات، انواع دادههای مختلف را بهعنوان موجود در بلوکهای مختلف تعریف میکند و یک محدوده آدرس محلی را به هر نوع اختصاص میدهد، این لزوماً به یک طرح آدرسدهی بصری برای اهداف مستندسازی یا درک حافظه قابل دسترسی پروتکل مودباس یک دستگاه معین تبدیل نمیشود. برای سادهتر کردن بحث مکانهای بلوک حافظه، یک طرح شمارهگذاری معرفی شد که پیشوندهایی را به آدرس دادههای مورد نظر اضافه میکرد.
برای مثال، به جای ارجاع به یک آیتم به عنوان نگهدارنده ثبت 14 در آدرس 13، یک دفترچه راهنمای دستگاه به یک آیتم داده در آدرس 4,014, 40,014 یا 400,014 اشاره میکند. در هر مورد، اولین عدد مشخص شده 4 است که نشان دهنده ثبت های نگهدارنده است و آدرس با استفاده از اعداد باقی مانده مشخص می شود. تفاوت بین 4XXX، 4XXXX و 4XXXXX به فضای آدرس مورد استفاده دستگاه بستگی دارد. اگر همه 65536 رجیستر در حال استفاده هستند، باید از نماد 4XXXXX استفاده شود، زیرا محدوده ای از 400001 تا 465536 را می دهد. اگر فقط از چند رجیستر استفاده شود، یک روش معمول استفاده از محدوده 4001 تا 4999 است.
در این طرح آدرس دهی، همانطور که در جدول زیر نشان داده شده است، به هر نوع داده یک پیشوند اختصاص داده می شود.
کویل ها با پیشوند 0 وجود دارند. این بدان معنی است که یک مرجع 4001 می تواند به ثبت یک یا سیم پیچ 4001 اشاره داشته باشد. به همین دلیل، همه پیاده سازیهای جدید توصیه میشود از آدرس دهی 6 رقمی با صفرهای ابتدایی استفاده کنند و به این نکته توجه داشته باشید مستندات بنابراین، ثبت نام نگهدارنده یک به عنوان 400001 و سیم پیچ 4001 به عنوان 004001 ارجاع می شود.
تفاوت بین آدرسهای حافظه و شمارههای مرجع با نمایه سازی انتخاب شده توسط یک برنامه خاص پیچیده تر میشود. همانطور که قبلا ذکر شد، نگه داشتن ثبت نام یک در آدرس صفر است. به طور معمول، اعداد مرجع یک شاخص هستند، به این معنی که مقدار شروع یک محدوده معین یک است. بنابراین، 400001 به معنای واقعی کلمه به نگه داشتن ثبات 00001 ترجمه می شود که در آدرس 0 است. برخی از پیاده سازی ها انتخاب میکنند که محدوده خود را از صفر شروع کنند، به این معنی که 400،000 به ثبت نام در آدرس صفر ترجمه می شود. جدول زیر این مفهوم را نشان میدهد.
محدوده های تک نمایه شده رایج هستند و به شدت توصیه میشوند. در هر صورت، مقدار شروع برای هر محدوده باید در مستندات ذکر شود.
امروزه اکثر تجهیزات کنترلی، حفاظتی و غیره از این قبیل پروتکلها جهت ارتباط و هماهنگی لازم در انجام پروسه های مختلف پشتیبانی میکنند. درایوهای اینورتک و لیان از تمامی پروتکلهای مخابراتی به صورت درخواست و پاسخ پشتیبانی میکنند و پروتکل مودباس را به صورت پیشفرض در برنامه خود دارند که با استفاده از آن امکان کنترل درایو، تغییر دستور سرعت و خواندن تمامی پارامترهایی که درایو اندازهگیری میکند را به ما میدهد.
در دفترچه راهنمای هر کدام از درایوها نقشه کدهای رجیستر آمده است که با استفاده از آن می توان آدرسدهی را انجام داد و این پروتکل مودباس را بر روی درایو پیادهسازی کرد. نقشه کدهای رجیستر درایو E3 به عنوان مثال در زیر آمده است.
بدون دیدگاه