programming on a computer

یکپارچه‌سازی داده‌های صنعتی با برنامه‌های وب مدرن چگونه صورت می‌پذیرد؟

یکپارچه‌سازی Kepware و Ignition

Kepware داده‌های OPC UA را از دستگاه‌های صنعتی جمع‌آوری می‌کند، در حالی که Ignition آن را پردازش کرده و به صورت REST API در دسترس قرار می‌دهد. این دو با هم پلی میان سیستم‌های صنعتی و ابزارهای وب مانند داشبوردها، برنامه‌های موبایل و تحلیل‌های ابری ایجاد می‌کنند.

نکات کلیدی:

  1. Kepware به عنوان یک سرور OPC UA عمل می‌کند و داده‌ها را از دستگاه‌های صنعتی جمع‌آوری و تبدیل می‌نماید.

  2. Ignition به Kepware متصل می‌شود، داده‌ها را در قالب تگ‌ها سازماندهی کرده و از طریق ماژول WebDev امکان ایجاد REST API را فراهم می‌سازد.

گام‌های موفقیت:

  1. راه‌اندازی Kepware برای جمع‌آوری داده‌های OPC UA.

  2. پیکربندی Ignition برای اتصال به Kepware و مدیریت داده‌ها.

  3. استفاده از ابزارهای اسکریپت‌نویسی Ignition (مانند system.net.httpPost) یا ابزارهایی دیگر برای انتشار داده‌ها به عنوان REST API.

  4. ایمن‌سازی ارتباطات با رمزگذاری، گواهی‌نامه‌ها و کنترل دسترسی مبتنی بر نقش (Role-based Access).

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

اتصال سرویس‌های وب RESTful به OPC DA، UA و پایگاه‌داده‌ها

درک OPC UA، Kepware و Ignition

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

OPC UA چیست؟

OPC UA یا Open Platform Communications Unified Architecture، یک پروتکل طراحی‌شده برای ارتباط امن و قابل اعتماد بین دستگاه‌های صنعتی است. چه با PLC، حسگر یا HMI سروکار داشته باشید، OPC UA امکان تبادل بی‌وقفه داده‌های بلادرنگ را فراهم می‌کند.

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

در هسته خود، OPC UA بر مدل Client-Server عمل می‌کند؛ سرورها داده را در دسترس قرار می‌دهند و کلاینت‌ها آن را واکشی و استفاده می‌کنند. این پروتکل از طیف گسترده‌ای از انواع داده‌ها پشتیبانی می‌کند — از اعداد ساده گرفته تا داده‌های ساختاری پیچیده.

امنیت یکی از ویژگی‌های کلیدی OPC UA است. از طریق احراز هویت مبتنی بر گواهی‌نامه و رمزگذاری، تضمین می‌کند که داده‌های حساس عملیاتی محافظت شوند — موضوعی که یکی از نگرانی‌های اصلی در محیط‌های صنعتی است.

در حالی که OPC UA استاندارد ارتباط را تعیین می‌کند، Kepware نقشی حیاتی در جمع‌آوری و قالب‌بندی داده‌ها دارد.

مروری بر Kepware

Kepware به عنوان پلی میان دستگاه‌های میدانی و برنامه‌های سطح بالاتر عمل می‌کند و در نقش یک پلتفرم اتصال صنعتی قرار دارد. نقش اصلی آن تبدیل پروتکل‌های مختلف صنعتی به قالب استاندارد OPC UA است.

Kepware به عنوان یک سرویس ویندوز اجرا می‌شود و می‌تواند هم‌زمان به طیف گسترده‌ای از دستگاه‌ها متصل شود از تجهیزات قدیمی مبتنی بر پورت سریال گرفته تا دستگاه‌های مدرن با قابلیت Ethernet.

یکی از ویژگی‌های برجسته آن، کتابخانه عظیم درایورهاست که از بیش از ۱۵۰ پروتکل ارتباطی پشتیبانی می‌کند.

وقتی به عنوان یک سرور OPC UA پیکربندی می‌شود، Kepware داده‌های جمع‌آوری‌شده را از طریق Endpoint‌های استاندارد در دسترس قرار می‌دهد. این نرم‌افزار وظایف پیچیده‌ای مانند تبدیل پروتکل، مدیریت اتصال‌ها و Data

Buffering را انجام می‌دهد، بنابراین نیازی نیست خودتان با جزئیات پیچیده ارتباطات دستگاه‌ها سروکار داشته باشید.

Kepware همچنین ابزارهایی برای Data Transformation ارائه می‌دهد که به شما اجازه می‌دهد داده خام دستگاه را پیش از ارسال به کلاینت‌ها پردازش کنید. به‌عنوان مثال، می‌توانید مقیاس‌دهی، افست یا توابع ریاضی را روی داده

اعمال کنید تا بار کاری سیستم‌های پایین‌دستی کاهش یابد.

مروری بر Ignition

Ignition، توسعه‌یافته توسط Inductive Automation، یک پلتفرم مبتنی بر وب SCADA است که جمع‌آوری، تجسم و گزارش‌دهی داده‌ها را در یک راه‌حل منسجم ترکیب می‌کند.این پلتفرم با فراهم‌کردن دسترسی جهانی و پردازش

ساده، مدیریت داده‌های صنعتی را تسهیل می‌کند. یکی از ویژگی‌های برجسته Ignition، نقش دوگانه آن به عنوان هم OPC UA Client و هم OPC UA Server است. به این معنا که می‌تواند داده‌ها را از منابعی مانند Kepware

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

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

آن به هر نقطه داده یک شناسه یکتا اختصاص داده می‌شود، و این امر مدیریت و واکشی داده‌ها از منابع متعدد را ساده‌تر می‌سازد. برای یکپارچگی وب، Ignition ماژول‌های WebDev را ارائه می‌دهد که ایجاد سرویس‌های وب

سفارشی و پردازش درخواست‌های HTTP را ممکن می‌سازد. همچنین پشتیبانی از فرمت‌های JSON و XML باعث می‌شود داده‌های صنعتی در قالب‌هایی قابل استفاده برای برنامه‌های وب به اشتراک گذاشته شوند.

راه‌اندازی محیط

آماده‌سازی سیستم با سخت‌افزار، نرم‌افزار و پیکربندی‌های مناسب، گامی حیاتی برای اتصال مؤثر داده‌های OPC UA به REST API است.

پیش‌نیازها و تنظیمات سیستم

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

برای Kepware (KEPServerEX)، به یک سیستم مبتنی بر ویندوز نیاز دارید. نسخه‌های پشتیبانی‌شده شامل موارد زیر هستند:

  • Windows 11 (v6.12.325)

  • Windows Server 2022 (v6.12.325)

  • Windows Server 2019 (v6.7.1046)

  • Windows 10 IoT Enterprise (v6.7.1046)

  • Windows Server 2016 (v6.1.601)

  • Windows 10 (v5.19.467)

  • Windows Server 2012 (v5.11.250)

  • Windows 8 (v5.11.250)

به خاطر داشته باشید که Windows Server 2025 تا تاریخ ۱۶ ژانویه ۲۰۲۵ هنوز به‌طور رسمی برای KEPServerEX تأیید نشده است، هرچند تاکنون هیچ مشکل ناسازگاری گزارش نشده است. همچنین اگر از Hardware Key Licensing استفاده می‌کنید، در ویندوز ۱۱ یا Windows Server 2022 ممکن است با خطاهایی روبه‌رو شوید.

برای Ignition، این پلتفرم انعطاف‌پذیری بیشتری دارد.
آخرین نسخه آن، v8.3.0، از سیستم‌عامل‌های زیر پشتیبانی می‌کند:

  • Windows Server 2016/2019/2022/2025

  • Windows 10/11

  • macOS (13+)

  • Linux (مانند Ubuntu 22.04 و ۲۴.۰۴)

