نماد اعتماد

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

به طور معمول، دستگاه ها دارای یک رابط RS-232 یا RS-485 با یک کانکتور DB-9 یا یک بلوک ترمینال هستند. دستگاه های Modbus RTU به راحتی قابل پیاده سازی و نگهداری ارزان هستند.

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

پروتکل Modbus به طور گسترده در اتوماسیون تولید استفاده می شود، بسیاری از دستگاه ها از پروتکل ارتباطی Modbus RTU پشتیبانی می کنند که از یک رابط سریال استفاده می کند.

به همین دلیل است که پروتکل Modbus RTU بسیار محبوب شده است. امروزه، دستگاه های صنعتی بیشتری شروع به پشتیبانی از استاندارد اترنت می کنند.

پروتکل Modbus چیست ؟

پیچیدگی و مقیاس شبکه ها در حال افزایش است. بسیاری از سیستم ها در حال حاضر از طریق Modbus TCP با استفاده از اترنت کار می کنند، به عنوان مثال، SCADA. در نتیجه، مشکلات رابط بین Modbus RTU و پروتکل های Modbus TCP وجود دارد.

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

سوالات متداول:

  1. آیا برای اتصال دستگاه های دارای رابط سریال Modbus RTU به شبکه اترنت به مبدل پروتکل خاصی نیاز دارم؟ آیا سرور دستگاه های سریال کافی است؟
    1. اگر چندین دستگاه Modbus RTU به پورت های سریال مختلف گیت وی متصل شوند، معماری اتصال TCP چگونه باید باشد؟ آیا می توانم از یک اتصال استفاده کنم یا برای هر پورت سریال نیاز به اتصال جداگانه دارم؟

​​​​اپدیت فریم ور سرور DL360 G8 HP

Gateway در شبکه چیست بررسی کاربرد
21 نکته امنیتی سرور برای ایمن سازی
سیستم عامل مناسب سرور
 چگونه چندین هاست SCADA می توانند به طور همزمان با استفاده از یک دروازه واحد به دستگاه های Modbus RTU یکسان دسترسی داشته باشند؟
  1. من دو دستگاه اصلی Modbus در حال کار دارم (PLC یا HMI). چگونه می توانم تبادل داده بین آنها را سازماندهی کنم؟
  2. من چندین دستگاه Modbus RTU دارم که باید نظرسنجی شوند. من می توانم از چندین دستور Modbus برای دریافت داده های ثبت استفاده کنم، اما خیلی طول می کشد. آیا دروازه می تواند به طور فعال داده ها را دریافت کند و آنها را در یک ثبات واحد ادغام کند تا بتوانم همه داده ها را با یک دستور Modbus دریافت کنم؟

آیا برای اتصال دستگاه های دارای رابط سریال Modbus RTU به شبکه اترنت به مبدل پروتکل خاصی نیاز دارم؟ آیا سرور دستگاه های سریال کافی است؟
اول از همه، باید تعیین کنید که از کدام درایور Modbus در هاست SCADA می خواهید استفاده کنید. چهار گزینه ممکن وجود دارد:

  • میزبان SCADA با درایور Modbus TCP
  • میزبان SCADA با درایور Modbus RTU - با پورت سریال داخلی
  • میزبان SCADA با درایور Modbus RTU - بدون پورت سریال داخلی
  • میزبان SCADA با درایور «Ethernet Encapsulation»

گزینه 1: میزبان SCADA با درایور Modbus TCP

این نسخه به مبدل پروتکل نیاز دارد. شما می توانید از پروتکل Modbus TCP برای ارتباط با دستگاه های Modbus RTU از طریق دروازه استفاده کنید.

در بازار دستگاه های اتوماسیون، بسیاری از "دروازه های Modbus" موجود است که اتصال از طریق Modbus TCP را برای دستگاه های Slave Modbus TCP فراهم می کند. هنگامی که دروازه یک درخواست Modbus TCP را دریافت می کند، بسته را به یک Modbus RTU تبدیل می کند و بلافاصله آن را به دستگاه های Modbus RTU ارسال می کند.

گزینه 2: میزبان SCADA با درایور Modbus RTU - با پورت سریال داخلی
این گزینه در صورتی مناسب است که شما فقط نیاز به اتصال یک هاست SCADA موجود و دستگاه های Modbus RTU به یک شبکه اترنت دارید. اگر هاست SCADA شما مجهز به پورت سریال است، با استفاده از یک جفت دروازه می توانید این مشکل را حل کنید.

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

