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

۲) پیکربندی ارتباط
پارامترهای ،I61 I60 و I65 بهترتیب برای تعیین آدرس درایو، نرخ تبادل داده و تنظیم Parity و Stop Bit استفاده میشوند. پارامتر I74 نیز نحوه نگهداری فرکانس هدف مدباس را تعیین میکند. مقادیر قابل انتخاب و مقدار پیشفرض هر پارامتر در جدول (1) آمده است.
| پارامتر | محدوده تعیین | مقدار پیشفرض | توضیح |
| I60 | 1 تا 250 | 1 | تعیین آدرس درایو (Slave Address) |
| I61 | 0 تا 5 | 0 | تعیین نرخ تبادل [bps] 0: 9600 1: 14400 2: 19200 3: 38400 4: 57600 5: 115200 |
| I65 | 0 تا 3 | 0 | تعیین 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 |
| I74 | 0 تا 1 | 0 | تعیین حافظه فرکانس هدف مدباس؛ 0: فقط RAM؛ 1: RAM و EEPROM |
۳) نقشه رجیسترهای خواندنی (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 / 40002 | Target Frequency | x10 |
| 0x0003 / 40004 | Acceleration Time | x10 |
| 0x0004 / 40005 | Deceleration Time | x10 |
| 0x0005 / 40006 | Current | x100 |
| 0x0006 / 40007 | Motor Frequency | x10 |
| 0x0007 / 40008 | Voltage | x10 |
| 0x0008 / 40009 | DC Link Voltage | x10 |
| 0x0009 / 40010 | Temperature | x10 |
| 0x000A / 40011 | Iq Current Component | No Scaling |
| 0x000B / 40012 | Id Current Component | No Scaling |
| 0x000C / 40013 | Vq Voltage Component | No Scaling |
| 0x000D / 40014 | Vd Voltage Component | No Scaling |
| 0x000E / 40015 | Error Code | No Scaling |
| 0x000F / 40016 | Modbus Frequency Memory Mode (I74) | No Scaling |
| 0x0064-0x006B 40101-40108 | Custom Parameters | No Scaling |
۴) نقشه رجیسترهای نوشتنی (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 | حرکت چپگرد | درایو را در جهت چپگرد راهاندازی میکند. |
پس از مقداردهی اولیه فرکانس هدف در رجیستر 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 ایجاد نمیکند؛ فقط تغییر واقعی مقدار ذخیره میشود.


مثال کاربردی: ابتدا 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 یا 0x04 | drv=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 را فعال میکند. |
۶) جدول کدهای وضعیت و خطا
مقدار رجیستر 0x000E گاهی وضعیت عملکردی و گاهی خطا را نشان میدهد. کدهای 0xA000 و 0xA001 خطا نیستند و فقط وضعیت چرخش یا توقف موتور را اعلام میکنند؛ بنابراین در جدول (5-الف) از خطاهای واقعی جدول (5-ب) جدا شدهاند.
| کد وضعیت | نوع وضعیت | توضیحات |
| 0xA000 | START_CODE | نشاندهنده وضعیت موتور در حالت چرخش است. |
| 0xA001 | STOP_CODE | نشاندهنده وضعیت موتور در حالت توقف است. |
| کد خطا | نوع خطا | توضیحات |
| 0xA002 | OCt_CODE | خطای اضافه جریان؛ بیش از 200 درصد حد مجاز. |
| 0xA003 | OLt_CODE | خطای اضافه بار؛ قابل تنظیم توسط کاربر در گروه F. |
| 0xA004 | LVt_CODE | خطای کاهش ولتاژ ورودی. |
| 0xA005 | OHt_CODE | خطای اضافه دمای درایو. |
| 0xA006 | HWE_CODE | خطای ایراد سختافزاری. |
| 0xA007 | OVt_CODE | خطای اضافه ولتاژ ورودی. |
| 0xA008 | POF_CODE | خطای تشخیص قطعی یک فاز از موتور. |
| 0xA009 | EST_CODE | نشاندهنده فعال شدن پایه Emergency در ترمینال ورودی. |
| 0xA00B | IOL_CODE | خطای اضافه بار روی درایو؛ بیش از 15 درصد توان نامی درایو در مدت یک دقیقه. |
| 0xA00C | ntC_CODE | قطعی سنسور دما یا ایراد در عملکرد آن. |
| 0xA00D | CSE_CODE | ایراد در عملکرد سنسورهای جریان. |
| 0xA00E | EEP_CODE | ایراد در عملکرد حافظه غیر فرار. |
7) کدهای تابع پشتیبانیشده
کدهای تابع قابل استفاده در این نسخه در جدول (6) خلاصه شدهاند. همه فیلدهای 16 بیتی آدرس، تعداد و داده با ترتیب بایت بالا و سپس بایت پایین ارسال میشوند و CRC در انتهای فریم قرار میگیرد. پیش از اجرای هر فرمان، طول فریم، بازه آدرس، مقدار و شرایط کاری بهطور کامل بررسی میشوند.
| کد تابع | نام استاندارد | کاربرد و محدودیت |
| 0x03 | Read Holding Registers | خواندن رجیسترهای نگهدارنده و نقشه کاربردی جدول (2)، شامل وضعیت I74 در 0x000F، از 1 تا 125 رجیستر پیوسته؛ Broadcast مجاز نیست. |
| 0x04 | Read Input Registers | خواندن مقادیر Actual/Input در بازههای 0x0005 تا 0x000E و 0x0064 تا 0x006B، از 1 تا 125 رجیستر پیوسته؛ Broadcast مجاز نیست. |
| 0x06 | Write Single Register | نوشتن یک رجیستر در بازه 0x0001 تا 0x0004 یا آدرس 0x000F؛ پاسخ عادی تکرار درخواست است؛ Broadcast مجاز است. |
| 0x08 | Diagnostics | آزمون ارتباط، خواندن رجیستر تشخیصی و شمارندهها و پاککردن آنها؛ Broadcast مجاز نیست. |
| 0x10 | Write Multiple Registers | نوشتن چند رجیستر پیوسته پس از اعتبارسنجی کامل؛ بازه 0x0001 تا 0x0004 یا یک رجیستر در 0x000F؛ Broadcast مجاز است. |
| 0x17 | Read/Write Multiple Registers | نوشتن و سپس خواندن در یک تراکنش؛ بخش نوشتن بازه 0x0001 تا 0x0004 یا یک رجیستر 0x000F را میپذیرد؛ Broadcast مجاز نیست. |
| 0x2B/0x0E | Read Device Identification | خواندن شناسه سازنده، کد محصول و نسخه نرمافزار؛ Broadcast مجاز نیست. |

انتخاب سریع تابع: برای خواندن مقدارهای تنظیمی و 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 را با یک داده دلخواه ارسال کنید؛ پاسخ سالم باید همان داده را بازگرداند.
| زیرتابع | عنوان | عملکرد و مقدار بازگشتی |
| 0x0000 | Return Query Data | تمام دادههای درخواست را با طول زوج، بدون تغییر بازمیگرداند و برای آزمون مسیر ارتباط مناسب است. |
| 0x0002 | Return Diagnostic Register | رجیستر تشخیصی را برمیگرداند؛ بیت 0 خطای ارتباط و بیت 1 سرریز دریافت کاراکتر را نشان میدهد. |
| 0x000A | Clear Counters and Diagnostic Register | رجیستر تشخیصی و همه شمارندههای مدباس را صفر میکند. |
| 0x000B | Bus Message Count | تعداد فریمهای دریافتشده با CRC صحیح را برمیگرداند. |
| 0x000C | Bus Communication Error Count | تعداد خطاهای ارتباطی شامل CRC نامعتبر، فریم ناقص و خطاهای دریافت را برمیگرداند. |
| 0x000D | Exception Error Count | تعداد پاسخها یا رخدادهای Exception را برمیگرداند. |
| 0x000E | Server Message Count | تعداد پیامهای معتبر دریافتشده برای آدرس درایو یا آدرس Broadcast را برمیگرداند. |
| 0x000F | Server No Response Count | تعداد پیامهایی را برمیگرداند که طبق پروتکل بدون پاسخ ماندهاند؛ Broadcast در این شمارنده ثبت میشود. |
| 0x0010 | Server NAK Count | شمارنده NAK برای سازگاری و توسعه آینده است؛ نسخه فعلی مسیر عملیاتی تولید Exception 0x07 ندارد. |
| 0x0011 | Server Busy Count | تعداد پاسخهای Exception 0x06 ناشی از آماده نبودن وضعیت درایو را برمیگرداند. |
| 0x0012 | Character Overrun Count | تعداد رخدادهای سرریز بافر یا دریافت کاراکتر را برمیگرداند. |
| 0x0014 | Clear Overrun Counter and Flag | فقط شمارنده سرریز، بیت سرریز رجیستر تشخیصی و پرچم داخلی مرتبط را پاک میکند. |

توجه: شمارندهها در 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 متناسب با نوع ورودی و توان انتخابشده در زمان ساخت نرمافزار تولید میشود.
| شناسه شیء | نام شیء | مقدار فعلی پاسخ |
| 0x00 | VendorName | HipowerVSES |
| 0x01 | ProductCode | وابسته به مدل؛ برای مثال K100-S1R5G |
| 0x02 | MajorMinorRevision | V1.0 |

توجه: مقدار 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 یک میشود.
| کد | عنوان استاندارد | شرایط استفاده در این نسخه |
| 0x01 | Illegal Function | Function Code یا MEI پشتیبانی نمیشود، یا تابع خواندنی/تشخیصی با آدرس Broadcast ارسال شده است. |
| 0x02 | Illegal Data Address | آدرس یا بازه رجیستر در نقشه مجاز نیست، انتهای بازه سرریز میکند یا شناسه شیء Device ID در درخواست Individual نامعتبر است. |
| 0x03 | Illegal Data Value | طول فریم، تعداد رجیستر، Byte Count، مقدار رجیستر، مقدار I74 خارج از 0/1، زیرتابع Diagnostics یا کد Read Device ID نامعتبر است. |
| 0x04 | Server Device Failure | پس از اعتبارسنجی، عملیات داخلی خواندن/نوشتن یا تشکیل پاسخ با شکست غیرمنتظره روبهرو شده است. |
| 0x06 | Server Device Busy | شرایط فعلی درایو اجازه اجرای فرمان را نمیدهد؛ مانند انتخاب نبودن مرجع مدباس، فعال بودن JOG/Multistep یا انتخاب نبودن فرمان مدباس. |

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