ویرا صنعت الکترونیک سورین پشتیبانی واتساپ
خانه / مقالات / راهنمای راه‌اندازی پروتکل ارتباطی مدباس
مقالات فنی

راهنمای راه‌اندازی پروتکل ارتباطی مدباس

1) معرفی کلی این راهنما نحوه پیکربندی ارتباط مدباس درایو، نقشه رجیسترهای خواندنی و نوشتنی، Function Codeهای پشتیبانی‌شده، حافظه فرکانس هدف با پارامتر I74، Broadcast با آدرس صفر، پاسخ‌های Exception و جدول کدهای وضعیت و خط

تاریخ انتشار:

راهنمای راه‌اندازی پروتکل ارتباطی مدباس

1) معرفی کلی

این راهنما نحوه پیکربندی ارتباط مدباس درایو، نقشه رجیسترهای خواندنی و نوشتنی، Function Codeهای پشتیبانی‌شده، حافظه فرکانس هدف با پارامتر I74، Broadcast با آدرس صفر، پاسخ‌های Exception و جدول کدهای وضعیت و خطا را ارائه می‌کند. همه آدرس‌ها، ضرایب تبدیل و مقادیر کنترلی مطابق اطلاعات فنی درایو تنظیم شده‌اند. برای راه‌اندازی ارتباط، ابتدا مشخصات ارتباطی درایو تنظیم می‌شود؛ سپس مستر مدباس می‌تواند اطلاعات عملکردی را از رجیسترهای خواندنی دریافت کند یا فرمان‌های مجاز را در رجیسترهای نوشتنی قرار دهد. شکل (1) ترتیب پیشنهادی تنظیم، فرمان و پایش را نشان می‌دهد.

شکل (1): مسیر پیشنهادی راه‌اندازی و پایش مدباس

۲) پیکربندی ارتباط

پارامترهای ،I61 I60 و I65 به‌ترتیب برای تعیین آدرس درایو، نرخ تبادل داده و تنظیم Parity و Stop Bit استفاده می‌شوند. پارامتر I74 نیز نحوه نگهداری فرکانس هدف مدباس را تعیین می‌کند. مقادیر قابل انتخاب و مقدار پیش‌فرض هر پارامتر در جدول (1) آمده است.

پارامترمحدوده تعیینمقدار پیش‌فرضتوضیح
‎I601 تا 2501تعیین آدرس درایو (Slave Address)
‎I610 تا 50تعیین نرخ تبادل [bps]
0: 9600 1: 14400 2: 19200
3: 38400 4: 57600 5: 115200
‎I650 تا 30تعیین Parity و Stop Bit
0: Parity None, Stop Bit 1
1: Parity None, Stop Bit 2
2: Parity Even, Stop Bit 1
3: Parity Odd, Stop Bit 1
‎I740 تا 10تعیین حافظه فرکانس هدف مدباس؛ 0: فقط RAM؛ 1: RAM و EEPROM
جدول (1): پارامترهای پیکربندی ارتباط مدباس

۳) نقشه رجیسترهای خواندنی (0x03)

آدرس‌های جدول (2) با فرمان Read Holding Registers (0x03) خوانده می‌شوند. فرمان Read Input Registers (0x04) فقط برای مقادیر Actual/Input در بازه‌های 0x0005 تا 0x000E و 0x0064 تا 0x006B قابل استفاده است. وضعیت I74 در آدرس 0x000F فقط با فرمان 0x03 خوانده می‌شود. ستون ضریب تبدیل، مقیاس مقدار دریافتی را نشان می‌دهد.

نکته مهم در آدرس‌دهی: آدرس داخل فریم مدباس (PDU) صفرمبنا است، اما بسیاری از HMI/PLCها شماره مرجع 4xxxx را نمایش می‌دهند. تبدیل به‌صورت «شماره مرجع = 40001 + مقدار ده‌دهی آدرس PDU» است؛ بنابراین ‎0x0001 برابر 40002، ‎0x0002 برابر 40003، ‎0x0003 برابر 40004، ‎0x0004 برابر 40005 و ‎0x000F برابر 40016 است. بازه ‎0x0064 تا ‎0x006B نیز با 40101 تا 40108 متناظر است. در فریم خام، آدرس 16 بیتی PDU و در نرم‌افزارهایی که قالب 4xxxx می‌خواهند، شماره مرجع متناظر وارد شود.