گزینه 3: میزبان SCADA با درایور Modbus RTU - بدون پورت سریال داخلی
اگر می خواهید از برنامه ها و دستگاه های SCADA موجود استفاده کنید، اما هاست SCADA شما مجهز به پورت سریال نیست، از سرور دستگاه سریال برای ایجاد پورت COM مجازی استفاده کنید. بنابراین می توانید از طریق سرور به دستگاه های سریال راه دور دسترسی داشته باشید و عملکرد با پورت COM واقعی مطابقت دارد.

برای ایجاد یک "پورت COM مجازی"، سرور دستگاه سریال درایور پورت COM مجازی را روی هاست SCADA شما نصب می کند. برای فعال سازی این پورت سرور دستگاه سریال را در حالت پورت COM مجازی نصب کنید. تمام داده های منتقل شده از طریق آن به پورت سریال راه دور سرور دستگاه سریال ارسال می شود. از آنجایی که از نظر سیستم عامل و COM مجازی SCADA مشابه واقعی است، می توانید درخواست Modbus RTU را مستقیماً به آن ارسال کنید.

گزینه 4: میزبان SCADA با درایور «Ethernet Encapsulation»

اگر هاست SCADA شما پورت سریال ندارد و نمی خواهید درایور پورت COM مجازی نصب کنید، می توانید به جای آن از درایور Ethernet Encapsulation استفاده کنید. توجه داشته باشید که نرم افزار اسکادا باید از «نوع انکپسولاسیون اترنت» پشتیبانی کند. استفاده از درایورهای «Ethernet Encapsulation» زمانی توصیه می‌شود که دانش عمیقی از پروتکل‌های سریال و پروتکل‌های TCP/IP وجود داشته باشد.

سرور دستگاه سریال باید به حالت Raw Socket یا Tunneling سوئیچ شود، هنگام ارسال بسته های SCADA Modbus RTU به دستگاه ها، اتصال بین میزبان و سرور دستگاه سریال از طریق یک کانال شفاف TCP / IP یا UDP بدون تبدیل پروتکل انجام می شود.

سرور دستگاه سریال باید به درستی پیکربندی شود، زیرا Modbus RTU پایان یک بسته را بر اساس مکث در انتقال تعریف می کند. اگر بسته Modbus RTU به دو یا چند بسته TCP / IP یا UDP تقسیم شود، ممکن است با مشکلاتی روبرو شوید. اگر نمی توانید انتقال بسته ها را بین کانال های سریال و شبکه های اترنت به درستی پیکربندی کنید، توصیه می شود از گزینه با دروازه (2) یا پورت COM مجازی (3) استفاده کنید.

اگرچه می توان از سرورهای دستگاه سریال برای اتصال دستگاه های Modbus RTU به یک شبکه اترنت استفاده کرد، گزینه دروازه (2) ترجیح داده شده است و تقریباً تمام نیازهای سیستم را برآورده می کند. هاست شما باید از پروتکل Modbus TCP پشتیبانی کند، اما این به ندرت باعث ایجاد مشکل می شود.

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

چندین دستگاه میزبان یا افزونگی شبکه

اتصال از طریق اترنت نه تنها امکان استفاده از دسترسی از راه دور را فراهم می کند، بلکه از چندین اتصال نیز پشتیبانی می کند.

اکثر دروازه ها تا 32 اتصال را پشتیبانی می کنند، یعنی 32 هاست SCADA می توانند به طور همزمان داده ها را از دستگاه های Modbus RTU درخواست کنند. در این شرایط، ارائه افزونگی شبکه با استفاده از سرور دستگاه سریال نسبتاً دشوار است، زیرا اکثر سرورها از چندین دستگاه پیشرو پشتیبانی نمی کنند، از طرف دیگر استفاده از دروازه ها هیچ مشکلی ایجاد نخواهد کرد.

یک اتصال برای چندین دستگاه Modbus RTU

گاهی اوقات لازم است از یک اتصال در هاست SCADA برای نظرسنجی چندین دستگاه Modbus RTU متصل به پورت های سریال مختلف استفاده شود. دروازه تنها راه حلی است که می تواند چنین مکانیزم مسیریابی را پیاده سازی کند.

