F21 F23 Frq I60 I61 I65 I74 drvاین راهنما نحوه پیکربندی ارتباط مدباس درایو، نقشه رجیسترهای خواندنی و نوشتنی Function Code، های پشتیبانیشده، حافظه فرکانس هدف با پارامتر Broadcast، I74 با آدرس صفر، پاسخهای Exception و جدول کدهای وضعیت و خطا را ارائه میکند. همه آدرسها، ضرایب تبدیل و مقادیر کنترلی مطابق اطلاعات فنی درایو تنظیم شدهاند. برای راهاندازی ارتباط، ابتدا مشخصات ارتباطی درایو تنظیم میشود؛ سپس مستر مدباس میتواند اطلاعات عملکردی را از رجیسترهای خواندنی دریافت کند یا فرمانهای مجاز را در رجیسترهای نوشتنی قرار دهد. شکل (1) ترتیب پیشنهادی تنظیم، فرمان و پایش را نشان میدهد.
پارامترهای I60، I61 و I65 بهترتیب برای تعیین آدرس درایو، نرخ تبادل داده و تنظیم Parity و Stop Bit استفاده میشوند. پارامتر I74 نیز نحوه نگهداری فرکانس هدف مدباس را تعیین میکند. مقادیر قابل انتخاب و مقدار پیشفرض هر پارامتر در جدول (1) آمده است.
| پارامتر | محدوده تعیین | مقدار پیشفرض | توضیح |
|---|---|---|---|
I60 | 1 تا 250 | 1 | تعیین آدرس درایو (Slave Address) |
I61 | 0 تا 5 | 0 | تعیین نرخ تبادل []bps 9600:0 14400:1 19200:2 38400:3 57600:4 115200:5 |
I65 | 0 تا 3 | 0 | Stop Bit و Parity تعیین Parity None, Stop Bit 1:0 Parity None, Stop Bit 2:1 Parity Even, Stop Bit 1:2 Parity Odd, Stop Bit 1:3 |
I74 | 0 تا 1 | 0 | تعیین حافظه فرکانس هدف مدباس؛ :0 فقط RAM؛ RAM:1 و EEPROM |
۲) آدرسهای جدول با فرمان Read Holding Registers (0x03) خوانده میشوند. فرمان Read Input Registers (0x04) فقط برای مقدارهای Actual/Input در بازههای 0x0005 تا 0x000E و 0x0064 تا 0x006B قابل استفاده است. وضعیت I74 در آدرس 0x000F فقط با فرمان 0x03 خوانده میشود. ستون ضریب تبدیل، مقیاس مقدار دریافتی را نشان میدهد.
HMI/PLCها شمارهٔ مرجع 4xxxx را نمایش میدهند. رابطه بهصورت «شمارهٔ مرجع = مقدار دهدهی آدرس PDU + 40001» است؛ بنابراین 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 |
بهترتیب برای Read/Write Multiple Registers و Write Multiple Registers، Write Single Register فرمانهای نوشتن یک مقدار، نوشتن چند مقدار یا نوشتن و خواندن همزمان رجیسترهای کنترلی زیر استفاده میشوند. شرایط و محدودیت هر رجیستر در بخشهای بعد آمده است.
F23×10 تا F21× 10 هستند؛ برای مثال اگر F23 = 5.0 Hz و F21 = 50.0 Hz باشد، مقدار خام مجاز 0 یا 50 تا 500 است. مقادیر دیگر با Exception 0x03 رد میشوند؛ و Frq باید روی مقدار 4 تنظیم شود.این رجیستر فرمانهای عملیاتی درایو شامل توقف، حرکت راستگرد و حرکت چپگرد را کنترل میکند. مقادیر قابل ارسال در جدول زیر آمده است.
0x0002| مقدار فرمان | عملکرد | توضیح |
|---|---|---|
0x01 | توقف | درایو را متوقف میکند. |
0x02 | حرکت راستگرد | درایو را در جهت راستگرد راهاندازی میکند. |
پس از مقداردهی اولیه فرکانس هدف در رجیستر، 0x0001 زمان شتاب در رجیستر 0x0003 و زمان کاهش سرعت در رجیستر، 0x0004 برای ارسال فرمان 0x02 یا 0x04 نیازی به ارسال مجدد آنها نیست. فرکانس نوشتهشده پس از توقف در حافظه RAM حفظ میشود و خواندن 0x0001 همان مقدار ذخیرهشده فرمان را نشان میدهد؛ فرکانس واقعی موتور از 0x0006 خوانده میشود. نگهداری فرکانس پس از قطع برق به مقدار پارامتر I74 وابسته است. رجیسترهای 0x0003 و 0x0004 فقط هنگام تغییر مقدار نسبت به پارامترهای ذخیرهشده درایو بازنویسی شوند.
drv باید روی مقدار 3 تنظیم شود.0x03 رد میشود؛ و 0x03 رد میشود؛ و پارامتر I74 تعیین میکند فرکانس هدفی که از مدباس در رجیستر 0x0001 دریافت میشود فقط در حافظه موقت نگهداری شود یا علاوه بر آن در حافظه غیر فرار نیز ذخیره گردد. مقدار پیشفرض این پارامتر صفر است.
0x000F بدون ضریب تبدیل است؛ مقدار آن با 0x03 خوانده و با 0x10، 0x06 یا 0x17 نوشته میشود. فرمان 0x04 برای این آدرس مجاز نیست؛ I74 از 0 به، 1 فرکانس فعلی موجود در RAM را همان لحظه در EEPROM ثبت میکند. تغییر از 1 به 0 مقدار غیر فرار را پاک میکند، ولی مقدار RAM تا بازنشانی باقی میماند؛ F23 و F21 تطبیق داده میشود؛
I74بزرگنماییصفحهٔ 7 در PDFمثال کاربردی: ابتدا 0x000F = 1 و سپس 0x0001 = 500 ارسال شود. مقدار 500 معادل 50.0 Hz است و پس از قطع و وصل برق نیز با خواندن 0x0001 بازیابی میشود. در حالت توقف ممکن است 0x0006 مقدار صفر را بهعنوان فرکانس واقعی موتور نشان دهد.
I74 = 0، استفاده شود تا عمر EEPROM. کاهش نیابد. حالت I74 = 1 برای کاربردهایی مناسب است که فرکانس هدف فقط هنگام تغییر واقعی تنظیم میشود.صریح نشان میدهد. مقدار خارج از محدوده مجاز با Exception 0x03 رد میشود.
| آدرس/PDU مرجع 4xxxx | نام رجیستر | مقدار خام مجاز | شرط اجرا و توضیح |
|---|---|---|---|
0x0001 40002 | تنظیم فرکانس هدف | 0 یا از F23×10 تا F21×10 (واحد خام)0.1 Hz: | Frq = 4 و حالتهای JOG/Multistep غیرفعال باشند. مقدار 0 مجاز است؛ برای توقف عملیاتی از 0x0002 = 0x01 استفاده شود. |
0x0002 40003 | فرمان استارت، توقف و جهت | 0x04 یا 0x02، 0x01 | drv = 3؛ مقدار 0x01 توقف 0x02، حرکت راستگرد و 0x04 حرکت چپگرد است. |
0x0003 40004 | تنظیم زمان شتاب | از 1 تا 60000 ( 0.1 تا )s 6000.0 | واحد خام 0.1 ثانیه است؛ مقدار 0 یا بیش از 60000 مجاز نیست. |
0x0004 40005 | تنظیم زمان کاهش سرعت | از 1 تا 60000 ( 0.1 تا )s 6000.0 | واحد خام 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 | ایراد در عملکرد حافظه غیر فرار. |
کدهای تابع قابل استفاده در این نسخه در جدول (۶) خلاصه شدهاند. همه فیلدهای 16 بیتی آدرس، تعداد و داده با ترتیب بایت بالا و سپس بایت پایین ارسال میشوند و CRC در انتهای فریم قرار میگیرد. پیش از اجرای هر فرمان، طول فریم، بازه آدرس، مقدار و شرایط کاری بهطور کامل بررسی میشوند.
| کد تابع | نام استاندارد | کاربرد و محدودیت |
|---|---|---|
0x03 | Read Holding Registers | خواندن رجیسترهای نگهدارنده و نقشهٔ کاربردی جدول (۲)، شامل وضعیت 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 برای شناسایی دستگاه است.
؛ Slave Address | Function Code | Start Address | Quantity | CRC:• ساختار درخواست؛ Slave Address | Function Code | Byte Count | Register Data | CRC:• ساختار پاسخ.
0x02 ایجاد میکند؛ و 0x04 فقط بازههای 0x0005 تا 0x000E و 0x0064 تا 0x006B مجاز هستند. رجیسترهای، 0x0001 0x0004، 0x0003 و 0x000F با فرمان 0x03 خوانده میشوند. درخواست 0x04 برای 0x000F پاسخ ایجاد میکند Exception 0x02 0x06 یک آدرس و یک مقدار 16 بیتی را مینویسد و در پاسخ عادی، آدرس و مقدار درخواست را تکرار میکند؛ 0x10 شامل آدرس شروع، تعداد رجیستر، تعداد بایت و دادههای نوشتنی است. حد پروتکلی تعداد رجیستر 1 تا 123 است؛ با توجه به نقشه کاربردی این درایو، بازه پیوسته 0x0001 تا 0x0004 یا یک رجیستر در آدرس 0x000F قابل نوشتن است؛ 0x10 همه آدرسها، مقادیر و شرایط کاری پیش از نخستین تغییر اعتبارسنجی میشوند؛ بنابراین درخواست نامعتبر باعث اعمال بخشی از دادهها نمیشود؛ و 0x03 و آماده نبودن وضعیت درایو برای فرمان موردنظر، خطای Exception 0x06 ایجاد میکند. در این فرمان، زیرتابع در دو بایت پس از 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 برای سازگاری و توسعه آینده است؛ نسخه فعلی مسیر عملیاتی تولید 0x07 Exception ندارد. |
0x0011 | Server Busy Count | تعداد پاسخهای 0x06 Exception ناشی از آماده نبودن وضعیت درایو را برمیگرداند. |
0x0012 | Character Overrun Count | تعداد رخدادهای سرریز بافر یا دریافت کاراکتر را برمیگرداند. |
0x0014 | Clear Overrun Counter and Flag | فقط شمارنده سرریز، بیت سرریز رجیستر تشخیصی و پرچم داخلی مرتبط را پاک میکند. |
0xFFFF اشباع میشوند و با بازنشانی دستگاه یا زیرتابع 0x000A صفر میشوند. در این نسخه فعال نیستند و Force Listen Only Mode و Restart Communications Option زیرتابعهای Exception 0x03 ایجاد میکنند.Slave | 0x17 | Read Start | Read Quantity | Write Start | Write Quantity | Write: ساختار درخواست •؛ Byte Count | Write Data | CRC.
0x0001 تا 0x0004 یا یک رجیستر در 0x000F و بخش خواندن فقط نقشه کاربردی رجیسترها را میپذیرد؛ 0x0001 = 500 را نوشت و در همان تراکنش مقدار واقعی 0x0006 را خواند؛ Read Device کدهای Slave | 0x2B | MEI = 0x0E | Read Device ID Code | Object ID | CRC.: ساختار درخواست ID از 0x01 تا 0x04 پشتیبانی میشوند. کد 0x04 فقط شیء درخواستی را بازمیگرداند. مقدار ProductCode متناسب با نوع ورودی و توان انتخابشده در زمان ساخت نرمافزار تولید میشود.
| شناسه شیء | نام شیء | مقدار فعلی پاسخ |
|---|---|---|
0x00 | VendorName | HipowerVSES |
0x01 | ProductCode | وابسته به مدل؛ برای مثال K100-S1R5G |
0x02 | MajorMinorRevision | V1.0 |
0x81 است. این فرمان با آدرس Broadcast مجاز نیست.۸) Broadcast با آدرس صفر
0x00 فقط برای فرمانهای نوشتنی 0x06 و 0x10 پشتیبانی میشود. بنابراین تنظیم I74 در 0x000F و ارسال فرکانس هدف در 0x0001 به چند درایو امکانپذیر است؛ I74 = 1 فرکانس هدفی که با Broadcast دریافت میشود نیز در EEPROM ذخیره خواهد شد؛ 0x17، 0x08، 0x04، 0x03 و 0x2B/0x0E با آدرس صفر مجاز نیستند و طبق قواعد مدباس، پاسخ روی باس تولید نمیکنند؛ و ۹) پاسخهای 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 پاسخی ارسال نمیشود.