TIA Vermeidung vom Initialisieren der DBs

Zuviel Werbung?
-> Hier kostenlos registrieren
Für diese Probleme muss leider jeder, der mit Siemens arbeitet, seine eigene individuelle Lösung entwickeln. Siemens zeigt leider keinerlei Interesse, diese Probleme zu lösen. Möglichkeiten gäbe es dafür viele. TIA hat ja z.B. mitbekommen, dass Peter in Pedro umbenannt wurde. Da könnte es ja zumindest anbieten, die Daten zu übernehmen. Aber es muss natürlich erstmal die Bereitschaft da sein, dieses grundlegende Problem von S7/TIA anzugehen.
 
Hat jemand einen Überblick, wie andere Steuerungshersteller mit dem Thema Aktual-Daten umgehen?

Die Probleme sind doch relativ gleich.

Dann sollte es doch auch möglich sein, gleiche Lösungen zu finden!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Was geht ist, die aktualwerte über die Funktion write_DBL (keie Ahnung ob das der richtige Name ist) in die Startwerte zu schreiben. Anschließend lädt du die DBs aus der Steuerung in dein Projekt zurück.

Da wäre ich mir nicht so sicher.

.. Auch wenn Sie zur Laufzeit Werteänderungen im Ladespeicher über die Anweisung "WRIT_DBL" vorgenommen haben, werden die ursprünglich in das Gerät geladenen Werte in den Offline-Datenbaustein übernommen...

1750507544536.png
 
Ja, den kleinen Flugschein (international) brauchst du schon, um TIA unfallfrei bedienen zu können.
Ich finde, das ist alles noch "ok". Aber ich habe das noch nirgends auf weniger als 100 Seiten zusammengefasst lesen können. Da müssen sich erst 20 hartgesottene Vollprofis im SPS-Forum über #33 austauschen, um eine ungefähre Vorstellung über das "Systemverhalten" zu bekommen.
Nun denn, wenn's dann läuft, macht es auch wieder Spaß!

Du hast noch nicht mit Eplan 20xx gearbeitet :LOL: ?
 
Hä - was ist das für eine Information?

Willst du damit sagen das ist gut so, damit Siemens endlich die Kunden in großen Scharen davonlaufen?

Möglicherweise sehen es einige anders, aber Individualität trennt die Streu vom Weizen, und das finde ich in der freien Marktwirtschaft eigentlich ganz gut. Mir tun an dieser Stelle nur die Instanthalter leid, die mit den verschiedensten Programmierstilen klar kommen müssen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das sehe ich anderst.Nimm es mir nicht übel.Ein guter Ingenieur arbeitet

a.)so dass es möglichst alle verstehen
b.)so einfach wie möglich.

Mit Ing. meine ich keinen Titel, nicht dass ich da falsch verstanden werde.
Prinzipiell verstehe ich das auch so für das ganze Gebiet der Automatisierungstechnik.
Schon Einstein meinte am Ende wird die ganze Physik auf ein paar Grundkonstanten zurückgeführt werden können.
 
Möglicherweise sehen es einige anders, aber Individualität trennt die Streu vom Weizen, und das finde ich in der freien Marktwirtschaft eigentlich ganz gut. Mir tun an dieser Stelle nur die Instanthalter leid, die mit den verschiedensten Programmierstilen klar kommen müssen.
Ah, die Dinge sollen nicht zu einfach werden, damit Dir niemand den Arbeitsplatz streitig machen kann? Wer so denkt riskiert, dass er irgendwann von einem Newcommer in der Branche, der sich nicht an diese Regeln hält, über Nacht ersetzt wird.
 
Möglicherweise sehen es einige anders, aber Individualität trennt die Streu vom Weizen, und das finde ich in der freien Marktwirtschaft eigentlich ganz gut. Mir tun an dieser Stelle nur die Instanthalter leid, die mit den verschiedensten Programmierstilen klar kommen müssen.
Angenommen Siemens verkauft Kreissägen, mit welchen nur „wahre Meister“ einen einigermaßen geraden schnitt hinbekommen. Dann wäre das keine Eigenschaft, welche für das Unternehmen spricht!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das sehe ich anderst...

a.)so dass es möglichst alle verstehen
b.)so einfach wie möglich.
Du siehst das überhaupt nicht anders.

Ah, die Dinge sollen nicht zu einfach werden, damit Dir niemand den Arbeitsplatz streitig machen kann? Wer so denkt riskiert, dass er irgendwann von einem Newcommer in der Branche, der sich nicht an diese Regeln hält, über Nacht ersetzt wird.
Was interpretiert ihr nun wieder für ein dummes Zeug?
Für mich ist hier Ende der Diskussion.
 
Hat jemand einen Überblick, wie andere Steuerungshersteller mit dem Thema Aktual-Daten umgehen?

Die Probleme sind doch relativ gleich.

Dann sollte es doch auch möglich sein, gleiche Lösungen zu finden!
Dazu muss man etwas ausholen. Im Prinzip hat jeder Steuerungshersteller die folgenden Ansätze:
- Globale Variablen
- Namespaces
- Strukturen
- Datentypen

Klar ist eins: ändert man den Datentypen einer Variable muss diese neu initialisiert werden.

Datenbausteine bei Siemens sind im Prinzip globale Variablen, welche von einem anonymen strukturierten Datentyp abgeleitet sind. Ändert man im DB etwas, wird somit der anonyme Datentyp geändert und alles ist zu reinitialisieren.
Dieses Verhalten ist bei allen Steuerungsherstellern gleich.

Einen vernünftigen anderen Ansatz für globale Variablen bietet Siemens nicht abgesehen von Merker-Variablen und globalen Instanzen. Namespaces gibts nur mit Software-Units, allerdings gibts in Software-Units keine globalen Variablen abgesehen von DBs.

Bei Rockwell Studio 5000 Steuerungen ist der Ansatz so: Es gibt globale Variablen (Controller Tags) und der Namespace-Ansatz ist über die 'Programs' gelöst. Möchte man in Strukturen etwas ändern muss man das ganze Programm laden, inkl. aller Aktualwerte. Man lädt alle Aktualwerte mit einem Mausklick hoch, ändert die Strukturen (aktualwerte von Elementen die nicht verändert werden bleiben erhalten - das ist auch bei Siemens so) - und lädt dann alles auf die Steuerung (in STOP) Man ist das dort gewohnt, also sind alle Programme so konzipiert dass man mit wenig Strukturen arbeitet und viel mit Program-Variablen.

Bei B&R (zugegeben: der Wissensstand ist > 10 Jahre alt) ist der Ansatz so: alles was grobe Programmänderungen überleben muss platziert man in den Permanent-Bereich, das sind globale Variablen. Der Permantbereich tickt in etwa so wie ein nicht-optimierter DB bei Siemens. Man muss das Thema Datenhaltung planen. Ansonsten arbeitet man mit globalen und lokalen (statischen) Variablen, das Thema "stoßfreies Laden" ist über die Jahre immer wieder verbessert worden, aber wenn man in Strukturen dahinändert ist ein Reinitialisieren unvermeidlich.

Was meines Erachtens nach viele S7-Programmierer nie gelernt haben ist, sich über eine saubere Trennung von Einstelldaten, Aktualdaten, Statistikdaten usw. Gedanken zu machen. Die feste Speicherarchitektur der S7-300/400 hat die viel verziehen und der Simatic Manager hat da auch viel zugelassen, und daher hat man alles wie Kraut und Rüben gemischt.

B&R hat dem 1996 mit PG2000 einen Riegel vorgeschoben, Rockwell mit der Einführung von RSLogix 5000. Ich hab 2004 zum ersten mal mit B&R gearbeitet und musste meine Denkweise was Variablen, Einstelldaten, Strukturen usw betrifft völlig umdrehen. Jedes Projekt beginnt seither mit der Datenmodell-Planung. Der Umstieg von S7-classic auf TIA war so gesehen dann ein Kinderspiel, jener auf Studio 5000 auch. Ich denke dass Systeme wie PLCNext, TwinCAT und CoDeSys sich hier ähnlich Studio 5000 verhalten.

Alle Programmierer die sich hier über das Reinitialisieren von DBs mukieren, sollten mal ihre Hausaufgaben machen und sich ein sauberes Datenmodell überlegen und auch daran denken was Programmänderungen an der laufenden Anlage bedeuten.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Es ging hier eigentlich darum, wenn man nur einen Variablennamen ändert, warum muss man dann reinitialisieren und die CPU in STOP schicken.
Wie ooben gesagt: das ist keine Änderung eines Variablennamens sondern eine Änderung in einem anonymen Datentypen. Und beim Ändern von Datentypen reagieren  alle Steuerungen am Markt genau so.

Was man Siemens ankreiden kann ist, dass sie bis jetzt kein brauchbares Konzept für globale- und Namespace-Variablen gebracht haben.
 
Vielleicht lohnt auch mal ein Blick in die IT Welt zu „echten“ Datenbanken. Wenn hier neue/umbenannte Datenfelder benötigt werden, gibt es Befehle um die DB anzupassen. Niemand würde eine Produktionsdatenbank initialisieren, nur weil sich die Struktur geändert hat. Warum sollte es soetwas in der SPS Welt nicht auch geben? Die Notwendigkeit ist ja definitiv da.
 
Vielleicht lohnt auch mal ein Blick in die IT Welt zu „echten“ Datenbanken. Wenn hier neue Datenfelder benötigt werden, gibt es Befehle um die DB anzupassen. Niemand würde eine Produktionsdatenbank initialisieren, nur weil sich die Struktur geändert hat. Warum sollte es soetwas in der SPS Welt nicht auch geben? Die Notwendigkeit ist ja definitiv da.
Ich gebe dir recht. Aber ein Datenbaustein ist halt keine Datenbank, und vor Datenbanken stehen halt große Abstraktionsschichten die den inneren Aufbau der Datenbank gegenüber dem Anwender kapseln.

Man kann solche "Datenbanken" in vereinfachter Form auch heute schon auf SPSen hosten, aber eine Kapselung ist auch hier notwendig. Aber im Prinzip stellt eine S7-1500 alles dafür notwendige bereit.
 
Datenbausteine bei Siemens sind im Prinzip globale Variablen, welche von einem anonymen strukturierten Datentyp abgeleitet sind. Ändert man im DB etwas, wird somit der anonyme Datentyp geändert und alles ist zu reinitialisieren.
Dieses Verhalten ist bei allen Steuerungsherstellern gleich.

Den stimme ich nicht zu. Erweitere ich bei TwinCAT eine Struktur, dann wird diese beim Laden nicht initialisiert. Benenne ich eine Variable in der Struktur um dann wird auch nicht die Struktur komplett initialisiert. Das gilt jedenfalls für Variablen die als "persistent" markiert sind. Bei TwinCAT werden die persistenten Variablen symbolisch in der "Port_xxx.bootdata" Datei gespeichert.
 
Zurück
Oben