---
title: 'پروتکل‌های ارتباطی پشتیبانی‌شده'
section: 'Reference'
weight: 1
description: مروری بر پروتکل‌های ارتباطی صنعتی و IoT که پلتفرم پشتیبانی می‌کند — Modbus، OPC UA، MQTT و DLMS/COSEM.
related:
  - architecture/data-collection-layer
  - integration
  - equipment
  - rest-api
---

import Alert from '@/components/docs/Alert.astro';

## Modbus (RTU / TCP)

### هدف و توضیح

پروتکلی صنعتی، ساده و پرکاربرد برای تبادل داده‌های فرایندی میان کنترلرها، حسگرها و عملگرها. این پروتکل در سال ۱۹۷۹ توسط شرکت Modicon (اکنون Schneider Electric) توسعه یافت و به استاندارد عملی اتوماسیون صنعتی تبدیل شد. در سامانه‌های SCADA، PLCها، درایوهای فرکانس متغیر، ابزارهای اندازه‌گیری و حسگرها به کار می‌رود. به دلیل سادگی پیاده‌سازی و نیاز ناچیز به منابع محاسباتی، این پروتکل به‌طور ایده‌آل برای سامانه‌های توکار و دستگاه‌های با حافظه محدود مناسب است.

### معماری و مدل داده

مدل دادهٔ مبتنی بر رجیستر بر چهار نوع فضای آدرس استوار است:

- **Coils (0x)** — خروجی‌های گسسته (مقادیر بیتی خواندنی/نوشتنی)
- **Discrete Inputs (1x)** — ورودی‌های گسسته (فقط‌خواندنی)
- **Input Registers (3x)** — رجیسترهای ورودی ۱۶ بیتی (فقط‌خواندنی)
- **Holding Registers (4x)** — رجیسترهای نگه‌دارندهٔ ۱۶ بیتی (خواندنی/نوشتنی)

معماری کلاینت-سرور (master-slave): دستگاه master درخواست‌ها را آغاز می‌کند و slaveها پاسخ می‌دهند. هر دستگاه slave یک آدرس یکتا دارد (۱ تا ۲۴۷). این پروتکل هیچ معنای دادهٔ درون‌ساختی ندارد — تفسیر مقادیر رجیستر در سطح کاربرد و در مستندات دستگاه تعریف می‌شود. عملیات خواندن و نوشتن را برای یک یا چند رجیستر پشتیبانی می‌کند.

### انتقال

**Modbus RTU:**

- خطوط سریال RS-485 (تا ۳۲ دستگاه روی هر گذرگاه، فاصلهٔ تا ۱۲۰۰ متر) یا RS-232 (نقطه‌به‌نقطه)
- نمایش داده به‌صورت دودویی
- بررسی صحت از طریق CRC-16
- نرخ ارسال: از ۱۲۰۰ تا ۱۱۵۲۰۰ باود
- ارسال نیمه‌دوطرفه (half-duplex)

**Modbus TCP:**

- کپسوله‌سازی فریم‌های Modbus در TCP/IP (پورت 502)
- سرآیند MBAP (Modbus Application Protocol) برای شناسایی تراکنش
- ارسال تمام‌دوطرفه (full-duplex)
- امکان کار هم‌زمان با چندین دستگاه
- بدون نیاز به جمع کنترلی (پایایی توسط TCP تأمین می‌شود)

### قابلیت‌های کلیدی

- خواندن و نوشتن سیگنال‌های گسسته (Coils) و رجیسترها
- پشتیبانی از کدهای تابع استاندارد (FC 01–06، 15–16، 23)
- توابع عیب‌یابی (FC 08)
- خواندن داده‌های شناسایی دستگاه (FC 17، 43)
- نیاز ناچیز به منابع محاسباتی برای دستگاه‌ها
- پیاده‌سازی و اشکال‌زدایی ساده
- هزینهٔ پیاده‌سازی پایین
- مدیریت استثناها و کدهای خطا
- پشتیبانی از پیام‌های همگانی (broadcast) (آدرس 0) در RTU
- مقیاس‌پذیری تا ۲۴۷ دستگاه روی یک خط (RTU) یا نامحدود از طریق TCP

<Alert type="note">**پشتیبانی کامل**</Alert>

## OPC UA

### هدف و توضیح

استانداردی جهانی و بین‌سکویی (OPC Unified Architecture، IEC 62541) برای تبادل امن و ساختاریافتهٔ داده‌های صنعتی، فراداده و اطلاعات معنایی. این استاندارد توسط OPC Foundation به‌عنوان جانشین مشخصات کلاسیک OPC DA/AE/HDA توسعه یافت و وابستگی به فناوری‌های Microsoft DCOM را از میان برد. یکپارچه‌سازی عمودی و افقی را در سامانه‌های صنعتی ممکن می‌سازد — از سطح میدانی تا سامانه‌های اطلاعاتی سازمانی (ERP، MES). به لطف قابلیت‌های غنی مدل‌سازی اطلاعات، از مفاهیم Industrie 4.0 و دوقلوی دیجیتال پشتیبانی می‌کند.

### معماری و مدل داده

مدل دادهٔ شیءگرا که اطلاعات را به‌صورت یک فضای گرهی آدرس‌پذیر (Address Space) نمایش می‌دهد:

- **گره‌ها (Nodes)** از انواع گوناگون: Variable، Object، Method، View، DataType، ReferenceType
- **خصیصه‌های گره (Node attributes)**: Value، DataType، AccessLevel، Timestamp، Quality، DisplayName و غیره
- **ارجاع‌ها (References)** میان گره‌ها: سلسله‌مراتبی، تداعی‌گرانه، مبتنی بر مؤلفه
- **انواع داده**: مقادیر ابتدایی، ساختارها، آرایه‌ها، شمارش‌ها

سرویس‌های پشتیبانی‌شده:

- **Subscription** — پایش تغییرات داده با بازه‌های نمونه‌برداری و فیلترهای پیکربندی‌پذیر
- **Events & Alarms** — اعلان‌های ناهمگام برای رویدادها، آلارم‌ها و وضعیت‌ها
- **Historical Access** — دسترسی به داده‌ها و رویدادهای بایگانی‌شده
- **Methods** — فراخوانی رویهٔ از راه دور روی دستگاه‌ها

مدل‌های اطلاعاتی ویژهٔ هر صنعت (Companion Specifications): مهندسی مکانیک، انرژی، نفت و گاز، داروسازی.

### انتقال

**UA Binary Protocol over TCP/IP:**

- پروتکل دودویی با سریال‌سازی بهینه (پورت 4840)
- کارایی بالا و سربار ناچیز

**HTTPS / SOAP:**

- نمایهٔ Web Services برای یکپارچه‌سازی با سامانه‌های سازمانی
- رمزگذاری JSON برای کاربردهای ابری

**OPC UA PubSub:**

- مدل منتشرکننده-مشترک (publisher-subscriber) برای سامانه‌های توزیع‌شده
- انتقال: UDP Multicast، MQTT، AMQP، Ethernet TSN
- ارسال جبری (deterministic) برای کاربردهای حساس به زمان

**امنیت:**

- حالت‌های امنیتی چندسطحی (None، Sign، SignAndEncrypt)
- گواهی‌های X.509 برای احراز هویت
- رمزگذاری AES، RSA

### قابلیت‌های کلیدی

- **مدل‌سازی اطلاعات**: انتقال نه‌فقط مقادیر «خام» بلکه داده‌های پیچیدهٔ ساختاریافته همراه با معنا، نوع‌بندی و فراداده
- **اشتراک‌ها (Subscriptions)** با بازه‌های نظرسنجی پیکربندی‌پذیر، فیلترهای deadband و بافرگذاری
- **رویدادها (Events)** و سامانهٔ آلارم با فیلترگذاری شرطی
- **فراخوانی متد (Method invocation)** برای کنترل دستگاه و اجرای عملیات
- **دسترسی به داده‌های تاریخی** همراه با تجمیع
- **کشف سرویس (Service discovery)** در شبکه‌های محلی
- **امنیت درون‌ساخت**: رمزگذاری کانال، احراز هویت مبتنی بر گواهی یا نام کاربری/گذرواژه، کنترل دسترسی در سطح گره
- **افزونگی و تحمل خطای سرور**
- **بین‌سکویی**: Windows، Linux، VxWorks، QNX و دیگر سیستم‌عامل‌ها
- **مقیاس‌پذیری**: از میکروکنترلرها تا سامانه‌های توزیع‌شده

<Alert type="note">**پشتیبانی کامل**</Alert>

## MQTT

### هدف و توضیح

