پروتکل OPC-UA
پروتکل OPC-UA

پروتکل OPC-UA

[ez-toc]

مقدمه:

پروتکل OPC-UA (Unified Architecture) به‌عنوان نسخه‌ی تکامل‌یافته‌ی OPC کلاسیک، ستون فقرات بسیاری از سیستم‌های صنعتی مدرن و زیرساخت‌های اینترنت اشیاء صنعتی (IIoT) به شمار می‌رود. این پروتکل مستقل از سیستم‌عامل، مقیاس‌پذیر، امن و مناسب برای ارتباط بین دستگاه‌ها، کنترلرها، سرورها و حتی سیستم‌های ابری طراحی شده است. در این مقاله به بررسی عمیق ساختار، کاربرد، امنیت، مزایا و چالش‌های OPC-UA می‌پردازیم.

 تاریخچه و سیر تحول OPC-UA

  • OPC کلاسیک بر پایه COM/DCOM و محدود به ویندوز بود.

  • در سال 2008 نسخه‌ی جدید OPC-UA معرفی شد تا محدودیت‌های قبلی را حذف کند.

  • در سال 2018، قابلیت Pub/Sub برای کاربردهای LAN/WAN به آن افزوده شد.

  • امروزه OPC-UA به‌عنوان یک پروتکل جهانی در صنایع برق، نفت و گاز، خودروسازی و اتوماسیون شناخته می‌شود.

پروتکل OPC-UA نسخه جدید OPC  است. از زمان ارائه‌ی اولین استاندارد OPC بیست سال می‌گذرد و از آن زمان تکنولوژی OPC به عنوان یک استاندارد اصلی برای تبادل داده بین تجهیزات مستقل از وندور آنها، در صنایع رواج يافته است. دلیل اصلی موفقیت آن هم این بود که زمان و کار مضاعف برای ایجاد و توسعه‌ی پروتکل‌های ارتباطی اختصاصی را حذف مي‎كند. پایه و اساس استاندارد OPC کلاسیک بر روی مدل COM/DCOM مایکروسافت و بستر ویندوز قرار دارد.
با این حال امکان انطباق پیشرفت‌های دنیای اتوماسیون و پردازش اطلاعات با آن استاندارد به راحتی میسر نبود.

برای حل این مشکل موسسه OPC در سال 2008 استاندارد را به معماری یکپارچه OPC-UA تبدیل کرد تا راه‌حل‌هایی برای ناتوانی‌های استاندارد کلاسیک OPA ارائه دهد و بتواند در دستگاه‌های مدرن به کار گرفته شود. در سال 2018 با هدف شبکه‌های مخابراتی LAN و WAN، مدل Pub/Sub به نسخه OPC-UA Spec. Part 14 افزوده شد.

روند توسعه OPC-UA

نسخه جدید OPC-UA با اضافه کردن امکاناتی مثل مستقل بودن از بستر سیستم عامل، قابلیت دسترسی بالا و همین طور مقیاس‌پذیری توانست از استاندارد کلاسیک OPC پیشی بگیرد. از امکانات اصلی آن، عملکرد مبتنی بر سرویس و امکان انتقال داده از طریق اینترنت است. این مهم به وسیله‌ی یک مدل یکپارچه‌ی اطلاعات محقق شده است که شامل فراخوانی برنامه‌ها است و می‌تواند از ساختار داده‌های پیچیده، مانند ساختارهایی که در اجرای برنامه‌های چند سطحی بکار می‌رود، پشتیبانی کند.

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

 ویژگی‌های کلیدی پروتکل OPC-UA