آدرس PDU / مرجع 4xxxxشرح پارامترضریب تبدیل
‎0x0001 / 40002Target Frequency‎x10
‎0x0003 / 40004Acceleration Time‎x10
‎0x0004 / 40005Deceleration Time‎x10
‎0x0005 / 40006Current‎x100
‎0x0006 / 40007Motor Frequency‎x10
‎0x0007 / 40008Voltage‎x10
‎0x0008 / 40009DC Link Voltage‎x10
‎0x0009 / 40010Temperature‎x10
‎0x000A / 40011Iq Current ComponentNo Scaling
‎0x000B / 40012Id Current ComponentNo Scaling
‎0x000C / 40013Vq Voltage ComponentNo Scaling
‎0x000D / 40014Vd Voltage ComponentNo Scaling
‎0x000E / 40015Error CodeNo Scaling
‎0x000F / 40016Modbus Frequency Memory Mode (I74)No Scaling
0x0064-0x006B
40101-40108
Custom ParametersNo Scaling
جدول (2): نقشه رجیستر‌های خواندنی

۴) نقشه رجیسترهای نوشتنی (0x06/0x10/0x17)

فرمان‌های Write Single Register، Write Multiple Registers و Read/Write Multiple Registers به‌ترتیب برای نوشتن یک مقدار، نوشتن چند مقدار یا نوشتن و خواندن هم‌زمان رجیسترهای کنترلی زیر استفاده می‌شوند. شرایط و محدودیت هر رجیستر در بخش‌های بعد آمده است.

1-4) آدرس 0x0001- تنظیم فرکانس هدف

• این رجیستر برای تنظیم فرکانس هدف درایو استفاده می‌شود؛

• مقدار دریافتی در واحد 0.1 هرتز تفسیر می‌شود؛ برای مثال مقدار 500 معادل 50.0 هرتز است؛

مقادیر خام مجاز فقط 0 یا بازه F23\times10 تا F21\times10 هستند؛ برای مثال اگر F23=5.0 Hz و F21=50.0 Hz باشد، مقدار خام مجاز 0 یا 50 تا 500 است. مقادیر دیگر با Exception 0x03 رد می‌شوند؛ و

• در صورت غیرفعال بودن حالت‌های خاص مانند JOG و Multistep، فرکانس به‌روزرسانی می‌شود و فرآیند شتاب یا کاهش سرعت بر همان اساس مدیریت خواهد شد.

توجه: برای ارسال فرکانس هدف به درایو از طریق ارتباط مدباس، پارامتر Frq باید روی مقدار 4 تنظیم شود.

2-4) آدرس 0x0002- فرمان استارت، توقف و جهت حرکت

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

مقدار فرمانعملکردتوضیح
‎0x01توقفدرایو را متوقف می‌کند.
‎0x02حرکت راست‌گرددرایو را در جهت راستگرد راه‌اندازی می‌کند.
‎0x04حرکت چپ‌گرددرایو را در جهت چپگرد راه‌اندازی می‌کند.
جدول (3): مقادیر فرمان رجیستر 0x0002

پس از مقداردهی اولیه فرکانس هدف در رجیستر 0x0001، زمان شتاب در رجیستر 0x0003 و زمان کاهش سرعت در رجیستر 0x0004، برای ارسال فرمان 0x02 یا 0x04 نیازی به ارسال مجدد آن‌ها نیست. فرکانس نوشته‌شده پس از توقف در حافظه RAM حفظ می‌شود و خواندن 0x0001 همان مقدار ذخیره‌شده فرمان را نشان می‌دهد؛ فرکانس واقعی موتور از 0x0006 خوانده می‌شود. نگهداری فرکانس پس از قطع برق به مقدار پارامتر I74 وابسته است. رجیسترهای 0x0003 و 0x0004 فقط هنگام تغییر مقدار نسبت به پارامترهای ذخیره‌شده درایو بازنویسی شوند.

