آموزشی

آموزش ماکرو نویسی در hmi دلتا با مثال های کاربردی

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

ماکرونویسی در اچ ام آی دلتا یک نوع قابلیت گسترده برای بیشتر کردن کارایی آن است که توسط شرکت دلتا ارائه شده است. دستورات ماکرو در HMI دلتا تنوع بالایی دارد، از محاسبات منطقی و انتقال داده گرفته تا ترسیم و طراحی را شامل می شود. در این مطلب قصد داریم در خصوص محیط های برنامه نویسی ماکرو و فرمان های ماکرو صحبت کنیم تا به طور کامل آموزش ببینید. با آزند اتوماسیون همراه باشید.

انواع دستورات ماکرونویسی در HMI دلتا

جدول زیر انواع محیط های ماکرونویسی در اچ ام آی دلتا را نشان می دهد که در ادامه هر یک را توضیح داده ایم:

انواع ماکرو کاربرد
ON Macro هر بار یک مرتبه بعد از روشن شدن فعال می گردد و فقط برای کلیدهای روشن و خاموش، Maintained و Momentary قابل اجراست.
OFF Macro هر بار یک مرتبه بعد از خاموش شدن فعال می گردد و برای کلیدهای ON Macro قابل اجراست.
Before Execute Macro یا قبل از اجرا شدن ماکرو وقتی اپراتور یکی از کلیدها یا المان های روی صفحه اچ ام آی را فعال کند، قبل از اجرای هر برنامه یا دستوری، ابتدا فرمان های ماکرو اجرا خواهند شد مگر اینکه وضعیت کلید یا المان تغییر نکند. این مساله برای کل ورودی ها و کلیدها قابل اجراست.
After Execute Macro یا بعد از اجرا شدن ماکرو وقتی اپراتور یکی از کلیدها یا المان های روی صفحه اچ ام آی را فعال کند بعد از اجرای هر برنامه، ابتدا دستورات ماکرو اجرا خواهند شد مگر اینکه وضعیت کلید یا المان تغییر نکند. این دستور برای کل ورودی ها و کلیدها قابل اجراست.
Screen Open Macro بعد از اینکه صفحه باز می شود یکبار اجرا خواهد شد
Screen Closed Macro بعد از اینکه صفحه باز می شود یکبار اجرا خواهد شد
Screen Cycle Macro فرمان آن به شکل چرخه ای بین اجرای دستورات Screen Open & Closed Macro اجرا می گردد
Sub Macro در اچ ام آی دلتا، 512 عدد ساب ماکرو داریم که شبیه زیر برنامه ها یا بلوک ها در سایر زبان های برنامه نویسی عمل می کند. با این بلوک ها امکان نوشتن دستورات و برنامه های تکراری و فراخوانی برنامه وجود دارد و شیوه برنامه نویسی آن هم مثل بقیه برنامه های ماکرو است.
Initial Macro این فرمان فقط یکبار آن هم بعد از شروع و Startup اچ ام آی اجرا می گردد
Background Macro تا زمانی که HMI دلتا کار می کند، پیوسته از خط اول تا آخر اجرا می گردد و امکان تکرار برنامه هم دارد. این دستورات سیکلی اجرا می شوند که هر سیکل یک یا چند خط فرمان دارد
Clock Macro در طی کار کردن HMI به شکل پیوسته، دستورات آن از ابتدا تا انتها با هم اجرا می شوند

بررسی دقیق دستورات ماکرونویسی در HMI دلتا

هر یک از دستوراتی که در جدول بالا مشاهده کردید به تفصیل در این قسمت توضیح می دهیم:

دستورات ON/OFF Macro

دستورات ON/OFF Macro

این دستورات در هر لبه اجرا شده و فقط برای کلیدهای ON/OFF، Maintained و Momentary اجرا می گردند. مثلا اگر کلید روشن شود، فرمان ON Macro، اگر کلید خاموش شود OFF Macro، اجرا خواهد شد. از طرفی فقط در حالتی که کلیدها تغییر وضعیت از حالت ON یا OFF داشته باشند، دستورات ماکرو اجرا می گردند.

دستور Before Execute Macro

دستور Before Execute Macro

این حالت برای همه کلیدها و المان های ورودی قابل اجراست و با تغییر وضعیت کلید به خاموش یا روشن یا تغییر المان ورودی، ابتدا دستور Before Execute Macro اجرا می گردد. از طرفی ON/OFF و Before/After در قسمت Properties کلیدها یا باتن ها قابل دسترسی هستند.

دستور After Execute Macro

دستور After Execute Macro

این کد برای همه کلیدها و المان های ورودی قابل اجراست و با تغییر وضعیت کلید به خاموش یا روشن یا تغییر المان ورودی، بعد از اعمال شدن تغییرات، ابتدا دستور After Execute Macro اجرا می گردد.

دستور Screen Open Macro

یکی دیگر از فرمان های ماکرونویسی در HMI دلتا که به محض باز شدن صفحه اجرا می شود. برای دسترسی به این دستور به شکل زیر عمل کنید:

دستور Screen Open Macro

بنابراین وقتی HMI کار می کند، برای هر صفحه ای که چنین برنامه ای نوشته باشید، دستورات آن اجرا خواهند شد:

دستور Screen Open Macro قسمت دوم

فرمان Screen Closed Macro

دستور Screen Closed Macro

برای نوشتن این دستور می توانید طبق تصویر بالایی وارد منو Screen شده و گزینه Screen Close Macro را انتخاب کنید و برنامه مدنظرتان را بنویسید. هر بار که صفحه ای که این دستور را برای آن نوشته اید را ببندید و وارد صفحه دیگری شوید، اجرا خواهد شد.

دستور Screen Cycle Macro

دستور Screen Cycle Macro

نمونه دیگری از کدهای ماکرونویسی در HMI دلتا که از همان منو Screen مطابق تصویر، می توانید دسترسی پیدا کنید. هر صفحه ای که در برنامه DOPSoft ایجاد کنید همه محیط های ماکرونویسی Screen Open/Close/Cycle Macro را خواهد داشت.

مدت زمان تأخیری که در تنظیمات مشخص می کنید تعیین می کند که پس از طی شدن چه مدت زمانی از باز شدن صفحه، دستورات اجرا شوند. دو بار روی صفحه کلیک کنید تا پنجره Screen Properties باز شود. سپس در قسمت Macro Cycle Time زمان تأخیر اجرای این برنامه را مشخص نمایید که به طور پیش فرض 100 میلی ثانیه است.

نجره Screen Properties

شکل زیر به شما نشان می دهد که شیوه عملکرد و ترتیب اجرایی برنامه های Screen Open/Close/Cycle Macro چگونه است:

ترتیب اجرایی برنامه های Screen Open/Close/Cycle Macro

دستور Sub-macro

برای دسترسی به پنجره ساب ماکرو جهت ماکرونویسی در HMI دلتا، از قسمت Option طبق شکل زیر وارد شوید:

دستور Sub-macro

که طبق شکل زیر پنجره ای باز خواهد شد:

پنجره Sub-macro

طبق پنجره باز شده شما می توانید از 512 مدل ساب ماکرو استفاده کرده و برنامه های پر تکرار را بنویسید. برای فراخوانی هر ساب ماکرو از شماره آنها کمک بگیرید یا در قسمت Alias هر دستور ساب ماکرو را نامگذاری کنید که حداکثر 64 کاراکتر است. اگر قصد دارید داخل برنامه اصلی، دستورات Sub-macro را فراخوانی کنید، باید از دستور CALL کمک بگیرید که مطابق شکل زیر است:

دستور CALL

برای اینکه از برنامه محافظت کنید امکان رمزگذاری روی هر ساب ماکرو وجود دارد. برای این کار قسمت Protection را فعال کرده و در پنجره باز شده، رمز عبور خودتان را وارد کنید:

Protection برای رمز گذاری روی ساب ماکرو

 

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

نکته 1: اگر روی Sub Macro ها پسورد بگذارید نخواهید توانست برای آنها از قابلیت های Find و Replace در منو Edit برای آنها استفاده کنید. مثلا فرض آدرس 100$ در برنامه ساب ماکرو رمزگذاری شده باشد، در این حالت امکان پیدا کردن آن با دستور Find یا جایگزین کردن با دستور Replace وجود نخواهد داشت و با پیغام های زیر مواجه خواهید شد:

دستور find و replace

نکته 2: در صورتی که در پنجره Communication Setting پورت ارتباط یا Station Number را تغییر دهید در ساب ماکروها پسورد دار، امکان اینکه به شکل اتوماتیک، آدرس های بکار برده شده را تغییر دهید وجود نخواهد داشت. مثلا اگر ارتباط HMI با پی ال سی را از کام 2 به کام 3 تغییر دهید، آدرس هایی که با لینک 2 در ساب ماکرو استفاده کرده باشید، اتوماتیک به لینک 3 تغییر پیدا نمی کنند. در تصویر زیر دقیق مشاهده می کنید:

پنجره Communication Setting

نکته 3: اگر بخواهید ساب ماکرو رمزگذاری شده را در برنامه اصلی فراخوانی کنید، بعد از اینکه دستور CALL را نوشتید باید رمز مربوط به ساب ماکرو هم وارد کنید:

وارد کردن رمز مربوط به ساب ماکرو

دستور Initial Macro

در ماکرونویسی HMI دلتا برای اینکه به این دستور دسترسی پیدا کنید باید وارد منو Option شوید؛ مطابق شکل زیر:

دستور Initial Macro

با این ماکرو نویسی اچ ام آی دلتا می توانید مقدار دهی اولیه یا Initialize را انجام دهید. بعد از اینکه اچ ام آی شروع به کار می کند در Startup یا روشن شدن، اولین دستورات اجرایی ماکرو همین دستور خواهد بود. در شکل زیر ترتیب اجرای دستورات ماکرو به دقت نشان داده شده اند:

ترتیب اجرای دستورات ماکرو

دستور Background Macro

برای دسترسی پیدا کردن به این دستور باید طبق شکل زیر وارد منو Options شوید:

دستور Background Macro

