Błąd edycji online MicroLogix 1400 związany z instrukcją MUL
Rozwiąż błąd edycji online instrukcji MUL w sterowniku MicroLogix 1400, rozdzielając przyczyny związane z typem operandów, plikiem danych, pamięcią, oprogramowaniem i komunikacją, a następnie zwery...
MicroLogix 1400 może zweryfikować projekt w trybie offline, a następnie odrzucić szczebel MUL podczas edycji online. Kuszące jest obwinianie EtherNet/IP albo założenie, że przyczyną zawsze jest stała dziesiętna. Sam komunikat o błędzie nie potwierdza żadnego z tych wniosków. Edycja w czasie pracy wprowadza ograniczenia, które nie występują w trybie offline, a instrukcja arytmetyczna musi również rozwiązać zgodne typy danych źródłowych i docelowych w istniejących plikach danych sterownika.
Praktycznym rozwiązaniem jest kontrolowana diagnostyka. Zachowaj bieżący program, zapisz dokładne wersje sterownika i oprogramowania, określ, co zmieniło się w szczeblu, oraz ustal, czy problem dotyczy mechanizmu edycji, czy samego działania matematycznego. Dzięki temu sesja diagnostyczna na pracującym systemie nie zamieni się w serię niezwiązanych ze sobą zmian, które trudno anulować lub zweryfikować.
Zmieniaj jeden operand naraz i zachowaj oryginalny szczebel do porównania, dopóki zmiana nie zostanie przetestowana i złożona.
Zacznij od ograniczeń edycji online sterownika
Instrukcja użytkownika Rockwell Automation dotycząca MicroLogix 1400 rozróżnia edycję offline i online. W trybie online nie można tworzyć ani usuwać plików programu, zmieniać rozmiaru plików tabeli danych, zmieniać konfiguracji I/O ani modyfikować kilku ustawień ochrony. Instrukcja ostrzega również, że zatwierdzanie, składanie lub anulowanie zmian może wydłużać czas skanowania i opóźniać reakcję, a dostępna pamięć programu ogranicza ilość zmienionej logiki, która może współistnieć przed jej złożeniem.
Ograniczenia te bezpośrednio wpływają na proponowaną poprawkę zmiennoprzecinkową. Jeśli program zawiera już odpowiednio duży plik F, technik może odwołać się do istniejącego elementu. Jeśli plik Float nie istnieje lub wymaga większej liczby elementów, jego utworzenie albo zmiana rozmiaru wymaga zmiany offline i pobrania programu. Próba rozwiązania problemu operandu przez utworzenie F8:7 podczas edycji w czasie pracy zakończy się niepowodzeniem z innego powodu, nawet jeśli projekt matematyczny jest poprawny.
Ustal, czy błąd podąża za szczeblem, czy za połączeniem
Przed modyfikacją działań matematycznych zatwierdź nieszkodliwą, dozwoloną zmianę w obszarze testowym albo potwierdź, że inną zaplanowaną zmianę można zatwierdzić w ramach tej samej procedury utrzymaniowej. Jeśli każda zmiana kończy się niepowodzeniem, sprawdź zgodność oprogramowania programistycznego, tryb sterownika, pamięć programu, kontrolę dostępu do edycji oraz stabilność komunikacji. Przerwanie połączenia sieciowego może zakończyć sesję edycji, ale stabilne połączenie online nie gwarantuje, że żądany szczebel jest dozwolony.
Zapisz pełny tekst błędu oraz stan stref wstawiania i zastępowania. Przed rozpoczęciem kolejnej próby prawidłowo anuluj nieudane zmiany. Potwierdź, że co najmniej jedno znane poprawne pobranie programu ustanowiło punkt odniesienia dla edycji online opisany w instrukcji użytkownika, i sprawdź, czy projekt otwarty na stacji roboczej odpowiada obrazowi programu w sterowniku.
Świadomie obsługuj mnożniki ułamkowe
Mnożnik taki jak 0.7 oznacza wartość ułamkową. Przechowywanie tego współczynnika w istniejącym elemencie typu Float jednoznacznie określa jego typ i umożliwia udokumentowanie lub zmianę współczynnika przez kontrolowany adres danych. Zmiana operandu źródłowego to jednak tylko połowa decyzji inżynierskiej. Typ miejsca docelowego decyduje o tym, czy wynik ułamkowy zostanie zachowany, czy przekształcony w reprezentację całkowitą.
Jeśli miejscem docelowym jest całkowitoliczbowy plik N, przetestuj działanie konwersji sterownika w pełnym zakresie roboczym. Nie wyciągaj wniosków na podstawie pojedynczego przykładu, takiego jak dziesięć pomnożone przez 0.7. Sprawdź wartości dodatnie, ujemne, bliskie zeru, maksymalne i minimalne oraz przeanalizuj obsługę statusu działań matematycznych używaną przez aplikację. Jeśli dalsza logika wymaga rozdzielczości ułamkowej, użyj odpowiedniego miejsca docelowego typu Float i wykonuj konwersję dopiero na granicy, na której rzeczywiście potrzebna jest liczba całkowita.
Istniejący adres typu Float może jednoznacznie określić współczynnik dziesiętny, ale typ i zakres miejsca docelowego nadal wymagają pełnego testu.
Stosuj bezpieczną sekwencję korekty
Najpierw prześlij lub w inny sposób zachowaj działający program i zapisz numer katalogowy sterownika, serię, wersję oprogramowania sprzętowego, wersję RSLogix 500, ilość wolnej pamięci oraz tryb pracy. Następnie znajdź istniejący element typu Float, który jest nieużywany, udokumentowany i dostępny bez zmiany rozmiaru pliku. Zainicjalizuj go wymaganym współczynnikiem inżynierskim zgodnie z zatwierdzoną procedurą zakładową i potwierdź wartość online.
Zmodyfikuj wyłącznie źródło instrukcji MUL reprezentujące współczynnik. Przy pierwszym teście kompilacji pozostaw oryginalne miejsce docelowe, chyba że wymagania dotyczące precyzji już teraz wymagają miejsca docelowego typu Float. Zatwierdź i przetestuj zmianę, gdy maszyna znajduje się w bezpiecznym stanie. Przed złożeniem zmiany porównaj wynik z niezależnym obliczeniem dla kilku wartości wejściowych. Jeśli wprowadzane jest miejsce docelowe typu Float, prześledź wszystkich odbiorców starej wartości całkowitej przed zmianą adresów.
Jeśli nie istnieje odpowiedni element typu Float, przerwij edycję w czasie pracy. Dodaj plik danych lub zmień jego rozmiar offline, zweryfikuj cały projekt, zaplanuj pobranie programu i określ plan wycofania zmian. Ta niedogodność jest mniejsza niż wymuszenie nieprzejrzonego obejścia problemu arytmetycznego w pracującej maszynie.
Rozważ skalowanie za pomocą ilorazu całkowitego tylko wtedy, gdy zakres na to pozwala
W niektórych aplikacjach wartość 0.7 można przedstawić jako stosunek siedmiu do dziesięciu. Mnożenie przez licznik i dzielenie przez mianownik może wyeliminować zależność od typu Float, ale kolejność działań, zakres pośredni, znak i zaokrąglanie stają się decyzjami projektowymi. Najpierw mnożenie zachowuje większą rozdzielczość, ale może spowodować przepełnienie pośredniej liczby całkowitej. Dzielenie w pierwszej kolejności zmniejsza ryzyko przepełnienia, lecz wcześniej prowadzi do utraty informacji.
Użyj pośredniego typu danych o odpowiednim zakresie, obsługiwanego przez sterownik, i potwierdź dokładne działanie instrukcji w podręczniku referencyjnym MicroLogix. Arytmetyka oparta na ilorazie nie jest automatycznie bezpieczniejsza od arytmetyki zmiennoprzecinkowej; jest przydatna wyłącznie wtedy, gdy wymagana rozdzielczość i pełny zakres zostały udokumentowane i przetestowane.
Waliduj maszynę, a nie tylko kompilator
Zatwierdzony szczebel potwierdza składnię i zgodność z zasadami edycji, ale nie poprawność procesu. Monitoruj źródło, współczynnik, wartość pośrednią, miejsce docelowe, odpowiednie bity statusu oraz wielkość fizyczną, na którą wpływa obliczenie. Testuj wartości graniczne i utratę źródła danych. Potwierdź, że alarmy, blokady, skalowanie HMI, wartości w systemie archiwizacji oraz wszelka logika PID lub porównań interpretują wynik zgodnie z założeniami.
Obserwuj czas skanowania podczas testowania i składania zmian. Unikaj wykonywania serii zmian, gdy proces szybko się zmienia, i nie używaj wymuszeń jako substytutu kontrolowanego planu testów. Jeśli komunikacja nadal jest niestabilna, przywróć znany stan i rozwiąż problem sieciowy przed wznowieniem zmian online.
Kompatybilny sterownik jest dostępny w opisie produktu MicroLogix 1400, a powiązane platformy są zgrupowane w sekcji systemy PLC i PAC. Przed użyciem sprzętu zastępczego dopasuj dokładny numer katalogowy, konfigurację zasilania, I/O, wersję oprogramowania sprzętowego oraz wymagania projektu.
Perspektywa inżynierska
Najbardziej niezawodna naprawa nie polega na „zastąpieniu każdego literału dziesiętnego przez F8”. Należy ustalić, czy edycja wymaga zmiany pliku danych, jednoznacznie określić typy liczbowe i udowodnić poprawność wyniku w całym zakresie inżynierskim. Takie podejście usuwa problem kompilacji, nie ukrywając błędu skalowania, który mógłby być bardziej szkodliwy niż odrzucony szczebel.