توجه: برای اجرای فرمان‌های استارت، توقف و جهت حرکت از طریق مدباس، پارامتر drv باید روی مقدار 3 تنظیم شود.

3-4) آدرس 0x0003- تنظیم زمان شتاب

• زمان شتاب موتور در واحد 0.1 ثانیه تنظیم می‌شود؛ برای مثال مقدار 100 معادل 10.0 ثانیه است؛

• مقدار خام معتبر فقط 1 تا 60000 است که بازه 0.1 تا 6000.0 ثانیه را پوشش می‌دهد؛ مقدار 0 یا بیش از 60000 با Exception 0x03 رد می‌شود؛ و

• این زمان برای محاسبه افزایش گام فرکانس در جهت افزایش سرعت استفاده می‌شود.

4-4) آدرس 0x0004- تنظیم زمان کاهش سرعت

• زمان کاهش سرعت موتور در واحد 0.1 ثانیه تنظیم می‌شود؛ برای مثال مقدار 100 معادل 10.0 ثانیه است؛

• همانند زمان شتاب، مقدار خام معتبر فقط 1 تا 60000 است؛ مقدار 0 یا بیش از 60000 با Exception 0x03 رد می‌شود؛ و

• این مقدار برای کنترل نمایه کاهش سرعت موتور استفاده می‌شود.

5-4) آدرس 0x000F- حافظه فرکانس هدف (پارامتر I74)

پارامتر I74 تعیین می‌کند فرکانس هدفی که از مدباس در رجیستر 0x0001 دریافت می‌شود فقط در حافظه موقت نگهداری شود یا علاوه بر آن در حافظه غیر فرار نیز ذخیره گردد. مقدار پیش‌فرض این پارامتر صفر است.

• مقدار 0: فرکانس هدف در RAM حفظ می‌شود؛ پس از توقف برای استارت بعدی در دسترس است، اما پس از قطع برق یا بازنشانی بازیابی نمی‌شود؛

• مقدار 1: هر فرکانس هدف معتبر در RAM و EEPROM نگهداری می‌شود و پس از روشن‌شدن مجدد، برای فرمان حرکت بعدی بازیابی می‌گردد؛

• رجیستر 0x000F بدون ضریب تبدیل است؛ مقدار آن با 0x03 خوانده و با 0x06، 0x10 یا 0x17 نوشته می‌شود. فرمان 0x04 برای این آدرس مجاز نیست؛

• تغییر I74 از 0 به 1، فرکانس فعلی موجود در RAM را همان لحظه در EEPROM ثبت می‌کند. تغییر از 1 به 0 مقدار غیر فرار را پاک می‌کند، ولی مقدار RAM تا بازنشانی باقی می‌ماند؛

• در روشن‌شدن مجدد، مقدار بازیابی‌شده با حدود فعلی پارامترهای F23 و F21 تطبیق داده می‌شود؛

• ارسال دوباره همان فرکانس، نوشتن اضافی در EEPROM ایجاد نمی‌کند؛ فقط تغییر واقعی مقدار ذخیره می‌شود.

شکل (2): مقایسه رفتار حافظه فرکانس هدف در دو حالت I74

مثال کاربردی: ابتدا 0x000F=1 و سپس 0x0001=500 ارسال شود. مقدار 500 معادل 50.0 Hz است و پس از قطع و وصل برق نیز با خواندن 0x0001 بازیابی می‌شود. در حالت توقف ممکن است 0x0006 مقدار صفر را به‌عنوان فرکانس واقعی موتور نشان دهد.

توجه: برای مرجع‌های فرکانس پیوسته و سریع‌التغییر، I74=0 استفاده شود تا عمر EEPROM کاهش نیابد. حالت I74=1 برای کاربردهایی مناسب است که فرکانس هدف فقط هنگام تغییر واقعی تنظیم می‌شود.

۵) جدول خلاصه رجیسترهای نوشتنی

جدول (4) پنج رجیستر کنترلی قابل نوشتن، شماره مرجع 4xxxx، مقدار خام مجاز و شرط اجرای هر کدام را به‌صورت صریح نشان می‌دهد. مقدار خارج از محدوده مجاز با Exception 0x03 رد می‌شود.

