Bl000b3r
Level-2
- Beiträge
- 99
- Reaktionspunkte
- 11
-> Hier kostenlos registrieren
Also erstmal Hallo ^^
hab ja quasi noch nicht viel zur Hilfe hier beigetragen, habe dafür aber ein umso interessantes problem
also vorab-information:
*sitze nach feierabend aufm hotelzimmer
* beckhoff support schon mehrmals kontakiert ... die einzigste service-hotline die einfach nur besetzt ist lol, wenn man jmd ranbekommt hat er keine ahnung oder man stört ihn scheinbar grad beim schaumbad, am ende heißt es nur "schicken sie es mal per email" ... danach heißt es immer die email ist nie angekommen
könnt mittlerweile ausrasten, aber dafür ist ja beckhoff schon berühmt
Nutzen Steuerungen des Typs CX1020-0122 mit Twincat v2.11 (Build 2228 )
Nun zu meinem Problem:
Es gab ein ein schlechtes vorlage-projekt. das hab ich glatt-gezogen und lief wie ein schweizer uhrwerk ^^
nach dem transport zum kunden lief auch alles weiter glatt, bis ich bemerkte dass es ein problem bei peristenten variablen gibt, ich hoffe ich kanns gut beschreiben. hab auch schon andere threads zu dem thema hier gelesen daher vorne weg:
die pers.vars werden vorm stoppen der sps auf den flashspeicher geschrieben ... dies funktioniert auch bei "fast" allen variablen problemlos, bis auf genau eine ... nennen wir sie "problemkind"
das problemkind ist eine real variable, die über eine visualisierung (spidercontrol @ microbrowser) nur bei bedarf geschrieben werden kann, es handelt sich nur eine art referenz variable. die variable wird eim start der visualisierung auch nicht beschrieben sondern lediglich für die anzeige gelesen. im programm selber wird die variable nur an einer einzigen stelle für einen vergleich gelesen.
So:
Man kann die Variable über den PLC-Editor oder die Visu schreiben. Sie ist als peristente globale Variable deklariert. Wenn TwinCat aber neustartet sind alle pers.Vars korrekt vorhanden, nur das Problemkind steht auf einmal wider bei 0 !!!
Also gingen die Versuche los ... die Visualisierung wurde für alle weiteren Versuche beendet.
die variablen vor und nach dem problemkind waren alle entweder usint oder real werte ... also von oben angefangen durch nummerierte werte zu vergeben (10, 11, 12 ... usw). Die Variablen wurden erfolgreich geschrieben und Twincat anschließend über den Systemmanager neugestartet ... Die Nummerierung war noch vorhanden, nur das Problemkind stand wieder auf 0. Dieser prozess wurde weiter versucht, mit immer dem selben ergebnis.
Danach haben wir das komplette Bootprojekt in der Steuerung gelöscht. Im Twincat verzeichnis den Ordner Boot ebenfalls per Hand geleert. Alle Dateien im Projekt bis auf die *.pro & *.tsm gelöscht, das Projekt komplett neu generiert - tpy Datei neu eingelesen - die ganze prozedur ^^ Bootprojekt neu erzeugen und los gings
Die Variablen standen ja alle erstmal wieder bei 0 .. also wieder neu durchnummiert ... wieder war das problemkind nach neustart 0 ^^
Das war der Punkt wo ich die Geduld verloren und mir meinen harten reset-knopf gewünscht hab ^^ aber ein kaffee später gingen die versuche weiter.
Nun habe ich mir in einer virtuellen Maschine eine neue Demoversion von der selben TwinCat version installiert und das projekt in die demo-plc eingespielt und die selben versuche wie oben getätigt ... und lol das selbe problem ???
Da kam wieder der punkt, nur diesmal hätte ich gern schnaps statt nen kaffee gehabt lol
Brauche wohl kaum erwähnen, dass ein anderer Versuch in einer CX1020-0121 mit Twincat 2.11 aber wesentlich ältere build den selben effekt brachten.
Wie gesagt ... die Variable wird nur EINMAL in programm GELESEN (!!!) und die Visualisierung war komplett beendet - 100%ig
also habe ich angefangen allen persistenten variablen per hand feste speicherbereiche zuzuteilen, quasi per @MB... .
danach die variablen mit nem einfach zu merkenden muster beschreiben und siehe da, das problemkind wird aufeinmal gespeichert ... ABER auf einmal wird die Variable, nenn wir sie "Problemkind2", im %MB12 nicht mehr gespeichert (zur sicherheit wurden alle zugriffe auf die variable in der plc auskommentiert).
Da der support nicht reagiert und der kunde druck macht, habe ich auf MB12 erstmal eine dummy variable gelegt und das problemkind2 auf einen anderen speicherbereich gelegt. dort wird es erfolgreich gespeichert und wiederhergestellt.
Zwischeninfo: ich habe beim übersetzen die überwachung für überlappende speicherbereiche und konkurrierende zugriffe aktiviert (ohne fehlermeldung ... immer)
Danach habe ich angefangen weitere updates (ohne anlegen neuer persistenter variablen) einzuarbeiten. lief alles super bis ich merkte das aufeinmal wieder eine pers.var immer nach dem neustart 0 ist ... OMG wo ist mein kaffee ... wieder im speicherbereich verschoben, weiter gehts
dies ist aber keine lösung, weils keiner verantworten kann das ding automatisch ohne aufsicht laufen zu lassen, weil keiner weiß wann die nächste variable ausfällt ^^
Was denkt ihr woran es liegen kann ... es saßen schon 5 leute an dem projekt und konnten sich nicht erklären was da schief läuft.
Einen defekt der Hardware oder im Speicher schließe ich aus, da dass Problem auf in der Soft-PLc aufm Laptop und in der älteren Ersatzsteuerung auftrat.
Twincat selbst erkennt mit allen Zusatzoptionen beim Übersetzen 0 Fehler und 0 Warnungen.
Die Biliotheken in der SPS und auf meinem Laptop sind in der gleichen Version.
ich hatte die Vermutung das durch vielen Änderungen die im Ablauf nötig waren ein Bug beim übersetzen sich ins programm geschlichen, vlt bei der zuteilung der speicherbereiche etc ... aber als ich die einigermaßen funktionierende vorlage mal iweder eingepsielt habe gab es auch da auf einmal ein problemkind ... dessen position sich zwar scheinbar mit wachsenden oder schrupfenden programm-ausmaß verschiebt aber es gibt auf alle fälle IMMER ein problem kind
ich bin ratlos ... willkommen im beckhoff-permuda dreieck xD wo emails verschwinden und probleme aus dem nicht auftauchen ^^
hab ja quasi noch nicht viel zur Hilfe hier beigetragen, habe dafür aber ein umso interessantes problem

also vorab-information:
*sitze nach feierabend aufm hotelzimmer

* beckhoff support schon mehrmals kontakiert ... die einzigste service-hotline die einfach nur besetzt ist lol, wenn man jmd ranbekommt hat er keine ahnung oder man stört ihn scheinbar grad beim schaumbad, am ende heißt es nur "schicken sie es mal per email" ... danach heißt es immer die email ist nie angekommen

Nutzen Steuerungen des Typs CX1020-0122 mit Twincat v2.11 (Build 2228 )
Nun zu meinem Problem:
Es gab ein ein schlechtes vorlage-projekt. das hab ich glatt-gezogen und lief wie ein schweizer uhrwerk ^^
nach dem transport zum kunden lief auch alles weiter glatt, bis ich bemerkte dass es ein problem bei peristenten variablen gibt, ich hoffe ich kanns gut beschreiben. hab auch schon andere threads zu dem thema hier gelesen daher vorne weg:
die pers.vars werden vorm stoppen der sps auf den flashspeicher geschrieben ... dies funktioniert auch bei "fast" allen variablen problemlos, bis auf genau eine ... nennen wir sie "problemkind"
das problemkind ist eine real variable, die über eine visualisierung (spidercontrol @ microbrowser) nur bei bedarf geschrieben werden kann, es handelt sich nur eine art referenz variable. die variable wird eim start der visualisierung auch nicht beschrieben sondern lediglich für die anzeige gelesen. im programm selber wird die variable nur an einer einzigen stelle für einen vergleich gelesen.
So:
Man kann die Variable über den PLC-Editor oder die Visu schreiben. Sie ist als peristente globale Variable deklariert. Wenn TwinCat aber neustartet sind alle pers.Vars korrekt vorhanden, nur das Problemkind steht auf einmal wider bei 0 !!!
Also gingen die Versuche los ... die Visualisierung wurde für alle weiteren Versuche beendet.
die variablen vor und nach dem problemkind waren alle entweder usint oder real werte ... also von oben angefangen durch nummerierte werte zu vergeben (10, 11, 12 ... usw). Die Variablen wurden erfolgreich geschrieben und Twincat anschließend über den Systemmanager neugestartet ... Die Nummerierung war noch vorhanden, nur das Problemkind stand wieder auf 0. Dieser prozess wurde weiter versucht, mit immer dem selben ergebnis.
Danach haben wir das komplette Bootprojekt in der Steuerung gelöscht. Im Twincat verzeichnis den Ordner Boot ebenfalls per Hand geleert. Alle Dateien im Projekt bis auf die *.pro & *.tsm gelöscht, das Projekt komplett neu generiert - tpy Datei neu eingelesen - die ganze prozedur ^^ Bootprojekt neu erzeugen und los gings
Die Variablen standen ja alle erstmal wieder bei 0 .. also wieder neu durchnummiert ... wieder war das problemkind nach neustart 0 ^^
Das war der Punkt wo ich die Geduld verloren und mir meinen harten reset-knopf gewünscht hab ^^ aber ein kaffee später gingen die versuche weiter.
Nun habe ich mir in einer virtuellen Maschine eine neue Demoversion von der selben TwinCat version installiert und das projekt in die demo-plc eingespielt und die selben versuche wie oben getätigt ... und lol das selbe problem ???
Da kam wieder der punkt, nur diesmal hätte ich gern schnaps statt nen kaffee gehabt lol
Brauche wohl kaum erwähnen, dass ein anderer Versuch in einer CX1020-0121 mit Twincat 2.11 aber wesentlich ältere build den selben effekt brachten.
Wie gesagt ... die Variable wird nur EINMAL in programm GELESEN (!!!) und die Visualisierung war komplett beendet - 100%ig
also habe ich angefangen allen persistenten variablen per hand feste speicherbereiche zuzuteilen, quasi per @MB... .
danach die variablen mit nem einfach zu merkenden muster beschreiben und siehe da, das problemkind wird aufeinmal gespeichert ... ABER auf einmal wird die Variable, nenn wir sie "Problemkind2", im %MB12 nicht mehr gespeichert (zur sicherheit wurden alle zugriffe auf die variable in der plc auskommentiert).
Da der support nicht reagiert und der kunde druck macht, habe ich auf MB12 erstmal eine dummy variable gelegt und das problemkind2 auf einen anderen speicherbereich gelegt. dort wird es erfolgreich gespeichert und wiederhergestellt.
Zwischeninfo: ich habe beim übersetzen die überwachung für überlappende speicherbereiche und konkurrierende zugriffe aktiviert (ohne fehlermeldung ... immer)
Danach habe ich angefangen weitere updates (ohne anlegen neuer persistenter variablen) einzuarbeiten. lief alles super bis ich merkte das aufeinmal wieder eine pers.var immer nach dem neustart 0 ist ... OMG wo ist mein kaffee ... wieder im speicherbereich verschoben, weiter gehts
dies ist aber keine lösung, weils keiner verantworten kann das ding automatisch ohne aufsicht laufen zu lassen, weil keiner weiß wann die nächste variable ausfällt ^^
Was denkt ihr woran es liegen kann ... es saßen schon 5 leute an dem projekt und konnten sich nicht erklären was da schief läuft.
Einen defekt der Hardware oder im Speicher schließe ich aus, da dass Problem auf in der Soft-PLc aufm Laptop und in der älteren Ersatzsteuerung auftrat.
Twincat selbst erkennt mit allen Zusatzoptionen beim Übersetzen 0 Fehler und 0 Warnungen.
Die Biliotheken in der SPS und auf meinem Laptop sind in der gleichen Version.
ich hatte die Vermutung das durch vielen Änderungen die im Ablauf nötig waren ein Bug beim übersetzen sich ins programm geschlichen, vlt bei der zuteilung der speicherbereiche etc ... aber als ich die einigermaßen funktionierende vorlage mal iweder eingepsielt habe gab es auch da auf einmal ein problemkind ... dessen position sich zwar scheinbar mit wachsenden oder schrupfenden programm-ausmaß verschiebt aber es gibt auf alle fälle IMMER ein problem kind
ich bin ratlos ... willkommen im beckhoff-permuda dreieck xD wo emails verschwinden und probleme aus dem nicht auftauchen ^^
Zuletzt bearbeitet: