UDT массивтері және HMI өңдеу интерфейсі бар Allen-Bradley рецептілерін басқару
UDT массивтері мен COP нұсқауларын пайдаланып, параметрлерді тұрақты сақтауға арналған AB Logix 5000 жүйесінде HMI негізіндегі рецепт өңдеуді жасауды үйреніңіз.
Logix платформаларында рецепттерді басқару HMI-дің тарихи массивке ешқашан тікелей жазбаған жағдайда тиімді жұмыс істейді. Сенімді үлгіде үш тег қолданылады: Recipe_Storage — ұзындығы 50 болатын UDT массиві, Recipe_Display — оператор экранына арналған бір UDT данасы, ал Recipe_Index — сақталған рецептінің қайсысы дисплей құрылымына көшірілетінін таңдайтын DINT. COP нұсқаулары индекс өзгерген кезде және Save әрекеті орындалғанда деректерді көшіреді, сондықтан оператор әрдайым уақытша буферді өңдейді, ал архив қуат өшіп-қосылғаннан кейін де тұтастығын сақтайды.
HMI арқылы рецепттерді өңдеуге арналған Recipe_Storage[50], Recipe_Display және Recipe_Index көрсетілген Logix тегтер мониторы.
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);
Тек Recipe_Display тегіне байланыстырылған HMI рецепті экраны; Load/Save әрекеттері контроллердегі COP процедураларын іске қосады.
Сақтау жолы, сақталу және жүктеу тәртібі
Save әрекеті кезінде Recipe_Display мәнін Recipe_Storage[Recipe_Index] ішіне қайта көшіріңіз. Recipe_Storage контроллер тегтерінде орналасатындықтан, жоба тегтердің қалыпты сақталуына бапталған болса, мәндер қуат өшіп-қосылғаннан кейін сақталады. Жүктеу кезінде тег мәндерін сақтауды таңдасаңыз, деректер жүктеуден кейін де сақталады; бұл жалаушаны жай ғана қолайлылық емес, рецепттермен жұмыс істеу стандартты процедурасының бөлігі ретінде қарастырыңыз. Операторлар “reinitialize tags” параметрі қосылған жоба жүктелсе, офлайн сақтық көшірме болмаса, мұқият реттелген рецепттер өшірілетінін түсінуі керек.
CSV импорттау процестеріне сақтықпен қараған жөн. Көптеген HMI немесе Excel-ден тегке импорттау утилиталары тег атауларын жасайды, бірақ әсіресе баған тақырыптары UDT мүшелерінің атауларынан ауытқыса, ішкі UDT мүшелерінің мәндерін сенімді түрде жаңартпайды. Әр өрісті тексеретін нақты импорттау процедурасын таңдаңыз немесе жаппай өңдеуден кейін белгілі дұрыс L5X/тег экспортынан қайта жүктеңіз. Жасыл түсті “import complete” баннерінің Recipe_Storage[n].Setpoint мәні енді электрондық кестедегі ұяшық мәніне тең екенін білдіреді деп ойламаңыз.
| Тег | Типі | HMI-ге байланыстыру керек пе? | Мақсаты |
|---|---|---|---|
| Recipe_Storage | UDT[50] | Жоқ | Энергияға тәуелсіз рецепт архиві |
| Recipe_Display | UDT | Тек иә | Оператордың өңдеу буфері |
| Recipe_Index | DINT | Иә (таңдау құралы) | Белсенді ұяшық 0–49 |
HMI интерфейсіне арналған нұсқаулықтар
- Load және Save әрекеттерін панельден массивке тікелей жазу арқылы емес, контроллер өңдейтін дискретті импульстік биттер ретінде ұсыныңыз.
- Шектелген индексті және дисплей UDT-інен көшірілетін, тек оқуға арналған “сақталған атау” өрісін көрсетіңіз, сонда оператор қай ұяшықтың белсенді екенін растай алады.
- Егер рецепт мүшелері цикл ортасында қозғалысқа немесе жылулық берілген мәндерге әсер етсе, машина циклде тұрған кезде Save әрекетіне тыйым салыңыз.
- Реттелетін өндірістік желілерде бақылау мүмкіндігін қамтамасыз ету үшін Save оқиғаларын оператор ID-сімен және индекспен бірге журналға жазыңыз.
Индекс шекараларын және сақталған жүктеулерді тексеру
Тексеруді 0-ұяшықты жүктеп, Recipe_Display ішінде арнайы бақылау мәнін өңдеп, сақтап, индексті 1-ге өзгертіп, кейін 0-ге қайтып, қайта жүктеу арқылы орындаңыз. Арнайы мән Save әрекеті орындалған жағдайда ғана қайта пайда болуы керек. Контроллерді қуаттан ажыратып-қосып, Recipe_Storage ішінде арнайы мәннің әлі сақталғанын тексеріңіз. HMI арқылы рұқсат етілмеген индекс енгізіп, шектеудің жұмыс істейтініне көз жеткізіңіз. CSV импортын қосалқы жүйеде сынап, бұл жолға өндірісте сенбес бұрын әр мүшені файлмен салыстырыңыз.
Панельді Recipe_Storage[Recipe_Index].Member мәніне байланыстырмаңыз. Массивтерге HMI арқылы жанама адрестеу аудит жүргізуді қиындатады және индекс тегі мен экран әртүрлі жылдамдықпен жаңарғанда қате ұяшыққа жазуға әкелуі мүмкін. Кейін UDT-ні кеңейткенде, қауіпсіздік деңгейлерін қосқанда немесе осы рецепт моделін ортақ операторлық жұмыс процесі бар бірнеше PLC және PAC жүйелері ұяшықтарына көшіргенде, Display UDT үлгісі оңай масштабталады.
Автор туралы
Mark Townsend | Allen-Bradley жүйелері бойынша аға автоматтандыру инженері
Mark Townsend — ControlLogix, CompactLogix және бұрынғы SLC-500 платформаларында 18 жылдан астам тәжірибесі бар аға автоматтандыру инженері. Оның күнделікті жұмысы ескірген және аралас жүйелерде RSLogix / Studio 5000 логикасын әзірлеу және FactoryTalk View HMI жүйесін іске қосу жұмыстарын қамтиды.