آدرس PDU / مرجع 4xxxxنام رجیسترمقدار خام مجازشرط اجرا و توضیح
‎0x0001
40002
تنظیم فرکانس هدف0 یا از F23×10 تا F21×10 (واحد خام: 0.1 Hz)Frq=4 و حالت‌های JOG/Multistep غیرفعال باشند. مقدار 0 مجاز است؛ برای توقف عملیاتی از 0x0002=0x01 استفاده شود.
‎0x0002
40003
فرمان استارت، توقف و جهت0x01، 0x02 یا 0x04drv=3؛ مقدار 0x01 توقف، 0x02 حرکت راست‌گرد و 0x04 حرکت چپ‌گرد است.
‎0x0003
40004
تنظیم زمان شتاباز 1 تا 60000 (0.1 تا 6000.0 s)واحد خام 0.1 ثانیه است؛ مقدار 0 یا بیش از 60000 مجاز نیست.
‎0x0004
40005
تنظیم زمان کاهش سرعتاز 1 تا 60000 (0.1 تا 6000.0 s)واحد خام 0.1 ثانیه است؛ مقدار 0 یا بیش از 60000 مجاز نیست.
‎0x000F
40016
حافظه فرکانس هدف مدباس (I74)0 یا 1بدون ضریب تبدیل؛ 0 فقط RAM و 1 حافظه RAM+EEPROM را فعال می‌کند.
جدول (4): خلاصه رجیسترهای نوشتنی

۶) جدول کدهای وضعیت و خطا

مقدار رجیستر 0x000E گاهی وضعیت عملکردی و گاهی خطا را نشان می‌دهد. کدهای 0xA000 و 0xA001 خطا نیستند و فقط وضعیت چرخش یا توقف موتور را اعلام می‌کنند؛ بنابراین در جدول (5-الف) از خطاهای واقعی جدول (5-ب) جدا شده‌اند.

کد وضعیتنوع وضعیتتوضیحات
‎0xA000START_CODEنشان‌دهنده وضعیت موتور در حالت چرخش است.
‎0xA001STOP_CODEنشان‌دهنده وضعیت موتور در حالت توقف است.
جدول (5-الف): کدهای وضعیت عملکردی (فاقد خطا)
کد خطانوع خطاتوضیحات
‎0xA002OCt_CODEخطای اضافه جریان؛ بیش از 200 درصد حد مجاز.
‎0xA003OLt_CODEخطای اضافه بار؛ قابل تنظیم توسط کاربر در گروه F.
‎0xA004LVt_CODEخطای کاهش ولتاژ ورودی.
‎0xA005OHt_CODEخطای اضافه دمای درایو.
‎0xA006HWE_CODEخطای ایراد سخت‌افزاری.
‎0xA007OVt_CODEخطای اضافه ولتاژ ورودی.
‎0xA008POF_CODEخطای تشخیص قطعی یک فاز از موتور.
‎0xA009EST_CODEنشان‌دهنده فعال شدن پایه Emergency در ترمینال ورودی.
‎0xA00BIOL_CODEخطای اضافه بار روی درایو؛ بیش از 15 درصد توان نامی درایو در مدت یک دقیقه.
‎0xA00CntC_CODEقطعی سنسور دما یا ایراد در عملکرد آن.
‎0xA00DCSE_CODEایراد در عملکرد سنسورهای جریان.
‎0xA00EEEP_CODEایراد در عملکرد حافظه غیر فرار.
جدول (5-ب): کدهای خطای درایو

7) کدهای تابع پشتیبانی‌شده

کدهای تابع قابل استفاده در این نسخه در جدول (6) خلاصه شده‌اند. همه فیلدهای 16 بیتی آدرس، تعداد و داده با ترتیب بایت بالا و سپس بایت پایین ارسال می‌شوند و CRC در انتهای فریم قرار می‌گیرد. پیش از اجرای هر فرمان، طول فریم، بازه آدرس، مقدار و شرایط کاری به‌طور کامل بررسی می‌شوند.

