۴۸صنعت
+۵۰۰زیرسیستم
+۱۰۰۰پروژه
۱۸سال
شرکتصنایعسامانه‌ها و APIتماسدانلود
درس ۴ از ۱۵۱۲ دقیقه

اتصال تجهیز با Modbus TCP/RTU

هدف درس

تنظیمات Modbus TCP و RTU را در فرم دستگاه بشناسید و منطق رجیسترها، کدهای تابع و ترتیب بایت را برای راه‌اندازی درست کنتورها، درایوها و تابلوها درک کنید.

کجای نرم‌افزار

«طراحی سیستم» ← «مدیریت ساختار» ← «دستگاه‌ها» ← فرم دستگاه ← زبانهٔ «پروتکل‌ها» (بخش «Modbus TCP/RTU») و زبانهٔ «تنظیمات اتصال»

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

مسیر پشتیبانی‌شده

مطمئن‌ترین راه، انتخاب مدل از کاتالوگ است (درس B2): پروفایل مدل، رجیسترها و نقاط داده را هنگام ذخیره می‌سازد و پروتکل را روشن می‌کند. در ستون پروتکل‌های کاتالوگ، مدل‌هایی که برچسب MODBUS_TCP دارند این قابلیت را دارند. تعریف دستی رجیستر از رابط کاربری در نسخهٔ فعلی پیش‌بینی نشده است؛ برای تجهیزی که در کاتالوگ نیست، نقشهٔ رجیستر در قالب بستهٔ یکپارچه‌سازی و به درخواست تعریف می‌شود.

صفحه را بشناسید

بخش «Modbus TCP/RTU» در زبانهٔ «پروتکل‌ها»:

فیلدگزینه‌هاپیش‌فرض
حمل و نقلModbus TCP / Modbus RTU / Modbus ASCIIModbus TCP
شناسه واحدعدد؛ راهنما «1–247»1
ترتیب بایتBig Endian (AB CD) / Little Endian (CD AB) / Mid-Big (BA DC) / Mid-Little (DC BA)Big Endian
فاصله نظرسنجیثانیه؛ خالی یعنی پیش‌فرض دستگاه۶۰

زبانهٔ «تنظیمات اتصال» برای RTU (رسانهٔ «RS-485» یا «Modbus (سیمی)»):

فیلدگزینه‌هاپیش‌فرض
پورت سریالمثلاً COM1 یا /dev/ttyS0—
نرخ باود2400 تا 1152009600
بیت های داده7 / 88
بیت های توقف1 / 1.5 / 21
برابریهیچ / زوج / فردهیچ

گام‌به‌گام

  1. مدل را از کاتالوگ انتخاب کنید. در «تعریف دستگاه جدید» با باز کردن کاتالوگ مدل کنتور یا درایو را انتخاب کنید و نام، فضا و گروه را مانند درس B2 کامل کنید.
  2. رسانه و نشانی را تعیین کنید. در زبانهٔ تنظیمات اتصال برای Modbus TCP رسانهٔ «اترنت (RJ45)» را نگه دارید، آدرس IP را وارد کنید و پورت را ۵۰۲ بگذارید. برای RTU رسانه را «RS-485» کنید و پورت سریال، نرخ باود، بیت‌های داده و توقف و برابری را دقیقاً مطابق تنظیم تجهیز وارد کنید؛ همهٔ تجهیزات یک باس RS-485 باید تنظیم سریال یکسان داشته باشند.
    زبانهٔ تنظیمات اتصال با رسانهٔ RS-485
    تنظیمات سریال RTU · پورت سریال، نرخ باود، بیت‌ها و برابری
  3. بخش Modbus را تنظیم کنید. در زبانهٔ پروتکل‌ها بخش Modbus TCP/RTU را روشن کنید. حمل و نقل را مطابق رسانه، شناسه واحد را مطابق آدرس Slave تجهیز و ترتیب بایت را طبق دفترچهٔ سازنده انتخاب کنید. سپس ذخیره را بزنید.
    بخش Modbus TCP/RTU در زبانهٔ پروتکل‌ها
    بخش Modbus · حمل و نقل، شناسه واحد و ترتیب بایت
  4. خواندن را بیازمایید. پس از ذخیره، دستگاه را در تستر پروتکل (درس B7) انتخاب کنید و مقدار یک رجیستر شناخته‌شده، مثلاً ولتاژ فاز، را با نمایشگر خود تجهیز مقایسه کنید.

پیش از رفتن به محل چه چیزی لازم دارید

بیشتر مشکلات راه‌اندازی Modbus از نبود اطلاعات دقیق تجهیز است، نه از نرم‌افزار. پیش از شروع، این فهرست را از دفترچهٔ سازنده یا تیم برق و ابزار دقیق کامل کنید: نوع حمل (TCP یا RTU)، نشانی شبکه یا پورت سریال، تنظیم کامل سریال (نرخ باود، بیت داده، بیت توقف، برابری)، شناسهٔ واحد هر تجهیز روی باس، جدول رجیسترها با نوع رجیستر و نوع داده، ضریب و واحد هر مقدار، و ترتیب بایت مقادیر ۳۲ بیتی. اگر تجهیز در کاتالوگ موجود است، بیشتر این موارد از پروفایل مدل می‌آید و فقط نشانی و شناسهٔ واحد را وارد می‌کنید.