این دستورات در طی عملکرد HMI پیوسته اجرا شده و دوباره می توانند بعد از اجرای آخرین دستور، اجرا شوند. حداکثر امکان نوشتن 512 خط دستور را دارید و با مشخص کردن مقدار Background macro update cycle می توانید تعداد خطوط اجرایی در هر سیکل را با عددی بین 1 تا 512 مشخص کنید.

مشخص کردن مقدار Background macro update cycle

در این فرمان ترتیب اجرای دستورات خیلی مهم است چون اجرای خطوط برنامه به شکل یکجا و همزمان نیست. مثلا فرض کنیم 10 المان روی صفحه اچ ام آی قرار دارند و در بخش Background Macro شش خط دستور نوشته باشید و مقدار خطوط Background Macro Update Cycle را 3 عدد مشخص کرده باشید. شیوه عملکرد و تأثیر این دستور در برنامه مشابه تصویر زیر است:

شیوه عملکرد و ترتیب دستورات Background Macro

مورد بالا بدین معنی است که در هر بار Update Cycle فقط تعداد خطوطی که در Background Macro Update Cycle مشخص کرده ایم اجرا خواهند شد.

دستور Clock Macro

در ماکرونویسی HMI دلتا برای پیوسته اجرا شدن دستورات در طی عملکرد HMI می توانید از این دستور هم استفاده کنید که از منو Option قابل دسترسی است:

دستور Clock Macro

فرق مهم این دستور با قبلی در این است که برخلاف آن دستورات از خط اول تا آخر در هر سیکل اجرا شده و نیاز نیست تعداد خطوط اجرایی را در هر سیکل مشخص کنید. اجرای دستورات مثل Screen Cycle Macro برحسب Clock Macro Delay Time خواهد بود:

Clock Macro Delay Time

نکته: در دستور Clock Macro امکان اولویت بندی (Priority) در سه سطح Low، Medium و High وجود دارد که با مشخص کردن آن زمان دقیق تأخیر یا Delay در برنامه تعیین خواهد شد:

Clock Macro configurations Delay Time

شکل زیر فلوچارت اجرای دستور Clock Macro را نشان می دهد:

Clock-Macro-Flow-Chart

پنجره ماکرونویسی در HMI دلتا

بعد از اینکه نوع ماکرو را طبق آموزش قبلی انتخاب کردید، پنجره ای شبیه به تصویر زیر خواهید دید. هر ماکرو قابلیت نوشتن کد تا 512 خط را دارد که هر خط تا 640 بابت کاراکتر ظرفیت دارد. اگر خواستید ماکروهای نوشته شده را ویرایش کنید در همین پنجره کافیست نور ماکرور را انتخاب نموده و وارد فضای ویرایش شوید:

ویرایش ماکروهای نوشته در اچ ام آی

نوار ابزار پنجره ماکرونویسی

گزینه ها و دستورات نوار ابزار پنجره ماکرو نویسی در HMI دلتا در تصویر مشخص است که به ترتیب از راست به چپ برای کارهای زیر استفاده می شوند:

Toolbar-macro

  • باز کردن برنامه های ماکرو با فرمت .txt و .mro
  • ذخیره سازی برنامه های ماکرو با فرمت .txt
  • دانلود برنامه های نوشته شده یا ویرایش شده

پنجره Capture

اگر گزینه Yes را بزنید علاوه بر اینکه برنامه های ماکرو بروزرسانی می شوند، کد های نوشته شده هم بررسی شده و اگر درست نباشند پیام زیر را خواهید دید:

Capture

  • دستورات لازم برای ویرایش کردن، بریدن یا کپی کردن برنامه
  • بررسی درستی برنامه نویسی دستورات

Capture دو حالت

روش دیگری که برای صحت سنجی وجود دارد، کامپایل کردن برنامه نوشته شده در نرم افزار DOPSoft ست که برای این منظور طبق تصویر زیر از منو Tools وارد بخش Compile یا Rebuild All شوید:

کامپایل کردن برنامه نوشته شده در نرم افزار DOPSoft

  • این گزینه Macro Wizard است که پنجره برنامه نویسی برای استفاده راحتتر می باشد:

Macro-Command

همانطور که در جدول زیر مشاهده می کنید، دیتا در ماکرو نویسی به چند شکل است: 16 بیتی (Word)، 32 بیتی (Double Word) و علامت دار (Signed) یا بدون علامت (Unsigned).

4 شکل دیتا در ماکرو نویسی

دستورات ماکرونویسی در HMI دلتا در بخش Command

هر یک از فرمان هایی که در بخش Command وجود دارند، متغیرها و پارامترهای مورد نیاز برای دستور را نشان خواهد داد که متناسب با برنامه ای که مدنظر دارید باید تکمیل شوند:

دستورات در بخش Command

مثلا تصویر زیر نشان می دهد که از دستور IF استفاده شده است:

دستور IF

11 دسته از دستورات در پنجره Command

بخش دوم دستورات در پنجره Command

دستورات در پنجره Command قسمت سوم

بررسی جامع دستورات ماکرو نویسی در HMI دلتا

دستورات Arithmetic

این دستور شامل دستورات ریاضی مثل جمع، تفریق، ضرب، تقسیم و توابع مثلثاتی است که در شکل زیر مشاهده می کنید:

دستورات Arithmetic

دستورات اعداد صحیح

+ : جمع

– : تفریق

* : ضرب

/ : خارج قسمت تقسیم دو متغییر (Var2 و Var3) را در Var1 ذخیره می کند.

% : باقی مانده تقسیم دو متغییر (Var2 و Var3) را در Var1 نشان می دهد.

MUL64: ضرب اعداد به صورت 16 بیتی و 32 بیتی، می تواند تنیجه ضرب را به صورت 64 بیتی (ضرب

دو عدد 32 بیتی) نمایش دهد. (Var1 می تواند تا 4رجیستر را اشغال کند).

ADDSUM: مجموع چند رجیستر را محاسبه می کند.

دستورات اعشاری

  • جمع اعداد اعشاری
  • FSUB: تفاضل اعداد اعشاری
  • FMULL: ضرب اعداد اعشاری
  • FDIV: این دستور خارج قسمت تقسیم دو متغییر اعشاری را نشان می دهد.
  • FMOD: باقی مانده تقسیم دو عدد اعشاری را در Var1 نمایش می دهد.

دستورات مثلثاتی

  • SIN: سینوس یک زاویه بر حسب درجه را محاسبه می کند و در Var1 ذخیره می کند.
  • COS: کسینوس یک زاویه بر حسب درجه را محاسبه می کند و در Var1 ذخیره می کند.
  • TAN: تانژانت یک زاویه بر حسب درجه را محاسبه می کند و در Var1 ذخیره می کند.
  • COT: کتانژانت یک زاویه بر حسب درجه را محاسبه می کند و در Var1 ذخیره می کند.
  • SEC: سکانت (1/Cosα) یک زاویه بر حسب درجه را محاسبه می کند و در Var1 ذخیره می کند.
  • SCS: کسکانت (1/Sinsα) یک زاویه بر حسب درجه را محاسبه می کند و در Var1 ذخیره می کند.

نکته: در توابع مثلثاتی، ورودی به شکل دسیمال و علامت دار (Signed) و خروجی به شکل اعشاری یا Floating است.

مثال ADD: با ذکر یک مثال این دستور ریاضی در ماکرونوسی در HMI دلتا واضح تر خواهد شد. مثال ADD جمع دو متغیر است که هر سه از نوع اعداد صحیح هستند:

مثال TAN: برای محاسبه تانژانت یک زاویه به شکل زیر عمل می شود:

دستورات Logical

دستورات فوق در ماکرونویسی در HMI دلتا شامل عملگرهای منطقی AND، NOT، OR و غیره هستند:

| : نتیجه OR منطقی دو متغیر

جدول OR

&&: نتیجه AND منطقی دو متغیر

AND

^ : نتیجه XOR منطقی دو متغیر

XOR منطقی

NOT: نتیجه NOT منطقی یک متغیر

NOT

<< : این تابع بیت های کم ارزش یک رجیستر را به سمت بیت های با ارزش شیفت می دهد (شیف به

سمت چپ). تعداد بیت برای شیفت در Var3 تنظیم می شود.

>> : این تابع بیت های با ارزش یک رجیستر را به سمت بیت های کم ارزش شیفت می دهد (شیفت به

سمت راست). تعداد بیت برای شیفت در Var3 تنظیم می شود.

مثال برای &&

AND منطقی دو متغیر با هم

AND منطقی دو متغیر با هم

دستورات Data Transfer

این دستورات برای ماکرونویسی در HMI دلتا برای جابجایی یک یا چندین رجیستر است:

دستورات Data Transfer

  • MOV

برای انتقال دیتا یک یا دو رجیستر به یک یا دو رجیستر دیگر. دیتا می تواند به صورت  Signed یا Unsigned باشد.

  • BMOV

برای انتقال دیتا به صورت  16بیتی یا یک رجیستری به چندین رجیستر به طور همزمان.

  • ArrayCopy

برای انتقال تعدادی رجسیتر یا یک Array به تعدادی رجیستر دیگر یا یک Array دیگر.

  • FILL

دیتا Var2 را در رشته ای که آدرس آن در Var1 قرار داده شده است ذخیره می کند. طول دیتا در این دستور در Var3 مشخص می شود.

  • FILLASC

این دستور دیتا یک رشته را به کد اسکی هگز کاراکتر ها تبدیل می کند.

  • STRCAT

دیتا یک رشته را که آدرس آن در Var3 و طول آن در Var4 مشخص می شود را به یک رشته دیگر که آدرس آن در Var2 مشخص شده، منتقل می کند. Var1 وضعیت عملکرد دستور را مشخص می کند. در صورتی که در عملکرد دستور مشکلی نباشد عدد یک در Var مشخص می شود.

  • FMOV
مطالعه کنید:  آشنایی با نرم افزار جامع دلتا DIAStudio

برای جابجایی دیتا به صورت اعشاری مورد استفاده قرار می گیرد. در دستورات قبلی دیتا به صورت اعداد صحیح است.

مثال BMOV

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

مثال BMOV

مثال MOV

مثلا فرش کنید یک پی ال سی و یک کنترلر دما DTC1000 در شبکه مدباس RS485 دارید. در این شبکه باید HMI به عنوان MASTER انتخاب شود و برای انتقال دیتا DTC1000 به پی ال سی از دستور MOV در ماکرو استفاده کنید. بنابراین با دستور MOV ماکرونویسی، دیتا DTC1000 به کمک HMI به PLC منتقل شده و از این اطلاعات در برنامه پی ال سی استفاده خواهید کرد.

مثال برای MOV

دستورات Data Conversion

این دستورات کار تبدیل اعداد 16 بیتی به 32 بیتی و تبدیل فرمت های اسکی، اعشاری، BCD، هگز، باینری و غیره را انجام می دهند:

دستورات Data Conversion

  • BCD

دستور تبدیل دیتا دسیمال به BCD

  • BIN

دستور تبدیل دیتا BCD به دسیمال

  • TODWORD

دستور تبدیل یک WORD به (DW) WORD

  • TOWORD

دستور تبدیل یک بایت به ورد

  • TOBYTE

دستور تبدیل ورد به بایت

  • SWAP

جای بایت کم ارزش (Low byte)  و پر ارزش (High byte) را در یک Word عوض می کند.

  • XCHG

جابجایی محتوا یک یا چند رجیستر با یکدیگر (طول دیتا قابل تنظیم است)

  • MAX

محتوا دو متغیر به صورت Word یا Double Word را بررسی کرده ماکزیمم مقدار آنها را در Var3 ذخیره می کند.

  • MIN

محتوا دو متغیر به صورت Word یا Double Word را بررسی کرده مینیمم مقدار آنها را در Var3 ذخیره می کند.

  • TOHEX

تبدیل کاراکتر اسکی به عدد هگز

  • TOASC

تبدیل کد هگز کاراکتر به کد دسیمال کاراکتر

  • FCNV

تبدیل عدد Integer به اعشاری

  • ICNV

تبدیل اعداد اعشاری به Integer

  • SPRINTF

دستور دریافت و نمایش رشته (Str)

مثال برای دستور FCNV

دستورات Comparison

در ماکرونویسی در HMI دلتا برای مقایسه کردن دو شرط و مقایسه دو متغیر با یکدیگر از این دستور استفاده می کنند:

  • در صورتی که شرط برقرار باشد وارد Lable شده و دستورات آن را اجرا خواهد کرد
  • در صورتی که شرط برقرار باشد به Submacro مراجعه می کند
  • دستورات شرطی به شکل IF,ENDIF فقط در صورتی که شرط دستورات مورد نظر برقرار باشد اجرا خواهد شد
  • دستورات شرطی به صورت ELSEIF در صورتی که شرط برقرار نباشد، دستورات دیگری را اجرا خواهند کرد.
  • وقتی شرط IF یا ELSEIF برقرار نیست دستورات ELSE اجرا خواهند شد.
  • پایان شرط حلقه
  • شرط برای مقایسه کردن دو عدد اعشاری

در استفاده از حلقه های تو در تو، تا 7 دستور شرط را می توانید مثل شکل زیر استفاده کنید:

برنامه تو در تو

مثال برای دستور IF … THEN GOTO

در این مثال از دستور IF > استفاده کرده ایم:

دستورات Flow Control

دستورات Flow Control برای ماکرونویسی در HMI دلتا شامل شش دستور است: GOTO, LABEL, CALL, FOR, NEXT و END که جهت کنترل کردن الگوریتم و ایجاد کردن حلقه برنامه استفاده می شوند. کاربرد هر دستور را در ادامه مشاهده می کنید:

  • GOTO

دستور پرش به یک LABEL

  • LABEL

از این دستور برای ایجاد یک لیبل که شامل دستورات خاصی می باشد ، استفاده می شود.

  • CALL

دستور فراخوانی Sub MACRO

  • RET

دستور خروج از برنامه Sub MACRO

  • FOR/NEXT

FOR دستور ایجاد حلقه تکرار با تعداد مشخص می باشد و NEXT دستور پایان حلقه FOR

  • END

دستور پایان، در هر قسمتی از برنامه که استفاده شود، دستورات بعدی اجرا نخواهند شد.

مثال برای دستورات GOTO & LABEL

در مثالی که مشاهده می کنید از دستور GOTO و LABEL استفاده کرده ایم:

دستور GOTO و LABEL

در صورتی که شرط برقرار بود و کلید XO روشن باشد، برنامه به LABEL 1 پرش کرده و دستورانی که در آن نوشته شده را اجرا خواهد کرد.

نکته: با # در ابتدای خط برنامه می توانید کامنت یا توضیحاتی که مدنظر دارید را در برنامه بنویسید.

در دستور LABEL باید اسم برای آن انتخاب کنید تا نام LABEL مدنظر را در دستور GOTO برای پرش به دستورات لیبل مدنظر بنویسید.

دستور GOTO

نکته: اسم لیبل فقط به شکل عددی است.

دستورات Bit Setting

