Step 7 Katastrophenzustand Zeitstempelkonflikte

Draco Malfoy

Level-1
Beiträge
1.168
Reaktionspunkte
82
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen!

Habe hier ein größeres Projekt (Bausteinordner mit 250 Steinchen) und 25km SCL Quellen. Das Projekt ist historisch gewachsen.

In der letzten Zeit verwende ich dadrin verstärkt Multiinstanzen, wobei die immer 5-6 Schaltelungsebenen haben und dort z.B. ganze Strukturen über die Schnittstelle übergeben und teilweise in dem Schachtelungsbau heruntergereicht werden.
Die UDTs und FBs kommen dabei zum Teil aus dem SCL und zum Teil sind die mit gewöhnlichen Editoren erstellt.

Mein Problem ist dabei folgendes: Steht der Operandenvorrang auf "Absolut", lässt sich der Krempel ohne Fehler und Warnungen übersetzen. Stelle ich hingegegen (nach einer erfolgten einwandfreien Konsistenzprüfung!) den Operandenvorrang auf "symbolisch" um, und will danach Konsistenzprüfung machen - sind plötzlich alle Instanzen rot, Fehler, Fehler, Fehler, Zeitstempel, Datentyp "STAT" an dieser Stelle nicht erlaubt etc.

Was soll das ? Wie kann ich erreichen daß mein Projekt auch in der symbolischen Adressierung vernünftig übersetzt wird ??

Dank im Voraus
 
Hallo Draco,

Kannst du den Effekt in Form eines kleinen Beispielprogramms rekonstruieren und als abschreckendes Beispiel online stellen?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Draco,

Kannst du den Effekt in Form eines kleinen Beispielprogramms rekonstruieren und als abschreckendes Beispiel online stellen?

Das wird schwierig. Ich habe ja keine Ahnung, wo der Effekt herkommt. Solange ich absolut bleibe, ist ja auch alles konsistent, keine Zeitstempelkonflikte, keine Warnungen, nichts. Abschreckendes Beispiel wofür ? Dafür, wie man nicht programmieren sollte ? Wäre erst mal interessant zu erfahren, was ich überhaupt falsch gemacht habe :)
 
Ja, interessant wäre es schon. Nur ist es etwas mühsam, aus dem Nichts einen möglichen Fehler zu finden. Aber vielleicht kennt ja jemand das Problem.
 
Hallo zusammen.
In der absoluten Einstellung werden nur die Zeitstempel der Bausteine untereinander geprüft, um Konflikte zu finden. Diese können ja konsistent sein, keine Anzeige.
In der symbolischen Einstellung wird jedoch zusätzlich noch der Zeitstempel der Symboltabelle mitgeprüft. Ist nun nach einer Änderung der Symboltabelle deren
Zeitstempel jünger als der des Bausteins, wird der Baustein als inkonsistent angezeigt. Erst ein Übersetzen des Bausteins macht diesen wieder konsistent.
Dabei werden nicht die einzelnen verwendeten Symbole das Bausteins geprüft, sondern nur pauschal der Zeitstempel der gesamten Symboltabelle.
Wenn bei deiner SCL Quellenübersetzung die Symboltabelle geändert wird, werden damit die Bausteine inkonsistent.
Kannst du am einfachsten nachprüfen, indem du in einem konsistenten symbolischen Projekt eine Änderung in der Symboltabelle machst.
Danach sind alle Bausteine inkonsistent.
mfg
Linus
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi
Interessanter Hinweis
Wie kann ich den feststellen, ob meine SCL Quellen die Symboltabelle verändern ??
In den Quellen pflege ich grundsätzlich nur den symbolischen Zugriff, also "FB_XY_DIESDAS" aber nicht FB89 !
Gibt es noch andere Tools, die mir beim Übersetzen die Symboltabelle verwurschten ?

Ich muss eigentlich in beiden Sichten konsistent bleiben können, sonst kann man ja kaum arbeiten. Will man eine Struktur aufblähen, muss man symbolisch werden. Will man Variablennamen anpassen oder etwas umstrukturieren, dann absolut.
Dank im Voraus
 
Ich muss eigentlich in beiden Sichten konsistent bleiben können, sonst kann man ja kaum arbeiten. Will man eine Struktur aufblähen, muss man symbolisch werden. Will man Variablennamen anpassen oder etwas umstrukturieren, dann absolut.
Dank im Voraus

