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

Zarządzanie recepturami Allen-Bradley z tablicami UDT i interfejsem edycji HMI

Dowiedz się, jak tworzyć edycję receptur opartą na HMI dla AB Logix 5000 z użyciem tablic UDT i instrukcji COP do trwałego przechowywania parametrów.

Obsługa receptur na platformach Logix działa najlepiej, gdy panel HMI nigdy nie zapisuje bezpośrednio do tablicy historycznej. Trwały wzorzec wykorzystuje trzy tagi: Recipe_Storage jako tablicę UDT o długości 50, Recipe_Display jako pojedynczą instancję UDT dla ekranu operatorskiego oraz Recipe_Index jako DINT wybierający, która zapisana receptura jest odwzorowywana w strukturze wyświetlania. Instrukcje kopiowania (COP) przenoszą dane przy zmianie indeksu oraz ponownie podczas zapisu, dzięki czemu operator zawsze edytuje bufor roboczy, a archiwum pozostaje spójne między cyklami zasilania.

Zarządzanie recepturami Allen-Bradley z tablicami UDT i interfejsem edycji HMI — rysunek 1 Monitor tagów Logix pokazujący Recipe_Storage[50], Recipe_Display i Recipe_Index używane do edycji receptur powiązanej z HMI.

Zdefiniuj UDT raz, uwzględniając wszystkie wartości zadane wymagane przez proces — temperatury, czasy, prędkości, kody produktów i maski blokad — a następnie utwórz Recipe_Storage jako UDT[50]. Recipe_Display musi mieć dokładnie ten sam typ UDT, a nie być luźno powiązanym zestawem tagów atomowych. Jednorodne typy upraszczają obliczanie długości COP i zapobiegają cichemu obcinaniu danych po późniejszym dodaniu składowych.

Ograniczanie indeksu i ścieżka ładowania

Ogranicz Recipe_Index do zakresu od 0 do 49 włącznie, zanim zostanie wykonana jakakolwiek instrukcja COP. Nieograniczony indeks z obiektu wprowadzania liczbowego może spowodować błąd COP lub odczyt niezdefiniowanej pamięci, zależnie od sposobu obsługi granic tablicy w projekcie. Przy narastającej zmianie Recipe_Index (lub po naciśnięciu dedykowanego przycisku Load) skopiuj Recipe_Storage[Recipe_Index] do Recipe_Display. HMI powinien być powiązany wyłącznie ze składowymi Recipe_Display. Ta pojedyncza zasada eliminuje warunki wyścigu, w których dwa ekrany zapisują różne elementy tablicy, podczas gdy operator nadal dostosowuje wartości.

// Struktura pseudokodu
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);
Zarządzanie recepturami Allen-Bradley z tablicami UDT i interfejsem edycji HMI — rysunek 2 Ekran receptur HMI powiązany wyłącznie z Recipe_Display, z działaniami Load/Save uruchamiającymi procedury COP w sterowniku.

Ścieżka zapisu, zachowanie danych i działanie podczas pobierania projektu

Podczas zapisu skopiuj Recipe_Display z powrotem do Recipe_Storage[Recipe_Index]. Ponieważ Recipe_Storage znajduje się w tagach sterownika, wartości są zachowywane po cyklu zasilania, gdy projekt jest skonfigurowany do standardowego zachowywania tagów. Dane są również zachowywane podczas pobierania projektu, jeśli wybierzesz zachowanie wartości tagów; traktuj to pole wyboru jako część SOP dotyczącej receptur, a nie opcjonalne udogodnienie. Operatorzy powinni wiedzieć, że pobranie projektu z włączoną opcją „reinitialize tags” wymaże starannie dostrojone receptury, jeśli nie istnieje kopia zapasowa offline.

Do importu CSV należy podchodzić z rezerwą. Wiele narzędzi HMI lub Excel-to-tag tworzy nazwy tagów, ale nie aktualizuje prawidłowo wartości składowych wewnątrz zagnieżdżonych UDT, szczególnie gdy nagłówki kolumn różnią się od nazw składowych UDT. Preferuj jawną procedurę importu, która sprawdza każde pole, albo ponownie załaduj dane ze sprawdzonego eksportu L5X/tagów po masowych edycjach. Nie zakładaj, że zielony komunikat „import complete” oznacza, iż Recipe_Storage[n].Setpoint jest teraz równe wartości z komórki arkusza.

Tag Typ Powiązanie z HMI? Przeznaczenie
Recipe_Storage UDT[50] Nie Nieulotne archiwum receptur
Recipe_Display UDT Tylko tak Bufor edycji operatora
Recipe_Index DINT Tak (selektor) Aktywny element 0–49

Wytyczne dotyczące interfejsu HMI

  • Udostępnij przyciski Load i Save jako rozłączne bity chwilowe obsługiwane w sterowniku, a nie jako bezpośrednie zapisy do tablicy z panelu.
  • Wyświetl ograniczony indeks oraz tylko do odczytu pole „stored name” skopiowane z UDT wyświetlania, aby operator mógł potwierdzić, który element jest aktywny.
  • Zablokuj Save, gdy maszyna wykonuje cykl, jeśli składowe receptury wpływają na ruch lub wartości zadane temperatury w trakcie partii.
  • Rejestruj zdarzenia Save wraz z identyfikatorem operatora i indeksem, aby zapewnić identyfikowalność na liniach objętych regulacjami.

Sprawdzanie zakresu indeksu i zachowania danych podczas pobierania projektu

Wykonaj test, ładując element 0, edytując wartość kontrolną w Recipe_Display, zapisując ją, zmieniając indeks na 1, a następnie wracając do 0 i ponownie wykonując ładowanie. Wartość kontrolna musi pojawić się ponownie tylko wtedy, gdy wykonano Save. Wyłącz i włącz sterownik, a następnie potwierdź, że Recipe_Storage nadal zawiera tę wartość. Wprowadź z HMI indeks spoza zakresu i sprawdź działanie ograniczenia. Przetestuj import CSV w systemie zapasowym i porównaj składowe, jedna po drugiej, z plikiem, zanim zaufasz tej ścieżce w produkcji.

Unikaj powiązania panelu z Recipe_Storage[Recipe_Index].Member. Pośrednie adresowanie HMI do tablic jest trudniejsze do audytowania i sprzyja zapisom do niewłaściwego elementu, gdy tag indeksu i ekran są aktualizowane w różnym tempie. Wzorzec UDT wyświetlania łatwo skaluje się przy późniejszym rozszerzaniu UDT, dodawaniu poziomów bezpieczeństwa lub migracji tego samego modelu receptur między wieloma celami PLC i PAC, które korzystają ze wspólnego sposobu pracy operatora.

O autorze

Mark Townsend | Starszy inżynier automatyki – systemy Allen-Bradley

Mark Townsend jest starszym inżynierem automatyki z ponad 18-letnim doświadczeniem w pracy z platformami Allen-Bradley, obejmującym ControlLogix, CompactLogix i starsze systemy SLC-500. Na co dzień zajmuje się logiką RSLogix / Studio 5000 oraz uruchamianiem interfejsów HMI FactoryTalk View w starzejących się i mieszanych flotach urządzeń.

Zarządzanie recepturami Allen-Bradley z tablicami UDT i interfejsem edycji HMI

Dowiedz się, jak tworzyć edycję receptur opartą na HMI dla AB Logix 5000 z użyciem tablic UDT i instrukcji COP do trwałego przechowywania parametrów.

Obsługa receptur na platformach Logix działa najlepiej, gdy panel HMI nigdy nie zapisuje bezpośrednio do tablicy historycznej. Trwały wzorzec wykorzystuje trzy tagi: Recipe_Storage jako tablicę UDT o długości 50, Recipe_Display jako pojedynczą instancję UDT dla ekranu operatorskiego oraz Recipe_Index jako DINT wybierający, która zapisana receptura jest odwzorowywana w strukturze wyświetlania. Instrukcje kopiowania (COP) przenoszą dane przy zmianie indeksu oraz ponownie podczas zapisu, dzięki czemu operator zawsze edytuje bufor roboczy, a archiwum pozostaje spójne między cyklami zasilania.

Zarządzanie recepturami Allen-Bradley z tablicami UDT i interfejsem edycji HMI — rysunek 1 Monitor tagów Logix pokazujący Recipe_Storage[50], Recipe_Display i Recipe_Index używane do edycji receptur powiązanej z HMI.

Zdefiniuj UDT raz, uwzględniając wszystkie wartości zadane wymagane przez proces — temperatury, czasy, prędkości, kody produktów i maski blokad — a następnie utwórz Recipe_Storage jako UDT[50]. Recipe_Display musi mieć dokładnie ten sam typ UDT, a nie być luźno powiązanym zestawem tagów atomowych. Jednorodne typy upraszczają obliczanie długości COP i zapobiegają cichemu obcinaniu danych po późniejszym dodaniu składowych.

Ograniczanie indeksu i ścieżka ładowania

Ogranicz Recipe_Index do zakresu od 0 do 49 włącznie, zanim zostanie wykonana jakakolwiek instrukcja COP. Nieograniczony indeks z obiektu wprowadzania liczbowego może spowodować błąd COP lub odczyt niezdefiniowanej pamięci, zależnie od sposobu obsługi granic tablicy w projekcie. Przy narastającej zmianie Recipe_Index (lub po naciśnięciu dedykowanego przycisku Load) skopiuj Recipe_Storage[Recipe_Index] do Recipe_Display. HMI powinien być powiązany wyłącznie ze składowymi Recipe_Display. Ta pojedyncza zasada eliminuje warunki wyścigu, w których dwa ekrany zapisują różne elementy tablicy, podczas gdy operator nadal dostosowuje wartości.

// Struktura pseudokodu
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);
Zarządzanie recepturami Allen-Bradley z tablicami UDT i interfejsem edycji HMI — rysunek 2 Ekran receptur HMI powiązany wyłącznie z Recipe_Display, z działaniami Load/Save uruchamiającymi procedury COP w sterowniku.

Ścieżka zapisu, zachowanie danych i działanie podczas pobierania projektu

Podczas zapisu skopiuj Recipe_Display z powrotem do Recipe_Storage[Recipe_Index]. Ponieważ Recipe_Storage znajduje się w tagach sterownika, wartości są zachowywane po cyklu zasilania, gdy projekt jest skonfigurowany do standardowego zachowywania tagów. Dane są również zachowywane podczas pobierania projektu, jeśli wybierzesz zachowanie wartości tagów; traktuj to pole wyboru jako część SOP dotyczącej receptur, a nie opcjonalne udogodnienie. Operatorzy powinni wiedzieć, że pobranie projektu z włączoną opcją „reinitialize tags” wymaże starannie dostrojone receptury, jeśli nie istnieje kopia zapasowa offline.

Do importu CSV należy podchodzić z rezerwą. Wiele narzędzi HMI lub Excel-to-tag tworzy nazwy tagów, ale nie aktualizuje prawidłowo wartości składowych wewnątrz zagnieżdżonych UDT, szczególnie gdy nagłówki kolumn różnią się od nazw składowych UDT. Preferuj jawną procedurę importu, która sprawdza każde pole, albo ponownie załaduj dane ze sprawdzonego eksportu L5X/tagów po masowych edycjach. Nie zakładaj, że zielony komunikat „import complete” oznacza, iż Recipe_Storage[n].Setpoint jest teraz równe wartości z komórki arkusza.

Tag Typ Powiązanie z HMI? Przeznaczenie
Recipe_Storage UDT[50] Nie Nieulotne archiwum receptur
Recipe_Display UDT Tylko tak Bufor edycji operatora
Recipe_Index DINT Tak (selektor) Aktywny element 0–49

Wytyczne dotyczące interfejsu HMI

  • Udostępnij przyciski Load i Save jako rozłączne bity chwilowe obsługiwane w sterowniku, a nie jako bezpośrednie zapisy do tablicy z panelu.
  • Wyświetl ograniczony indeks oraz tylko do odczytu pole „stored name” skopiowane z UDT wyświetlania, aby operator mógł potwierdzić, który element jest aktywny.
  • Zablokuj Save, gdy maszyna wykonuje cykl, jeśli składowe receptury wpływają na ruch lub wartości zadane temperatury w trakcie partii.
  • Rejestruj zdarzenia Save wraz z identyfikatorem operatora i indeksem, aby zapewnić identyfikowalność na liniach objętych regulacjami.

Sprawdzanie zakresu indeksu i zachowania danych podczas pobierania projektu

Wykonaj test, ładując element 0, edytując wartość kontrolną w Recipe_Display, zapisując ją, zmieniając indeks na 1, a następnie wracając do 0 i ponownie wykonując ładowanie. Wartość kontrolna musi pojawić się ponownie tylko wtedy, gdy wykonano Save. Wyłącz i włącz sterownik, a następnie potwierdź, że Recipe_Storage nadal zawiera tę wartość. Wprowadź z HMI indeks spoza zakresu i sprawdź działanie ograniczenia. Przetestuj import CSV w systemie zapasowym i porównaj składowe, jedna po drugiej, z plikiem, zanim zaufasz tej ścieżce w produkcji.

Unikaj powiązania panelu z Recipe_Storage[Recipe_Index].Member. Pośrednie adresowanie HMI do tablic jest trudniejsze do audytowania i sprzyja zapisom do niewłaściwego elementu, gdy tag indeksu i ekran są aktualizowane w różnym tempie. Wzorzec UDT wyświetlania łatwo skaluje się przy późniejszym rozszerzaniu UDT, dodawaniu poziomów bezpieczeństwa lub migracji tego samego modelu receptur między wieloma celami PLC i PAC, które korzystają ze wspólnego sposobu pracy operatora.

O autorze

Mark Townsend | Starszy inżynier automatyki – systemy Allen-Bradley

Mark Townsend jest starszym inżynierem automatyki z ponad 18-letnim doświadczeniem w pracy z platformami Allen-Bradley, obejmującym ControlLogix, CompactLogix i starsze systemy SLC-500. Na co dzień zajmuje się logiką RSLogix / Studio 5000 oraz uruchamianiem interfejsów HMI FactoryTalk View w starzejących się i mieszanych flotach urządzeń.

Zostaw komentarz

Pamiętaj, że komentarze muszą zostać zatwierdzone przed ich opublikowaniem.