کد تابعنام استانداردکاربرد و محدودیت
0x03Read Holding Registersخواندن رجیسترهای نگهدارنده و نقشه کاربردی جدول (2)، شامل وضعیت I74 در 0x000F، از 1 تا 125 رجیستر پیوسته؛ Broadcast مجاز نیست.
0x04Read Input Registersخواندن مقادیر Actual/Input در بازه‌های 0x0005 تا 0x000E و 0x0064 تا 0x006B، از 1 تا 125 رجیستر پیوسته؛ Broadcast مجاز نیست.
0x06Write Single Registerنوشتن یک رجیستر در بازه 0x0001 تا 0x0004 یا آدرس 0x000F؛ پاسخ عادی تکرار درخواست است؛ Broadcast مجاز است.
0x08Diagnosticsآزمون ارتباط، خواندن رجیستر تشخیصی و شمارنده‌ها و پاک‌کردن آن‌ها؛ Broadcast مجاز نیست.
0x10Write Multiple Registersنوشتن چند رجیستر پیوسته پس از اعتبارسنجی کامل؛ بازه 0x0001 تا 0x0004 یا یک رجیستر در 0x000F؛ Broadcast مجاز است.
0x17Read/Write Multiple Registersنوشتن و سپس خواندن در یک تراکنش؛ بخش نوشتن بازه 0x0001 تا 0x0004 یا یک رجیستر 0x000F را می‌پذیرد؛ Broadcast مجاز نیست.
0x2B/0x0ERead Device Identificationخواندن شناسه سازنده، کد محصول و نسخه نرم‌افزار؛ Broadcast مجاز نیست.
جدول (6): کدهای تابع پشتیبانی‌شده

انتخاب سریع تابع: برای خواندن مقدارهای تنظیمی و I74 از 0x03، برای مقدارهای لحظه‌ای از 0x04، برای نوشتن یک رجیستر از 0x06، برای چند رجیستر پیوسته از 0x10 و برای نوشتن و خواندن در یک تراکنش از 0x17 استفاده کنید. 0x08 برای عیب‌یابی و 0x2B/0x0E برای شناسایی دستگاه است.

1-7) خواندن رجیسترها (0x03/0x04)

• ساختار درخواست: Slave Address | Function Code | Start Address | Quantity | CRC؛

• ساختار پاسخ: Slave Address | Function Code | Byte Count | Register Data | CRC؛

• تعداد رجیستر در هر درخواست باید از 1 تا 125 باشد. تمام آدرس‌های بازه درخواستی پیش از پاسخ بررسی می‌شوند و غیرمجاز بودن حتی یک آدرس، پاسخ Exception 0x02 ایجاد می‌کند؛ و

• در فرمان 0x04 فقط بازه‌های 0x0005 تا 0x000E و 0x0064 تا 0x006B مجاز هستند. رجیسترهای 0x0001، 0x0003، 0x0004 و 0x000F با فرمان 0x03 خوانده می‌شوند. درخواست 0x04 برای 0x000F پاسخ Exception 0x02 ایجاد می‌کند.

2-7) نوشتن رجیسترها (0x06/0x10)

• فرمان 0x06 یک آدرس و یک مقدار 16 بیتی را می‌نویسد و در پاسخ عادی، آدرس و مقدار درخواست را تکرار می‌کند؛

• فرمان 0x10 شامل آدرس شروع، تعداد رجیستر، تعداد بایت و داده‌های نوشتنی است. حد پروتکلی تعداد رجیستر 1 تا 123 است؛ با توجه به نقشه کاربردی این درایو، بازه پیوسته 0x0001 تا 0x0004 یا یک رجیستر در آدرس 0x000F قابل نوشتن است؛

• در 0x10 همه آدرس‌ها، مقادیر و شرایط کاری پیش از نخستین تغییر اعتبارسنجی می‌شوند؛ بنابراین درخواست نامعتبر باعث اعمال بخشی از داده‌ها نمی‌شود؛ و

• مقدار خام هر رجیستر باید دقیقاً مطابق جدول (4) باشد. هر مقدار خارج از محدوده جدول (4)، Exception 0x03 و آماده نبودن وضعیت درایو برای فرمان موردنظر، Exception 0x06 ایجاد می‌کند.

3-7) عیب‌یابی و شمارنده‌ها (Diagnostics 0x08)

در این فرمان، زیرتابع در دو بایت پس از Function Code قرار می‌گیرد. به‌جز زیرتابع 0x0000، فیلد Data درخواست باید 0x0000 باشد. پاسخ شامل همان زیرتابع و مقدار 16 بیتی متناظر است. برای آزمون ساده مسیر، زیرتابع 0x0000 را با یک داده دلخواه ارسال کنید؛ پاسخ سالم باید همان داده را بازگرداند.

زیرتابععنوانعملکرد و مقدار بازگشتی
0x0000Return Query Dataتمام داده‌های درخواست را با طول زوج، بدون تغییر بازمی‌گرداند و برای آزمون مسیر ارتباط مناسب است.
0x0002Return Diagnostic Registerرجیستر تشخیصی را برمی‌گرداند؛ بیت 0 خطای ارتباط و بیت 1 سرریز دریافت کاراکتر را نشان می‌دهد.
0x000AClear Counters and Diagnostic Registerرجیستر تشخیصی و همه شمارنده‌های مدباس را صفر می‌کند.
0x000BBus Message Countتعداد فریم‌های دریافت‌شده با CRC صحیح را برمی‌گرداند.
0x000CBus Communication Error Countتعداد خطاهای ارتباطی شامل CRC نامعتبر، فریم ناقص و خطاهای دریافت را برمی‌گرداند.
0x000DException Error Countتعداد پاسخ‌ها یا رخدادهای Exception را برمی‌گرداند.
0x000EServer Message Countتعداد پیام‌های معتبر دریافت‌شده برای آدرس درایو یا آدرس Broadcast را برمی‌گرداند.
0x000FServer No Response Countتعداد پیام‌هایی را برمی‌گرداند که طبق پروتکل بدون پاسخ مانده‌اند؛ Broadcast در این شمارنده ثبت می‌شود.
0x0010Server NAK Countشمارنده NAK برای سازگاری و توسعه آینده است؛ نسخه فعلی مسیر عملیاتی تولید Exception 0x07 ندارد.
0x0011Server Busy Countتعداد پاسخ‌های Exception 0x06 ناشی از آماده نبودن وضعیت درایو را برمی‌گرداند.
0x0012Character Overrun Countتعداد رخدادهای سرریز بافر یا دریافت کاراکتر را برمی‌گرداند.
0x0014Clear Overrun Counter and Flagفقط شمارنده سرریز، بیت سرریز رجیستر تشخیصی و پرچم داخلی مرتبط را پاک می‌کند.
جدول (7): زیرتابع‌های پشتیبانی‌شده Diagnostics

توجه: شمارنده‌ها در 0xFFFF اشباع می‌شوند و با بازنشانی دستگاه یا زیرتابع 0x000A صفر می‌شوند. زیرتابع‌های Restart Communications Option و Force Listen Only Mode در این نسخه فعال نیستند و Exception 0x03 ایجاد می‌کنند.

4-7) تبادل اتمیک خواندن/نوشتن (0x17)

• ساختار درخواست: Slave | 0x17 | Read Start | Read Quantity | Write Start | Write Quantity | Write Byte Count | Write Data | CRC؛

• تعداد رجیستر خواندنی باید از 1 تا 125 و تعداد رجیستر نوشتنی از 1 تا 121 باشد. بخش نوشتن بازه 0x0001 تا 0x0004 یا یک رجیستر در 0x000F و بخش خواندن فقط نقشه کاربردی رجیسترها را می‌پذیرد؛

• تمام آدرس‌ها، مقادیر و شرایط ابتدا بررسی می‌شوند؛ سپس نوشتن انجام و پس از آن مقادیر خوانده می‌شوند. بنابراین مستر، نتیجه جدید را در همان پاسخ دریافت می‌کند و درخواست نامعتبر هیچ تغییر جزئی ایجاد نمی‌کند. برای مثال می‌توان 0x0001=500 را نوشت و در همان تراکنش مقدار واقعی 0x0006 را خواند؛

• اتمیک بودن در این راهنما به معنی یکپارچگی تراکنش مدباس و اعتبارسنجی کامل پیش از نوشتن است و به معنی قفل شدن وقفه‌های پردازنده نیست؛ و

• این فرمان با آدرس Broadcast مجاز نیست.

5-7) خواندن شناسه دستگاه (0x2B/0x0E)

ساختار درخواست: Slave | 0x2B | MEI=0x0E | Read Device ID Code | Object ID | CRC. کدهای Read Device ID از 0x01 تا 0x04 پشتیبانی می‌شوند. کد 0x04 فقط شیء درخواستی را بازمی‌گرداند. مقدار ProductCode متناسب با نوع ورودی و توان انتخاب‌شده در زمان ساخت نرم‌افزار تولید می‌شود.

شناسه شیءنام شیءمقدار فعلی پاسخ
0x00VendorNameHipowerVSES
0x01ProductCodeوابسته به مدل؛ برای مثال K100-S1R5G
0x02MajorMinorRevisionV1.0
جدول (8): اشیای شناسایی دستگاه

توجه: مقدار Conformity Level برابر 0x81 است. این فرمان با آدرس Broadcast مجاز نیست.                  

۸) Broadcast با آدرس صفر

آدرس • آدرس 0x00 فقط برای فرمان‌های نوشتنی 0x06 و 0x10 پشتیبانی می‌شود. بنابراین تنظیم I74 در 0x000F و ارسال فرکانس هدف در 0x0001 به چند درایو امکان‌پذیر است؛

• درایو پس از دریافت Broadcast هیچ پاسخی ارسال نمی‌کند؛ حتی اگر نوشتن موفق نباشد. برای تأیید نتیجه، مستر باید بعداً با آدرس اختصاصی درایو رجیستر موردنظر را بخواند. در حالت I74=1، فرکانس هدفی که با Broadcast دریافت می‌شود نیز در EEPROM ذخیره خواهد شد؛

• فرمان‌های 0x03، 0x04، 0x08، 0x17 و 0x2B/0x0E با آدرس صفر مجاز نیستند و طبق قواعد مدباس، پاسخ روی باس تولید نمی‌کنند؛ و

• پیام Broadcast معتبر در شمارنده پیام‌های سرور و شمارنده بدون پاسخ ثبت می‌شود. درخواست Broadcast نامعتبر نیز به‌صورت داخلی در شمارنده Exception ثبت می‌شود، ولی پاسخ ارسال نمی‌شود.

9) پاسخ‌های Exception

اگر فریم دارای CRC صحیح و آدرس آن برابر آدرس درایو باشد، ولی تابع، آدرس، مقدار یا وضعیت اجرای فرمان معتبر نباشد، پاسخ Exception ارسال می‌شود. در این پاسخ بیت بیشینه Function Code یک می‌شود.

کدعنوان استانداردشرایط استفاده در این نسخه
0x01Illegal FunctionFunction Code یا MEI پشتیبانی نمی‌شود، یا تابع خواندنی/تشخیصی با آدرس Broadcast ارسال شده است.
0x02Illegal Data Addressآدرس یا بازه رجیستر در نقشه مجاز نیست، انتهای بازه سرریز می‌کند یا شناسه شیء Device ID در درخواست Individual نامعتبر است.
0x03Illegal Data Valueطول فریم، تعداد رجیستر، Byte Count، مقدار رجیستر، مقدار I74 خارج از 0/1، زیرتابع Diagnostics یا کد Read Device ID نامعتبر است.
0x04Server Device Failureپس از اعتبارسنجی، عملیات داخلی خواندن/نوشتن یا تشکیل پاسخ با شکست غیرمنتظره روبه‌رو شده است.
0x06Server Device Busyشرایط فعلی درایو اجازه اجرای فرمان را نمی‌دهد؛ مانند انتخاب نبودن مرجع مدباس، فعال بودن JOG/Multistep یا انتخاب نبودن فرمان مدباس.
جدول (9): کدهای Exception مدباس

ساختار پاسخ: Slave Address | (Function Code + 0x80) | Exception Code | CRC Low | CRC High. برای فریم با CRC نامعتبر، فریم ناقص، آدرس متعلق به دستگاه دیگر یا هر پیام Broadcast، پاسخی ارسال نمی‌شود.