UDT in DB aktualisieren

Kurt

Level-2
Beiträge
463
Reaktionspunkte
17
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

wenn ich eine UDT die ich in einem DB verwende verändere, dann muss ich den DB öffnen und auf jede 'UDT Verwendungsstelle' hingehen und aktualisieren auslösen.

Kann man das auch in einem Aufwaschen - den ganzen DB aktualisieren - machen?

Kurt
 
Also normalerweise sollte das über den Siemens-Konsistenz-Check funktionieren.

Den Bausteinordner markieren, unter bearbeiten Bausteinkonsistenz prüfen.

Mfg
Manuel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

da hilft eigentlich der Punkt Datei->Zugriffe prüfen und aktualisieren (im Bausteineditor) - der macht das für den ganzen Baustein.

Allerdings kann ich jetzt nicht sagen, ob das schon in älteren Versionen (vor 5.3) möglich war.


Peter
 
Wenn es viele DB´s sind zb. bei rezepturen, und du das nicht bei jedem einzeln machen wills,dann vor der udt änderung eine quelle aus den db´s generieren und diese nach der änderung wieder übersetzen...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich hol mal das alte Thema hier wieder raus. Ich hab ein Beispielprojekt für eine Drehzahlansteuerung von Siemens übernommen.
Hier wird ein Umrichter (Sinamics 120) via Profibus mit einer S7 317 angesteuert.
Da ich eine Umschaltung auf Drehmomentregelung realisieren möchte, habe ich das Standard-Telegramm 1 mit einer Telegrammverlängerung mit Hilfe des Starters erweitert,
damit ich auch noch das aktuelle Drehmoment und den Strom auslesen kann.

Im UDT, welcher die Datenstruktur der Empfangsdaten beinhaltet hab ich weiter Zeilen unten angehängt, um die Daten für Drehmoment und Strom aufzunehmen.
Der UDT findet in mehren FBs Verwendung.
Nach Abschluß der Erweiterung hab ich alle Bausteine mit dem Befehl "Zugriffe prüfen und aktualisieren" aktualisiert gespeichert und alle auf die SPS geladen. (Nach dem ich Fehler für Zeitstempel-Unterschiede bekommen hab)
Beim öffnen des InstanzDBs (offline) bekomm ich jetzt die Fehlermeldung, dass dieser einen Schnittstellenkonflikt hat und nicht richtig angezeigt werden kann.

Muss ich dem FB nochmals Sagen dass er seinen Instanz-DB aktualisieren muss, damit dieser vollständig ist?:confused:

Gruß
Andy
 
Zuletzt bearbeitet:
Du musst noch Bausteinkonsistenz prüfen. Rechtsklick auf Bausteinordner -> Bausteinkonsistenz prüfen.
Dann macht er bestimmt alles.
Allerdings wenn du nicht auf Symbolvorrang eingestellt hast und das noch nie gemacht hast kann es auch dein projekt zerschiessen.

Oder du machst es händisch. Zugriff prüfen und aktualisieren -> dann den Bausteinaufruf im Aufrufenden Baustein anklicken und ebenfalls zugriffe prüfen und aktualisieren, das kann je nach verschachtelung recht umfangreich werden.
 
Hallo, danke mal für die Hilfe. Obgleich ich Symbolvorrang oder Absolutwert einstelle, sobald ich Daten im UDT hinzufüge funktioniert das Projekt nicht mehr.
Zur Vorgehensweise:

- Einstellung für Operandenvorrang angepasst ( S7-Programm/Bausteine -> Objekteigenschaften -> Operandenzugriff -> Symbol hat Vorrang bei allen Zugriffen)
- UDT durch hinzufügen von einer weiteren Zeile am Ende verändert
- Bausteinkonsistenz prüfen ( S7-Programm/Bausteine -> Baustein-Konsistenz prüfen -> übersetzen
- Alle Bausteine auf SPS laden
- WinCC starten -> kein Zugriff mehr auf S120 Umrichter

Unterscheidet sich die Funktion "Zugriffe prüfen und aktualisieren" zur Funktion "Bausteinkonsistenz prüfen" ?
Ich hab alle Einstellungen des Operandenvorrangs getestet, aber leider ohne Erfolg. :confused:
Liegt es an der Vorgehensweise?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn du den DB aufmachst in dem der UDT verwendet wird. Wird dann noch irgendwas angemosert? Hast du mal alles übersetzen lassen?

WinCC hat damit ja erstmal nix zu tun. Das wird von Bausteinkonsistenz prüfen auch erstmal nicht tangiert, will heissen wenn sich Adressen verschieben, dann kriegt Wincc und WinCC flex davon nix mit solange du da nicht die Strukturen ebenfalls anpasst.
Hast du denn im Programm die richtigen Daten in der Struktur?
mfG René
 
Zuletzt bearbeitet:
Arbeitet ihr mit Symbol oder Absolutvorrang bei den Adressen.Ist symbolisch nicht gefährlich?Ich habe mich immer gescheut davor.:D
 
Die Daten hast du ja hinten angehängt? Dann müsste er doch alle vorderen kennen bei Absolutzugriffen?oder hast du Instanzen in den Fb's davon?
dann ändert sich der DB natürlich auch.Weil die Instanz ja sich ändert.Dann verschieben sich die Adressen der statischen Variablen denke ich!

Dann sollte man den im FB ans Ende hängen aber dann ist die Schnittstelle anderst.Kratz?
 
Beim offline Erweitern der UDT offline und Übertragen in die CPU sind die Anfangswerte aktiv.

Am Besten online gehen, DB ins offline Projekt kopieren (aktuelle Werte vorhanden)
Quelle des DB generieren. In der DB-Quelle die UDT erweitern. Übersetzen. Baustein-Konsistenz prüfen.
Im DB sind jetzt die UDT's erweitert, die Aktualdaten der vorherigen UDT's (und der Rest des DB) vorhanden.
Zurück damit in die CPU.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Arbeitet ihr mit Symbol oder Absolutvorrang bei den Adressen.Ist symbolisch nicht gefährlich?Ich habe mich immer gescheut davor.:D

Kommt drauf an. Bei Klassik Step7 kann man komplett mit Symbolvorrang programmieren wenn man alles symbolisch programmiert.
Wenn man jetzt aber irgendwo Pointerarbeiten drin hat welcher in Dbs mit UDTs rumwurstelt welche sich in der Länge ändert. Stimmen natürlich die Pointer nicht mehr, diese muss man also händisch anpassen.

Arbeitet man komplett Symbolisch z.B. in SCL dann ist das ja egal wenn die absoluten Adressen sich ändern. Da man ja über index zugreift.
 
Moin,
hab den Fehler gefunden. Der SFC 14 hatte noch einen Fehler:
80B1 - Die Länge des angegebenen Zielbereichs ist ungleich der mit STEP 7 projektierten Nutzdatenlänge.

Also hat das ganze prinzipiell doch funktioniert. Ich hab mir Testhalber nur nicht mehr die Mühe gemacht alle Daten anzulegen:rolleyes:

--> Ich denke Symbolvorrang macht dann Sinn, wenn ein DB in der Mitte aufgerissen wird, um neue Daten einzufügen. Ansonsten ist Absolutvorrang sicherlich sinnvoller.

mfg Andy
 
Achtung entweder man Arbeitet immer Symbolisch oder immer Absolut.

Es hat beides vor und Nachteile, hier mal je 2 Beispiele.

Vorteile Symbolisch:
Erweiterung von DB's (wenn man sie in der Mitte aufreisst)
Schieben von Bereichen etc.

Vorteile Absolut:
Zurückladen von DB's wenn man die Datenstruktur nicht verändert hat um Zeitstempel abzugleichen ohne Symbolik verlust. Editieren von Kommentaren im UDT ohne DB neu zu generieren
Arbeitsn mit Pointern

Das grösste Problem ist das wenn ich von Symbolisch auf Absolut umstelle oder umgekehrt mit unter nichts mehr funktioniert, ich habe hier z.B. ein Projekt das ist in Absolut Fehlerfrei bei der Konsistenzprüfung.
Stelle ich auf Symbolisch um habe ich ca. 500 Fehler.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich arbeite ausschliesslich Symbolisch.
Pointer meide ich meistens. Wenn ich Strukturen durchschleifen muss, dann verwende ich SCL.
Meine Erfahrung ist das diese Weise ist flexibler, und sicherer.
 
Hadante; schrieb:
Vorteile Absolut:
Zurückladen von Dp
Das grösste Problem ist das wenn ich von Symbolisch auf Absolut umstelle oder umgekehrt mit unter nichts mehr funktioniert, ich habe hier z.B. ein Projekt das ist in Absolut Fehlerfrei bei der Konsistenzprüfung.
Stelle ich auf Symbolisch um habe ich ca. 500 Fehler.

logisch. Was will er an absolutadresse kontrollieren? Symbolisch kontrolliert und korrigiert er alle Zugriffe.

Wird in absolut ein udt verändert musst du alle Zugriffe prüfen und korrigieren. In symbolisch macht das step7 für dich. Wesentlich sicherer



Sent from my iPhone using Tapatalk
 
Zurück
Oben