Ignition حداقل به یک پردازنده دو‌هسته‌ای نیاز دارد و از پایگاه‌داده‌هایی مانند Microsoft SQL Server، Oracle، MySQL، MariaDB، PostgreSQL و هر پایگاه‌داده‌ای که دارای درایور JDBC باشد پشتیبانی می‌کند. پایگاه‌داده‌ای را انتخاب کنید که با زیرساخت و نیازهای عملکردی شما هم‌خوانی داشته باشد.

تنظیمات شبکه نیز یک عامل کلیدی است. اطمینان حاصل کنید که فایروال شما اجازه ارتباط در پورت‌های موردنیاز، به‌ویژه پورت ۴۹۳۲۰ (پورت پیش‌فرض سرور OPC UA در Kepware) را می‌دهد. طرح‌بندی شبکه خود را به‌گونه‌ای طراحی کنید که تأخیر بین Kepware، Ignition و دستگاه‌های متصل به حداقل برسد.

پس از آماده‌سازی سیستم، می‌توانید به مرحله نصب و پیکربندی Kepware بروید.

نصب و پیکربندی Kepware

نصب Kepware گام پایه‌ای برای فعال‌سازی ارتباط داده‌ها است. برای این کار، دستورالعمل‌ها را از Kepware+ Installation Guide یا ThingWorx Kepware Server Install Guide دنبال کنید. در طول نصب، باید اطلاعات کاربری

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

برای مجوزدهی (Licensing) و انجام تنظیمات خاص، دسترسی محلی به سرور Kepware الزامی است.

برای پیکربندی تنظیمات OPC UA، آیکون KEPServerEX را در System Tray یا دسکتاپ خود پیدا کنید، روی آن راست‌کلیک کرده و گزینه OPC UA Configuration را انتخاب نمایید. سپس با استفاده از نام کاربری و رمزعبوری که

هنگام نصب تنظیم کرده‌اید، وارد شوید.

در OPC UA Configuration Manager روی این بخش‌های کلیدی تمرکز کنید:

  • Endpoint Configuration: آدرس پیش‌فرض لوکال به صورت
    opc.tcp://localhost:49320
    است، در حالی که Endpoint شبکه معمولاً به شکل
    opc.tcp://[YourIPAddress]:49320
    تنظیم می‌شود.

  • Security Settings: برای تبادل امن داده، احراز هویت مبتنی بر گواهی‌نامه را پیاده‌سازی کنید.
    گواهی‌ها را ایجاد یا وارد (Import) کنید تا اطمینان حاصل شود Kepware و Ignition قادر به تأیید یکدیگر هستند — این مرحله در محیط‌های عملیاتی بسیار حیاتی است.

  • Channel و Device Setup: کانال‌هایی برای پروتکل‌های ارتباطی مورد استفاده خود ایجاد کنید و دستگاه‌هایی را اضافه کنید که نمایانگر تجهیزات میدانی شما هستند. پس از پیکربندی، این دستگاه‌ها از طریق سرور OPC UA در دسترس خواهند بود.

پس از انجام تنظیمات، با مرور (Browse) محلی سرور OPC UA، تنظیمات خود را آزمایش کنید. اطمینان حاصل کنید که دستگاه‌ها و نقاط داده در سلسله‌مراتب درست نمایش داده می‌شوند.

با پیکربندی موفق Kepware، اکنون آماده‌اید تا Ignition را برای اتصال ایمن تنظیم کنید.

نصب و پیکربندی Ignition

Ignition پیکربندی را از طریق رابط مبتنی بر وب خود ساده می‌کند و نسبت به سیستم‌های SCADA سنتی، اتصال به Kepware را آسان‌تر می‌سازد.

ابتدا نسخه متناسب با سیستم‌عامل خود را دانلود و نصب کنید.

فرآیند نصب، Gateway را راه‌اندازی می‌کند که به‌عنوان مرکز اصلی پردازش داده و ارتباطات عمل می‌کند.

پس از نصب، از طریق مرورگر وب به آدرس زیر بروید:

