پروتکل ارتباطی Modbus RTU

Apr 27, 2026 پیام بگذارید

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

نمایش برنامه پروتکل ارتباطی Modbus

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

The Modbus RTU protocol

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

Modbus RTU یک پروتکل ارتباطی سریال است که در ابتدا توسط Modicon (اکنون بخشی از اشنایدر الکتریک) در سال 1979 برای PLCهای خود (کنترل کننده های منطقی قابل برنامه ریزی) توسعه یافت.

امروزه این پروتکل به یکی از پرکاربردترین پروتکل ها در اتوماسیون صنعتی تبدیل شده است که توسط بیش از 400 سازنده در سراسر جهان پشتیبانی می شود.

چرا به آن "RTU" می گویند؟ RTU مخفف عبارت Remote Terminal Unit است که نشان می دهد این پروتکل عمدتاً برای ارتباط بین دستگاه های راه دور استفاده می شود. این مانند یک "سیستم ارسال پیامک" بین تجهیزات الکتریکی است که داده ها را از طریق یک مکانیسم درخواست و پاسخ ساده مبادله می کند.

Modbus RTU چگونه کار می کند؟

Modbus RTU از معماری ارتباطی استاد- استفاده می‌کند، مانند معلم و دانش‌آموز در کلاس درس.

  • استاد: «معلم»، معمولاً یک رایانه، PLC یا متمرکز کننده، مسئول شروع سؤالات و دستورات است.
  • برده: «دانش آموز»، مانند کنتور یا سنسور برق، فقط می تواند به سؤالات معلم پاسخ دهد و نمی تواند مستقل صحبت کند. (در کاربردهای کنتور برق...)

Modbus RTU

قالب پیام Modbus RTU

"قالب پیامک" بین دستگاه ها

پیام‌های ارتباطی Modbus RTU مانند پیام‌های متنی با دقت ساخته شده‌اند، با فرمت‌های ثابت الزامی.

یک پیام کامل Modbus RTU شامل بخش های زیر است:

کد آدرس کد عملکرد فیلد داده کد را بررسی کنید
8 بیت 8 بیت N × 8 بیت 16 بیتی
  • کد آدرس (1 بایت): معادل یک "شماره تلفن گیرنده"، که آدرس انرژی سنج مورد نظر (1-247) را مشخص می کند، با 0 برای آدرس پخش.
  • کد تابع (1 بایت): معادل یک "نوع پیام متنی" است که به انرژی سنج برای انجام عملیات دستور می دهد (مثلاً خواندن داده ها، نوشتن داده ها و غیره).
  • فیلد داده (N بایت): اطلاعات خاصی که باید منتقل شود، مانند آدرس ثبت، مقدار داده و غیره.
  • CRC Checksum (2 بایت): معادل یک "ضد-کد جعل" است که برای بررسی خطاها در حین ارسال استفاده می شود.

یک پیام معمولی برای خواندن کل داده های انرژی فعال مثبت از یک کنتور انرژی UBS به شرح زیر است:

[آدرس 00][کد تابع 03][آدرس شروع 00 0C][طول خواندن 00 02][CRC Checksum 05 D9]

این معادل این است که بگوییم: "همه مترها، لطفاً داده ها را از ثبات 000C، با ثبات 1 شروع کنید."

پس از دریافت پیام، متر شماره 1 با:

[آدرس 01][کد تابع 03][طول داده 04][داده 00 00 00 00][CRC Checksum FA 33]
این به این معنی است: "متر شماره 1 پاسخ داد: کل مقدار داده انرژی فعال مثبت خوانده شده 00 00 00 00 (هگزادسیمال) است" (توجه: این متر شماره 1 یک متر جدید و استفاده نشده است). تصویر زیر یک نمایش آزمایشی است:

Modbus RTU Message Format

"کتاب داده" در کنتور برق: توضیح داده شده ثبت

در پروتکل Modbus RTU، تمام داده های یک کنتور برق در یک "صفحه گسترده"-ثبت ذخیره می شود. رجیسترها عمدتاً به چهار نوع تقسیم می شوند:

نوع ثبت نام مجوز خواندن/نوشتن کدهای تابع محتوای ذخیره شده معمولی
ثبت کویل بخوان / بنویس 01, 05 وضعیت رله، کنترل سوئیچ
ثبت ورودی گسسته فقط خواندن- 02 ورودی دیجیتال (به عنوان مثال، سیگنال های هشدار)
ثبت ورودی فقط خواندن- 04 داده‌های اندازه‌گیری زمان واقعی-(ولتاژ، جریان و غیره)
برگزاری ثبت نام بخوان / بنویس 03, 06 پارامترهای دستگاه، انرژی انباشته شده و غیره

در کاربردهای کنتور برق، رایج ترین رجیسترها عبارتند از:

ثبت ورودی

(کد تابع 04H): داده‌های اندازه‌گیری شده در زمان واقعی مانند ولتاژ، جریان و توان را ذخیره می‌کند.

برگزاری ثبت نام

(کد عملکرد 03H): مصرف برق انباشته شده، پارامترهای دستگاه و غیره را ذخیره می کند.

UBS Energy Meter Modbus Register Address جدول اطلاعات

آدرس پخش پروتکل Modbus 0x00 است. برای اطلاعات دقیق آدرس ثبت پروتکل Modbus برای کنتورهای انرژی UBS، لطفاً جدول زیر را ببینید:

ثبت نام (Hex) نام متغیر مشخصه (واحد / R/W) نوع داده بشمار اظهارات
0x0000 ولتاژ DC واحد: V، R/W: RO S16 1 محدوده: -9999~9999; خواندن=مقدار مؤثر × 10^(امتیاز اعشاری)
0x0001 نقطه اعشاری ولتاژ واحد: هیچ، R/W: RO U16 1 مقدار ثابت: 0
0x0002 ارزش فعلی DC واحد: A، R/W: RO S16 1 محدوده: -9999-9999
0x0003 نقطه اعشاری فعلی واحد: هیچ، R/W: RO U16 1 مقدار ثابت: 1
0x0008 ارزش قدرت واحد: کیلووات، R/W: RO S16 1 محدوده: -9999-9999
0x0009 نقطه اعشاری قدرت واحد: هیچ، R/W: RO U16 1 مقدار ثابت: 1
0x000C کل انرژی فعال رو به جلو واحد: 0.001 کیلووات ساعت، R/W: RO U32 2 اول بایت بالا، آخر بایت کم. مثال: اگر داده‌ها=5000 خوانده شوند، نقطه اعشار=2 → مقدار واقعی=5000 × 10^(2-3)=500.0
0x203C ولتاژ کانال 1 واحد: 0.0001 ولت، R/W: RO I32 2 اول بایت بالا، آخر بایت پایین
0x203E ولتاژ کانال 2 واحد: 0.0001 ولت، R/W: RO I32 2 همیشه 0
0x2040 جریان کانال 1 واحد: 0.0001A، R/W: RO I32 2 اول بایت بالا، آخر بایت پایین
0x2042 کانال 2 فعلی واحد: 0.0001A، R/W: RO I32 2 همیشه 0
0x2044 پاور کانال 1 واحد: 0.0001 کیلووات، R/W: RO I32 2 اول بایت بالا، آخر بایت پایین
0x2046 پاور کانال 2 واحد: 0.0001 کیلووات، R/W: RO I32 2 همیشه 0
0x9A00 انرژی کل فعال رو به جلو واحد: کیلووات ساعت، R/W: RO شناور 2
0xA001/0x8900 آدرس دستگاه واحد: هیچ، R/W: RW U16 1 محدوده: 0 تا 247

نمایش خواندن پیام های کنتور انرژی UBS

با استفاده از نرم افزار کامپیوتر میزبان انرژی سنج UBS، داده های زیر را از انرژی سنج هوشمند DJ1226 DC بخوانید: کل انرژی فعال مثبت، ولتاژ، جریان، توان و آدرس کنتور.

Demonstration Of Reading UBS Energy Meter Messages

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

13:25:30.229 کل انرژی فعال مثبت (000C0002) ...

13:25:30.256 ▼Send:00 03 00 0C 00 02 05 D9

13:25:30.344 ▲دریافت:01 03 04 00 00 00 00 FA 33

13:25:30.359 ولتاژ DC(00000002) ...

13:25:30.424 ▼Send:00 03 00 00 00 02 C5 DA

13:25:30.428 ▲دریافت:01 03 04 00 17 00 03 0A 36

13:25:30.494 جریان DC(00020002) ...

13:25:30.522 ▼Send:00 03 00 02 00 02 64 1A

13:25:30.610 ▲دریافت:01 03 04 00 30 00 02 7B FD

13:25:30.621 قدرت(00080002) ...

13:25:30.682 ▼ ارسال:00 03 00 08 00 02 44 18

13:25:30.690 ▲دریافت:01 03 04 00 01 00 02 2A 32

13:25:30.702 آدرس ارتباطی 2(A0010001) ...

13:25:30.779 ▼ ارسال:00 03 A0 01 00 01 F6 1B

13:25:30.783 ▲دریافت:01 03 02 00 01 79 84

13:25:30.795 پایان خواندن داده ها.

مشکلات رایج و تکنیک های عیب یابی

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

بدون پاسخ ارتباطی

● اتصالات فیزیکی را بررسی کنید:

▪ آیا سیم کشی RS-485 درست است (خطوط A/B معکوس شده است)؟

▪ آیا مقاومت های پایانه با هم مطابقت دارند (به طور کلی، مقاومت های 120Ω را در هر انتهای شین وصل کنید)؟

▪ آیا فاصله ارتباطی از حد مجاز فراتر رفته است (RS-485 از نظر تئوری می تواند به 1200 متر برسد، اما فواصل واقعی تحت تأثیر عوامل محیطی قرار دارند).

● تنظیمات پارامتر را تأیید کنید:

▪ آیا نرخ باود، بیت های داده، بیت های توقف و تنظیمات برابری با کنتور برق سازگار است؟

▪ آیا آدرس دستگاه به درستی تنظیم شده است (بدون آدرس تکراری)؟

ارتباط متناوب

● تداخل خط را بررسی کنید:

▪ از کابل{0}جفت تابدار محافظ استفاده کنید و اطمینان حاصل کنید که محافظ در یک انتها به زمین متصل است.

▪ از اجرای کابل موازی با کابل‌های{0} ولتاژ بالا اجتناب کنید.

● تست دستگاه های فردی:

▪ برای عیب یابی دستگاه های معیوب هر کنتور برق را جداگانه وصل کنید.

▪ از نرم افزار کامپیوتر میزبان اختصاصی UBS Electronics (مانند AMS) برای برقراری ارتباط مستقیم با کنتور برق و مشخص کردن مشکل استفاده کنید.

خطاهای داده

● بررسی CRC:

▪ بررسی کنید که آیا کدهای CRC ارسالی و دریافتی مطابقت دارند یا خیر.

▪ ترتیب بایت داده را تأیید کنید (Modbus RTU معمولاً اندک-است).

● بررسی نقشه ثبت:

▪ اطمینان حاصل کنید که آدرس های ثبت استفاده شده با دفترچه راهنمای کنتور برق مطابقت دارند.

▪ به آفست آدرس ثبت توجه کنید.

در صورت نیاز به استفاده از نرم افزار کامپیوتر میزبان UBS (پروتکل Modbus RTU) که ​​در این مقاله ذکر شده است، لطفاً با مسئول سفارش کنتور برق UBS خود تماس بگیرید و پشتیبانی فنی بیشتر-پس از فروش را دریافت کنید.

ارسال درخواست