دروازه‌هایی با پورت‌های سریال متعدد را می‌توان برای ارسال درخواست Modbus به پورت سریال مناسب، با در نظر گرفتن شناسه‌های منحصربه‌فرد Slave پیکربندی کرد.

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

 دسترسی همزمان به دستگاه از کنترلر قدیمی Modbus RTU و Modbus TCP SCADA جدید

اگرچه پروتکل اترنت پیکربندی دسترسی از راه دور را آسان می کند، گاهی اوقات لازم است اتصالات محلی موجود به کنترل کننده یا HMI ذخیره شود.

مشکل این است که پورت سریال دستگاه از قبل به گیت وی متصل است، بنابراین هیچ پورت سریالی برای اتصال HMI وجود ندارد. برای حل این مشکل، برخی از دروازه ها به عملکرد "Serial Redirector" مجهز شده اند.

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

نتیجه
انواع زیادی از تبدیل Modbus بین رابط سریال و اترنت وجود دارد. اگرچه در این حالت می توان از گزینه ساده ای مانند انتقال داده شفاف بین پورت های سریال و اترنت استفاده کرد ، اما هنگام کار با پروتکل های صنعتی ، به عنوان مثال Modbus ، یک دروازه ویژه بسیار بهتر جا می گیرد. استفاده از چنین دروازه ای ممکن است نیاز به سرمایه گذاری اولیه زیادی داشته باشد، اما پیوند پایدارتری در دراز مدت ایجاد می کند و قادر است بسته های Modbus را برای پردازش مناسب تشخیص دهد.

بازگشت به پرسش‌های متداول

اگر چندین دستگاه Modbus RTU به پورت های سریال مختلف گیت وی متصل شوند، معماری اتصال TCP چگونه باید باشد؟ آیا می توانم از یک اتصال استفاده کنم یا برای هر پورت سریال نیاز به اتصال جداگانه دارم؟
اکثر دروازه ها تنظیمات اتصال TCP انعطاف پذیری را برای دسترسی به چندین دستگاه Modbus RTU متصل به پورت های سریال مختلف در گیت وی ارائه می کنند. بر اساس مکانیسم مسیریابی سه روش مختلف وجود دارد:

  • پورت سریال را به یک پورت TCP منحصربفرد وصل کنید
  • اتصال پورت سریال به یک آدرس IP منحصر به فرد
  • با استفاده از جدول مسیریابی
  • روش 1: پورت سریال را به یک پورت TCP منحصربفرد وصل کنید

محبوب ترین روش برای برنامه ریزی توپولوژی دروازه. در پیکربندی دروازه، هر پورت سریال به یک پورت TCP جداگانه متصل خواهد شد. به عنوان مثال، 4001 پورت سریال 1، 4002 پورت سریال 2 و غیره است.

اگر می خواهید دستگاه های Modbus RTU را به پورت سریال 1 وصل کنید، یک اتصال Modbus TCP با 4001 برقرار کنید. دروازه بسته های Modbus TCP را بین پورت TCP 4001 و پورت سریال 1 ارسال می کند.

در این توپولوژی، درایور SCADA باید چندین اتصال Modbus TCP ایجاد کند.

 روش 2: پورت سریال را به یک آدرس IP منحصر به فرد وصل کنید
این گزینه بسیار شبیه به گزینه 1 است، اما دروازه از آدرس های IP مختلف برای شناسایی پورت های سریال استفاده می کند.

به عنوان مثال، 192.168.2.1 - به پورت سریال 1، 192.168.2.2 - به پورت سریال 2 و غیره. اگر می خواهید دستگاه های Modbus RTU را به پورت سریال 1 وصل کنید، یک اتصال Modbus TCP با 502 برقرار کنید.

دروازه، Modbus TCP را ارسال می کند. بسته هایی بین 192.168.2.1:502 و پورت سریال 1. در این توپولوژی، درایور SCADA همچنین نیاز به ایجاد چندین اتصال Modbus TCP دارد. اگرچه توپولوژی به چندین آدرس IP نیاز دارد، اما برخی از کلاینت های Modbus TCP فقط به پورت TCP 502 اجازه می دهند. در این صورت گزینه 1 برای شما مناسب نیست و باید از گزینه 2 استفاده کنید.

روش 3: استفاده از جدول مسیریابی

