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

Správa receptur Allen-Bradley s poli UDT a rozhraním HMI pro úpravy

Naučte se vytvářet úpravy receptur založené na HMI pro AB Logix 5000 pomocí polí UDT a instrukcí COP pro trvalé ukládání parametrů.

Správa receptur na platformách Logix funguje nejlépe, když HMI nikdy nezapisuje přímo do historického pole. Odolný návrh používá tři tagy: Recipe_Storage jako pole UDT o délce 50, Recipe_Display jako jednu instanci UDT pro obrazovku operátora a Recipe_Index jako DINT, který určuje, která uložená receptura se zrcadlí do zobrazovací struktury. Instrukce Copy (COP) přesouvají data při změně indexu a znovu při uložení, takže operátor vždy upravuje pracovní vyrovnávací paměť, zatímco archiv zůstává konzistentní i po výpadku napájení.

Správa receptur Allen-Bradley s poli UDT a editačním rozhraním HMI — obrázek 1 Monitor tagů Logix zobrazující Recipe_Storage[50], Recipe_Display a Recipe_Index používané pro úpravu receptur propojenou s HMI.

Definujte UDT jednou se všemi žádanými hodnotami, které proces potřebuje — teplotami, časovači, rychlostmi, kódy produktů a maskami blokování — a poté vytvořte Recipe_Storage jako UDT[50]. Recipe_Display musí být stejného typu UDT, nikoli volně související sada atomických tagů. Homogenní typy zjednodušují výpočty délky COP a zabraňují tichému ořezání při pozdějším přidání členů.

Omezení indexu a cesta načtení

Před provedením jakékoli instrukce COP omezte Recipe_Index na uzavřený rozsah 0 až 49. Neomezený index z objektu pro numerický vstup může způsobit chybu COP nebo načíst nedefinovanou paměť v závislosti na tom, jak jsou v projektu zpracovány hranice pole. Při náběžné změně Recipe_Index (nebo po stisknutí tlačítka Load) zkopírujte Recipe_Storage[Recipe_Index] do Recipe_Display. HMI se váže výhradně na členy Recipe_Display. Toto jediné pravidlo eliminuje závody, při kterých dvě obrazovky zapisují do různých pozic pole, zatímco operátor stále upravuje hodnoty.

// Struktura pseudokódu
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);
Správa receptur Allen-Bradley s poli UDT a editačním rozhraním HMI — obrázek 2 Obrazovka receptur HMI navázaná pouze na Recipe_Display, přičemž akce Load/Save spouštějí rutiny COP v řídicím systému.

Cesta uložení, uchování a chování při stahování projektu

Při uložení zkopírujte Recipe_Display zpět do Recipe_Storage[Recipe_Index]. Protože Recipe_Storage existuje v tagech řídicího systému, hodnoty se při výpadku napájení uchovají, pokud je projekt nakonfigurován pro běžné uchování tagů. Data se uchovají také při stažení projektu, pokud zvolíte zachování hodnot tagů; toto zaškrtávací políčko považujte za součást standardního postupu pro receptury, nikoli za volitelné pohodlí. Operátoři by měli vědět, že stažení projektu s povolenou volbou „reinitialize tags“ vymaže pečlivě vyladěné receptury, pokud neexistuje offline záloha.

Postupy importu CSV vyžadují obezřetnost. Mnoho nástrojů HMI nebo Excel-to-tag vytvoří názvy tagů, aniž by spolehlivě aktualizovalo hodnoty členů uvnitř vnořených UDT, zejména když se záhlaví sloupců liší od názvů členů UDT. Upřednostněte explicitní importní rutinu, která ověřuje každé pole, nebo po hromadných úpravách znovu načtěte data ze známého správného exportu L5X/tagů. Nepředpokládejte, že zelený banner „import dokončen“ znamená, že Recipe_Storage[n].Setpoint nyní odpovídá buňce tabulky.

Tag Typ Vazba na HMI? Účel
Recipe_Storage UDT[50] Ne Nevolatilní archiv receptur
Recipe_Display UDT Ano, pouze Pracovní vyrovnávací paměť pro úpravy operátorem
Recipe_Index DINT Ano (volič) Aktivní pozice 0–49

