آموزش ماکرونویسی در HMI دلتا (Macro Programming)

ماکرونویسی در صفحه‌نمایش‌های دلتا (Delta HMI) یکی از قابلیت‌های قدرتمند نرم‌افزار DOPSoft است که به کمک آن می‌توان منطق کنترلی، محاسبات و ارتباط با PLC یا اینورتر را مستقیماً در HMI پیاده‌سازی کرد.

ماکرو در HMI دلتا چیست؟

Macro مجموعه‌ای از دستورات ساده ولی سریع است که داخل HMI اجرا می‌شود و می‌تواند داده‌ها را منتقل کند، شرط‌ها را بررسی نماید و حتی بدون PLC یک فرآیند را کنترل کند.

چرا از ماکرونویسی استفاده می‌کنیم؟

  • کاهش حجم برنامه PLC
  • افزایش سرعت اجرای دستورات
  • کاهش هزینه سخت‌افزار
  • سادگی در تغییرات پروژه
  • امکان کنترل مستقیم اینورتر با HMI

تفاوت Macro و برنامه PLC

ویژگیMacro در HMIPLC
پیچیدگی منطقمتوسطبالا
سرعت پیاده‌سازیخیلی سریعمتوسط
هزینهکمتربیشتر

اولین مثال ماکرونویسی (آموزش خط به خط)

D100 = D0

توضیح:

  • D0 : مقدار ورودی اپراتور
  • D100 : مقدار خروجی
  • = : انتقال مقدار

این دستور باعث می‌شود هر عددی که اپراتور وارد می‌کند، در رجیستر دیگری ذخیره شود.

کاربرد صنعتی این مثال

  • تنظیم Setpoint سرعت موتور
  • ذخیره مقدار دما یا فشار
  • ارسال مقدار از HMI به PLC

نکات مهم صنعتی

  • ماکرو را جایگزین منطق ایمنی نکنید
  • از اجرای بی‌دلیل ماکرو در Background خودداری کنید
  • آدرس‌دهی استاندارد داشته باشید

سؤالات متداول (FAQ)

آیا می‌توان PLC را حذف کرد؟

در پروژه‌های ساده بله، اما در سیستم‌های صنعتی حساس توصیه نمی‌شود.

آیا ماکرو روی همه HMI های دلتا وجود دارد؟

بله، در سری‌های DOP-A، DOP-AE، DOP-AS، DOP-100، DOP-107 و DOP-110.

انواع Macro در نرم‌افزار DOPSoft

در HMI دلتا، ماکروها بسته به زمان اجرا و نوع عملکرد به چند دسته تقسیم می‌شوند. شناخت درست این ماکروها پایه طراحی حرفه‌ای پروژه‌های صنعتی است.

1. Initial Macro

این ماکرو فقط یک‌بار و هنگام روشن شدن HMI اجرا می‌شود.

D100 = 0
D101 = 0

کاربرد: ریست مقادیر اولیه، تنظیم وضعیت پیش‌فرض سیستم

---------------------------------------------------------

2. Background Macro

این ماکرو به‌صورت دائمی در پس‌زمینه اجرا می‌شود.

IF D10 == 1
    D200 = D100
END

کاربرد: مانیتورینگ دائمی، منطق ساده کنترلی

------------------------------------------------------------------------

3. Screen Open Macro

هنگام باز شدن یک صفحه اجرا می‌شود.

D300 = D100

کاربرد: مقداردهی اولیه صفحه، همگام‌سازی داده‌ها

--------------------------------------------------------

4. Screen Close Macro

در زمان خروج از صفحه اجرا می‌شود.

D400 = D300

کاربرد: ذخیره تنظیمات کاربر

-------------------------------------------------------

5. Clock Macro

در بازه زمانی مشخص اجرا می‌شود (مثلاً هر 1 ثانیه یا 1 دقیقه).

D500 = D500 + 1

کاربرد: ساعت کارکرد، تایمر نرم‌افزاری

------------------------------------------------------

6. Before / After Execute Macro