در این توپولوژی از مسیریابی برای برقراری ارتباط با چندین دستگاه استفاده می شود. برای ارسال درخواست به پورت سریال صحیح، دروازه و جهت مسیریابی باید به درستی پیکربندی شوند. به عنوان مثال، پورت سریال 1 تمام بسته های Modbus را پردازش می کند که دارای شناسه های برده از 1 تا 10، شناسه های پورت سریال 2 از 11 تا 20 و غیره هستند.

از آنجایی که در توپولوژی فقط از یک اتصال استفاده می شود، ارتباطات کندتر از گزینه های 1 و 2 خواهد بود. با این حال، با محدودیت های بودجه ای و فنی، در صورت ارائه عملکرد کافی، یک اتصال ممکن است گزینه مناسبی باشد.

توجه داشته باشید:

اگر چندین دستگاه را به یک پورت سریال متصل کنید یا چندین پورت سریال را به یک اتصال TCP متصل کنید، زمان نظرسنجی Modbus افزایش می‌یابد. برای افزایش نرخ نظرسنجی، به اتصالات TCP بیشتری نیاز دارید، بنابراین باید قابلیت های SCADA را در نظر بگیرید.

 بازگشت به پرسش‌های متداول

چگونه چندین هاست SCADA می توانند به طور همزمان با استفاده از یک دروازه واحد به دستگاه های Modbus RTU یکسان دسترسی داشته باشند؟
اگرچه دروازه می تواند این کار را انجام دهد، اما به یاد داشته باشید که پهنای باند پورت سریال بدون تغییر باقی می ماند. اگر چندین درخواست از طریق یک پورت سریال دریافت شود، ممکن است تاخیر رخ دهد. دروازه ابتدا درخواست های قبلی را پردازش می کند. بنابراین، اگر می خواهید به چندین دستگاه اصلی اجازه دهید به طور همزمان به دستگاه Modbus RTU دسترسی داشته باشند، ابتدا باید زمان نظرسنجی مناسب را انتخاب کنید.

dcd14d318b0bec3cbc31df7fa8a451ce.jpg
با این وجود، راه حلی که در بالا توضیح داده شد تنها راه حل نیست. برخی از دروازه‌ها از حالت "عامل" پشتیبانی می‌کنند که به طور فعال و دائمی داده‌ها را از دستگاه‌های متصل دریافت می‌کند.

به روز رسانی داده ها در حافظه داخلی ذخیره می شود که برای پاسخ به درخواست های میزبان استفاده می شود. اگرچه این راه حل سریعتر و کارآمدتر است، داده های به دست آمده مرتبط ترین نخواهد بود.

به عنوان مثال، اگر یک درخواست 100 میلی‌ثانیه باشد، 5 اتصال باعث تاخیر حداقل 100 میلی‌ثانیه (5-1) = 400 میلی‌ثانیه قبل از ارسال درخواست بعدی می‌شوند. این بدان معناست که چرخه اسکن هر میزبان SCADA باید 400 میلی‌ثانیه باشد (به اضافه مقداری تحمل).

بازگشت به پرسش‌های متداول

من دو دستگاه اصلی Modbus در حال کار دارم (PLC یا HMI). چگونه می توانم تبادل داده بین آنها را سازماندهی کنم؟
برای تبادل داده بین دو دستگاه اصلی Modbus، یک دروازه مورد نیاز است که بتواند حالت Master-Master را پشتیبانی کند. در این حالت، دروازه به عنوان یک دستگاه برده برای هر دو طرف کار خواهد کرد. یک دستگاه اصلی می تواند داده ها را در حافظه داخلی دروازه بنویسد، و دیگری - برای دریافت آنها، در نتیجه تبادل را فراهم می کند. بسته به دروازه ای که استفاده می کنید، می توانید از Modbus RTU و Modbus TCP برای هر دو طرف یا Modbus RTU برای یکی و Modbus TCP برای دیگری پشتیبانی کنید.

 بازگشت به پرسش‌های متداول

من چندین دستگاه Modbus RTU دارم که باید نظرسنجی شوند. من می‌توانم از چندین دستور Modbus برای دریافت داده‌های ثبت استفاده کنم، اما خیلی طول می‌کشد. آیا دروازه می تواند به طور فعال داده ها را دریافت کند و آنها را در یک ثبات واحد ادغام کند تا بتوانم همه داده ها را با یک دستور Modbus دریافت کنم؟
برای اینکه دروازه بتواند داده ها را از چندین دستگاه Modbus RTU دریافت کند و آنها را در یک ثبات واحد قرار دهد، عامل دروازه باید داده ها را در حافظه داخلی ذخیره کند. دروازه همچنین باید هر دستگاه Modbus RTU را به نوبه خود بازجویی کند. همه داده ها در یک بلوک در حافظه داخلی دروازه قرار می گیرند، بنابراین می توانید آنها را با یک دستور خواندن دریافت کنید.