در این مدل از دستورات ماکرونویسی در HMI دلتا، 4 دستور برای اعمال در بیت ها داریم که به کمک آنها امکان صفر کردن مقدار یک بیت (OFF)، یک (ON) یا معکوس کردن و یا نمایش مقدار یک بیت وجود دارد. ورودی VAR1 فقط آدرس یک بیت را می پذیرد.

  • BITON

یک بیت را روشن یا یک می کند.

  • BITOFF

یک بیت را خاموش یا صفر می کند.

  • BITNOT

مقدار بیت را معکوس کرده، صفر را یک و یک را صفر می کند.

  • GETB

یک بیت از یک رجیستر را می گیرد و در VAR1 ذخیره می سازد.

مثال برای BITON

در برنامه ای که در شکل زیر نوشته شده معنای آن این است که اگر محتوای رجیستر D20 بزرگتر یا مساوی 100 بود، بیت X4 روشن شود و اگر شرط برقرار نشد، بیت X4 روشن نشود.

مثال برای BITON

دستورات COM Port

برای اعمال کردن تنظیمات روی پورت های HMI باید از این دستورات به منظور ماکرونویسی در HMI دلتا استفاده کنید:

  • INITCOM (Initialization COM)

تنظیمات شبکه روی پورت ها COM3, COM2, COM1 که شامل Buad rate، طول دیتا، بیت استاپ و غیره است می باشد.

INITCOM

  • ADDSUM

برای ذخیره سازی مجموع چند رجیستر در یک رجیستر. Data Length همان تعداد بایت است.

ADDSUM

  • XORSUM

مجموع عملیات XOR روی چندین رجیستر را ذخیره سازی می کند.

  • PUTCHARS

دستور ارسال دیتاست که در کنار دستورات INITCOM و SELECTCOM استفاده می شود:

PUTCHARS

  • GETCHARS

دستور دریافت دیتاست که در کنار دستورات INITCOM و SELECTCOM استفاده می شود:

پنجره Communication Setting

  • SELECTCOM

برای انتخاب پورت COM به کار می رود و در کنار دستور INITCOM استفاده می گردد.

  • CLEARCOMBUFFER

با مشخص سازی پورت، بافر ارسال یا دریافت دیتا را پاک سازی می کند. متغیرهای این دستور فقط شامل اعداد ثابت هستند.

CLEARCOMBUFFER

  • CHECKSUM

با دریافت یک رشته، مجموع آن توسط این دستور محاسبه شده و در بافر CHECKSUM ذخیره می گردد.

CHECKSUM

  • LOCKOM/ UNLOCKCOM

این دستور برای قفل کردن یا باز کردن یک پورت است.

LOCKOM

اگر VAR3 مساوی با صفر باشد یعنی دستور LOCKCOM پیوسته و بدون در نظر گرفتن زمان TIMEOUT اجرا خواهد شد به عبارتی دو دستور LOCKCOM در برنامه ماکرو همزمان اجرا شده و HMI نخواهد توانست نسبت به دستورات ماکرو پاسخگویی خوبی نشان دهد.

UNLOCKCOM

وقتی دستورات COMPORT برای تنظیمات شبکه و ارتباط در چندین محیط ماکرونویسی در HMI دلتا نوشته می شوند مثلا فرض کنید OPEN/CLOSE SCREEN MACRO،  ON/OFF MACRO و SCREEN CYCLE MACRO، خطا ایجاد می شود بنابراین دستورات LOCKCOM/UNLOCKCOM قبل و بعد از دستورات شبکه باید بنویسید تا در حین اجرای دستورات برنامه وقفه ایجاد نگردد.

  • STATIONCHECK

از این دستور برای بررسی ارتباط برقرار کردن یا برقرار نکردن بین پورت با در نظر گرفتن STATION NUMBER دیوایس ها استفاده می شود.

STATIONCHECK

  • STATIONON

با این دستور می توانید با گرفتن شماره STATION تجهیز و شماره پورت ارتباطی، STATION مدنظرتان را فعال کنید.

STATIONON

نکته: اگر گزینه Comm.interupt —– Then Ignore فعال باشد دستور فوق اجرا نخواهد شد. برای فعال شدن این گزینه باید از منو Option گزینه Communication Setting را انتخاب نموده و گزینه مدنظر را مثل شکل زیر غیر فعال نمایید.

پنجره Communication Setting

 

  • STATIONOFF

با این دستور می توانید با گرفتن شماره STATION تجهیز و شماره پورت ارتباطی، STATION مدنظرتان را غیر فعال کنید.

STATIONOFF

نکته: دقیقا مشابه با دستور قبلی، گزینه Comm.interup—–then ignore را غیر فعال سازید.

  • IPON (IP Address Activate)

این دستور در ماکرونویسی در HMI دلتا، آدرس IP را فعال می کند که برای استفاده از این دستور باید در بخش تنظیمات Communication Setting اول پورت LAN را فعال و سپس گزینه Comm.interup—–then ignor را غیر فعال سازید.

IPON

  • IPOFF (Disable IP Address)

این دستور در ماکرونویسی در HMI دلتا، آدرس IP را غیر فعال می کند که برای استفاده از این دستور باید در بخش تنظیمات Communication Setting اول پورت LAN را فعال و سپس گزینه Comm.interup—–then ignore را غیر فعال سازید.

IPOFF

  • IPCHANGE

با این دستور می توانید IP را تغییر دهید.

IPCHANGE

  • دستورات Drawing

برای ماکرونویسی در HMI دلتا اگر قصد داشته باشید با گرفتن مختصات، ترسیم خاصی انجام دهید از این دستور باید استفاده کنید.

دستورات Drawing

مثال برای ترسیم دایره یا Circle

مثال برای ترسیم دایره یا Circle

Var1 فقط یک رجیستر از حافظه داخلی HMI است. کد مربوط به رنگ ها از جدول Color قابل دسترسی است.

پنجره color

دستورات File Access

دستورات File Access شامل دستور خواندن، نوشتن، ذخیره سازی فایل و غیره است:

  • FileSlotRead

خواندن مقادیر فایل اسلات ها

  • FileSlotWrite

نوشتن در فایل اسلات ها

  • FileSlotRemove

پاک کردن فایل اسلات

  • FileSlotGetLength

دریافت طول فایل اسلات

  • FileSlotExport

ذخیره سازی فایل اسلات روی فلش یا SD Card

  • FileSlotImport

وارد کردن فایل اسلات در برنامه از فلش یا SD Card

مثال برای FileSlotRead/Write

وارد پنجره FileSlot File Management شده و طبق تصویر زیر تنظیمات مدنظر را انجام دهید:

مثال برای FileSlotRead/Write

پنجره Background MACRO را باز کرده و از منو File Access دستور FileSlotRead را انتخاب نموده و مشابه با تصویر زیر آدرس دهی کنید:

پنجره Background MACRO

  • Var1: این متغییر دو مقدار 0 یا 1 را می پذیرد و نشان دهنده موفقیت در انجام عملیات (1) و یا عدم

موفقیت (0) می باشد.

  • Var2: ID مربوط به FileSlot مورد نظر برای خواندن یا نوشتن دیتا در این قسمت باید وارد شود.
  • Var3: آدرس شروع رجیسترهایی که قرار است دیتای فایل ها در آن ها نوشته شوند را در این متغیر

بنویسید.

  • Var4: آدرس شروع فایل اسلات هایی که دیتا آنها خوانده و در رجیسترهای مقصد نوشته می شوند را در این متغیر وارد کنید.
  • Var4: طول دیتاهایی که قرار است خوانده یا نوشته شوند را در این قسمت مشخص کنید.

در پروژه ایجاد شده دو کلید Maintained ایجاد نموده و آدرس 10.0 $ و 10.1$ را به آنها اختصاص می دهد. سپس وارد قسمت Properties از کلیدها شده و در قسمت Details در بخش ON MACRO برنامه های زیر را یادداشت کنید تا امکان خواندن و نوشتن برای FilSlot ها وجود داشته باشد.

با وارد کردن شماره ID مرتبط با FILESOFT و مشخص کردن طول دیتا و زدن دکمه READ/WRITE امکان خواندن یا نوشتن دیتا فراهم می گردد.

دستورات Others

این نوع از دستورات در ماکرونویسی در HMI شامل دستورات مختلفی مثل دستور Delay، دستور استخراج شده Recipe ها، تنظیم زمان و تاریخ داخلی اچ ام ها می باشد.

 

در ادامه توضیحات هر کدام از دستورات تصویر فوق برای ماکرونویسی در HMI دلتا را توضیح می دهیم:

  • برای محاسبه مدت زمان Start Up و ذخیره سازی در Var1 به کار می رود
  • برای نشان دادن کد آخرین خطای سیستم در Var1 استفاده می شود (W/DW – Signed/Unsigned)
  • این دستور، # را در ابتدای خط برنامه قرار می دهد تا آن را به کامنت تبدیل کند.بکگراند ماکرو
  • دستور وقفه، زمان 0 تا 65767 میلی ثانیه را در Var1 بگذارید.
  • DELAY
  • این دستور 7 رجیستر را اشغال کرده و زمان و تاریخ اچ ام آی را نمایش می دهد. آدرس اولین رجیستر در Var1 وارد شود.
  • این دستور برای ماکرونویسی در HMI دلتا برای تنظیم ساعت و تاریخ اچ ام آی است. برای این منظور، زمان و تاریخ مدنظر را در 7 رجیستر با آدرس های پشت سر هم و با ترتیبی که در شکل زیر می بینید ذخیره نموده و آدرس اولین رجیستر را در Var1 قرار دهید.

ماکرونویسی در HMI دلتا برای تنظیم ساعت و تاریخ

  • این دستور برای ایجاد بافر به منظور Data Logging است. آدرس بافر در Var5، طول دیتا در Var1، شماره ID در Var2، تعداد نمونه گیری Var3 یا Sample Number که شماره Sample برای شروع ذخیره کردن دیتاست که نوع ذخیره سازی دیتا در Var6 مشخص می شود. اگر مقدار صفر بگذارید، فقط دیتا ذخیره خواهد شد. اگر می خواهید همزمان دیتا و زمان نمونه گیری ذخیره شود باید مقدار عددی 2 را در Var6 قرار دهید.
  • این دستور برای گزارش دادن به فلش مموری، پرینتر یا SDcard است. اگر عدد صفر بگذارید ذخیره سازی در SDcard خواهد بود اگر عدد یک بگذارید برای فلش مموری و اگر عدد 2 بگذارید برای پرینتر خواهد بود.

