TIA einen Instanz-DB neu initialisieren

S7_Einsteiger

Level-1
Beiträge
10
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo SPSler,

ich hätte eine Frage an Euch.
Ist es möglich, einen Instanz-DB neu initialisieren und zwar programmiertechnisch.? Mit dem Knopf an Leiste kann man ja den DB initialisieren (Startwerte --> Aktualwerte).

Kann man programmiertechnisch umsetzen. Und zwar gibt es den READ_DBL Befehl. Der kann aber nur bei Array-DB anwenden.

Vielen Dank im Voraus

V.Q
 
Einen direkten Befehl "Startwerte --> Aktualwerte" gibt es meines Wissens nicht. Du kannst aber eine Kopie schreibgeschützt im Ladespeicher ablegen und von dort kopieren. Dieser DB belgt dann auch keinen zusätzlichen Arbeitsspeicher. Das ist im Prinzip wie eine Initialisierung.

Besser wär's, man bräuchte es nicht!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Insbesondere wenn man sich auf Programmierung mit TIA bezieht, dann sollte man auch unbedingt angeben, auf welche SPS genau sich die Frage bezieht (Typ, Bestellnummer, Firmwareversion). Weil mit TIA können so unterschiedliche SPS programmiert werden, daß manche Lösungen/Auskünfte nur für bestimmte SPS gültig sind und bei anderen SPS gar nicht möglich sind. Da wäre es schade, wenn freiwillige Helfer Erklärungen schreiben und später deckt der Fragesteller auf, daß er eine SPS hat wo die Lösung gar nicht geht ...

Harald
 
Hört sich nach einer Angstfunktion an wenn nix mehr geht. Eventuell nicht remanent und Schrank Ein/Aus eine Lösung?
 
Hallo SPSLer,

vielen Dank für eure Feedbacks. Es hat sich inzwischen erledigt. Es sollte eigentlich nur eine Notlösung sein. Dennoch war es interessant zu wissen dass der Befehl bzw. die Möglichkeit gar nicht gibt oder Siemens nicht freigibt.
 
Insbesondere wenn man sich auf Programmierung mit TIA bezieht, dann sollte man auch unbedingt angeben, auf welche SPS genau sich die Frage bezieht (Typ, Bestellnummer, Firmwareversion). Weil mit TIA können so unterschiedliche SPS programmiert werden, daß manche Lösungen/Auskünfte nur für bestimmte SPS gültig sind und bei anderen SPS gar nicht möglich sind. Da wäre es schade, wenn freiwillige Helfer Erklärungen schreiben und später deckt der Fragesteller auf, daß er eine SPS hat wo die Lösung gar nicht geht ...

Harald
Du hast recht. Weitere Infos zu SPS wären hilfreich gewesen. Es ist 15xxer Safety CPU.

mich interessiert die Frage warum Siemens diese Funktion bzw. diesen Befehl nicht freigibt. Offensichtlich wird dieser Befehl gebraucht. Ob man den Button anklickt oder im Programm aufruft.:unsure:
 
Und zwar gibt es den READ_DBL Befehl. Der kann aber nur bei Array-DB anwenden.
Ich habe keine Erfahrung mit S7-1500, aber wieso soll man READ_DBL da nur auf Array-DB anwenden können? Steht das irgendwo oder kommt beim Programmieren oder bei der Ausführung irgendeine Fehlermeldung/Fehlerstatus (welcher?)?

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe keine Erfahrung mit S7-1500, aber wieso soll man READ_DBL da nur auf Array-DB anwenden können? Steht das irgendwo oder kommt beim Programmieren oder bei der Ausführung irgendeine Fehlermeldung/Fehlerstatus (welcher?)?

Harald
Hallo Harald,

ich habe versucht, mit READ_DBL den Instanz-DB anzuwenden, welcher aus Struct besteht. Es geht leider nicht und zeigt sofort bei der Eingabe die Fehlermeldung. In der TIA Portal Hilfestellung wird die Fehlermeldung beschrieben.

ich habe auch in Siemens S7 Forum recherchiert. Dort hat Siemens zwar Hilfestellung für dieses Problem beschrieben und Beispiele dazu gegeben. Es geht aber auch nur wenn der DB aus Array von einem Typ besteht. Da hat auch ein Diskussion-Teilnehmer gemerkt und kommentiert.

Aber kann Forum-Teilnehmer hier mal nachprüfen ob es tatsächlich der Fall ist.
 
Ein Global-DB kann man mit READ_DBL initialisieren, aber nur wenn man nicht-optimiert gewählt hat.
Wenn optimiert bekommt man dieselbe Meldung "Global access to a data blok with memory reserve is not permitted here".

Mit ein nicht-optimierte IDB bekommt man die Meldung "Only Data blocks based on a PLC data type or a system data type are permitted here".

Die Meldungen in TIA sind kryptisch.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Die relevante FB wird vermutlich von ein Global-DB auf ein IN oder IN_OUT pin mit Werte "gefüttert".
Anstatt die IDB initialisieren, die Global-DB initialisieren.
Die Global-DB darf aber dann nicht optimiert sein.
 
Ein Global-DB kann man mit READ_DBL initialisieren, aber nur wenn man nicht-optimiert gewählt hat.
Wenn optimiert bekommt man dieselbe Meldung "Global access to a data blok with memory reserve is not permitted here".

Mit ein nicht-optimierte IDB bekommt man die Meldung "Only Data blocks based on a PLC data type or a system data type are permitted here".

Die Meldungen in TIA sind kryptisch.
ich verstehe die Meldung so. Nur DB mit Datentyp wie array of Int, Word usw.. kann mit READ_DBL angewendet
 
Was zum Initialisieren absolut üblich ist, ist ein Bausteineingang z.Bsp. namens "Init", mit dem man im Baustein beliebige Werte auf einen Defaultwert zurücksetzt. Oftmals wird diese Funktion beim Neustart mit einem Impuls ausgeführt. Im TIA-Portal gibt es hierfür z.Bsp. einen Systemmerker "FirstScan".
 
Zurück
Oben