Pokyny pro rozhraní HMI

  • Nabídněte Load a Save jako samostatné impulzní bity zpracovávané v řídicím systému, nikoli jako přímé zápisy do pole z panelu.
  • Zobrazujte omezený index a pouze pro čtení určené pole „uložený název“ zkopírované ze zobrazovacího UDT, aby operátoři mohli potvrdit aktivní pozici.
  • Zakažte Save, když je stroj v cyklu a členy receptury ovlivňují pohyb nebo teplotní žádané hodnoty uprostřed dávky.
  • Pro zajištění sledovatelnosti na regulovaných linkách zaznamenávejte události Save s ID operátora a indexem.

Ověření hranic indexu a uchování při stahování projektu

Testujte načtením pozice 0, úpravou referenční hodnoty v Recipe_Display, uložením, změnou indexu na 1, následným návratem na 0 a opětovným načtením. Referenční hodnota se musí znovu objevit pouze tehdy, pokud proběhlo uložení. Proveďte vypnutí a opětovné zapnutí řídicího systému a ověřte, že Recipe_Storage stále obsahuje referenční hodnotu. Z HMI zkuste zadat index mimo rozsah a ověřte jeho omezení. Import CSV vyzkoušejte na náhradním systému a před nasazením této cesty do výroby porovnejte jednotlivé členy se souborem.

Vyhněte se vazbě panelu na Recipe_Storage[Recipe_Index].Member. Nepřímé adresování HMI do polí se obtížněji kontroluje a podporuje zápis do nesprávné pozice, když se tag indexu a obrazovka aktualizují v různých intervalech. Vzor se zobrazovacím UDT se snadno rozšiřuje při pozdějším rozšíření UDT, přidání úrovní zabezpečení nebo migraci stejného modelu receptur mezi více buňkami systémů PLC a PAC, které sdílejí běžný pracovní postup operátora.

O autorovi

Mark Townsend | Seniorní automatizační inženýr – systémy Allen-Bradley

Mark Townsend je seniorní automatizační inženýr s více než 18 lety zkušeností s platformami Allen-Bradley, včetně ControlLogix, CompactLogix a starších systémů SLC-500. Ve své každodenní práci se věnuje logice RSLogix / Studio 5000 a uvádění HMI FactoryTalk View do provozu na stárnoucích a smíšených flotilách zařízení.

Správa receptur Allen-Bradley s poli UDT a rozhraním HMI pro úpravy

Naučte se vytvářet úpravy receptur založené na HMI pro AB Logix 5000 pomocí polí UDT a instrukcí COP pro trvalé ukládání parametrů.

Správa receptur na platformách Logix funguje nejlépe, když HMI nikdy nezapisuje přímo do historického pole. Odolný návrh používá tři tagy: Recipe_Storage jako pole UDT o délce 50, Recipe_Display jako jednu instanci UDT pro obrazovku operátora a Recipe_Index jako DINT, který určuje, která uložená receptura se zrcadlí do zobrazovací struktury. Instrukce Copy (COP) přesouvají data při změně indexu a znovu při uložení, takže operátor vždy upravuje pracovní vyrovnávací paměť, zatímco archiv zůstává konzistentní i po výpadku napájení.

Správa receptur Allen-Bradley s poli UDT a editačním rozhraním HMI — obrázek 1 Monitor tagů Logix zobrazující Recipe_Storage[50], Recipe_Display a Recipe_Index používané pro úpravu receptur propojenou s HMI.

Definujte UDT jednou se všemi žádanými hodnotami, které proces potřebuje — teplotami, časovači, rychlostmi, kódy produktů a maskami blokování — a poté vytvořte Recipe_Storage jako UDT[50]. Recipe_Display musí být stejného typu UDT, nikoli volně související sada atomických tagů. Homogenní typy zjednodušují výpočty délky COP a zabraňují tichému ořezání při pozdějším přidání členů.

Omezení indexu a cesta načtení

Před provedením jakékoli instrukce COP omezte Recipe_Index na uzavřený rozsah 0 až 49. Neomezený index z objektu pro numerický vstup může způsobit chybu COP nebo načíst nedefinovanou paměť v závislosti na tom, jak jsou v projektu zpracovány hranice pole. Při náběžné změně Recipe_Index (nebo po stisknutí tlačítka Load) zkopírujte Recipe_Storage[Recipe_Index] do Recipe_Display. HMI se váže výhradně na členy Recipe_Display. Toto jediné pravidlo eliminuje závody, při kterých dvě obrazovky zapisují do různých pozic pole, zatímco operátor stále upravuje hodnoty.