دستورات ذخیره سازی یا استخراج Recipe ها

در Var2 نام فایل را مشخص کنید و در Var3 محل ذخیره کردن دیتا و استخراج فایل رسیپی را مشخص نمایید. برای اطمینان از درستی عملکرد یا عدم عملکرد به ترتیب مقدار یک و صفر از Var1 استفاده می گردد.

دستورات EXRCP16/32 برای ذخیره سازی جدول و دستورات IMRCP16/32 برای وارد کردن جدول از فلش یا SDcard استفاده می گردد. اگر از SDcard استفاده می شود مقدار 3 را در Var3 بگذارید ولی اگر از فلش مموری استفاده می کنید مقدار 2 را بگذارید. دستورات IMENRCP و EXENRCP هم مثل دستورات 16 و 32 بیتی عمل کرده و برای Recipe های Enhanced استفاده می شوند.

ماکرونویسی در HMI دلتا سری DOP100

همه دستوراتی که تا اینجا توضیح دادیم برای اچ ام آی های دلتا سری DOP100 هم استفاده می شوند اما چند دستور کاربردی دیگر هم برای تعریف متغیر در برنامه های HMI سری DOP100 وجود دارند که در ادامه توضیح می دهیم:

دستور OPENSCREEN

از این دستور برای باز کردن صفحات HMI استفاده می کنند. به مثال زیر دقت کنید:

دستور OPENSCREEN

در این مثال با زدن کلید M10 صفحه 4 باز می شود.

دستور CLOSESUNSCREEN

از این دستور برای بستن SUB SCREEN ها در برنامه HMI دلتا استفاده می کنند ضمن اینکه برای کنترل SUB SCREEN ها شامل کیبوردهای Custom Defined یا منوها هم قابل استفاده است. به مثال زیر دقت کنید:

پنجره ماکرو command

در برنامه نوشته شده فوق همانطور که مشاهده می کنید اگر مقدار رجیستر D20 معادل با 100 باشد، پنجره SUB SCREEN فعال شماره 10 بسته می شود.

کد برنامه

دستور VAR

در برنامه های ماکرو، گاها پیش می آید که باید یک متغیر یا Variable تعریف کنیم. Var متغیری است که آدرس نمی پذیرد و فقط باید برای آن یک اسم انتخاب کنید. به مثال زیر دقت کنید:

دستور VAR

در برنامه ریز مثال ساده ای از نحوه دستور VAR را می بینید. در این مثال مقدار متغیر DELTA در رجیستر $100 قرار می گیرد.

دستور VAR با متغیر دلتا

استفاده از ساعت و تاریخ HMI در پی ال سی هایی که باتری داخلی ندارند

برای این کار باید در نرم افزار DOPSoft و PLC-HMI شرکت دلتا در قسمت Background Macro مراحل زیر را بروید و GETSYSTEMTIME را انتخاب کنید:

استفاده از ساعت و تاریخ HMI در پی ال سی هایی که باتری داخلی ندارند

همانطور که در شکل زیر می بینید با این دستور امکان قرار دادن مقادیر سال، ماه، روز، چندمین روز هفته، ساعت، دقیقه و ثانیه در رجیسترهایی از HMI وجود دارد.

در این مثال همانطور که مشاهده می کنید ما این مقادیر را ابتدا در حافظه داخلی HMI و از 0$ تا 6$ انتقال دادیم.

حافظه داخلی HMI

بعد با دستور BMOV مقادیر ساعت و تاریخ را از S0 تا S6 را به D100 تا D106 از حافظه PLC انتقال می دهیم:

روش نوشتن دستور BMOV

دستور BMOV

در این مثال ما مقادیر ساعت و تاریخ در رجیسترهای S0 تا S6 از حافظه داخلی اچ ام آی به همراه مقادیر موجود PLC در رجیسترهای D100 تا D106 را در صفحه HMI نمایش می دهیم:

مقادیر PLC در رجیسترهای D100 تا D106 در صفحه HMI

با قرار گرفتن کلید System Date Time در صفحه HMI اپراتور می تواند تاریخ و ساعت را تنظیم کند.

صفحه HMI اپراتور

جمع بندی مطالب

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

3.3/5 - (3 امتیاز)

2 نظر در “آموزش ماکرو نویسی در hmi دلتا با مثال های کاربردی

  1. Avatar of سعيد سعيد گفت:

    مرسي عالي بود

    1. Avatar of آزند آزند گفت:

      سلام و وقت بخیر؛ممنونم از حسن توجه شما آقا سعید.
      می توانید برای بررسی قیمت اچ ام آی دلتا و بویژه بررسی قیمت و خرید اچ ام آی دلتا 7 اینچی به شعبه حضوری آزند اتوماسیون(نمایندگی دلتا در لاله زار) در پاساژ بوشهری لاله زار مراجعه کنید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *