[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 میتوان دادهها را به پلتفرمهای ابری منتقل کرد.