// Struktura pseudokódu
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);
Správa receptur Allen-Bradley s poli UDT a editačním rozhraním HMI — obrázek 2 Obrazovka receptur HMI navázaná pouze na Recipe_Display, přičemž akce Load/Save spouštějí rutiny COP v řídicím systému.

Cesta uložení, uchování a chování při stahování projektu

Při uložení zkopírujte Recipe_Display zpět do Recipe_Storage[Recipe_Index]. Protože Recipe_Storage existuje v tagech řídicího systému, hodnoty se při výpadku napájení uchovají, pokud je projekt nakonfigurován pro běžné uchování tagů. Data se uchovají také při stažení projektu, pokud zvolíte zachování hodnot tagů; toto zaškrtávací políčko považujte za součást standardního postupu pro receptury, nikoli za volitelné pohodlí. Operátoři by měli vědět, že stažení projektu s povolenou volbou „reinitialize tags“ vymaže pečlivě vyladěné receptury, pokud neexistuje offline záloha.

Postupy importu CSV vyžadují obezřetnost. Mnoho nástrojů HMI nebo Excel-to-tag vytvoří názvy tagů, aniž by spolehlivě aktualizovalo hodnoty členů uvnitř vnořených UDT, zejména když se záhlaví sloupců liší od názvů členů UDT. Upřednostněte explicitní importní rutinu, která ověřuje každé pole, nebo po hromadných úpravách znovu načtěte data ze známého správného exportu L5X/tagů. Nepředpokládejte, že zelený banner „import dokončen“ znamená, že Recipe_Storage[n].Setpoint nyní odpovídá buňce tabulky.

Tag Typ Vazba na HMI? Účel
Recipe_Storage UDT[50] Ne Nevolatilní archiv receptur
Recipe_Display UDT Ano, pouze Pracovní vyrovnávací paměť pro úpravy operátorem
Recipe_Index DINT Ano (volič) Aktivní pozice 0–49

Pokyny pro rozhraní HMI

  • Nabídněte Load a Save jako samostatné impulzní bity zpracovávané v řídicím systému, nikoli jako přímé zápisy do pole z panelu.
  • Zobrazujte omezený index a pouze pro čtení určené pole „uložený název“ zkopírované ze zobrazovacího UDT, aby operátoři mohli potvrdit aktivní pozici.
  • Zakažte Save, když je stroj v cyklu a členy receptury ovlivňují pohyb nebo teplotní žádané hodnoty uprostřed dávky.
  • Pro zajištění sledovatelnosti na regulovaných linkách zaznamenávejte události Save s ID operátora a indexem.

Ověření hranic indexu a uchování při stahování projektu

Testujte načtením pozice 0, úpravou referenční hodnoty v Recipe_Display, uložením, změnou indexu na 1, následným návratem na 0 a opětovným načtením. Referenční hodnota se musí znovu objevit pouze tehdy, pokud proběhlo uložení. Proveďte vypnutí a opětovné zapnutí řídicího systému a ověřte, že Recipe_Storage stále obsahuje referenční hodnotu. Z HMI zkuste zadat index mimo rozsah a ověřte jeho omezení. Import CSV vyzkoušejte na náhradním systému a před nasazením této cesty do výroby porovnejte jednotlivé členy se souborem.

Vyhněte se vazbě panelu na Recipe_Storage[Recipe_Index].Member. Nepřímé adresování HMI do polí se obtížněji kontroluje a podporuje zápis do nesprávné pozice, když se tag indexu a obrazovka aktualizují v různých intervalech. Vzor se zobrazovacím UDT se snadno rozšiřuje při pozdějším rozšíření UDT, přidání úrovní zabezpečení nebo migraci stejného modelu receptur mezi více buňkami systémů PLC a PAC, které sdílejí běžný pracovní postup operátora.

O autorovi

Mark Townsend | Seniorní automatizační inženýr – systémy Allen-Bradley

Mark Townsend je seniorní automatizační inženýr s více než 18 lety zkušeností s platformami Allen-Bradley, včetně ControlLogix, CompactLogix a starších systémů SLC-500. Ve své každodenní práci se věnuje logice RSLogix / Studio 5000 a uvádění HMI FactoryTalk View do provozu na stárnoucích a smíšených flotilách zařízení.

Napište komentář

Upozorňujeme, že komentáře musí být před zveřejněním schváleny.