منطق رجیسترها

هر مقدار Modbus در یکی از چهار جدول نگهداری می‌شود. نوع رجیستر تعیین می‌کند با کدام کد تابع خوانده یا نوشته شود:

نوع رجیستربرچسبخواندننوشتن
CoilCoilFC01FC05 یا FC15
Discrete InputDIFC02فقط‌خواندنی
Holding RegisterHRFC03FC06 یا FC16
Input RegisterIRFC04فقط‌خواندنی

انواع دادهٔ پشتیبانی‌شده: Bool، Int16، Int32، UInt16، UInt32، Float32، Float64 و String. مقادیر ۳۲ و ۶۴ بیتی در دو یا چهار رجیستر پشت‌سرهم قرار می‌گیرند و ترتیب بایت تعیین می‌کند این رجیسترها چگونه کنار هم خوانده شوند.

پشت صحنه: درایور Modbus هر ثانیه زمان‌بندی خود را بررسی می‌کند؛ بازهٔ پیش‌فرض هر دستگاه یک ثانیه، مهلت پاسخ سه ثانیه و تعداد تلاش مجدد سه است. شناسهٔ ENID نقاط Modbus با پایهٔ 9005 ساخته می‌شود. پروفایل‌های آمادهٔ سرور برای تجهیزات رایج، از جمله Schneider PM2200/PM5300، Eastron SDM630، ABB ACS580، Danfoss FC302، Carrier 30XA و APC Smart-UPS، از پیش تعریف شده‌اند.

نکته‌ها و اشتباه‌های رایج

  • «شناسه واحد» باید بین ۱ و ۲۴۷ باشد. فرم مقدار خارج از این بازه را رد نمی‌کند، پس خودتان دقت کنید.
  • در نسخهٔ فعلی فقط دو ترتیب Big Endian و Little Endian اعمال می‌شود. اگر دفترچهٔ تجهیز ترتیب میانی (Mid) می‌خواهد، پیش از بهره‌برداری با تیم پیاده‌سازی هماهنگ کنید.
  • دفترچه‌های سازنده نشانی رجیستر را گاهی از ۱ و گاهی از ۰ می‌شمارند (مثلاً 40001 در برابر 0). همیشه یک مقدار شناخته‌شده را با تستر پروتکل کنترل کنید تا جابه‌جایی یک‌رجیستری پیش نیاید.
  • مقدار Float32 که عددی بی‌معنی یا بسیار بزرگ نشان می‌دهد معمولاً نشانهٔ ترتیب بایت اشتباه است.
  • روی یک باس RS-485 شناسهٔ واحد تکراری باعث تداخل پاسخ‌ها می‌شود.

خلاصه

  • Modbus TCP: رسانهٔ اترنت، پورت 502؛ RTU: رسانهٔ RS-485 و تنظیمات سریال یکسان با تجهیز.
  • رجیسترها از پروفایل کاتالوگ ساخته می‌شوند؛ تعریف رجیستر برای تجهیز خارج از کاتالوگ به درخواست انجام می‌شود.
  • Holding با FC03 و Input با FC04 خوانده می‌شود؛ Input و Discrete Input فقط‌خواندنی‌اند.
  • پایهٔ ENID نقاط Modbus برابر 9005 است.

تمرین عملی روی دموی زنده

روی دموی عمومی چیزی را ذخیره نکنید.

  1. در «تنظیمات» ← «کاتالوگ تجهیزات» ← «مدل‌ها» یک کنتور انرژی یا UPS بیابید که در ستون پروتکل‌ها برچسب MODBUS_TCP دارد.
  2. در دستگاه‌ها فرم افزودن دستگاه جدید را باز کنید، دستگاه سفارشی را بزنید و به زبانهٔ پروتکل‌ها بروید. بخش Modbus را روشن کنید و پیش‌فرض‌های سه فیلد را یادداشت کنید.
  3. در زبانهٔ تنظیمات اتصال رسانه را RS-485 کنید و پیش‌فرض نرخ باود و برابری را بنویسید.
  4. برای یک رجیستر ولتاژ (Input Register) و یک نقطهٔ تنظیم (Holding Register) کد تابع خواندن را بنویسید؛ سپس انصراف بزنید.
باز کردن دموی زنده

آزمون درس

برای گذراندن درس دست‌کم به ۳ پرسش از ۴ پرسش پاسخ درست بدهید.

  1. ۱. پورت پیش‌فرض Modbus TCP کدام است؟
  2. ۲. Holding Register با کدام کد تابع خوانده می‌شود؟
  3. ۳. کدام نوع رجیستر قابل نوشتن نیست؟
  4. ۴. محدودهٔ مجاز «شناسه واحد» چیست؟