S7 meldet Fehler in FUNKTIONIERENDEM Baustein

DjTommyB

Level-1
Beiträge
80
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo!

Habe heute mal wieder was entdeckt, und zwar in nem funktionierendem Baustein auf der CPU einer Maschine von uns.

Wollte den Baustein öffnen um ihn zu bearbeiten (erstellt wurde er nicht von mir) da schreibt S7 folgenden Fehler:

"Bei mindestens einem Bausteinaufruf ist ein Zeitstempelkonflikt vorhanden."

Details:
fehlerfc346.jpg


Nach Durchsicht des Bausteins ist mir dann das hier aufgefallen:

fehlerfc346-2.jpg
(sry Bild zusammen geschnitten)


Was ist das, und warum schreibt mir S7 hier nen Fehler, obwohl der Baustein SO auf der CPU ist und funktioniert?

Bitte um Hilfe

mfg
Tommy
 
Zuviel Werbung?
-> Hier kostenlos registrieren
"Bei mindestens einem Bausteinaufruf ist ein Zeitstempelkonflikt vorhanden."
Der Zeitstempelkonflikt ist die eigentliche Ursache der Fehlermeldung.
Die Aufrufschnittstelle des FC43 hat einen neueren Zeitstempel als der FC346.
Deshalb kann Step7 den Bausteinaufruf mit den Aufruf-Parametern nicht mehr
normal anzeigen und Du siehst den eigentlichen MC7-Code, den Step7 im verborgenen
um den sonst angezeigten CALL drumrum-bastelt.

Den Zeitstempelkonflikt kann man lösen, indem man eine Bausteinkonsistenzprüfung
macht (rechter Mausklick auf den Bausteine-Ordner). Dabei bekommen wahrscheinlich
mehrere Bausteine einen neuen Zeitstempel (oft bei InstanzDB).

Die Step7-Fehlermeldung wegen dem Zeitstempelkonflikt ist nichts schlimmes, der
Code des Bausteins ist nicht verändert, der Baustein funktioniert ganz normal.
Nur der CALL kann halt nicht mehr in "Hochsprache" angezeigt werden.
Dein Phänomen haben erfahrene Programmierer schon 'zig mal gesehen.

Habe heute mal wieder was entdeckt, und zwar in nem funktionierendem Baustein auf der CPU einer Maschine von uns.

Wollte den Baustein öffnen um ihn zu bearbeiten
Du wolltest den Baustein doch nicht etwa Online bearbeiten?
Wenn man Online-Bausteine bearbeitet, kann es auch zu solchen Konflikten kommen.
Die Bausteinkonsistenzprüfung muß im Offline-Projekt gemacht werden.

Gruß
Harald
 
Du wolltest den Baustein doch nicht etwa Online bearbeiten?
Wenn man Online-Bausteine bearbeitet, kann es auch zu solchen Konflikten kommen.
Die Bausteinkonsistenzprüfung muß im Offline-Projekt gemacht werden.

Gruß
Harald

Natürlich nicht, mich hat nur eben das verwundert, und darum hab ich ihn mir online angesehen, weil ich dachte, dass der Baustein im S7 Projekt am PC falsch ist, der auf der CPU aber nicht.

Werd mal eine Prüfung machen, dann gibts neues.

Bis dahin Danke ;)



