آموزش ماکرو نویسی در 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، Maintained و Momentary اجرا می گردند. مثلا اگر کلید روشن شود، فرمان ON Macro، اگر کلید خاموش شود OFF Macro، اجرا خواهد شد. از طرفی فقط در حالتی که کلیدها تغییر وضعیت از حالت ON یا OFF داشته باشند، دستورات ماکرو اجرا می گردند.
دستور Before Execute Macro
این حالت برای همه کلیدها و المان های ورودی قابل اجراست و با تغییر وضعیت کلید به خاموش یا روشن یا تغییر المان ورودی، ابتدا دستور Before Execute Macro اجرا می گردد. از طرفی ON/OFF و Before/After در قسمت Properties کلیدها یا باتن ها قابل دسترسی هستند.
دستور After Execute Macro
این کد برای همه کلیدها و المان های ورودی قابل اجراست و با تغییر وضعیت کلید به خاموش یا روشن یا تغییر المان ورودی، بعد از اعمال شدن تغییرات، ابتدا دستور After Execute Macro اجرا می گردد.
دستور Screen Open Macro
یکی دیگر از فرمان های ماکرونویسی در HMI دلتا که به محض باز شدن صفحه اجرا می شود. برای دسترسی به این دستور به شکل زیر عمل کنید:
بنابراین وقتی HMI کار می کند، برای هر صفحه ای که چنین برنامه ای نوشته باشید، دستورات آن اجرا خواهند شد:
فرمان Screen Closed Macro
برای نوشتن این دستور می توانید طبق تصویر بالایی وارد منو Screen شده و گزینه Screen Close Macro را انتخاب کنید و برنامه مدنظرتان را بنویسید. هر بار که صفحه ای که این دستور را برای آن نوشته اید را ببندید و وارد صفحه دیگری شوید، اجرا خواهد شد.
دستور Screen Cycle Macro
نمونه دیگری از کدهای ماکرونویسی در HMI دلتا که از همان منو Screen مطابق تصویر، می توانید دسترسی پیدا کنید. هر صفحه ای که در برنامه DOPSoft ایجاد کنید همه محیط های ماکرونویسی Screen Open/Close/Cycle Macro را خواهد داشت.
مدت زمان تأخیری که در تنظیمات مشخص می کنید تعیین می کند که پس از طی شدن چه مدت زمانی از باز شدن صفحه، دستورات اجرا شوند. دو بار روی صفحه کلیک کنید تا پنجره Screen Properties باز شود. سپس در قسمت Macro Cycle Time زمان تأخیر اجرای این برنامه را مشخص نمایید که به طور پیش فرض 100 میلی ثانیه است.
شکل زیر به شما نشان می دهد که شیوه عملکرد و ترتیب اجرایی برنامه های Screen Open/Close/Cycle Macro چگونه است:
دستور Sub-macro
برای دسترسی به پنجره ساب ماکرو جهت ماکرونویسی در HMI دلتا، از قسمت Option طبق شکل زیر وارد شوید:
که طبق شکل زیر پنجره ای باز خواهد شد:
طبق پنجره باز شده شما می توانید از 512 مدل ساب ماکرو استفاده کرده و برنامه های پر تکرار را بنویسید. برای فراخوانی هر ساب ماکرو از شماره آنها کمک بگیرید یا در قسمت Alias هر دستور ساب ماکرو را نامگذاری کنید که حداکثر 64 کاراکتر است. اگر قصد دارید داخل برنامه اصلی، دستورات Sub-macro را فراخوانی کنید، باید از دستور CALL کمک بگیرید که مطابق شکل زیر است:
برای اینکه از برنامه محافظت کنید امکان رمزگذاری روی هر ساب ماکرو وجود دارد. برای این کار قسمت Protection را فعال کرده و در پنجره باز شده، رمز عبور خودتان را وارد کنید:
اگر قصد داشتید بعد مجددا برنامه را ببینید یا دستور ساب ماکرو را ویرایش کنید، باید رمزی که گذاشته اید را وارد کنید. حتی برای غیر فعال کردن پسورد هم باید تیک گزینه Protection را بردارید که لازمه آن وارد کردن پسورد است.
نکته 1: اگر روی Sub Macro ها پسورد بگذارید نخواهید توانست برای آنها از قابلیت های Find و Replace در منو Edit برای آنها استفاده کنید. مثلا فرض آدرس 100$ در برنامه ساب ماکرو رمزگذاری شده باشد، در این حالت امکان پیدا کردن آن با دستور Find یا جایگزین کردن با دستور Replace وجود نخواهد داشت و با پیغام های زیر مواجه خواهید شد:
نکته 2: در صورتی که در پنجره Communication Setting پورت ارتباط یا Station Number را تغییر دهید در ساب ماکروها پسورد دار، امکان اینکه به شکل اتوماتیک، آدرس های بکار برده شده را تغییر دهید وجود نخواهد داشت. مثلا اگر ارتباط HMI با پی ال سی را از کام 2 به کام 3 تغییر دهید، آدرس هایی که با لینک 2 در ساب ماکرو استفاده کرده باشید، اتوماتیک به لینک 3 تغییر پیدا نمی کنند. در تصویر زیر دقیق مشاهده می کنید:
نکته 3: اگر بخواهید ساب ماکرو رمزگذاری شده را در برنامه اصلی فراخوانی کنید، بعد از اینکه دستور CALL را نوشتید باید رمز مربوط به ساب ماکرو هم وارد کنید:
دستور Initial Macro
در ماکرونویسی HMI دلتا برای اینکه به این دستور دسترسی پیدا کنید باید وارد منو Option شوید؛ مطابق شکل زیر:
با این ماکرو نویسی اچ ام آی دلتا می توانید مقدار دهی اولیه یا Initialize را انجام دهید. بعد از اینکه اچ ام آی شروع به کار می کند در Startup یا روشن شدن، اولین دستورات اجرایی ماکرو همین دستور خواهد بود. در شکل زیر ترتیب اجرای دستورات ماکرو به دقت نشان داده شده اند:
دستور Background Macro
برای دسترسی پیدا کردن به این دستور باید طبق شکل زیر وارد منو Options شوید:
این دستورات در طی عملکرد HMI پیوسته اجرا شده و دوباره می توانند بعد از اجرای آخرین دستور، اجرا شوند. حداکثر امکان نوشتن 512 خط دستور را دارید و با مشخص کردن مقدار Background macro update cycle می توانید تعداد خطوط اجرایی در هر سیکل را با عددی بین 1 تا 512 مشخص کنید.
در این فرمان ترتیب اجرای دستورات خیلی مهم است چون اجرای خطوط برنامه به شکل یکجا و همزمان نیست. مثلا فرض کنیم 10 المان روی صفحه اچ ام آی قرار دارند و در بخش Background Macro شش خط دستور نوشته باشید و مقدار خطوط Background Macro Update Cycle را 3 عدد مشخص کرده باشید. شیوه عملکرد و تأثیر این دستور در برنامه مشابه تصویر زیر است:
مورد بالا بدین معنی است که در هر بار Update Cycle فقط تعداد خطوطی که در Background Macro Update Cycle مشخص کرده ایم اجرا خواهند شد.
دستور Clock Macro
در ماکرونویسی HMI دلتا برای پیوسته اجرا شدن دستورات در طی عملکرد HMI می توانید از این دستور هم استفاده کنید که از منو Option قابل دسترسی است:
فرق مهم این دستور با قبلی در این است که برخلاف آن دستورات از خط اول تا آخر در هر سیکل اجرا شده و نیاز نیست تعداد خطوط اجرایی را در هر سیکل مشخص کنید. اجرای دستورات مثل Screen Cycle Macro برحسب Clock Macro Delay Time خواهد بود:
نکته: در دستور Clock Macro امکان اولویت بندی (Priority) در سه سطح Low، Medium و High وجود دارد که با مشخص کردن آن زمان دقیق تأخیر یا Delay در برنامه تعیین خواهد شد:
شکل زیر فلوچارت اجرای دستور Clock Macro را نشان می دهد:
پنجره ماکرونویسی در HMI دلتا
بعد از اینکه نوع ماکرو را طبق آموزش قبلی انتخاب کردید، پنجره ای شبیه به تصویر زیر خواهید دید. هر ماکرو قابلیت نوشتن کد تا 512 خط را دارد که هر خط تا 640 بابت کاراکتر ظرفیت دارد. اگر خواستید ماکروهای نوشته شده را ویرایش کنید در همین پنجره کافیست نور ماکرور را انتخاب نموده و وارد فضای ویرایش شوید:
نوار ابزار پنجره ماکرونویسی
گزینه ها و دستورات نوار ابزار پنجره ماکرو نویسی در HMI دلتا در تصویر مشخص است که به ترتیب از راست به چپ برای کارهای زیر استفاده می شوند:
- باز کردن برنامه های ماکرو با فرمت .txt و .mro
- ذخیره سازی برنامه های ماکرو با فرمت .txt
- دانلود برنامه های نوشته شده یا ویرایش شده
اگر گزینه Yes را بزنید علاوه بر اینکه برنامه های ماکرو بروزرسانی می شوند، کد های نوشته شده هم بررسی شده و اگر درست نباشند پیام زیر را خواهید دید:
- دستورات لازم برای ویرایش کردن، بریدن یا کپی کردن برنامه
- بررسی درستی برنامه نویسی دستورات
روش دیگری که برای صحت سنجی وجود دارد، کامپایل کردن برنامه نوشته شده در نرم افزار DOPSoft ست که برای این منظور طبق تصویر زیر از منو Tools وارد بخش Compile یا Rebuild All شوید:
- این گزینه Macro Wizard است که پنجره برنامه نویسی برای استفاده راحتتر می باشد:
همانطور که در جدول زیر مشاهده می کنید، دیتا در ماکرو نویسی به چند شکل است: 16 بیتی (Word)، 32 بیتی (Double Word) و علامت دار (Signed) یا بدون علامت (Unsigned).
دستورات ماکرونویسی در HMI دلتا در بخش Command
هر یک از فرمان هایی که در بخش Command وجود دارند، متغیرها و پارامترهای مورد نیاز برای دستور را نشان خواهد داد که متناسب با برنامه ای که مدنظر دارید باید تکمیل شوند:
مثلا تصویر زیر نشان می دهد که از دستور IF استفاده شده است:
11 دسته از دستورات در پنجره Command
بررسی جامع دستورات ماکرو نویسی در HMI دلتا
دستورات 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 منطقی دو متغیر
&&: نتیجه AND منطقی دو متغیر
^ : نتیجه XOR منطقی دو متغیر
NOT: نتیجه NOT منطقی یک متغیر
<< : این تابع بیت های کم ارزش یک رجیستر را به سمت بیت های با ارزش شیفت می دهد (شیف به
سمت چپ). تعداد بیت برای شیفت در Var3 تنظیم می شود.
>> : این تابع بیت های با ارزش یک رجیستر را به سمت بیت های کم ارزش شیفت می دهد (شیفت به
سمت راست). تعداد بیت برای شیفت در Var3 تنظیم می شود.
مثال برای &&
AND منطقی دو متغیر با هم
دستورات Data Transfer
این دستورات برای ماکرونویسی در HMI دلتا برای جابجایی یک یا چندین رجیستر است:
- MOV
برای انتقال دیتا یک یا دو رجیستر به یک یا دو رجیستر دیگر. دیتا می تواند به صورت Signed یا Unsigned باشد.
- BMOV
برای انتقال دیتا به صورت 16بیتی یا یک رجیستری به چندین رجیستر به طور همزمان.
- ArrayCopy
برای انتقال تعدادی رجسیتر یا یک Array به تعدادی رجیستر دیگر یا یک Array دیگر.
- FILL
دیتا Var2 را در رشته ای که آدرس آن در Var1 قرار داده شده است ذخیره می کند. طول دیتا در این دستور در Var3 مشخص می شود.
- FILLASC
این دستور دیتا یک رشته را به کد اسکی هگز کاراکتر ها تبدیل می کند.
- STRCAT
دیتا یک رشته را که آدرس آن در Var3 و طول آن در Var4 مشخص می شود را به یک رشته دیگر که آدرس آن در Var2 مشخص شده، منتقل می کند. Var1 وضعیت عملکرد دستور را مشخص می کند. در صورتی که در عملکرد دستور مشکلی نباشد عدد یک در Var مشخص می شود.
- FMOV
برای جابجایی دیتا به صورت اعشاری مورد استفاده قرار می گیرد. در دستورات قبلی دیتا به صورت اعداد صحیح است.
مثال BMOV
با این دستور تعدادی رجیستر جابجا می شوند:
مثال MOV
مثلا فرش کنید یک پی ال سی و یک کنترلر دما DTC1000 در شبکه مدباس RS485 دارید. در این شبکه باید HMI به عنوان MASTER انتخاب شود و برای انتقال دیتا DTC1000 به پی ال سی از دستور MOV در ماکرو استفاده کنید. بنابراین با دستور MOV ماکرونویسی، دیتا DTC1000 به کمک HMI به PLC منتقل شده و از این اطلاعات در برنامه پی ال سی استفاده خواهید کرد.
دستورات Data Conversion
این دستورات کار تبدیل اعداد 16 بیتی به 32 بیتی و تبدیل فرمت های اسکی، اعشاری، BCD، هگز، باینری و غیره را انجام می دهند:
- 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 استفاده کرده ایم:
در صورتی که شرط برقرار بود و کلید XO روشن باشد، برنامه به LABEL 1 پرش کرده و دستورانی که در آن نوشته شده را اجرا خواهد کرد.
نکته: با # در ابتدای خط برنامه می توانید کامنت یا توضیحاتی که مدنظر دارید را در برنامه بنویسید.
در دستور LABEL باید اسم برای آن انتخاب کنید تا نام LABEL مدنظر را در دستور GOTO برای پرش به دستورات لیبل مدنظر بنویسید.
نکته: اسم لیبل فقط به شکل عددی است.
دستورات Bit Setting
در این مدل از دستورات ماکرونویسی در HMI دلتا، 4 دستور برای اعمال در بیت ها داریم که به کمک آنها امکان صفر کردن مقدار یک بیت (OFF)، یک (ON) یا معکوس کردن و یا نمایش مقدار یک بیت وجود دارد. ورودی VAR1 فقط آدرس یک بیت را می پذیرد.
- BITON
یک بیت را روشن یا یک می کند.
- BITOFF
یک بیت را خاموش یا صفر می کند.
- BITNOT
مقدار بیت را معکوس کرده، صفر را یک و یک را صفر می کند.
- GETB
یک بیت از یک رجیستر را می گیرد و در VAR1 ذخیره می سازد.
مثال برای BITON
در برنامه ای که در شکل زیر نوشته شده معنای آن این است که اگر محتوای رجیستر D20 بزرگتر یا مساوی 100 بود، بیت X4 روشن شود و اگر شرط برقرار نشد، بیت X4 روشن نشود.
دستورات COM Port
برای اعمال کردن تنظیمات روی پورت های HMI باید از این دستورات به منظور ماکرونویسی در HMI دلتا استفاده کنید:
- INITCOM (Initialization COM)
تنظیمات شبکه روی پورت ها COM3, COM2, COM1 که شامل Buad rate، طول دیتا، بیت استاپ و غیره است می باشد.
- ADDSUM
برای ذخیره سازی مجموع چند رجیستر در یک رجیستر. Data Length همان تعداد بایت است.
- XORSUM
مجموع عملیات XOR روی چندین رجیستر را ذخیره سازی می کند.
- PUTCHARS
دستور ارسال دیتاست که در کنار دستورات INITCOM و SELECTCOM استفاده می شود:
- GETCHARS
دستور دریافت دیتاست که در کنار دستورات INITCOM و SELECTCOM استفاده می شود:
- SELECTCOM
برای انتخاب پورت COM به کار می رود و در کنار دستور INITCOM استفاده می گردد.
- CLEARCOMBUFFER
با مشخص سازی پورت، بافر ارسال یا دریافت دیتا را پاک سازی می کند. متغیرهای این دستور فقط شامل اعداد ثابت هستند.
- CHECKSUM
با دریافت یک رشته، مجموع آن توسط این دستور محاسبه شده و در بافر CHECKSUM ذخیره می گردد.
- LOCKOM/ UNLOCKCOM
این دستور برای قفل کردن یا باز کردن یک پورت است.
اگر VAR3 مساوی با صفر باشد یعنی دستور LOCKCOM پیوسته و بدون در نظر گرفتن زمان TIMEOUT اجرا خواهد شد به عبارتی دو دستور LOCKCOM در برنامه ماکرو همزمان اجرا شده و HMI نخواهد توانست نسبت به دستورات ماکرو پاسخگویی خوبی نشان دهد.
وقتی دستورات COMPORT برای تنظیمات شبکه و ارتباط در چندین محیط ماکرونویسی در HMI دلتا نوشته می شوند مثلا فرض کنید OPEN/CLOSE SCREEN MACRO، ON/OFF MACRO و SCREEN CYCLE MACRO، خطا ایجاد می شود بنابراین دستورات LOCKCOM/UNLOCKCOM قبل و بعد از دستورات شبکه باید بنویسید تا در حین اجرای دستورات برنامه وقفه ایجاد نگردد.
- STATIONCHECK
از این دستور برای بررسی ارتباط برقرار کردن یا برقرار نکردن بین پورت با در نظر گرفتن STATION NUMBER دیوایس ها استفاده می شود.
- STATIONON
با این دستور می توانید با گرفتن شماره STATION تجهیز و شماره پورت ارتباطی، STATION مدنظرتان را فعال کنید.
نکته: اگر گزینه Comm.interupt —– Then Ignore فعال باشد دستور فوق اجرا نخواهد شد. برای فعال شدن این گزینه باید از منو Option گزینه Communication Setting را انتخاب نموده و گزینه مدنظر را مثل شکل زیر غیر فعال نمایید.
- STATIONOFF
با این دستور می توانید با گرفتن شماره STATION تجهیز و شماره پورت ارتباطی، STATION مدنظرتان را غیر فعال کنید.
نکته: دقیقا مشابه با دستور قبلی، گزینه Comm.interup—–then ignore را غیر فعال سازید.
- IPON (IP Address Activate)
این دستور در ماکرونویسی در HMI دلتا، آدرس IP را فعال می کند که برای استفاده از این دستور باید در بخش تنظیمات Communication Setting اول پورت LAN را فعال و سپس گزینه Comm.interup—–then ignor را غیر فعال سازید.
- IPOFF (Disable IP Address)
این دستور در ماکرونویسی در HMI دلتا، آدرس IP را غیر فعال می کند که برای استفاده از این دستور باید در بخش تنظیمات Communication Setting اول پورت LAN را فعال و سپس گزینه Comm.interup—–then ignore را غیر فعال سازید.
- IPCHANGE
با این دستور می توانید IP را تغییر دهید.
- دستورات Drawing
برای ماکرونویسی در HMI دلتا اگر قصد داشته باشید با گرفتن مختصات، ترسیم خاصی انجام دهید از این دستور باید استفاده کنید.
مثال برای ترسیم دایره یا Circle
Var1 فقط یک رجیستر از حافظه داخلی HMI است. کد مربوط به رنگ ها از جدول Color قابل دسترسی است.
دستورات File Access
دستورات File Access شامل دستور خواندن، نوشتن، ذخیره سازی فایل و غیره است:
- FileSlotRead
خواندن مقادیر فایل اسلات ها
- FileSlotWrite
نوشتن در فایل اسلات ها
- FileSlotRemove
پاک کردن فایل اسلات
- FileSlotGetLength
دریافت طول فایل اسلات
- FileSlotExport
ذخیره سازی فایل اسلات روی فلش یا SD Card
- FileSlotImport
وارد کردن فایل اسلات در برنامه از فلش یا SD Card
مثال برای FileSlotRead/Write
وارد پنجره FileSlot File Management شده و طبق تصویر زیر تنظیمات مدنظر را انجام دهید:
پنجره Background MACRO را باز کرده و از منو File Access دستور FileSlotRead را انتخاب نموده و مشابه با تصویر زیر آدرس دهی کنید:
- 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 بگذارید.
- این دستور 7 رجیستر را اشغال کرده و زمان و تاریخ اچ ام آی را نمایش می دهد. آدرس اولین رجیستر در Var1 وارد شود.
- این دستور برای ماکرونویسی در HMI دلتا برای تنظیم ساعت و تاریخ اچ ام آی است. برای این منظور، زمان و تاریخ مدنظر را در 7 رجیستر با آدرس های پشت سر هم و با ترتیبی که در شکل زیر می بینید ذخیره نموده و آدرس اولین رجیستر را در Var1 قرار دهید.
- این دستور برای ایجاد بافر به منظور 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 استفاده می کنند. به مثال زیر دقت کنید:
در این مثال با زدن کلید M10 صفحه 4 باز می شود.
دستور CLOSESUNSCREEN
از این دستور برای بستن SUB SCREEN ها در برنامه HMI دلتا استفاده می کنند ضمن اینکه برای کنترل SUB SCREEN ها شامل کیبوردهای Custom Defined یا منوها هم قابل استفاده است. به مثال زیر دقت کنید:
در برنامه نوشته شده فوق همانطور که مشاهده می کنید اگر مقدار رجیستر D20 معادل با 100 باشد، پنجره SUB SCREEN فعال شماره 10 بسته می شود.
دستور VAR
در برنامه های ماکرو، گاها پیش می آید که باید یک متغیر یا Variable تعریف کنیم. Var متغیری است که آدرس نمی پذیرد و فقط باید برای آن یک اسم انتخاب کنید. به مثال زیر دقت کنید:
در برنامه ریز مثال ساده ای از نحوه دستور VAR را می بینید. در این مثال مقدار متغیر DELTA در رجیستر $100 قرار می گیرد.
استفاده از ساعت و تاریخ HMI در پی ال سی هایی که باتری داخلی ندارند
برای این کار باید در نرم افزار DOPSoft و PLC-HMI شرکت دلتا در قسمت Background Macro مراحل زیر را بروید و GETSYSTEMTIME را انتخاب کنید:
همانطور که در شکل زیر می بینید با این دستور امکان قرار دادن مقادیر سال، ماه، روز، چندمین روز هفته، ساعت، دقیقه و ثانیه در رجیسترهایی از HMI وجود دارد.
در این مثال همانطور که مشاهده می کنید ما این مقادیر را ابتدا در حافظه داخلی HMI و از 0$ تا 6$ انتقال دادیم.
بعد با دستور BMOV مقادیر ساعت و تاریخ را از S0 تا S6 را به D100 تا D106 از حافظه PLC انتقال می دهیم:
در این مثال ما مقادیر ساعت و تاریخ در رجیسترهای S0 تا S6 از حافظه داخلی اچ ام آی به همراه مقادیر موجود PLC در رجیسترهای D100 تا D106 را در صفحه HMI نمایش می دهیم:
با قرار گرفتن کلید System Date Time در صفحه HMI اپراتور می تواند تاریخ و ساعت را تنظیم کند.
جمع بندی مطالب
در این مطلب تلاش کردیم تا به طور کامل و جامع ماکرونویسی در HMI دلتا را توضیح دهیم تا هر نوع دستوری که در اچ ام آی های مختلف نیاز داشتید بتوانید از آن استفاده کنید. آزند اتوماسیون به عنوان نماینده رسمی محصولات شرکت دلتا در تهران و مشهد، با تامین و پشتیبانی تجهیزات اتوماسیون صنعتی، آماده ارائه مشاوره های تخصصی و فروش محصولات HMI دلتا به شما مشتریان عزیز در سراسر کشور می باشد.اگر آموزش های تکمیلی تر در مورد HMI دلتا نیاز داشتید می توانید به مقاله آلارم نویسی در HMI DELTA مراجعه کنید.
مرسي عالي بود
سلام و وقت بخیر؛ممنونم از حسن توجه شما آقا سعید.
می توانید برای بررسی قیمت اچ ام آی دلتا و بویژه بررسی قیمت و خرید اچ ام آی دلتا 7 اینچی به شعبه حضوری آزند اتوماسیون(نمایندگی دلتا در لاله زار) در پاساژ بوشهری لاله زار مراجعه کنید.