ویژگی توضیح
استقلال از پلتفرم قابلیت اجرا در سیستم‌عامل‌های مختلف (ویندوز، لینوکس، ریل‌تایم، ابر)
امنیت بالا پشتیبانی از TLS، گواهی دیجیتال، رمزنگاری 128/256 بیتی
ساختار داده غنی تعریف گره‌ها، اشیاء، توابع و داده‌های پیچیده
مقیاس‌پذیری قابل پیاده‌سازی از سنسورهای کوچک تا مراکز داده ابری
سازگاری با IoT قابلیت اتصال مستقیم به پلتفرم‌های ابری بدون نیاز به VPN
تعامل با سیستم‌های قدیمی از طریق گیت‌وی‌ها و نگاشت بین سیستم‌های سنتی و مدرن

 مدل ارتباطی OPC-UA: از سنسور تا پلتفرم ابری

  • هر منبع داده به عنوان Node (گره) تعریف می‌شود.

  • ارتباط بین کلاینت و سرور کاملاً پویا است؛ هر کلاینت می‌تواند مشخص کند چه داده‌ای، چه زمانی و با چه کیفیتی دریافت شود.

  • مدل اشیاء کاملاً استاندارد است و قابلیت تعامل با سنسورها، درایوها و کنترلرها بدون نیاز به شناخت از تولیدکننده آن‌ها فراهم شده است.

  • از طریق گیت‌وی، امکان اتصال مستقیم تجهیزات به ابر IoT با ارتباط امن وجود دارد.

 امنیت در OPC-UA

  • استفاده از TLS/SSL برای رمزگذاری ارتباط

  • پشتیبانی از گواهی دیجیتال PKI

  • احراز هویت چندلایه (رمز عبور، توکن، WebSocket)

  • امکان محدودسازی دسترسی به اشیاء و داده‌ها

  • گزارش رویدادهای امنیتی به صورت خودکار و پیوسته

 کیفیت خدمات (QoS) و پایداری ارتباط

اگرچه QoS به صورت مفصل در پروتکل OPC-UA پیاده‌سازی نشده، اما:

  • پشتیبانی از آلارم، هشدار، و ارسال مجدد پیام وجود دارد.

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

 چالش‌های پیاده‌سازی OPC-UA

چالش توضیح
پیچیدگی بالا مشخصات رسمی بیش از 1200 صفحه دارد
نیاز به منابع بالا مصرف CPU و حافظه در دستگاه‌های کوچک مشکل‌ساز می‌شود
اجرای Pub/Sub به دلیل معماری اولیه کلاینت-سرور، بهینه‌سازی برای Pub/Sub دشوار است
اتصال به ابر نیازمند پیاده‌سازی گیت‌وی‌ها و سرویس‌های میانی است
عدم جداسازی سخت‌گیرانه داده‌ها اشتراک‌گذاری داده‌ها در معماری‌های چندمشتری دشوار است

 

توصیف فنی OPC-UA

در این بخش پروتکل از جهات مختلفی مانند مدل ارتباط با مشتری، سازگاری اش با IoT، وجوه امنیتی، کیفیت خدمات و غيره بررسی مي‎شود.

مدل ارتباط با مشتری

در OPC-UA یک سیستم نوع داده کامل تعریف مي‎شودد. منابع در OPC-UA به عنوان گره نامیده مي‎شوند. گره‎های مختلفی که یک سیستم را تشکیل مي‎دهند به صورت جداگانه آدرس پذیر هستند و مي‎توانند به عنوان اشیاء داده از انواع داده‎های ساختاریافته با پیچیدگی‎های متفاوت سازماندهی شوند.

مدل‌های دستگاه‎های عمومی نقش اصلی را در معماری OPC-UA ایفا مي‎كنند. سازندگان تجهیزات، مسئول ارائه سروری هستند که یک مدل دستگاه عمومی را به دستگاه خاص مرتبط مي‎كند. استاندارد OPC-UA از مشخصات شخصی متعددی تشکیل شده است. هر مشخصات یک زیرتابع را توصیف کرده و مشخص مي‎كند که سرورها و مشتریان کدام رابط‌ها را باید برای پشتیبانی از یک عملکرد خاص اجرا کنند. از آنجایی که اجرای تمام مشخصات شخصی ضروری نیست، سیستم کلاینت-سروری OPC-UA باید مشخص کند که مشتری و سرور به کدام مشخصات نیاز دارند.

ارتباط با سایر سرویس‌ها را می‌توان با پیاده‌سازی درگاه برای میان‌افزار شبکه DDS و برنامه‌های ارتباط مستقیم M2M یا از طریق یک درگاه HTTP برقرار کرد.

به عنوان مثال، مدل شی یک سنسور خاص مي‎تواند روش‎هایی را برای تنظیم پارامترها، قرائت داده‌ها و عملکرد دستگاه ارائه دهد. این روش‎ها به برنامه‎های کاربردی اجازه مي‎دهند تا به طور مستقیم سنسور را بدون اطلاع از نحوه پیاده سازی دقیق سازنده مربوطه کنترل کنند. یک یا چند سرور در سیستم منتظر هر تعداد مشتری برای ارسال درخواست هستند. هنگامی که یک سرور درخواستی را دریافت مي‎كند، پاسخ مي‎دهد و سپس به حالت انتظار باز مي‎گردد. در صورت تمایل، مشتری مي‎تواند به سرور دستور دهد که به روز رسانی‎ها را به محض دریافت ارسال کند.

در OPC-UA مشتری تصمیم می‎گیرد که سرور چه زمانی و چه داده‌هایی را از سیستم‌های زیربنایی بازیابی کند. برای مثال، حتی اگر سرور مشترک به‌روزرسانی وضعیت دوره‌ای باشد، این به مشتری بستگی دارد که تعیین کند سرور هر چند وقت یک‌بار دستگاه‌ها و سیستم‌ها را سرشماری ‌کند.

معماری OT/IT کلاسیک با OPC-UA

معماری معمولی محیط‌های تولید، شامل دستگاه‌ها، حسگرها و درگاه‎های متعددی است که بالقوه از طریق پروتکل‌های مختلف ارتباط برقرار می‌کنند. هر موجودیت داده‎های خود را ارائه مي‎دهد یا از طریق اتصالات دو طرفه مستقیم کنترل مي‎شود. در OPC-UA، “منبع واحد حقیقت” وجود ندارد. هر تعداد سرور OPC UA از منطقه تولید عملیاتی مي‎تواند مستقیماً با سایر شرکت کنندگان فناوری عملیاتی OT ارتباط برقرار کند.
هر شرکت کننده OT مي‎تواند به نوبه خود به عنوان مشتری یا سرور و با یک یا چند مشتری OPC UA در حوزه فناوری اطلاعات IT کار کند.

امنیت

استاندارد OPC-UA از قابلیت‌های گواهی‌های PKI، توکن‌های WebSocket، TLS، گواهی‌های دیجیتال برنامه‌ها، احراز هویت (نام کاربری و رمز عبور) برای مشتریان دستگاه‎ها پشتیبانی مي‎كند و برای انتقال اطلاعات می‌توان از کد رمزگذاری ۱۲۸ بیت تا ۲۵۶ بیتی نیز استفاده کرد.

کیفیت خدمات

مدیریت خطا و رسیدگی به استثناها در OPC-UA پشتیبانی شده و از طریق رویدادها و آلارم‌های مختلف مخابره مي‎شوند. خدمات OPC UA شامل پشتیبانی محدود برای تضمین تحویل پیام به شکل QoS مي‎باشد. ولی با این حال، عملکرد QoS به عنوان یک مفهوم اساسی در پروتکل OPC-UA وجود ندارد.

