Błąd edycji online MicroLogix 1400 związany z instrukcją MUL
Błąd edycji online sterownika MicroLogix 1400 podczas dodawania instrukcji MUL ze stałą jako argumentem. Napraw go, używając adresu zmiennoprzecinkowego zami...
Edycja online sterownika MicroLogix 1400 przez EtherNet/IP może zakończyć się błędem „Program could not be compiled. Online edit error”, gdy szczebel MUL używa stałej literalnej, takiej jak 0.7, dla źródła całkowitoliczbowego. Ten sam projekt może przejść weryfikację offline bez żadnych komunikatów. Kompilator edycji online sterownika stosuje bardziej rygorystyczne reguły dotyczące operandów niż ścieżka offline, a literały zmiennoprzecinkowe w instrukcjach arytmetycznych często powodują problemy.
Zastąp stałą adresem pliku Float, w którym znajduje się już wartość 0.7, a następnie ponownie przetestuj edycję online przed wprowadzeniem jakichkolwiek innych zmian.
Objaw i konfiguracja
| Element | Typowa konfiguracja powodująca błąd |
|---|---|
| Sterownik | MicroLogix 1400 Series A lub B |
| Oprogramowanie | RSLogix 500 z edycją online |
| Instrukcja | MUL |
| Źródło A | N7:2 (liczba całkowita) |
| Źródło B | Stała 0.7 |
| Wartość docelowa | N7:7 (liczba całkowita) |
Przyczyna
Edycje online w sterowniku MicroLogix 1400 sprawdzają rozmiar i typ operandów bardziej rygorystycznie niż kompilacja offline. Stała zmiennoprzecinkowa jako źródło B jest akceptowana podczas niektórych weryfikacji offline, ale odrzucana, gdy edycja musi zostać skompilowana do działającego obrazu programu. Powiązane komunikaty offline, takie jak „Operand size does not match”, wskazują na tę samą grupę niezgodności typów. Nie każdą zmianę w MicroLogix można wykonać online; niektóre zmiany strukturalne nadal wymagają modyfikacji offline i pobrania programu do sterownika.
Procedura naprawcza
- Zidentyfikuj nieużywany adres typu Float (na przykład F8:7).
- Ustaw w F8:7 wartość początkową 0.7 offline lub za pomocą jednorazowego szczebla MOV/inicjalizacyjnego.
- Edytuj MUL: Źródło A pozostaje N7:2; Źródłem B zostaje F8:7; Wartość docelowa pozostaje N7:7 lub zostaje przeniesiona do Float, jeśli istotna jest precyzja.
- Zaakceptuj edycję online i potwierdź, że szczebel został skompilowany.
- Wymuś znaną wartość źródła A i sprawdź wynik mnożenia podczas pracy sterownika.
MUL Źródło A: N7:2 Źródło B: F8:7 <-- adres Float, nie stała literalna 0.7 Wartość docelowa: N7:7 <-- lub F8:8 dla pełnej precyzji
Konsekwencje typów danych
| Konfiguracja | Wynik |
|---|---|
| Źródło B = stała 0.7 | Błąd kompilacji edycji online |
| Źródło B = F8:7, wartość docelowa = N7:7 | Edycja kończy się powodzeniem; obcięcie/zaokrąglenie do liczby całkowitej |
| Źródło B = F8:7, wartość docelowa = F8:8 | Edycja kończy się powodzeniem; pełna precyzja typu Float |
Jeśli N7:2 = 10, a mnożnik wynosi 0.7, całkowitoliczbowa wartość docelowa da po zaokrągleniu lub obcięciu wynik 7, a nie zachowaną wartość zmiennoprzecinkową 7.0. Wybierz typ wartości docelowej świadomie, gdy wynik jest używany w regulatorze PID, skalowaniu lub porównaniach.
Powiązane ograniczenia edycji online dla operacji arytmetycznych
Ta sama wrażliwość kompilatora online występuje w przypadku DIV, wyrażeń w stylu CPT, jeśli są dostępne, oraz mieszanych łańcuchów INT/Float wprowadzanych pośpiesznie podczas modyfikacji na działającym urządzeniu. Inżynierowie często próbują wykonać trzy kolejne edycje online — zmieniając najpierw tylko stałą, następnie typ pliku wartości docelowej, a na końcu cały szczebel — bez przechodzenia ze stanu Run. Każda nieudana kompilacja pozostawia kolejkę oczekujących edycji w niejasnym stanie. Anuluj nieudaną edycję w uporządkowany sposób, wprowadź jedną spójną zmianę (stałą literalną zastąp adresem Float) i zaakceptuj ją tylko raz. Jeśli MicroLogix po kilku próbach zgłosi, że programu nie można skompilować, przejdź offline, sprawdź, czy plik istnieje (utworzono F8 z wystarczającą liczbą elementów), a następnie pobierz sprawdzony obraz programu przed ponowną próbą pracy online.
Sprawdź również, czy plik Float nie jest chroniony uprawnieniami do tabeli danych lub hasłem, które pozwala na weryfikację offline, ale blokuje modyfikację online. Sterowniki MicroLogix 1400 Series A i Series B obsługują edycję online, gdy wersje oprogramowania sprzętowego i RSLogix 500 są zgodne; niezgodne wersje narzędzi mogą wyświetlać ten sam tekst „online edit error” z innych przyczyn. Zachowaj obraz sterownika testowego pokazujący poprawnie działającą instrukcję MUL z operandem Float, aby technicy mogli porównać go z projektem zakładowym.
Weryfikacja i szersze ograniczenia
Po zaakceptowaniu edycji wymuś kilka wartości dla N7:2 i obserwuj lub rejestruj zarówno wartości całkowitoliczbowe, jak i zmiennoprzecinkowe, jeśli oba miejsca docelowe istnieją. Potwierdź, że kompilacja edycji online przebiega bez błędu, sprawdź poprawne wykonanie MUL podczas pracy sterownika, a jeśli istotna jest precyzja, przenieś wartość docelową do Float, na przykład F8:8. Utrzymujące się błędy po zastąpieniu stałych należy najpierw odtworzyć offline, a następnie pobrać program do sterownika. Wszędzie tam, gdzie przewidywane są edycje na działającym urządzeniu, preferuj wartości adresowane zamiast stałych wpisywanych bezpośrednio. Dokumentuj zasady programowania MicroLogix obok innych standardów PLC i PAC, aby technicy nie szukali problemu w komunikacji Ethernet, gdy przyczyną są reguły dotyczące operandów.
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 oraz starsze systemy SLC-500. Na co dzień zajmuje się programowaniem logiki w RSLogix / Studio 5000 oraz uruchamianiem interfejsów HMI FactoryTalk View w starzejących się i zróżnicowanych parkach urządzeń.