Allen-Bradley Recipe Management with UDT Arrays and an HMI Edit Interface — figure 1

مدیریت دستورالعمل‌های Allen-Bradley با آرایه‌های UDT و رابط ویرایش HMI

یاد بگیرید چگونه با استفاده از آرایه‌های UDT و دستورهای COP برای ذخیره‌سازی پایدار پارامترها، ویرایش دستورالعمل‌های مبتنی بر HMI را در AB Logix 5000 ایجاد کنید.

مدیریت دستورالعمل‌ها در پلتفرم‌های Logix زمانی بهترین عملکرد را دارد که HMI هرگز مستقیماً در آرایه تاریخی بنویسد. یک الگوی پایدار از سه تگ استفاده می‌کند: Recipe_Storage به‌صورت آرایه‌ای از UDT با طول 50، Recipe_Display به‌صورت یک نمونه UDT برای صفحه اپراتور، و Recipe_Index به‌صورت یک DINT که مشخص می‌کند کدام دستورالعمل ذخیره‌شده در ساختار نمایش منعکس شود. دستورالعمل‌های Copy (COP) هنگام تغییر ایندکس و دوباره هنگام ذخیره، داده‌ها را جابه‌جا می‌کنند؛ بنابراین اپراتور همیشه یک بافر موقت را ویرایش می‌کند و آرشیو در چرخه‌های خاموش و روشن شدن برق نیز منسجم باقی می‌ماند.

مدیریت دستورالعمل Allen-Bradley با آرایه‌های UDT و رابط ویرایش HMI — شکل 1 مانیتور تگ Logix که Recipe_Storage[50]، Recipe_Display و Recipe_Index را برای ویرایش دستورالعمل متصل به HMI نشان می‌دهد.

UDT را یک‌بار با تمام نقاط تنظیم موردنیاز فرایند—دماها، زمان‌سنج‌ها، سرعت‌ها، کدهای محصول و ماسک‌های اینترلاک—تعریف کنید؛ سپس Recipe_Storage را به‌صورت همان UDT[50] نمونه‌سازی کنید. Recipe_Display باید دقیقاً از همان نوع UDT باشد، نه مجموعه‌ای با ارتباط سست از تگ‌های اتمی. انواع همگن، محاسبه طول COP را ساده نگه می‌دارند و هنگام افزودن اعضا در آینده از کوتاه‌شدن خاموش داده‌ها جلوگیری می‌کنند.

محدودسازی ایندکس و مسیر بارگذاری

پیش از اجرای هر COP، Recipe_Index را به محدوده شامل 0 تا 49 محدود کنید. ایندکس محدودنشده‌ای که از یک شیء ورود عددی می‌آید، بسته به نحوه مدیریت حدود آرایه در پروژه، ممکن است باعث خطای COP شود یا حافظه تعریف‌نشده‌ای را بخواند. هنگام تغییر صعودی Recipe_Index (یا با فشردن دکمه Load)، Recipe_Storage[Recipe_Index] را در Recipe_Display کپی کنید. HMI باید فقط به اعضای Recipe_Display متصل باشد. همین قاعده واحد، شرایط مسابقه‌ای را که در آن دو صفحه هنگام تنظیم مقادیر توسط اپراتور در خانه‌های متفاوت آرایه می‌نویسند، حذف می‌کند.

// ساختار شبه‌کد
if Recipe_Index < 0 then Recipe_Index := 0;
if Recipe_Index > 49 then Recipe_Index := 49;

if IndexChanged or LoadPressed then
    COP(Recipe_Storage[Recipe_Index], Recipe_Display, 1);

if SavePressed then
    COP(Recipe_Display, Recipe_Storage[Recipe_Index], 1);
مدیریت دستورالعمل Allen-Bradley با آرایه‌های UDT و رابط ویرایش HMI — شکل 2 صفحه دستورالعمل HMI که فقط به Recipe_Display متصل است و اقدامات Load/Save روال‌های COP کنترلر را فعال می‌کنند.

مسیر ذخیره، ماندگاری و رفتار دانلود

هنگام ذخیره، Recipe_Display را دوباره در Recipe_Storage[Recipe_Index] کپی کنید. چون Recipe_Storage در تگ‌های کنترلر قرار دارد، وقتی پروژه برای نگهداری عادی تگ‌ها پیکربندی شده باشد، مقادیر پس از چرخه خاموش و روشن شدن برق حفظ می‌شوند. داده‌ها هنگام دانلود نیز، در صورت انتخاب گزینه حفظ مقادیر تگ، نگه داشته می‌شوند؛ این گزینه را بخشی از SOP دستورالعمل‌ها بدانید، نه یک قابلیت اختیاری. اپراتورها باید بدانند دانلود پروژه با فعال بودن گزینه «مقداردهی مجدد تگ‌ها» (reinitialize tags) تمام دستورالعمل‌های با دقت تنظیم‌شده را پاک می‌کند، مگر اینکه نسخه پشتیبان آفلاین وجود داشته باشد.

در جریان‌های کاری ورود CSV باید با تردید عمل کرد. بسیاری از ابزارهای HMI یا Excel-to-tag نام تگ‌ها را ایجاد می‌کنند، اما مقادیر اعضای داخل UDTهای تو‌در‌تو را به‌طور قابل‌اعتماد به‌روزرسانی نمی‌کنند؛ به‌ویژه زمانی که سربرگ ستون‌ها با نام اعضای UDT تفاوت پیدا کند. یک روال ورود صریح را ترجیح دهید که هر فیلد را اعتبارسنجی کند، یا پس از ویرایش‌های گروهی، داده‌ها را از یک خروجی شناخته‌شده و معتبر L5X/تگ دوباره بارگذاری کنید. تصور نکنید نمایش پیام سبز «ورود کامل شد» به این معناست که اکنون Recipe_Storage[n].Setpoint برابر با سلول صفحه‌گسترده است.

تگ نوع اتصال به HMI؟ کاربرد
Recipe_Storage UDT[50] خیر آرشیو غیرفرار دستورالعمل‌ها
Recipe_Display UDT فقط بله بافر ویرایش اپراتور
Recipe_Index DINT بله (انتخاب‌گر) خانه فعال 0–49

راهنمای رابط HMI

  • Load و Save را به‌صورت بیت‌های لحظه‌ای مجزا ارائه کنید که در کنترلر مدیریت می‌شوند، نه به‌صورت نوشتن مستقیم در آرایه از پنل.
  • ایندکس محدودشده و یک فیلد فقط‌خواندنی با عنوان «نام ذخیره‌شده» را که از UDT نمایش کپی شده است نشان دهید تا اپراتورها از فعال بودن خانه درست مطمئن شوند.
  • وقتی دستگاه در چرخه است و اعضای دستورالعمل می‌توانند نقاط تنظیم حرکت یا حرارتی را در میانه بچ تغییر دهند، Save را غیرفعال کنید.
  • رویدادهای Save را همراه با شناسه اپراتور و ایندکس برای قابلیت ردیابی در خطوط تحت مقررات ثبت کنید.

اعتبارسنجی حدود ایندکس و دانلودهای حفظ‌شده

آزمایش را با بارگذاری خانه 0، ویرایش یک مقدار شاخص در Recipe_Display، ذخیره، تغییر ایندکس به 1، سپس بازگشت به 0 و بارگذاری دوباره انجام دهید. مقدار شاخص باید فقط در صورتی دوباره ظاهر شود که Save اجرا شده باشد. کنترلر را خاموش و روشن کنید و مطمئن شوید Recipe_Storage همچنان مقدار شاخص را دارد. از HMI یک ایندکس خارج از محدوده وارد کنید و عملکرد محدودسازی را بررسی کنید. ورود CSV را روی یک سیستم آزمایشی امتحان کنید و پیش از اعتماد به این مسیر در محیط تولید، اعضا را موردبه‌مورد با فایل مقایسه کنید.

از اتصال پنل به Recipe_Storage[Recipe_Index].Member خودداری کنید. آدرس‌دهی غیرمستقیم HMI به آرایه‌ها ممیزی دشوارتری دارد و هنگامی که تگ ایندکس و صفحه با نرخ‌های متفاوت به‌روزرسانی می‌شوند، احتمال نوشتن در خانه اشتباه را افزایش می‌دهد. الگوی UDT نمایش، هنگام گسترش UDT، افزودن سطوح امنیتی یا انتقال همین مدل دستورالعمل میان چندین سلول PLC و PAC که جریان کاری مشترکی برای اپراتور دارند، به‌راحتی مقیاس‌پذیر است.

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

مارک تاونسند | مهندس ارشد اتوماسیون – سیستم‌های Allen-Bradley

مارک تاونسند مهندس ارشد اتوماسیون است و بیش از 18 سال روی پلتفرم‌های Allen-Bradley، شامل ControlLogix، CompactLogix و SLC-500 قدیمی، تجربه دارد. فعالیت روزمره او راه‌اندازی منطق RSLogix / Studio 5000 و HMI نرم‌افزار FactoryTalk View در ناوگان‌های قدیمی و ترکیبی است.

مدیریت دستورالعمل‌های Allen-Bradley با آرایه‌های UDT و رابط ویرایش HMI

یاد بگیرید چگونه با استفاده از آرایه‌های UDT و دستورهای COP برای ذخیره‌سازی پایدار پارامترها، ویرایش دستورالعمل‌های مبتنی بر HMI را در AB Logix 5000 ایجاد کنید.

مدیریت دستورالعمل‌ها در پلتفرم‌های Logix زمانی بهترین عملکرد را دارد که HMI هرگز مستقیماً در آرایه تاریخی بنویسد. یک الگوی پایدار از سه تگ استفاده می‌کند: Recipe_Storage به‌صورت آرایه‌ای از UDT با طول 50، Recipe_Display به‌صورت یک نمونه UDT برای صفحه اپراتور، و Recipe_Index به‌صورت یک DINT که مشخص می‌کند کدام دستورالعمل ذخیره‌شده در ساختار نمایش منعکس شود. دستورالعمل‌های Copy (COP) هنگام تغییر ایندکس و دوباره هنگام ذخیره، داده‌ها را جابه‌جا می‌کنند؛ بنابراین اپراتور همیشه یک بافر موقت را ویرایش می‌کند و آرشیو در چرخه‌های خاموش و روشن شدن برق نیز منسجم باقی می‌ماند.

مدیریت دستورالعمل Allen-Bradley با آرایه‌های UDT و رابط ویرایش HMI — شکل 1 مانیتور تگ Logix که Recipe_Storage[50]، Recipe_Display و Recipe_Index را برای ویرایش دستورالعمل متصل به HMI نشان می‌دهد.

UDT را یک‌بار با تمام نقاط تنظیم موردنیاز فرایند—دماها، زمان‌سنج‌ها، سرعت‌ها، کدهای محصول و ماسک‌های اینترلاک—تعریف کنید؛ سپس Recipe_Storage را به‌صورت همان UDT[50] نمونه‌سازی کنید. Recipe_Display باید دقیقاً از همان نوع UDT باشد، نه مجموعه‌ای با ارتباط سست از تگ‌های اتمی. انواع همگن، محاسبه طول COP را ساده نگه می‌دارند و هنگام افزودن اعضا در آینده از کوتاه‌شدن خاموش داده‌ها جلوگیری می‌کنند.

محدودسازی ایندکس و مسیر بارگذاری

پیش از اجرای هر COP، Recipe_Index را به محدوده شامل 0 تا 49 محدود کنید. ایندکس محدودنشده‌ای که از یک شیء ورود عددی می‌آید، بسته به نحوه مدیریت حدود آرایه در پروژه، ممکن است باعث خطای COP شود یا حافظه تعریف‌نشده‌ای را بخواند. هنگام تغییر صعودی Recipe_Index (یا با فشردن دکمه Load)، Recipe_Storage[Recipe_Index] را در Recipe_Display کپی کنید. HMI باید فقط به اعضای Recipe_Display متصل باشد. همین قاعده واحد، شرایط مسابقه‌ای را که در آن دو صفحه هنگام تنظیم مقادیر توسط اپراتور در خانه‌های متفاوت آرایه می‌نویسند، حذف می‌کند.

// ساختار شبه‌کد
if Recipe_Index < 0 then Recipe_Index := 0;
if Recipe_Index > 49 then Recipe_Index := 49;

if IndexChanged or LoadPressed then
    COP(Recipe_Storage[Recipe_Index], Recipe_Display, 1);

if SavePressed then
    COP(Recipe_Display, Recipe_Storage[Recipe_Index], 1);
مدیریت دستورالعمل Allen-Bradley با آرایه‌های UDT و رابط ویرایش HMI — شکل 2 صفحه دستورالعمل HMI که فقط به Recipe_Display متصل است و اقدامات Load/Save روال‌های COP کنترلر را فعال می‌کنند.

مسیر ذخیره، ماندگاری و رفتار دانلود

هنگام ذخیره، Recipe_Display را دوباره در Recipe_Storage[Recipe_Index] کپی کنید. چون Recipe_Storage در تگ‌های کنترلر قرار دارد، وقتی پروژه برای نگهداری عادی تگ‌ها پیکربندی شده باشد، مقادیر پس از چرخه خاموش و روشن شدن برق حفظ می‌شوند. داده‌ها هنگام دانلود نیز، در صورت انتخاب گزینه حفظ مقادیر تگ، نگه داشته می‌شوند؛ این گزینه را بخشی از SOP دستورالعمل‌ها بدانید، نه یک قابلیت اختیاری. اپراتورها باید بدانند دانلود پروژه با فعال بودن گزینه «مقداردهی مجدد تگ‌ها» (reinitialize tags) تمام دستورالعمل‌های با دقت تنظیم‌شده را پاک می‌کند، مگر اینکه نسخه پشتیبان آفلاین وجود داشته باشد.