ویژگی‎های اساسی OPC UA :

  • معماری کلاینت-سروریاستقلال پلتفرم و قابلیت همکاری از طریق استفاده از TCP / HTTP به عنوان پروتکل حامل
  • امنیت با TLS و گواهی‎هاتنظیم کاملا تعریف شده نوع داده
  • ساختار ثابت اشیاء داده و نقاط پایانی
  • دارای کتابخانه مشخصات از پیش تعریف شده در یک صنعت خاص
  • امکان کشف خدمات موجود
  • سازگاری درگاه
  • امکاناتی مثل عیب یابی تجهیزات، مدیریت دارایی‎ها، مانیتورینگ، گزارش دهی و غيره
  • سهولت اتصال به هر سرور بخاطر عدم نیاز به کدینگ
  • امکان پشتیبانی برای انواع وسایل
  • امکان اتصال راحت تجهیزات به ابر IoT و تجمیع پروتکل با IoT
  • تجمیع هر تجهیز آن به پلتفرم بدون کدینگ
  • مقیاس پذیری ساختار با گیت وی‎های چندگانه
  • عدم نیاز به vpn و برقراری یک ارتباط رمز شده امن با پلتفرم ابر IoT توسط گیت وی
  • کانفیگ مبتنی بر ابر
  • تعریف هر وسیله فقط یک بار (شامل نگاشت بین ماشین و دارایی IoT متناظر و تنظیمات مربوطه)

چالش‎های OPC-UA

علیرغم همه ویژگی‎ها و قابلیت‎ها، هنگامی که برنامه‌ها و دستگاه‌های ناهمگون متعدد از تولیدکنندگان مختلف به هم متصل می‌شوند، چالش‌های پیاده‌سازی معماری OPC-UA افزایش می‌یابد. با بیش از 1200 صفحه طول مشخصات OPC-UA نشان مي‎دهد که یک پیاده سازی کامل چقدر مي‎تواند حجیم و پیچیده شود. پیاده سازی کامل نه تنها از نظر هزینه‎های توسعه و پشتیبانی مقرون به صرفه نيست، بلکه نیازمندهای CPU بسیار بالاتری را به دستگاه‎ها تحمیل مي‎كند.

پیاده‌سازی اجرای چندین مصرف کننده که منظومه ‎های یک به چند و معماری Pub/Sub بسیار انعطاف‌پذیری می طلبد، در OPC-UA مشکل ساز است. به دلیل معماری زیربنایی، جداسازی واقعی داده‌ها امکانپذیر نیست. اتصال به برنامه ‎های کاربردی مبتنی بر ابر نیز مي‎تواند پیچیده باشد یا نیاز به تلاش زیادی برای پیاده‌سازی داشته باشد.

نتیجه‌گیری

OPC-UA استانداردی توانمند، مدرن و چندمنظوره برای ارتباط در سیستم‌های صنعتی است که جایگزین مناسبی برای OPC کلاسیک و حتی پروتکل‌هایی مانند Modbus و DNP3 در لایه‌های بالاتر محسوب می‌شود. اگرچه پیاده‌سازی کامل آن نیازمند دانش فنی و منابع پردازشی است، ولی مزایای آن در قابلیت همکاری، امنیت، مقیاس‌پذیری و تعامل با IoT غیرقابل انکار است.

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

آیا OPC-UA می‌تواند جایگزین پروتکل‌های سنتی مانند Modbus شود؟

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

آیا استفاده از OPC-UA نیازمند سیستم‌عامل خاصی است؟

خیر، برخلاف OPC کلاسیک، این نسخه کاملاً مستقل از پلتفرم است و در سیستم‌های غیر ویندوزی نیز اجرا می‌شود.

تفاوت اصلی OPC-UA با MQTT چیست؟

OPC-UA یک پروتکل شی‌گرا با ساختار پیچیده داده و امنیت بالا است؛ درحالی‌که MQTT پروتکلی سبک، مبتنی بر pub/sub و مناسب برای محیط‌های کم‌پهنای باند است.

 آیا امکان استفاده از OPC-UA در سیستم‌های مبتنی بر ابر وجود دارد؟

بله، از طریق گیت‌وی‌ها یا APIهای HTTPS/TCP می‌توان داده‌ها را به پلتفرم‌های ابری منتقل کرد.

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