EDIT: Bei der Prüfung der Bausteinkonsistenz dann auf "Alle übersetzen" klicken oder? Will da bloß nix falsch machen und damit kenn ich mich schon mal gar nicht aus :(
 
EDIT: Bei der Prüfung der Bausteinkonsistenz dann auf "Alle übersetzen" klicken oder? Will da bloß nix falsch machen und damit kenn ich mich schon mal gar nicht aus :(
Das "Bausteinkonsistenz prüfen" hat eine Onlinehilfe, wie immer über F1.

"Alle übersetzen" ist das sicherste, kann aber, je nach Programmgröße, auch mal 30 Minuten dauern.
Man kann auch nur die Bausteine mit den Ausrufezeichen einzeln übersetzen (rechte Maustaste).
Mit einem Icon in der Menüleiste kann man auch die Ansicht so umstellen, daß nur die Konflikte angezeigt werden.

Gruß
Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich würde nicht Gesamtübersetzen.

Und zwar nicht wegen der Zeit, die vergeht, aber die Instanzen werden ja initialisiert.
Bei meinen Projekten würde das weh tun, wenn z.B. die ganzen Laufzeiten von Ventilen und Klappen zurück auf Initialwerte gesetzt werden.

Micha
 
Ich würde nicht Gesamtübersetzen.

Und zwar nicht wegen der Zeit, die vergeht, aber die Instanzen werden ja initialisiert.
Richtig, da gibt es auch noch "nur Konflikte übersetzen" (oder so ähnlich), aber auch da
werden häufig einige DB in "Mitleidenschaft gezogen".
Ich persönlich schaue öfter in die Bausteinkonsistenzprüfung und übersetze ggf. nur den/die
betroffenen Baustein(e) einzeln.

Zu Zeitstempelkonflikten kommt es häufig, wenn man geänderte Bausteine aus anderen Projekten
in ein Projekt kopiert (wenn man z.B. einen Pool von Standard-Bausteinen hat).
Oder beim re-aktivieren einer Vorgängerversion eines Bausteins.
Oder beim Übersetzen einer AWL-Quelle.

Das Ausbügeln von Zeitstempelkonflikten bei DB oder ganz allgemein, wenn der Zeitstempel
oder die Aktualwerte Offline/Online unterschiedlich sind, erfordert ein besonderes Vorgehen.
Da muß man bei jedem DB einzeln entscheiden, ob man mit dem Unterschied leben kann oder
umständlich/aufwändig die DB bzw. Initial- und Aktualwerte auf gleichen Stand bringt.

@DjTommyB
Die Bausteinkonsistenzprüfung kann man nicht direkt rückgängig machen.
Wenn Dir das Ergebnis nicht gefällt, dann mußt Du auf das hoffentlich vorhandene Backup
Deines Step7-Projektes zurückgreifen.
Oder die Bausteine aus der CPU zurück ins Projekt kopieren. Die sind hoffentlich (bis auf
den Zeitstempel) identisch. Dazu unbedingt aus dem Bausteine-Ordner des Projektes
in die Online-Ansicht wechseln (NICHT über erreichbare Teilnehmer!), damit es Dir nicht
die Kommentare und Baustein-Symbolik zerschießt!
Die Zeitstempelkonflikte sind dann natürlich wieder bzw. noch da.

Nach der Konsistenzprüfung vergleichst Du komplett alle Bausteine des Projektes mit den
Online-Bausteinen. Danach alle die FB/FC/OB, die als "Baustein ist im Pfad 1 neuer" und
"der Code ist identisch" gemeldet werden, in die CPU übertragen. Bei allen DB, die als
irgendwie unterschiedlich gemeldet werden, mußt Du bei jedem DB einzeln entscheiden, was
Du machst, um den Unterschied zu beseitigen. Auf keinen Fall DB in die CPU übertragen,
wo Du nicht ganz genau weißt, was das für Auswirkungen hat! Doch das weißt Du sicherlich
schon selber.

wenn FB/FC/OB als "Code ist unterschiedlich" gemeldet werden, dann hast Du ein Problem,
denn die waren auch schon vor der Konsistenzprüfung unterschiedlich.

Gruß
Harald
 
Hallo!

Hab mir das eben noch mal angeschaut und mir ist aufgefallen, dass weder der FC346 noch der FC43 bei der Prüfung der Bausteinkonsistenz als fehlerhaft dargstellt werden.

EDIT: Hab trotzdem mal die Prüfung gemacht: Fehler wurde zwar erkannt, aber nicht behoben... Was nun? Bausteinkonsistenzprüfung meldet "Anweisung erwartet Operanden" und "Syntaxfehler bei Call". Nach der Prüfung ausserdem "2 Fehler, 0 Warnungen" und "Das Programm enthält noch folgende nicht übersetzte Bausteine FC346".

Beim On/Offlinevergleich dann ebenfalls: "Der Vergleich der Bausteine ergab keine Zeitstempel-Abweichungen". Wurde also scheinbar nix verändert dadurch.

Was nun?

mfg
Tommy
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo!

Hab mir das eben noch mal angeschaut und mir ist aufgefallen, dass weder der FC346 noch der FC43 bei der Prüfung der Bausteinkonsistenz als fehlerhaft dargstellt werden.

EDIT: Hab trotzdem mal die Prüfung gemacht: Fehler wurde zwar erkannt, aber nicht behoben... Was nun? Bausteinkonsistenzprüfung meldet "Anweisung erwartet Operanden" und "Syntaxfehler bei Call". Nach der Prüfung ausserdem "2 Fehler, 0 Warnungen" und "Das Programm enthält noch folgende nicht übersetzte Bausteine FC346".

Beim On/Offlinevergleich dann ebenfalls: "Der Vergleich der Bausteine ergab keine Zeitstempel-Abweichungen". Wurde also scheinbar nix verändert dadurch.

Was nun?

mfg
Tommy

Ich würde sowohl den FC346 und den FC43 mal ändern, einfach etwas zusätzlich hineinprogrammieren was nichts mit dem eigentlichen Programm zu tun hat, damit der Compiler gezwungen wird, eine neue Bausteinversion abzuspeichen und dann noch mal die Bausteinkonstistenz prüfen.
Manchmal Zickt KOP/FUP/AWL aus unerfindlichen Gründen und mit dieser Methode habe ich schon manche unerklärliche Phänomene "behoben".
Die Refernzdaten neu generieren, nicht aktualisieren, hat auch schon so manches Problem behoben.

Die Summe der Maßnahmen führt zum Erfolg.

Gruß Rolf
 
Ich würde sowohl den FC346 und den FC43 mal ändern, einfach etwas zusätzlich hineinprogrammieren was nichts mit dem eigentlichen Programm zu tun hat, damit der Compiler gezwungen wird, eine neue Bausteinversion abzuspeichen und dann noch mal die Bausteinkonstistenz prüfen.
Manchmal Zickt KOP/FUP/AWL aus unerfindlichen Gründen und mit dieser Methode habe ich schon manche unerklärliche Phänomene "behoben".
Die Refernzdaten neu generieren, nicht aktualisieren, hat auch schon so manches Problem behoben.

Die Summe der Maßnahmen führt zum Erfolg.

Gruß Rolf

Ähm, und wie soll ich den Baustein speichern, wenn sich noch "ungülltige Anweisungen" darin befinden?
 
Hallo!

Hab mir das eben noch mal angeschaut und mir ist aufgefallen, dass weder der FC346 noch der FC43 bei der Prüfung der Bausteinkonsistenz als fehlerhaft dargstellt werden.

EDIT: Hab trotzdem mal die Prüfung gemacht: Fehler wurde zwar erkannt, aber nicht behoben... Was nun? Bausteinkonsistenzprüfung meldet "Anweisung erwartet Operanden" und "Syntaxfehler bei Call". Nach der Prüfung ausserdem "2 Fehler, 0 Warnungen" und "Das Programm enthält noch folgende nicht übersetzte Bausteine FC346".

Beim On/Offlinevergleich dann ebenfalls: "Der Vergleich der Bausteine ergab keine Zeitstempel-Abweichungen". Wurde also scheinbar nix verändert dadurch.

Was nun?

mfg
Tommy

Ähm, und wie soll ich den Baustein speichern, wenn sich noch "ungülltige Anweisungen" darin befinden?


1. FC43 öffnen, ändern, abspeichen.
Falls hier Fehler gemeldet werden, den/die Fehler suchen und beheben, speichen.
Baustein schließen

2. FC346 öffnen,ändern, abspeichern.
Falls jetzt Fehler gemeldet werden, was wahrscheinlich ist, suchen und begheben. Beispielsweise den aufruf des FC43 auskommentierern und als neues Netzwerk einfügen und dann die Parameter dranschreiben.
Baustein schließen.

3. Referenzdaten neu generieren

4. Bausteinkonsistenz prüfen.

Da ich das Programm nich hier hab, kann ich nur einene Fahrplan aufstellen. Das Problem musst Du lösen nicht ich.

Gruß Rolf
 
Zuviel Werbung?
-> Hier kostenlos registrieren
1. FC43 öffnen, ändern, abspeichen.
Falls hier Fehler gemeldet werden, den/die Fehler suchen und beheben, speichen.
Baustein schließen

Baustein war mit Know-How-Protect geschützt, hab da drin was verändert und gespeichert, keine Fehler, keine Änderung


2. FC346 öffnen,ändern, abspeichern.
Falls jetzt Fehler gemeldet werden, was wahrscheinlich ist, suchen und begheben. Beispielsweise den aufruf des FC43 auskommentierern und als neues Netzwerk einfügen und dann die Parameter dranschreiben.
Baustein schließen.

Problem ist eben, dass ich nicht wirklich weiß welcher Parameter wohin gehört...

3. Referenzdaten neu generieren

4. Bausteinkonsistenz prüfen.

Da ich das Programm nich hier hab, kann ich nur einene Fahrplan aufstellen. Das Problem musst Du lösen nicht ich.

Gruß Rolf

Hab von dem Programm noch Archivierungen aus dem Jahre Schnee.. mal schaun ob darin die Bausteine funktionieren, dann seh ich auch welche Parameter wohin gehören, bis dahin danke erstmals
 
Die meisten Parameter sind doch schon über die Lokaladressen zuzuordnen, der Rest sollte auch noch zu finden sein, oder?
 
So.

Habs geschafft.

In nem alten Archiv war der Baustein noch "unbeschädigt", somit konnt ich von da das NW 1:1 im "kaputten" Baustein übernehmen.

Funzt einwandfrei, keine Fehler, keine Warnungen =)

Danke euch mal wieder ^^

mfg
Tommy
 
Zurück
Oben