بازگشت به پرسش‌های متداول

سرور دستگاه سریال

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

سرورهای دستگاه های سریال مدرن همچنین از عملکرد "پورت COM مجازی" برای رایانه هایی که پورت سریال اضافی ندارند پشتیبانی می کنند و اتصال اترنت را به پورت COM تبدیل می کنند. علاوه بر این توابع اصلی، سرورهای پیچیده تر حتی می توانند PPP را از طریق خطوط سریال یا Telnet - در شبکه های اترنت پشتیبانی کنند.

سرور دستگاه سریال می تواند برای مدیریت کنسول تجهیزات شبکه و سرور (به همین دلیل است که برخی از سازندگان آن را "کنسول" می نامند) یا مدیریت ترمینال از راه دور در سیستم های بانکی قدیمی (بنابراین گاهی اوقات "ترمینال" نامیده می شود) استفاده می شود.

پورت COM مجازی، درایور پورت COM مجازی
پورت COM مجازی یک پورت COM واقعی (غیر فیزیکی) روی کامپیوتر نیست. در عوض، یک درایور پورت COM مجازی بر روی کامپیوتر نصب شده است که به طور کامل رفتار پورت COM محلی را شبیه سازی می کند. درایور پورت ها را روی سرور دستگاه سریالی که از طریق شبکه TCP / IP متصل است، مدیریت می کند. پورت سریال در سرور دستگاه سریال راه دور مانند پورت COM محلی عمل می کند. یک پورت COM مجازی به یک پورت خاص در سرور دستگاه سریال خاصی متصل است. به عنوان مثال، COM3 یک پورت سریال 1 در سرور دستگاه سریال راه دور است

آدرس IP 192.168.2.1. بنابراین، هنگامی که داده ها از این پورت عبور می کنند، توسط درایور به "192.168.2.1@serial port 1" (192.168.2.1 به پورت سریال 1) ارسال می شوند. تمامی درخواست های این پورت COM مجازی به "192.168.2.1@serial port 1" ارسال می شود. از آنجایی که رایانه های میزبان جدید اغلب تعداد پورت های سریال داخلی کافی ندارند، پورت های COM مجازی ابزاری ارزشمند برای اتصال تجهیزات اتوماسیون صنعتی موجود هستند.

دروازه شفاف
دروازه شفاف روش اصلی استفاده از دروازه مدباس است. از آنجا که پروتکل های Modbus RTU و Modbus TCP دارای PDU (بلوک داده) یکسان هستند و تفاوت فقط در هدر است، دروازه می تواند به راحتی داده ها را بین چنین دستگاه هایی منتقل کند.

بنابراین، هنگامی که یک دروازه یک بسته Modbus TCP را از یک شبکه اترنت دریافت می کند، می تواند به سادگی فیلد آدرس را مطابق با الزامات Modbus RTU جایگزین کند و بلافاصله بسته را به پورت سریال ارسال کند.

هنگامی که دروازه پاسخی را از دستگاه Modbus RTU دریافت می کند، به مشتری Modbus TCP پاسخ می دهد.

عامل دروازه


عامل دروازه روش دیگری برای استفاده از دروازه Modbus برای انتقال داده بین دستگاه های Modbus TCP و Modbus RTU است. عامل دروازه به حافظه داخلی خود برای ذخیره سازی موقت داده ها مجهز شده و دستگاه های متصل را به طور مداوم نظرسنجی می کند.

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

این تابع می تواند برای تبدیل پروتکل ها استفاده شود اگر:

این دو پروتکل از ساختار بسته متفاوتی استفاده می کنند. به عنوان مثال، PROFIBUS و Modbus، Ethernet / IP، PROFINET و غیره.
دو پروتکل از زمان‌های چرخه متفاوتی استفاده می‌کنند. برخی از پروتکل ها، به عنوان مثال، PROFIBUS، PROFINET و Ethernet / IP، داده ها را برای چرخه های زمانی بسیار کوتاه مبادله می کنند، که در آن یک دروازه شفاف نمی تواند ملاقات کند.