http://localhost:8088

و به بخش Gateway Configuration دسترسی پیدا کنید.

به قسمت OPC UA Connections بروید و یک اتصال جدید ایجاد کنید که به سرور Kepware شما اشاره دارد.

در فیلد Endpoint URL آدرس سرور Kepware را وارد کنید، برای مثال:

opc.tcp://[KepwareServerIP]:49320.

برای اطمینان از احراز هویت بدون خطا، گواهی‌نامه‌های Ignition را با تنظیمات امنیتی Kepware هماهنگ کنید.

این هم‌ترازی برای ایجاد اتصال ایمن حیاتی است.

با رشد سیستم، سازمان‌دهی تگ‌ها (Tags) را با دقت برنامه‌ریزی کنید.

Ignition از ساختار مبتنی بر تگ استفاده می‌کند که در آن هر نقطه داده از Kepware با یک شناسه یکتا مشخص می‌شود.

داشتن یک الگوی نام‌گذاری منظم به حفظ نظم و مدیریت بهتر داده‌ها در پروژه‌های بزرگ کمک می‌کند.

اگر قصد ایجاد سرویس‌های وب سفارشی برای قابلیت REST API را دارید، ماژول‌های WebDev را فعال کنید.

این ماژول‌ها درخواست‌های HTTP را مدیریت می‌کنند و از فرمت‌های JSON و XML پشتیبانی می‌کنند — که برای تبدیل داده‌های OPC UA به Endpointهای REST ضروری هستند.

در نهایت، با مرور (Browse) سرور OPC UA از داخل Ignition، اتصال را آزمایش کنید.

سلسله‌مراتب دستگاه‌ها و نقاط داده باید دقیقاً با تنظیمات شما در Kepware مطابقت داشته باشد.

در طول تست، از Gateway Logs برای شناسایی و رفع هرگونه خطا استفاده کنید تا قبل از استقرار در محیط عملیاتی، اتصال به‌طور کامل پایدار شود.

اتصال Kepware و Ignition

زمانی که هر دو سیستم نصب و آماده شدند، گام بعدی اتصال سرور OPC UA در Kepware به کلاینت OPC UA در Ignition است.

این اتصال به‌عنوان پلی میان داده‌های دستگاه‌های صنعتی و برنامه‌های مدرن عمل می‌کند و تبادل داده را روان و پایدار می‌سازد.

ایجاد اتصال OPC UA

برای شروع، رابط Gateway Configuration در Ignition را باز کنید.

به مسیر OPC Connections > OPC UA بروید و روی Create new OPC UA Connection کلیک کنید.

نامی واضح و توصیفی مانند "Kepware_Production_Line" برای اتصال انتخاب کنید تا در پروژه‌های بزرگ‌تر به راحتی قابل شناسایی باشد.

در فیلد Endpoint URL، آدرس سرور Kepware را وارد کنید.

اگر هر دو سیستم روی یک دستگاه قرار دارند، از آدرس

opc.tcp://localhost:49320

استفاده کنید.

در صورتی که در شبکه‌های جداگانه اجرا می‌شوند، به جای “localhost” از IP سرور Kepware استفاده کنید، مانند:

opc.tcp://192.168.1.100:49320.

برای امنیت، در محیط‌های عملیاتی از Security Policy‌هایی مانند Basic256Sha256 یا Aes256_Sha256_RsaPss استفاده کنید.

گزینه None را تنها برای آزمایش‌های محلی به کار ببرید و از آن در انتقال داده‌های واقعی خودداری کنید.

مدیریت گواهی‌نامه‌ها (Certificates) در ارتباط ایمن OPC UA نقشی کلیدی دارد.

هنگام اولین اتصال، Kepware و Ignition گواهی‌های خود را مبادله می‌کنند.

در ابتدا، این گواهی‌ها ممکن است در پوشه Rejected هر سیستم قرار بگیرند.

شما باید آن‌ها را به‌صورت دستی به پوشه Trusted منتقل کنید.

در Kepware OPC UA Configuration Manager به بخش Trusted Clients بروید و گواهی Ignition را اضافه کنید.

همچنین در Ignition Gateway مسیر OPC UA > Security را باز کرده و گواهی Kepware را مورد اعتماد (Trusted) قرار دهید.

اگر اتصال نیاز به نام کاربری و رمزعبور دارد، آن را به‌درستی وارد کنید.

برای اتصال ناشناس (Anonymous)، می‌توانید این فیلدها را خالی بگذارید، اما تنها در شبکه‌های ایزوله و امن از این حالت استفاده کنید.

پس از تکمیل تنظیمات، روی Save کلیک کرده و اتصال را آزمایش کنید.

در صورت موفقیت، نشانگر وضعیت به رنگ سبز در آمده و عبارت Connected نمایش داده می‌شود.

اگر اتصال برقرار نشد، به بخش Status > Logs مراجعه کنید تا جزئیات خطا را بررسی کنید.

رفع مشکلات اتصال

مشکلات اتصال میان Kepware و Ignition معمولاً به چند مورد رایج محدود می‌شوند:

  • مشکلات گواهی‌نامه:
    خطاهایی مانند "Bad_SecurityChecksFailed" یا "Bad_CertificateUntrusted" نشان‌دهنده مشکل در اعتماد گواهی‌ها هستند.
    مسیر گواهی‌ها را بررسی کرده، سپس سرویس‌های Kepware و Ignition را مجدداً راه‌اندازی کنید تا تغییرات اعمال شوند.

  • مشکلات شبکه:
    خطاهایی مانند "Bad_ConnectionRejected" یا Timeout معمولاً به دلیل بسته‌بودن پورت ۴۹۳۲۰ یا فیلتر شدن ترافیک OPC UA توسط فایروال رخ می‌دهد.
    مطمئن شوید هیچ تجهیزی مانع ارتباط بین سیستم‌ها نیست.

  • عدم تطابق سیاست امنیتی:
    اگر تنظیمات امنیتی در Ignition با Kepware هم‌خوانی نداشته باشند، اتصال برقرار نخواهد شد.
    سیاست‌های فعال در بخش Server Settings در Kepware را با پیکربندی Ignition مطابقت دهید.

  • خطاهای احراز هویت:
    پیام "Bad_UserAccessDenied" معمولاً به دلیل واردکردن اشتباه نام کاربری یا رمزعبور است.
    حساسیت به حروف بزرگ و کوچک و همچنین پیشوندهای دامنه را بررسی کنید.

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

برای دریافت جزئیات بیشتر، می‌توانید Verbose Logging را در هر دو سیستم فعال کنید.
پس از رفع مشکلات، اقدامات امنیتی ذکرشده در بخش بعد را اجرا کنید تا ارتباطی ایمن و پایدار داشته باشید.

بهترین روش‌های امنیتی برای اتصال

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

سیستم‌های Kepware و Ignition را در یک VLAN یا DMZ اختصاصی قرار دهید تا امنیت شبکه افزایش یابد — این روش با مدل Purdue (ANSI/ISA 95) هم‌راستا است.

OPC UA ویژگی‌های امنیتی داخلی مانند رمزگذاری، امضای دیجیتال و احراز هویت کاربر را ارائه می‌دهد که یکپارچگی و محرمانگی داده را تضمین می‌کند.

همواره اصل حداقل سطح دسترسی (Least Privilege Principle) را رعایت کنید و فقط سطح دسترسی مورد نیاز را اعطا نمایید.

به‌جای استفاده از حساب‌های مدیریتی، حساب‌های اختصاصی برای سرویس‌های Ignition OPC UA بسازید و در صورت امکان از Role-based Access Control (RBAC) استفاده کنید تا سطح دسترسی هر کلاینت دقیقاً مشخص

شود.

در محیط‌های عملیاتی، از رمزگذاری قوی استفاده کنید.

Ignition Gateway را طوری پیکربندی کنید که از HTTPS برای رابط وب خود استفاده کند و مطمئن شوید تمامی اتصالات OPC UA از سیاست‌های امنیتی رمزگذاری‌شده بهره می‌برند.

گزینه SecurityPolicy.None را در سیستم‌هایی که با داده‌های حساس سروکار دارند، غیرفعال کنید.

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

به‌طور منظم این گزارش‌ها را بازبینی کرده و فعالیت‌های غیرعادی را شناسایی نمایید.

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

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

بازبینی‌های امنیتی منظم انجام دهید تا آسیب‌پذیری‌ها شناسایی شوند.

اعتبار گواهی‌نامه‌ها، مجوزهای کاربران و کنترل‌های دسترسی شبکه را بررسی کنید.

Kepware و Ignition را با آخرین پچ‌ها به‌روزرسانی نگه دارید و با دنبال‌کردن بولتن‌های امنیتی شرکت سازنده، از تهدیدات احتمالی آگاه باشید.

پس از اطمینان از امنیت کامل اتصال، می‌توانید داده‌های OPC UA را برای ایجاد REST API‌هایی استفاده کنید که به‌راحتی با برنامه‌های وب مدرن و سرویس‌های ابری یکپارچه می‌شوند.

تبدیل داده‌های OPC UA به REST API

پس از برقراری ارتباط ایمن بین Kepware و Ignition، مرحله بعدی این است که داده‌های OPC UA را به قالبی تبدیل کنیم که از طریق REST API قابل دسترسی باشد.

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

استفاده از WebDev Module در Ignition

ماژول WebDev در Ignition ابزاری قدرتمند برای ایجاد سرویس‌های وب سفارشی است که می‌توانند داده‌های OPC UA را از Ignition Tags واکشی کرده و آن‌ها را به فرمت‌هایی مانند JSON یا XML بازگردانند.

برای شروع:

  1. به مسیر Config > Modules بروید و بررسی کنید که ماژول WebDev فعال باشد.
  2. در صورت غیرفعال بودن، آن را نصب و سپس Gateway را مجدداً راه‌اندازی کنید.
  3. پس از فعال‌سازی، به Designer وارد شوید و به بخش WebDev بروید.

در این قسمت، می‌توانید پروژه‌ای جدید ایجاد کنید که مسیرهای خاصی برای پاسخ به درخواست‌های HTTP تعریف می‌کند.

برای مثال، مسیر /api/tags/temperature می‌تواند داده‌های مربوط به تگ Temperature را برگرداند.

نمونه‌ای ساده از اسکریپت Python (Ignition Script) برای پاسخ به یک درخواست GET در WebDev به شکل زیر است:

# Example: Returning OPC Tag Value as JSON
def get(request):
temp_value = system.tag.readBlocking(["[default]Sensors/Temperature"])[۰].value
response = {"Temperature": temp_value}
return system.util.jsonEncode(response)

این اسکریپت تگ مشخص‌شده را می‌خواند و مقدار آن را در قالب JSON برمی‌گرداند.

می‌توانید ساختار پاسخ را برای چندین تگ، مقادیر تاریخی یا داده‌های پردازش‌شده گسترش دهید.

برای مسیرهای پویا، از پارامترهای URL استفاده کنید. مثلاً /api/tags/{tagName} می‌تواند برای هر تگ درخواستی داده بازگرداند.

در این حالت، اسکریپت به شکل زیر تغییر می‌کند:

def get(request):
tag_name = request['pathVariables'].get('tagName')
tag_path = f"[default]{tag_name}"
tag_value = system.tag.readBlocking([tag_path])[۰].value
response = {tag_name: tag_value}
return system.util.jsonEncode(response)

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

ساختاردهی پاسخ REST

داده‌های OPC UA معمولاً شامل زمان، مقدار و کیفیت (Quality) هستند.

برای API حرفه‌ای‌تر، می‌توانید پاسخ خود را ساختارمندتر کنید:

{
"tag": "Sensors/Temperature",
"value": ۲۳.۴,
"quality": "Good",
"timestamp": "۲۰۲۵-۱۱-03T14:26:00Z"
}

این قالب باعث می‌شود برنامه‌های مصرف‌کننده داده (مانند سیستم‌های تحلیل، داشبوردها یا برنامه‌های وب) بتوانند داده‌ها را به‌آسانی پردازش کنند.

پشتیبانی از عملیات POST برای کنترل از راه دور

علاوه بر واکشی داده‌ها، می‌توانید با استفاده از متد POST یا PUT داده‌ها را به دستگاه‌ها ارسال کنید.

به‌عنوان مثال، می‌توانید تگ‌های خاصی را از طریق REST API به‌روزرسانی کنید:

def post(request):
body = system.util.jsonDecode(request['body'])
tag = body.get("tag")
value = body.get("value")
system.tag.writeBlocking([tag], [value])
return system.util.jsonEncode({"status": "success", "tag": tag, "newValue": value})

این روش امکان کنترل دستگاه‌ها را از طریق رابط‌های وب یا حتی برنامه‌های موبایل فراهم می‌کند.

اما باید احراز هویت و مجوز مناسب را پیاده‌سازی کنید تا از تغییرات غیرمجاز در فرآیندها جلوگیری شود.

احراز هویت و امنیت REST API

در سطح Ignition Gateway، می‌توانید از احراز هویت Basic Auth، Session-based Auth یا Identity Provider (IdP) مبتنی بر OAuth2 / OpenID Connect استفاده کنید.

برای پروژه‌هایی که با داده‌های حساس سروکار دارند، استفاده از HTTPS اجباری است تا ارتباط رمزگذاری‌شده و امن باشد.

همچنین پیشنهاد می‌شود از توکن‌های محدود به زمان (مثلاً JWT) استفاده شود تا در صورت سرقت توکن، سوء‌استفاده به حداقل برسد.

در مسیرهای WebDev نیز می‌توانید کنترل‌های دسترسی مبتنی بر نقش‌ها را تعریف کنید و دسترسی فقط برای کاربران مجاز فراهم شود.

بهینه‌سازی عملکرد API

برای جلوگیری از افزایش بار سرور هنگام درخواست‌های مکرر، از روش‌های Caching استفاده کنید.

می‌توانید داده‌های پرکاربرد را در حافظه نگه دارید یا از Tag History برای دسترسی به داده‌های ذخیره‌شده استفاده نمایید.

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

Ignition Scripting API توابع متعددی برای مدیریت موازی درخواست‌ها و خواندن چند تگ در یک عملیات دارد، مانند:

system.tag.readBlocking(["[default]Line1/Speed", "[default]Line2/Speed"])

یکپارچه‌سازی با سیستم‌های خارجی

زمانی که REST API شما آماده شد، می‌توانید داده‌ها را به راحتی در پلتفرم‌های دیگر مانند Node-RED, Grafana, Power BI, یا حتی سرویس‌های ابری مانند AWS IoT Core, Azure IoT Hub یا Google Cloud IoT استفاده کنید.

برای مثال، یک برنامه وب می‌تواند با درخواست زیر داده‌ها را بازیابی کند:

GET https://your-ignition-server/api/tags/temperature

و پاسخ در قالب JSON دریافت کند.

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

نتیجه‌گیری و نکات تکمیلی

اتصال ایمن بین Kepware و Ignition و تبدیل داده‌های OPC UA به REST API، یکی از مؤثرترین روش‌ها برای ادغام دنیای فناوری عملیاتی (OT) با فناوری اطلاعات (IT) است.

این فرآیند، امکان دسترسی استاندارد، مقیاس‌پذیر و ایمن به داده‌های صنعتی را فراهم می‌کند — بدون آنکه نیاز باشد کاربران یا توسعه‌دهندگان مستقیماً با پروتکل‌های پیچیده صنعتی مانند Modbus، EtherNet/IP یا Siemens S7

سروکار داشته باشند.

مزایای اصلی این معماری

  1. استانداردسازی دسترسی به داده‌ها:
    با استفاده از OPC UA، داده‌ها از تجهیزات مختلف در قالبی واحد قابل دسترسی هستند، و با کمک REST API می‌توان آن‌ها را برای برنامه‌های مدرن مانند وب اپلیکیشن‌ها، سرویس‌های ابری یا نرم‌افزارهای تحلیلی به‌کار گرفت.

  2. افزایش امنیت:
    ترکیب قابلیت‌های امنیتی داخلی OPC UA با ارتباط رمزگذاری‌شده‌ی HTTPS در REST API، از یکپارچگی و محرمانگی داده‌ها محافظت می‌کند.

  3. انعطاف‌پذیری بالا:
    می‌توانید داده‌ها را هم برای مانیتورینگ لحظه‌ای (real-time) و هم برای تحلیل‌های تاریخی (historical analytics) در دسترس قرار دهید.

  4. مقیاس‌پذیری و قابلیت توسعه:
    با افزودن دستگاه‌ها یا تگ‌های جدید در Kepware و اتصال آن‌ها به Ignition, ساختار REST API شما بدون تغییر اساسی قابل گسترش خواهد بود.

  5. ادغام آسان با سامانه‌های مدرن:
    از آنجا که اکثر پلتفرم‌های تحلیلی، داشبوردها و سرویس‌های ابری از HTTP/JSON پشتیبانی می‌کنند، داده‌های صنعتی شما بدون نیاز به درایور یا نرم‌افزار اضافی قابل استفاده خواهند بود.

چالش‌ها و ملاحظات

اگرچه این معماری مزایای بسیاری دارد، اما برخی چالش‌ها را نیز باید مدنظر قرار داد:

  • بار سرور (Server Load):
    در صورت افزایش تعداد درخواست‌های REST، منابع سرور ممکن است تحت فشار قرار گیرند. استفاده از Caching، Load Balancing و Asynchronous Requests توصیه می‌شود.

  • مدیریت امنیتی پیچیده‌تر:
    ترکیب چندین لایه امنیتی (گواهی‌نامه‌ها، احراز هویت، رمزگذاری و کنترل دسترسی) نیاز به مدیریت دقیق و به‌روزرسانی مستمر دارد.

  • تأخیر شبکه (Latency):
    در ارتباطات بین‌سایتی یا ابری، تأخیر ممکن است باعث کاهش سرعت واکشی داده‌ها شود. بهینه‌سازی توپولوژی شبکه و استفاده از سرورهای محلی می‌تواند این مشکل را کاهش دهد.

  • هماهنگی بین تیم‌های IT و OT:
    اجرای موفق چنین سیستمی نیازمند همکاری نزدیک میان تیم‌های فناوری اطلاعات و مهندسی عملیات است تا امنیت، عملکرد و پایداری هم‌زمان تضمین شوند.

جمع‌بندی

ترکیب Kepware، Ignition و REST API یک مسیر کارآمد و منعطف برای دسترسی به داده‌های صنعتی ایجاد می‌کند. این رویکرد با استانداردسازی ارتباطات و تسهیل ادغام با سیستم‌های تحلیلی، زمینه‌ساز تحقق کامل مفهوم Industry 4.0 و Smart Factory است. با اجرای اصول امنیتی صحیح، پایش مداوم و نگهداری منظم، می‌توان اطمینان یافت که داده‌های حساس صنعتی در عین دسترس‌پذیری بالا، در برابر تهدیدات سایبری نیز محافظت می‌شوند. در نهایت، این معماری، پلی استوار میان دنیای سنتی تجهیزات صنعتی و زیرساخت‌های دیجیتال مدرن ایجاد می‌کند.

چگونه ابزارهای همگام‌سازی زمانی داده (Real-Time Data Sync Tools) برای APIها را انتخاب کنیم؟
پروتکل FHIR چیست؟

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

سبد خرید
علاقه‌مندی‌ها
مشاهدات اخیر
دسته بندی ها