We are moving! We are currently migrating our community to the new Bosch Connected Industry Online Portal.
The community will be available latest in the new year again, until then it will be in read-only mode. Click here for more information.
Bosch Connected Industry hat mehrere Probleme festgestellt beim Ändern einer TwinCAT SPS Software Applikation mit Nexeed Control plus auf einer Maschine. Der Leitfaden wird dringend empfohlen für Maschinen, bei denen Produktionsausfall/-verzögerung kritisch ist oder ein hoher Sachschaden möglich ist, zum Beispiel aufgrund hoher Energien oder teurer Produkte.
Bekannte Probleme:
Page Fault Exception 1: Tritt in der OpconBase Bibliothek direkt nach SPS-Start auf (siehe auch Page Fault Exception beheben nach Auftreten)
Page Fault Exception 2: Tritt in der OpconBase Bibliothek bei Bedienung der HMI auf, z.B. Fehler quittieren oder Button klicken (siehe auch Page Fault Exception beheben nach Auftreten)
IO Problem: Einzelne SPS-Ausgänge haben auf dem Bus einen anderen Wert als in der SPS, dadurch macht die Maschine nicht das, was die SPS vorgibt, z.B. Anfahren einer falschen Achs-Zielposition, falsche Ansteuerung eines Ventils, usw.
IO Problem: Einzelne SPS-Eingänge kommen in der SPS falsch an, dadurch eine falsche Bearbeitung/Reaktion der SPS, z.B. falsche Achs-Istposition, falsches Sensorsignal, usw.
OPC UA Problem: TMC-Datei fehlt oder nicht aktuell, dadurch OPC UA Kommunikation nach System-Neustart nicht möglich (z.B. Daten Laden mit DataSetAccess)
DatAccess.exe Fehler: Daten aus DAT-Datei können nicht in die SPS geladen werden, Fehlermeldung „DatAccess.exe: Fehler beim Schreiben des Datensatzes 1111111111.dat in die SPS“
DatAccess.exe Problem: Online-Daten in SPS stimmen nicht mit Daten aus DAT-Datei überein
Boot-Projekt Problem: Kein oder ein altes Boot-Projekt wird beim nächsten System-Start gestartet
Verlorene Bibliotheksparameter: Nach Weitergabe eines Projekts und Installation der auf diesem Entwicklungsrechner fehlenden Bibliothek gehen projektspezifisch geänderte Bibliotheksparameter verloren
Verlorene Code-Änderungen (SFC): Nach Schließen und Öffnen eines Projekts ist zuvor geänderter Code bzw. grafische SFC-Änderungen wieder auf dem alten Stand, die Änderungen sind verloren
Verlorene Code-Änderungen (nach Schließen ohne Speichern): Nach Schließen und Öffnen eines Projekts ist zuvor geänderter Code wieder auf dem alten Stand, die Änderungen sind verloren
Falsche Breakpoints: In manchen Zeilen kann trotz gültigem Code kein Breakpoint gesetzt werden oder die Breakpoint-Positionen sind gegenüber dem Code verschoben
TwinCAT 4020 Probleme: Falsche Abarbeitung von IF-Bedingungen und Absacken von IndraDrive Z-Achsen
Leitfaden für eine fehlerfreie Änderung der SPS-Applikation:
Das Überspringen einzelner Schritte kann dazu führen, dass eines der oben genannten Probleme auftreten kann!
[TwinCAT 4020 Probleme] Mit TwinCAT 3.1.4020 mindestens Master Image Version 2.12 verwenden.
[Verlorene Code-Änderungen SFC + nicht-gespeicherte Änderungen] Das Verhalten ist bei beiden Problemen identisch: Editor-Inhalt und Kompilat entsprechen nicht dem Dateiinhalt.
Der ST-Code oder die SFC Schrittkette, die im Editor angezeigt und kompiliert wird, entspricht nicht mehr dem Zustand auf Dateiebene. Kompilat und Datei sind inkonsistent. Das Projektarchiv auf dem Zielsystem basiert auf Dateiebene, sodass auch der Projektvergleich mit dem Zielsystem falsche Informationen anzeigt. Nach Schließen des Projekts gehen die im Editor gemachten Änderungen unwiderruflich verloren. Beim Öffnen des Projekts wird der Dateiinhalt geladen, in dem die zuletzt erfolgten Änderungen fehlen, z.B. neu eingefügte Schritte fehlen, gelöschte Schritte sind wieder vorhanden, Änderung in Transistionen sind verloren, ST-Code in Aktionen oder Methoden sind verloren, usw.
Mit TwinCAT 4024 und 4020.28 werden in seltenen Fällen ab einem unbekannten Zeitpunkt Änderungen in einzelnen SFC Schrittketten nicht mehr auf Dateiebene gespeichert. Eine Ursache oder Lösung ist bisher nicht bekannt.
Mit allen TwinCAT Versionen sollte beachtet werden: Wenn in einer POU (FB) mehrere Methoden oder Aktionen ungespeicherte Änderungen haben, erscheint beim Schließen eines Elements ein Speicher-Dialog. Dabei sollte nicht unterschiedlich Ja und Nein für Elemente innerhalb einer POU geklickt werden. Ab dem ersten "Ja" werden im Hintergrund auch alle anderen Elemente gespeichert, im Editor aber weiterhin als ungespeichert angezeigt.
Mit TwinCAT 4024.22 bis 4024.58 darf bei diesem Dialog niemals "Nein" geklickt werden, wenn es in derselben POU noch weitere ungespeicherte Änderungen gibt:
Bei Klick auf Nein werden andere Änderungen ab diesem Zeitpunkt nur im Editor als gespeichert angezeigt und landen im Kompilat, werden aber nicht auf Dateiebene gespeichert und gehen dadurch nach Schließen des Projekts verloren.
[IO Problem + OPC UA Problem + Boot-Projekt] SPS-Projekt Einstellungen überprüfen, da diese mit der Funktion „Update PlcProject from Target“ verloren gehen:
Häkchen TMC-Datei muss gesetzt sein:
Häkchen Symbolic Mapping entfernen und bei Verbindung mit dem Zielsystem das Häkchen "Autostart Boot Project" prüfen:
Wichtig bis 4024.59: Die Änderung muss bei selektiertem PlcProject mit "Projekt speichern" gesichert werden. Wenn stattdessen "Alles speichern" verwendet oder direkt übersetzt wird, setzt TwinCAT das Häkchen wieder.
Falls das Häkchen "Symbolic Mapping" entfernt wurde, weitere Sicherheitsmaßnahmen: Auf dem Zielsystem alle OCM-Dateien im Boot-Ordner löschen, z.B. C:\TwinCAT\3.1\Boot\Plc\Port_851.ocm Auf dem Entwicklungsrechner alle OCM-Dateien im Projektordner löschen, z.B. <Stat000>\Plc\_Boot\TwinCAT RT (x64)\Plc\Port_851.ocm
Fortfahren mit dem nächsten Abschnitt. Falls in diesem Abschnitt ein Häkchen geändert wurde, ist in den nächsten Abschnitten ein Activate Configuration notwendig.
[Page Fault Exception 1] Wurde der Standard (Std) aktualisiert, eine Bibliotheksversion aktualisiert oder ein Bibliotheksparameter geändert? Wenn nein, diesen Absatz überspringen.
Änderung eines Bibliotheksparameters mit Enter-Taste bestätigen, sodass anschließend das Diskettensymbol des SPS-Projekts rot wird:
Ganzes Projekt speichern, damit alle Diskettensymbole schwarz sind. Falls Diskettensymbole fehlen, Einstellung „Independent Project File“ anpassen.
Clean Projekt erfolgreich ausführen:
Alle HMI-Instanzen beenden (auf Zielsystem, mPad, Laptop, usw.). Beim Hotplug mPad zusätzlich die Kommandozeile beenden, damit die HMI nicht automatisch neugestartet wird.
Activate Configuration ausführen; kein Online Change und kein Download.
Alle HMI-Instanzen beenden (auf Zielsystem, mPad, Laptop, usw.). Beim Hotplug mPad zusätzlich die Kommandozeile beenden, damit die HMI nicht automatisch neugestartet wird.
DatAccess.exe auf dem Zielsystem schließen (gelbes Symbol in der Windows Taskleiste:).
Software-Änderung wie gewünscht mit Online Change, Download oder Activate Configuration ausführen. Bei Download oder Online Change das Häkchen für Boot-Projekt setzen:
Falls bei einem Online Change dieser zusätzliche Dialog erscheint, sollte mit Nein abgebrochen werden und stattdessen ein Download gemacht werden:
Falls anstatt dem Login-Dialog dieser Dialog erscheint, mit Nein abbrechen und stattdessen Activate Configuration ausführen:
Hinweis: Falls Sie mit Ja fortfahren, wird das Bootprojekt nicht aktualisiert!
Warten, bis die SPS wieder im RUN Modus ist (grünes TwinCAT Icon).
DatAccess.exe auf dem Zielsystem wieder starten, z.B. über C:\OpconApp\OpconSystemStartup.bat oder C:\OpconApp\StartDatAccess.bat oder C:\OpconApp\DatAccess\DatAccess.exe
HMI auf dem Zielsystem, usw. wieder starten, z.B. über C:\OpconApp\OpconSystemStartup.bat oder C:\OpconApp\StartHmi.bat
[Boot-Projekt, früher auch IO Problem] TwinCAT neustarten, um Boot-Projekt zu testen. Solange das Häkchen "Symbolic Mapping" gesetzt war, musste dieser Schritt auch ausgeführt werden, um das IO Problem zu verhindern. Dies ist mit deaktiviertem Symbolic Mapping nicht mehr notwendig.
Grünes TwinCAT Icon in Visual Studo / TcXaeShell zum Neustart klicken.
Alternativ auf dem Zielsystem über das TwinCAT Icon in der Windows Taskleiste Start/Restart ausführen oder auf dem Zielsystem Windows neustarten oder Hauptschalter der Maschine aus-/einschalten.
[Falsche Breakpoints] Trotz gültigem Code kann in manchen Code-Zeilen kein Breakpoint gesetzt werden. Umgekehrt kann in leeren Code-Zeilen eventuell ein Breakpoint gesetzt werden. Nach bisheriger Erfahrung ist dies nur ein Anzeige-/Editor-Problem und der Code wird trotzdem korrekt abgearbeitet.
Bei Auftreten des Problems muss irgendwo im betroffenen Implementierungsteil eine Code-Änderung erfolgen, die auf das Zielsystem übertragen werden muss. Ein Online Change mit Ablauf nach diesem Leitfaden kann dafür ausreichend sein, z.B. mit einfacher Zuweisung _retVal:=_retVal oder _idx:=_idx.
Die Probleme wurden von Bosch Connected Industry mit folgenden TwinCAT Versionen beobachtet bzw. folgende Versionen sind betroffen:
Page Fault Exception 1+2: alle TwinCAT-Versionen (aktuell 4020.28 bis 4024.47)
IO Problem: 4022.30, 4022.32, 4024.12, 4024.29
OPC UA Problem: 4022.30, 4024.47 (vermutlich aber alle)
DatAccess.exe Fehler: 4022.30 (vermutlich aber alle)
DatAccess.exe Problem: 4022.30 (vermutlich aber alle)
Boot-Projekt: 4022.30 (vermutlich noch mehr Versionen)
Verlorene Code-Änderungen (SFC): 4020.28, 4024.47 (vermutlich noch mehr Versionen)
Verlorene Code-Änderungen (nach Schließen ohne Speichern): 4024.22 bis 4024.58
Falsche Breakpoints: 4020.28, 4022.30, 4024.47, 4024.55 (vermutlich aber alle)
TwinCAT 4020 Probleme: 4020.28
Screenshots zur Visualisierung der Probleme:
OpconBase Page Fault Exception: Page Fault Exception in der OpconBase Bibliothek in einer beliebigen Bibliotheksmethode, häufig vorkommend sofort nach SPS-Start: Extension._panelSwitch SqC_Run.Work Addon._stdExecFsm; häufig vorkommend nach Meldungsquittierung in der HMI: InfoStorage.xxx WarningStorage.xxx ErrorStorage.xxx
IO Problem:
SPS setzt Achs-Zielposition auf 2105mm:
Auf dem Bus kommt nur eine 0 an und der Antrieb fährt auch tatsächlich auf Position 0mm (falls keine Endschalter vorhanden):
SPS-Variable mit Achs-Sollgeschwindigkeit 60mm/s:
Verlinktes Bus-Symbol enthält Wert -1033371648, welcher als ca. 300.000mm/s auf dem Antrieb ankam:
Antrieb hat erfolgreich positioniert und setzt entsprechend das Statuswort:
In der SPS kommt ein anderer Wert an, weshalb das Achsobjekt im ExecState RUNNING hängen bleibt:
Die SPS setzt einen Ausgang (Ventil für Greifer) dauerhaft auf TRUE (Greifer geschlossen), aber auf dem Bus wechselt der Wert zur Laufzeit immer wieder auf 0, wodurch der Greifer öffnet und das Werkstück fallen lässt: (Video 1 in neuem Fenster öffnen oder Video 2 in neuem Fenster öffnen)
DatAccess Problem: Einzelne Werte sind falsch in der SPS, obwohl die Daten erfolgreich geladen wurden. In der Applikation wird auf diese Variable nirgends absichtlich geschrieben.
Fehlende oder verschobene Breakpoint-Positionen:
Diese fehlerhafte TwinCAT-Funktion löscht das TMC-Häkchen. Mit dieser Funktion wird das SPS-Projekt auf dem Entwicklungsrechner aktualisiert mit der auf dem Zielsystem abliegenden Version, z.B. um Änderungen auf dem Entwicklungsrechner rückgängig zu machen.
Alternativ kann diese fehlerfreie Funktion verwendet werden: