MicroLogix 1400-Online-Bearbeitungsfehler mit MUL-Anweisung
MicroLogix 1400-Fehler bei der Online-Bearbeitung beim Hinzufügen einer MUL-Anweisung mit einem konstanten Operanden. Beheben Sie das Problem, indem Sie für ...
Die Online-Bearbeitung eines MicroLogix 1400 über EtherNet/IP kann mit „Programm konnte nicht kompiliert werden. Fehler bei der Online-Bearbeitung“ fehlschlagen, wenn ein MUL-Rung einen literalen Konstantenwert wie 0.7 mit einer Integer-Quelle verwendet. Dasselbe Projekt kann offline ohne Beanstandung verifiziert werden. Der Compiler für die Online-Bearbeitung der Steuerung erzwingt strengere Regeln für Operanden als der Offline-Pfad, und Gleitkommaliterale in arithmetischen Anweisungen sind häufige Auslöser.
Ersetzen Sie die Konstante durch eine Float-Dateiadresse, die bereits den Wert 0.7 enthält, und testen Sie die Online-Bearbeitung erneut, bevor Sie etwas anderes ändern.
Symptom und Konfiguration
| Element | Typische fehlerhafte Konfiguration |
|---|---|
| Steuerung | MicroLogix 1400 Serie A oder B |
| Software | RSLogix 500 mit Online-Bearbeitung |
| Anweisung | MUL |
| Quelle A | N7:2 (Integer) |
| Quelle B | Konstante 0.7 |
| Ziel | N7:7 (Integer) |
Ursache
Online-Bearbeitungen auf dem MicroLogix 1400 prüfen Größe und Typ der Operanden strenger als die Offline-Kompilierung. Eine Gleitkommakonstante als Quelle B wird bei manchen Offline-Verifizierungen akzeptiert, jedoch abgelehnt, wenn die Änderung in das laufende Abbild kompiliert werden muss. Verwandte Offline-Meldungen wie „Operandengröße stimmt nicht überein“ weisen auf dieselbe Gruppe von Typkonflikten hin. Nicht jede Änderung am MicroLogix ist online zulässig; einige strukturelle Änderungen erfordern weiterhin eine Offline-Modifikation und einen Download.
Behebungsverfahren
- Ermitteln Sie eine ungenutzte Float-Adresse (Beispiel F8:7).
- Setzen Sie F8:7 offline oder über einen einmaligen MOV-/Initialisierungs-Rung auf 0.7.
- Bearbeiten Sie die MUL-Anweisung: Quelle A bleibt N7:2; Quelle B wird F8:7; das Ziel bleibt N7:7 oder wird bei erforderlicher Genauigkeit zu einer Float-Adresse geändert.
- Übernehmen Sie die Online-Bearbeitung und bestätigen Sie, dass der Rung kompiliert wird.
- Erzwingen Sie einen bekannten Wert für Quelle A und prüfen Sie das Produkt zur Laufzeit.
MUL Source A: N7:2 Source B: F8:7 <-- Float-Adresse, nicht die Konstante 0.7 Dest: N7:7 <-- oder F8:8 für volle Genauigkeit
Auswirkungen der Datentypen
| Konfiguration | Ergebnis |
|---|---|
| Quelle B = Konstante 0.7 | Fehler bei der Kompilierung der Online-Bearbeitung |
| Quelle B = F8:7, Ziel = N7:7 | Bearbeitung erfolgreich; Ganzzahlkürzung/-rundung |
| Quelle B = F8:7, Ziel = F8:8 | Bearbeitung erfolgreich; volle Float-Genauigkeit |
Bei N7:2 = 10 und einem Multiplikator von 0.7 ergibt ein Ganzzahlziel je nach Rundungs-/Kürzungsverhalten den Wert 7 – nicht einen unveränderten Float-Wert 7.0. Wählen Sie den Zieltyp bewusst, wenn der Wert in PID-Regler, Skalierungen oder Vergleiche einfließt.
Verwandte Einschränkungen bei der Online-Bearbeitung arithmetischer Anweisungen
Dieselbe Empfindlichkeit des Online-Compilers zeigt sich bei DIV, CPT-Ausdrücken, sofern verfügbar, und gemischten INT-/Float-Ketten, die während einer Live-Anpassung schnell eingegeben wurden. Techniker versuchen häufig drei aufeinanderfolgende Online-Bearbeitungen – zunächst nur die Konstante, dann den Zieldateityp und anschließend den gesamten Rung zu ändern –, ohne den Run-Modus zu verlassen. Jeder fehlgeschlagene Kompilierungsvorgang hinterlässt die ausstehende Bearbeitungswarteschlange in einem verwirrenden Zustand. Brechen Sie die fehlgeschlagene Bearbeitung sauber ab, nehmen Sie eine zusammenhängende Änderung vor (Literalwert durch Float-Adresse ersetzen) und übernehmen Sie sie anschließend. Wenn der MicroLogix nach mehreren Versuchen meldet, dass das Programm nicht kompiliert werden konnte, wechseln Sie in den Offline-Modus, prüfen Sie, ob die Datei vorhanden ist (F8 mit ausreichender Elementanzahl erstellt), und laden Sie anschließend ein bekannt funktionsfähiges Abbild herunter, bevor Sie die Online-Arbeiten erneut versuchen.
Prüfen Sie außerdem, ob die Float-Datei nicht durch ein Datentabellenrecht oder ein Passwort geschützt ist, das zwar eine Offline-Verifizierung erlaubt, aber die Online-Änderung blockiert. MicroLogix-1400-Steuerungen der Serie A und Serie B unterstützen beide die Online-Bearbeitung, sofern Firmware- und RSLogix-500-Versionen aufeinander abgestimmt sind. Nicht übereinstimmende Tool-Versionen können denselben Text „Fehler bei der Online-Bearbeitung“ aus voneinander unabhängigen Gründen anzeigen. Halten Sie ein Abbild einer Teststeuerung bereit, das eine erfolgreiche MUL-Anweisung mit Float-Operand demonstriert, damit Techniker es mit dem Anlagenprojekt vergleichen können.
Verifizierung und weitergehende Einschränkungen
Nachdem die Bearbeitung übernommen wurde, erzwingen Sie mehrere Werte für N7:2 und verfolgen oder beobachten Sie sowohl die Integer- als auch die Float-Ziele, sofern beide vorhanden sind. Bestätigen Sie, dass die Online-Bearbeitung fehlerfrei kompiliert wird, prüfen Sie, ob die MUL-Anweisung zur Laufzeit korrekt ausgeführt wird, und verschieben Sie das Ziel bei erforderlicher Genauigkeit auf eine Float-Adresse wie F8:8. Anhaltende Fehler nach dem Ersetzen von Literalwerten sollten zunächst offline reproduziert und anschließend heruntergeladen werden. Verwenden Sie, wo Online-Bearbeitungen erwartet werden, bevorzugt adressierte Werte anstelle von Inline-Konstanten. Dokumentieren Sie die Programmierpraxis für MicroLogix neben den übrigen Standards für PLC- und PAC-Systeme, damit Techniker nicht Ethernet-Fehler suchen, obwohl tatsächlich eine Operandregel die Ursache ist.
Über den Autor
Mark Townsend | Senior Automation Engineer – Allen-Bradley-Systeme
Mark Townsend ist ein Senior Automation Engineer mit mehr als 18 Jahren Erfahrung mit Allen-Bradley-Plattformen, darunter ControlLogix, CompactLogix und die ältere SLC-500. Zu seiner täglichen Arbeit gehören RSLogix-/Studio-5000-Logik sowie die Inbetriebnahme von FactoryTalk-View-HMIs in veralteten und gemischten Anlagenparks.