Ich arbeite eigentlich überhaupt nicht mehr mit absoluter Adressierung.
Zum Umstrukturieren oder Variablennamen anpassen, erzeuge ich eine Quelle mit allen betroffenen Bausteine und mache das dann mit Suche und Ersetze

Gruß
Dieter
 
Ich arbeite eigentlich überhaupt nicht mehr mit absoluter Adressierung.
Zum Umstrukturieren oder Variablennamen anpassen, erzeuge ich eine Quelle mit allen betroffenen Bausteine und mache das dann mit Suche und Ersetze

Gruß
Dieter
Aktuell bin ich ja der Möglichkeit beraubt, symbolischen Variablenvorrang zu nutzen, und würde gerne erfahren, warum.

Der Hinweis von dem beitragenden s.o. daß sich die Symboltabelle mitverändert ist zwar nützlich, aber mir ist nicht klar, wie dies zu verhindern ist.

Ich habe übrigens herausgefunden, dass daran bestimmte UDTs schuld sein könnten, die aus ner SCL Quelle generiert und in Multiinstanzen gebraucht werden.

Code davon mit Einstellungen vom SCL Compiler kann ich posten bei Bedarf.

Grüße
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe übrigens herausgefunden, dass daran bestimmte UDTs schuld sein könnten, die aus ner SCL Quelle generiert und in Multiinstanzen gebraucht werden.

Grüße

tja dann sollte es doch einfach sein mal 1 und 1 zusammenzuzählen. Du drehst dich im Kreis. Wenn die UDTs nicht per SCL-Quelle erzeugt werden würde es wahrscheinlich funktionieren.

André
 
Bei mir sind auch alle Projekte symbolisch mit viel SCL.
Ich definiere allerdings UDTs und DBs immer im AWL/KOP/FUP-Editor und nicht in SCL.
@Draco
Wenn du UDTs unbedingt in SCL definieren willst, dann musst Du darauf achten, dass die UDTs in einer eigenen SCL-Quelle definiert werden, am Besten eine Quelle pro UDT.
In diesen Quellen sollten keine Bausteine (weder Dbs noch FCs oder FBs) definiert werden. Dann eine Quelle, in der die DBs definiert werden, und auch bei den FCs und FB lieber mehr als weniger SCL-Quellen.
So kann bei Zeitstempel-Konflikten der Kompiler immer nur das übersetzen, was neu übersetzt werden muss.
Gruß
Erich
 
tja dann sollte es doch einfach sein mal 1 und 1 zusammenzuzählen. Du drehst dich im Kreis. Wenn die UDTs nicht per SCL-Quelle erzeugt werden würde es wahrscheinlich funktionieren.

André

Ich wäre dankbar, wenn die Firma SPS Konzept mir das 1x1 sachlich erklärt, und auch erklärt, wie ich diesen Mist vermeiden kann.

Tut mir leid, aber ich verstehe es immer noch nicht, was da beim Übersetzen schief läuft.

Übrigens existiert bei mir auch eine Übersetzungssteuerdatei, die zuerst die Quellen mit den UDTs, und dann die mit Bausteinen übersetzt.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen.
Meine Anmerkung bezüglich der Symboltabelle war allgemein. Eine genauere Beurteilung kann nur über das Projekt stattfinden.
In diesem Sinn hat Largo recht. Ausser der Änderung in der Symboltabelle kann auch eine unglückliche Aufteilung der Bausteine
in einzelne SCL Sourcen dazu führen, daß ein UDT, der viele Referenzen besitzt, durch das Kompilieren einer Quelle neu angelegt wird.
Dieser neue UDT kann dann bereits wieder viele Inkonsistenzen hervorrufen. Dagegen spricht allerdings, daß ein konsistenter
Zustand im absoluten Operandenvorrang erreicht werden kann.
Fazit: Eine genauere Erklärung ist nur mit dem Projekt möglich.
mfg
Linus
 
Erstell doch mal aus den Nicht-SCL-Bausteinen AWL-Quellen.
Dann alle Bausteine im Baustein-Ordner löschen und anschließend SCL- und AWL-Quellen übersetzen.
 
Zurück
Oben