مربوط به المان‌ها مثل دکمه‌ها

SETBIT M10

کاربرد: اجرای فرمان قبل یا بعد از فشردن دکمه

نکات حرفه‌ای

  • Background Macro را سبک بنویسید
  • Clock Macro را فقط برای زمان‌بندی استفاده کنید
  • منطق پیچیده را به PLC بسپارید

ماکرو نویسی در hmi دلتا


آموزش دستورات ریاضی و منطقی در ماکرونویسی HMI دلتا

دستورات ریاضی و منطقی در Macro دلتا برای انجام محاسبات، مقیاس‌بندی، تصمیم‌گیری و پیاده‌سازی منطق کنترلی ساده استفاده می‌شوند. در این فصل تمام این دستورات را خط‌به‌خط و کاربردی بررسی می‌کنیم.

1. دستور انتساب (=)

D100 = D0
  • D0 : مقدار ورودی (مثلاً عدد وارد شده توسط اپراتور)
  • D100 : محل ذخیره خروجی
  • = : انتقال مقدار بدون تغییر

کاربرد صنعتی: ذخیره Setpoint، ارسال مقدار به PLC یا اینورتر

ماکرونویسی صفحه نمایش دلتا

--------------------------------------------------------

2. جمع (+)

D200 = D100 + 10
  • D100 : مقدار پایه
  • 10 : مقدار ثابت
  • D200 : نتیجه جمع

مثال صنعتی: افزودن Offset به مقدار دما یا فشار

-----------------------------------------------------------

3. تفریق (-)

D201 = D100 - 5

کاربرد: حذف Offset، اصلاح خطای سنسور

------------------------------------------------------------

4. ضرب (*)

D202 = D100 * 2

کاربرد صنعتی: مقیاس‌بندی سیگنال آنالوگ (Scaling)

--------------------------------------------------------------

5. تقسیم (/)

D203 = D100 / 10

کاربرد: تبدیل واحد (مثلاً RPM به Hz)

⚠ نکته مهم: از تقسیم بر صفر جداً خودداری کنید.

----------------------------------------------------------------

6. افزایش یک واحد (Increment)

D300 = D300 + 1

کاربرد: شمارنده، تعداد استارت موتور، قطعه‌شمار

-----------------------------------------------------------------

7. کاهش یک واحد (Decrement)

D300 = D300 - 1

کاربرد: شمارش معکوس، مدیریت موجودی

----------------------------------------------------------------

8. مقایسه بزرگتر (>)

IF D100 > 50
    SETBIT M10
END
  • D100 : مقدار فرآیند
  • 50 : حد مجاز
  • M10 : بیت آلارم

کاربرد: آلارم دما، فشار، جریان

--------------------------------------------------------

9. مقایسه کوچکتر (<)

IF D100 < 20
    SETBIT M11
END

کاربرد: حفاظت حد پایین

-----------------------------------------------------------------------

10. مساوی (==)

IF D200 == 100
    SETBIT M20
END

کاربرد: رسیدن به Setpoint

----------------------------------------------------------------------------

11. نامساوی (!=)

IF D200 != 0
    SETBIT M21
END

کاربرد: تشخیص وضعیت فعال

-----------------------------------------------------------

12. شرط ترکیبی AND

IF M0 == 1 AND M1 == 1
    SETBIT M30
END

کاربرد: Interlock ایمنی

-----------------------------------------------------------

13. شرط ترکیبی OR

IF M2 == 1 OR M3 == 1
    SETBIT M31
END

کاربرد: فعال شدن سیستم با چند شرط

--------------------------------------------------------------------------

14. شرط NOT

IF NOT M5
    SETBIT M40
END

کاربرد: معکوس‌سازی منطق

------------------------------------------------------------

15. مثال صنعتی کامل (Scaling آنالوگ)

D200 = D100 * 50
D200 = D200 / 4095
  • D100 : مقدار خام آنالوگ
  • D200 : مقدار واقعی (0 تا 50 Hz)

---------------------------------------------------------------------------

نکات حرفه‌ای مهم

  • محاسبات سنگین را در Background Macro انجام ندهید
  • همیشه مقادیر ورودی را محدود کنید
  • برای پروژه‌های حساس از PLC استفاده کنید

اشتباهات رایج

  • تقسیم بر صفر
  • استفاده زیاد از شرط در Background
  • عدم مستندسازی آدرس‌ها

جمع‌بندی

با تسلط بر دستورات ریاضی و منطقی در Macro دلتا، می‌توان HMI را به یک واحد پردازش هوشمند تبدیل کرد و بسیاری از منطق‌های ساده صنعتی را بدون PLC اجرا نمود.

10 پروژه صنعتی ماکرونویسی HMI دلتا با منطق ریاضی و شرطی

در این بخش 10 پروژه واقعی صنعتی را بررسی می‌کنیم که فقط با محاسبات ریاضی و شرط‌ها (IF / AND / OR) در HMI دلتا پیاده‌سازی شده‌اند.

پروژه 1: آلارم حد بالا دما

IF D100 > 80
    SETBIT M10
ELSE
    RSTBIT M10
END

کاربرد: حفاظت دما در کوره، هیتر، تابلو برق

----------------------------------------------------------

پروژه 2: آلارم حد پایین فشار

IF D101 < 20
    SETBIT M11
END

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

----------------------------------------------------------

پروژه 3: مقیاس‌بندی آنالوگ (Scaling)

D200 = D100 * 50
D200 = D200 / 4095

تبدیل ورودی آنالوگ 0–4095 به 0–50 Hz

-------------------------------------------------

پروژه 4: جلوگیری از ورود مقدار غیرمجاز

IF D300 > 100
    D300 = 100
END

کاربرد: محدود کردن Setpoint اپراتور

------------------------------------------------------------

پروژه 5: انتخاب Auto / Manual

IF M0 == 1
    D400 = D401
ELSE
    D400 = D402
END

Auto از PLC – Manual از HMI

----------------------------------------------------------------------------

پروژه 6: شمارنده تعداد استارت موتور

IF M10 == 1
    D500 = D500 + 1
END

کاربرد: نگهداری و سرویس

--------------------------------------------------------------

پروژه 7: توقف موتور در اضافه‌بار

IF D600 > 120
    SETBIT M20
END

کاربرد: حفاظت جریان

------------------------------------------------------------

پروژه 8: کنترل مرحله‌ای سرعت موتور

IF D700 < 30
    D701 = 20
ELSE
    D701 = 50
END

کاربرد: خطوط نقاله

-------------------------------------------------------------

پروژه 9: تأیید دو شرط ایمنی (Interlock)

IF M1 == 1 AND M2 == 1
    SETBIT M30
END

کاربرد: ایمنی اپراتور

------------------------------------------------------------

پروژه 10: هشدار مصرف انرژی بالا

IF D800 > 500
    SETBIT M40
END

کاربرد: مدیریت انرژی

----------------------------------------------------------------------------

نکات بسیار مهم صنعتی

  • این منطق‌ها برای کنترل سطح متوسط مناسب‌اند
  • منطق ایمنی حیاتی باید در PLC باشد
  • Background Macro را سبک نگه دارید

جمع‌بندی

با همین دستورات ساده ریاضی و شرطی، می‌توان بخش بزرگی از پروژه‌های صنعتی را مستقیماً در HMI دلتا پیاده‌سازی کرد و هزینه، زمان و پیچیدگی سیستم را کاهش داد.

چک‌لیست عیب‌یابی Macro و Modbus اینورتر دلتا

این چک‌لیست به مهندسین و تکنسین‌های صنعتی کمک می‌کند تا مشکلات رایج Macro و ارتباط Modbus با اینورتر دلتا را سریع و حرفه‌ای شناسایی و رفع کنند.

بخش 1: مشکلات ارتباط Modbus

1️⃣ عدم برقراری ارتباط (No Response)

  • بررسی Baud Rate و Parity بین HMI و اینورتر
  • Station Number (Slave ID) صحیح باشد
  • سیم‌بندی A+/B- درست باشد
  • مقاومت ترمینیشن در شبکه‌های طولانی

2️⃣ ارتباط برقرار است ولی فرمان اجرا نمی‌شود

  • رجیستر آدرس درست باشد
  • اینورتر روی Local Mode نباشد
  • پارامتر Run Command Source = Communication
  • پارامتر Frequency Source = Communication

3️⃣ خواندن دیتا درست است ولی نوشتن عمل نمی‌کند

  • رجیستر Write Permission داشته باشد
  • Macro در حالت Read-Only نباشد
  • مقدار Write در محدوده مجاز باشد

بخش 2: عیب‌یابی ماکرونویسی HMI دلتا

4️⃣ Macro اجرا نمی‌شود

  • Macro فعال باشد (Enable Macro)
  • Macro به Event درست متصل شده باشد
  • خطای Syntax نداشته باشد

5️⃣ دستور IF درست عمل نمی‌کند

اشتباه رایج:

IF D100 = 10   ❌

صحیح:

IF D100 == 10  ✔

6️⃣ شرط‌ها همیشه TRUE یا FALSE هستند

  • مقدار اولیه متغیرها صفر نشده است
  • رجیستر اشتباه خوانده می‌شود
  • راه‌حل: مقداردهی اولیه در Startup Macro

7️⃣ مقدار سرعت به اینورتر نمی‌رسد

  • فرکانس با Scale درست ارسال شود
  • واحد Hz یا 0.01Hz
  • Macro بعد از تغییر مقدار اجرا شود

بخش 3: مشکلات آدرس‌دهی رجیستر اینورتر

8️⃣ اینورتر Start نمی‌شود

  • رجیستر Run Command صحیح باشد (مثلاً 8192)
  • بیت فرمان درست ست شود
  • فرمان لحظه‌ای یا دائم بودن بررسی شود

9️⃣ ریست خطا کار نمی‌کند

4-8200 = 1
DELAY 50
4-8200 = 0

🔟 مقدار فرکانس پرش دارد

  • نوشتن مداوم در رجیستر
  • اجرای Macro در Loop سریع
  • راه‌حل: ارسال فقط هنگام تغییر مقدار

بخش 4: خطاهای صنعتی واقعی

1️⃣1️⃣ اینورتر استارت می‌شود ولی سریع Stop می‌کند

  • خطای حفاظتی فعال است
  • فرکانس صفر ارسال می‌شود
  • Macro بعد از Start مقدار صفر می‌نویسد

1️⃣2️⃣ جهت چرخش اشتباه است

  • رجیستر Direction صحیح باشد
  • پارامتر Forward / Reverse درست تنظیم شده باشد
  • سیم‌بندی موتور صحیح باشد

1️⃣3️⃣ HMI هنگ می‌کند

  • Loop بی‌پایان در Macro
  • Delay زیاد
  • Macro سنگین در Event سریع

بخش 5: تست سریع (Quick Diagnostic)

  1. فقط رجیستر فرکانس را بنویس و چک کن
  2. فقط فرمان Start را فعال کن
  3. Macro را ساده کن و دوباره تست کن
  4. مانیتور رجیسترها و مقادیر خروجی
  5. لاگ خطای اینورتر را بررسی کن

توصیه‌های طلایی مهندسی

  • همیشه Manual Control روی Keypad داشته باش
  • فرمان Stop سخت‌افزاری فراموش نشود
  • Macro حیاتی را با شرط خطا محافظت کن
  • آدرس‌ها را از Manual همان مدل بردار
ورود/ثبت نام
شماره موبایل یا پست الکترونیک خود را وارد کنید
رمز عبور خود را وارد نمایید
کد یکبار رمز خود را وارد کنید
شماره موبایل یا پست الکترونیک خود را وارد کنید
لطفا کد یکبار رمز ارسال شده به ایمیل یا موبایل خود را وارد کنید
شما قبلا وارد شده اید