در جریان‌های کاری ورود CSV باید با تردید عمل کرد. بسیاری از ابزارهای HMI یا Excel-to-tag نام تگ‌ها را ایجاد می‌کنند، اما مقادیر اعضای داخل UDTهای تو‌در‌تو را به‌طور قابل‌اعتماد به‌روزرسانی نمی‌کنند؛ به‌ویژه زمانی که سربرگ ستون‌ها با نام اعضای UDT تفاوت پیدا کند. یک روال ورود صریح را ترجیح دهید که هر فیلد را اعتبارسنجی کند، یا پس از ویرایش‌های گروهی، داده‌ها را از یک خروجی شناخته‌شده و معتبر L5X/تگ دوباره بارگذاری کنید. تصور نکنید نمایش پیام سبز «ورود کامل شد» به این معناست که اکنون Recipe_Storage[n].Setpoint برابر با سلول صفحه‌گسترده است.

تگ نوع اتصال به HMI؟ کاربرد
Recipe_Storage UDT[50] خیر آرشیو غیرفرار دستورالعمل‌ها
Recipe_Display UDT فقط بله بافر ویرایش اپراتور
Recipe_Index DINT بله (انتخاب‌گر) خانه فعال 0–49

راهنمای رابط HMI

  • Load و Save را به‌صورت بیت‌های لحظه‌ای مجزا ارائه کنید که در کنترلر مدیریت می‌شوند، نه به‌صورت نوشتن مستقیم در آرایه از پنل.
  • ایندکس محدودشده و یک فیلد فقط‌خواندنی با عنوان «نام ذخیره‌شده» را که از UDT نمایش کپی شده است نشان دهید تا اپراتورها از فعال بودن خانه درست مطمئن شوند.
  • وقتی دستگاه در چرخه است و اعضای دستورالعمل می‌توانند نقاط تنظیم حرکت یا حرارتی را در میانه بچ تغییر دهند، Save را غیرفعال کنید.
  • رویدادهای Save را همراه با شناسه اپراتور و ایندکس برای قابلیت ردیابی در خطوط تحت مقررات ثبت کنید.

اعتبارسنجی حدود ایندکس و دانلودهای حفظ‌شده

آزمایش را با بارگذاری خانه 0، ویرایش یک مقدار شاخص در Recipe_Display، ذخیره، تغییر ایندکس به 1، سپس بازگشت به 0 و بارگذاری دوباره انجام دهید. مقدار شاخص باید فقط در صورتی دوباره ظاهر شود که Save اجرا شده باشد. کنترلر را خاموش و روشن کنید و مطمئن شوید Recipe_Storage همچنان مقدار شاخص را دارد. از HMI یک ایندکس خارج از محدوده وارد کنید و عملکرد محدودسازی را بررسی کنید. ورود CSV را روی یک سیستم آزمایشی امتحان کنید و پیش از اعتماد به این مسیر در محیط تولید، اعضا را موردبه‌مورد با فایل مقایسه کنید.

از اتصال پنل به Recipe_Storage[Recipe_Index].Member خودداری کنید. آدرس‌دهی غیرمستقیم HMI به آرایه‌ها ممیزی دشوارتری دارد و هنگامی که تگ ایندکس و صفحه با نرخ‌های متفاوت به‌روزرسانی می‌شوند، احتمال نوشتن در خانه اشتباه را افزایش می‌دهد. الگوی UDT نمایش، هنگام گسترش UDT، افزودن سطوح امنیتی یا انتقال همین مدل دستورالعمل میان چندین سلول PLC و PAC که جریان کاری مشترکی برای اپراتور دارند، به‌راحتی مقیاس‌پذیر است.

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

مارک تاونسند | مهندس ارشد اتوماسیون – سیستم‌های Allen-Bradley

مارک تاونسند مهندس ارشد اتوماسیون است و بیش از 18 سال روی پلتفرم‌های Allen-Bradley، شامل ControlLogix، CompactLogix و SLC-500 قدیمی، تجربه دارد. فعالیت روزمره او راه‌اندازی منطق RSLogix / Studio 5000 و HMI نرم‌افزار FactoryTalk View در ناوگان‌های قدیمی و ترکیبی است.

یک نظر بگذارید

لطفاً توجه داشته باشید که نظرات باید قبل از انتشار تأیید شوند.