پروتکلی سبک برای تبادل پیام (Message Queuing Telemetry Transport) برای تله‌متری، پایش از راه دور و مدیریت دستگاه‌های IoT، بهینه‌شده برای شبکه‌های ناپایدار، پهنای باند محدود و تأخیر بالا. این پروتکل در سال ۱۹۹۹ توسط IBM برای پایش خطوط لولهٔ نفت توسعه یافت و توسط OASIS و ISO/IEC (20922:2016) استانداردسازی شد. به‌طور گسترده در IoT صنعتی، خانه‌های هوشمند، تله‌ماتیک خودرو و کاربردهای موبایل به کار می‌رود. تمرکز این پروتکل بر کمینه‌سازی ترافیک شبکه و مصرف توان دستگاه است.

### معماری و مدل داده

مدل ناهمگام **انتشار/اشتراک (Publish/Subscribe)** با یک کارگزار (broker) متمرکز:

- **Publisher** — دستگاه یا برنامه‌ای که پیام‌ها را در موضوع‌ها (topics) منتشر می‌کند
- **Subscriber** — دستگاه یا برنامه‌ای که برای دریافت پیام از موضوع‌ها مشترک شده است
- **Broker** — سرور مرکزی مسیریابی پیام (Mosquitto، HiveMQ، EMQ X و غیره)

**موضوع‌ها (Topics)** — ساختار مسیر سلسله‌مراتبی برای دسته‌بندی پیام‌ها:

- جداکننده‌های سطح: `/` (برای نمونه `factory/building1/temperature`)
- نویسه‌های جایگزین (wildcards): `+` (یک سطح)، `#` (چند سطح)
- نمونهٔ اشتراک: `sensors/+/temperature` یا `factory/#`

**قالب داده** که توسط برنامه تعریف می‌شود: JSON، Protocol Buffers، XML، دادهٔ دودویی، متن.  
**پیام‌های نگه‌داشته‌شده (Retained messages)**: کارگزار آخرین پیام یک موضوع را ذخیره می‌کند و آن را به مشترکان جدید تحویل می‌دهد.  
**جلسه‌های پایدار (Persistent sessions)**: کارگزار اشتراک‌های کلاینت را پس از قطع اتصال حفظ می‌کند.

### انتقال

- لایهٔ انتقال: TCP/IP (پورت 1883 برای اتصال‌های ناامن)
- TLS/SSL (پورت 8883) برای رمزگذاری و احراز هویت
- WebSockets برای یکپارچه‌سازی با مرورگر و کاربردهای وب
- نسخه‌های پروتکل: MQTT 3.1.1 (رایج‌ترین)، MQTT 5.0 (قابلیت‌های گسترده)
- اندازهٔ سرآیند: حداقل ۲ بایت (سرآیند ثابت)
- سازوکار keep-alive: ارسال دوره‌ای PINGREQ/PINGRESP برای پایش اتصال
- کار مبتنی بر کارگزار، جداسازی منتشرکننده-مشترک، مقیاس‌پذیری افقی و مدیریت متمرکز را تضمین می‌کند

### قابلیت‌های کلیدی

- **QoS (Quality of Service)** سه سطح تضمین تحویل:
  - QoS 0: حداکثر یک‌بار (بدون تأیید دریافت)
  - QoS 1: حداقل یک‌بار (همراه با تأیید دریافت)
  - QoS 2: دقیقاً یک‌بار (دست‌دادن چهارمرحله‌ای)
- **سربار شبکهٔ ناچیز**: سرآیند ثابت ۲ بایتی، رمزگذاری دودویی کارآمد
- **LWT (Last Will and Testament)**: سازوکار اعلان خودکار برای قطع اتصال غیرمنتظرهٔ دستگاه — اگر کلاینت جلسه را به‌طور غیرعادی پایان دهد، کارگزار یک پیام از پیش‌تعریف‌شده منتشر می‌کند
- **Clean Session / Persistent Session**: امکان بازیابی اشتراک‌ها و پیام‌ها پس از اتصال مجدد
- **Retained Messages**: در دسترس بودن آخرین مقدار برای مشترکان جدید
- **مصرف توان پایین**: ایده‌آل برای دستگاه‌های باتری‌خور
- **مقیاس‌پذیری**: پشتیبانی از میلیون‌ها اتصال هم‌زمان روی خوشه‌های کارگزار
- **اشتراک با نویسهٔ جایگزین (Wildcard subscriptions)** برای فیلترگذاری انعطاف‌پذیر موضوع‌ها

<Alert type="note">**پشتیبانی کامل**</Alert>

## DLMS / COSEM (IEC 62056)

### هدف و توضیح

استانداردی بین‌المللی برای تبادل داده با کنتورهای خدمات عمومی: برق، گاز، آب و حرارت (Device Language Message Specification / Companion Specification for Energy Metering). این استاندارد توسط DLMS User Association به همراه IEC توسعه یافت تا قابلیت همکاری کنتورهای هوشمند را در سامانه‌های اندازه‌گیری و صورت‌حساب خودکار (AMBS) تضمین کند. خوانش از راه دور کنتور، پایش کیفیت توان، مدیریت تعرفه و تشخیص دسترسی غیرمجاز را ممکن می‌سازد. به‌طور گسترده توسط اپراتورهای شبکهٔ برق، تأمین‌کنندگان خدمات عمومی و یکپارچه‌سازان سامانهٔ Smart Grid به کار می‌رود.

### معماری و مدل داده

**مدل شیء COSEM (Companion Specification for Energy Metering):**

- داده‌های کنتور به‌صورت **اشیای منطقی (COSEM objects)** با کلاس‌های رابط نمایش داده می‌شوند
- **کدهای OBIS (Object Identification System)** — شناسهٔ شش‌بایتی برای آدرس‌دهی جهانی پارامترها: `A-B:C.D.E*F`
  - A — نوع انرژی (1=برق، 6=حرارت، 7=گاز، 8=آب)
  - B — کانال اندازه‌گیری
  - C — کمیت فیزیکی (برای نمونه 1=انرژی اکتیو)
  - D — نوع اندازه‌گیری (8=زمان انتگرال‌گیری)
  - E — منطقهٔ تعرفه
  - F — عمق تاریخی

**پروتکل DLMS:**

- لایهٔ کاربرد مطابق مدل OSI
- **انجمن‌ها (Associations)** با حقوق دسترسی متفاوت: Public، Reader، Manager
- **احراز هویت**: Low Level Security (LLS)، High Level Security (HLS) با چالش-پاسخ
- **رمزگذاری**: پشتیبانی از DLMS Security Suite با الگوریتم‌های AES-GCM-128
- **پروفایل‌های بار (Load Profiles)**: اشیای بافری برای ذخیرهٔ داده‌های سری‌زمانی
- **سامانهٔ اسکریپت‌نویسی**: اجرای دنباله‌ای از کنش‌ها روی کنتور

### انتقال

لایهٔ فیزیکی و لایهٔ پیوند داده:

- **پورت نوری (IEC 62056-21، flag)** — اتصال مستقیم از طریق هد مادون قرمز برای خوانش محلی
- **RS-485 / RS-232** با پروتکل HDLC (High-Level Data Link Control) برای شبکه‌های multi-drop
- **TCP/IP** (پورت 4059) — DLMS over TCP یا کپسوله‌سازی IP برای دسترسی از راه دور
- **GSM/GPRS/LTE** — ارسال داده از طریق شبکه‌های موبایل (پروتکل‌های wrapper)
- **PLC (Power Line Communication)** — ارسال روی خطوط برق (PRIME، G3-PLC)
- **M-Bus** — برای یکپارچه‌سازی با سامانه‌های اندازه‌گیری آب و حرارت

نمایه‌های انتقال بسته به پیاده‌سازی کنتور:

- IEC 62056-46: COSEM over HDLC
- IEC 62056-47: COSEM transport over TCP-UDP/IP

### قابلیت‌های کلیدی

- **خوانش کنتور** — مقادیر جاری مصرف انرژی، توان، ولتاژ، جریان، ضریب توان
- **پروفایل‌های بار (Load Profiles)** — داده‌های مفصل دارای برچسب زمانی (بازه‌های ۱۵ دقیقه‌ای، ساعتی، روزانه)
- **گزارش‌های رویداد (Event logs)** — ثبت دستکاری درپوش، قطع برق، اضافه‌ولتاژها، تغییر پارامترها
- **احراز هویت و مجوزدهی چندسطحی**: کنترل دسترسی مبتنی بر نقش (دسترسی عمومی، خواندن، پیکربندی)
- **مدیریت تعرفه** — تغییر از راه دور برنامه‌ها و نرخ‌های تعرفه
- **همگام‌سازی زمان** برای دقت برچسب زمانی
- **کنترل رله** (وصل/قطع بار)
- **پایش کیفیت توان** (افت ولتاژ، اضافه‌ولتاژ، هارمونیک‌ها)
- **پشتیبانی از عملیات گروهی** روی چندین کنتور
- **حفاظت رمزنگارانهٔ داده** و یکپارچگی پیام

<Alert type="note">**پشتیبانی در دست پیاده‌سازی**</Alert>
