Ordnerstruktur S7 Projekt

Beiträge
226
Reaktionspunkte
27
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen.

Kann mir jemand sagen wo in der Windows Ordnerstruktur von einem S-7 Projekt die Informationen zu verwendeten Bausteinen liegt und wie ich die zur weitervewendung anzeigen kann?

Ziel ist es, mit einem Tool ein (nicht archiviertes) S7 Projekt auszuwählen, und anzuzeigen welche Bausteine darin verwendet wurden.

Eine Möglichkeit wäre :\Projekte\Simatic\Testprojekt\s7asrcom\00000001 dort die erste Zeile der AWL Quellen durchforsten.

Vielleicht hat jemand noch ne klugere Idee

Gruss Anis
 
Hallo,
du könntest die dBase-Datenbankdateien einlesen und daraus die Daten auswerten.
Allerdings ist das etwas verschachtelt, aber ich versuche mal ein paar Zusammenhänge aufzulisten:

Der Startpunkt für die "S7-Programm" Ordner ist die Datei:
\hrs\S7RESOFF.DBF

Der Inhalt des Feldes ID, z.B. eine 1, ist dann der Ordnername in dem sich die SUBBLK.DBF und BAUSTEIN.DBF befinden.
Also bei einer "1" im Feld ID liegen die Dateien im Ordner \ombstx\offline\00000001\.
In der BAUSTEIN.DBF stehen die Informationen zu allen Bausteinen die sich im Programm befinden. Aber nicht im Klartext sondern alles mit Zahlenwerten
die man erstmal aufschlüsseln muss.
Die Bausteinnamen stehen in noch einer anderen Datei in einem anderen Ordner, und zwar Namens \YDBs\xxxx\SYMLISTS.DBF.
"xxxx" ist dann wieder eine ID aus einer anderen Tabelle.
Die Verknüpfung welche Symbolik zum welchem Programm gehört ist wieder in einer Datei \YDBs\YLNKLIST.DBF

Wie du siehst ist das alles sehr verwoben.

Und dann gibt es noch Ausnahmen, wenn z.B. öfters mal Programme gelöscht wurden, durch die ich noch nicht durchgestiegen bin.

Man will da im Detail auch gar nicht reingucken, weil man dann sieht was für ein gewachsenes Gerüst die ganze Kiste ist.
Es gibt glaub ich allein drei verschiedene Formate für einen Zeitstempel!
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Vielen Dank für den Beitrag. Klingt schonmal sehr vielversprechend.
Bin die nächsten Tage auf IBS aber werd mich nach meiner Rückkehr gleich mal reinhängen. Evtl. werd ich dann mit detailierteren Fragen aufs Thema zurückkommen.

Nochmals vielen Dank für die schnelle Antwort.


Gruss Anis
 
Hallo Thomas,

ich fand deine Ausführungen sehr interessant!

Hast du noch mehr raus bekommen? Mich würde vor allem interessieren, wo den die eigentlichen Inhalte der Bausteine gespeichert werden und da besonders der DB`s.

Der Gedanke dahinter ist ein Tool zu schreiben, das die aktual Werte als start Wert übernimmt.
Das ganze soll ohne AWL Quellen generieren exportieren - importieren laufen.

Vielen Dank!
 
Hallo Thomas,

ich fand deine Ausführungen sehr interessant!

Hast du noch mehr raus bekommen? Mich würde vor allem interessieren, wo den die eigentlichen Inhalte der Bausteine gespeichert werden und da besonders der DB`s.

Der Gedanke dahinter ist ein Tool zu schreiben, das die aktual Werte als start Wert übernimmt.
Das ganze soll ohne AWL Quellen generieren exportieren - importieren laufen.

Vielen Dank!

http://www.sps-forum.de/showpost.php?p=24431&postcount=18

In dem Beitrag ist ein Link zum Download von DBFViewer mit dem man die Baustein Datenbank Datei öffnen kann.

Vielleicht kann man damit was machen....
 
Hast du noch mehr raus bekommen? Mich würde vor allem interessieren, wo den die eigentlichen Inhalte der Bausteine gespeichert werden und da besonders der DB`s.

Hi,
wenn du die entsprechende SUBBLK.DBF hast die zu deinem Programm gehört kannst du den Datenbausteincode so auslesen:

Code:
SELECT MC5CODE FROM SUBBLK.DBF WHERE OBJECTID like 5 AND SUBBLKTYP like '00006'
Die OBJECTID musst du dir vorher aus der BAUSTEIN.DBF suchen, bzw. würde das mit einem SQL JOIN-Befehl eigentlich in einem Rutsch gehen. Aber ich habe noch kein Programm welches mit dBase-Dateien komfortabel umgehen kann.

Ich habe ein Programm mit C# geschrieben, aber da ist der Umgang mit dBase-Dateien auch eine Crux.
 
Hallo,

es gibt von Aglink eine Variante zum Lesen von Bausteinen,
vielleicht hilft Dir das weiter:

http://www.deltalogic.de/content/view/23/45/lang,de/

Das Programm scheint aber auch nur die Symbolik auszulesen. Wenn jemand aber einen Baustein ohne Symbolik angelegt hat reicht es ja nicht nur in der Symboltabelle nachzuschauen.

Die Symboltabelle kann man ja recht einfach auslesen. Mal zwei Screenshots von meinem Testprogramm (vielleicht sollte ich das auch mal verkaufen...)
 

Anhänge

  • S7dbase_Symbolik.png
    S7dbase_Symbolik.png
    37,2 KB · Aufrufe: 98
  • S7dbase_DB.png
    S7dbase_DB.png
    32,2 KB · Aufrufe: 94
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen.

Kann mir jemand sagen wo in der Windows Ordnerstruktur von einem S-7 Projekt die Informationen zu verwendeten Bausteinen liegt und wie ich die zur weitervewendung anzeigen kann?

Ziel ist es, mit einem Tool ein (nicht archiviertes) S7 Projekt auszuwählen, und anzuzeigen welche Bausteine darin verwendet wurden.
...

Gruss Anis

Wozu werden denn die Informationen benötigt?
Geht es dabei um Standardbausteine und/oder einen Verwendungsnachweis?
 
Für Geld gibt's fast alles

Hallo Schnick und Schnack,

für die Verwaltung von S7 Standardbausteinen inklusive Verwendungsnachweis gibt es auch 2 kommerzielle Produkte: versiondog und VersionWorks.
Ich persönlich empfehle versiondog :).
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Community,

wie Thomas_v2.1 am 25.11.2008 schrieb, gibt es drei verschiedene Formate eines Zeitstempels.
Zwei der Formate konnte ich bereits vollständig ergründen, doch bei dem Letzten habe ich noch keinen Ansatz.
Es geht um den Zeitstempel für die Quellen in der Datei S7CONTAI.DBF und den Feldern "CRDATE1" und "CRDATE2".
Hat diesen Zeitstempel schon jemand enträtselt und kann CRDATE1= -507958783; CRDATE2= 30844243 in das Datum Erstellt am 18.10.2020 15:37:54 umrechnen?
Ich würde mich über einen Tipp oder Ansatz zur Berechnung freuen.

Vielen Danke

MfG
Sinumerik.User
 
Habe ich noch nicht verwendet. Es scheint zumindest so, dass in den beiden Feldern kombiniert nur der Zeitpunkt der letzten Änderung gespeichert wird, und das Erstelldatum an anderer Stelle.

Ich habe nur mal ein paar Werte duchgetestet und die angezeigten Werte im Simatic Manager dazugeschrieben. Das könntest du mal weiterführen. Sieht irgendwie danach aus als würde da rückwärts gerechnet.
Code:
crdate1 = 0		crdate2 = 0			18.06.2154 02:00:00

crdate1 = 1		crdate2 = 0			18.06.2154 02:00:00
crdate1 = 10000000	crdate2 = 0			18.06.2154 02:00:10
crdate1 = 1000000	crdate2 = 0			18.06.2154 02:00:10
crdate1 = 100000	crdate2 = 0			18.06.2154 02:00:10
crdate1 = 10000		crdate2 = 0			18.06.2154 02:00:0

crdate1 = 0		crdate2 = 1000			18.06.2154 01:18:16
crdate1 = 0		crdate2 = 10000			18.06.2154 01:18:16
crdate1 = 0		crdate2 = 100000		18.06.2154 01:18:16
crdate1 = 0		crdate2 = 1000000		18.06.2154 01:18:16
crdate1 = 0		crdate2 = 10000000		18.06.2154 01:18:16
crdate1 = 0		crdate2 = 12345678		18.06.2154 18:45:25
crdate1 = 0		crdate2 = 255		ff	18.06.2154 08:25:21
crdate1 = 0		crdate2 = 65280		ff00	18.06.2154 08:25:21
crdate1 = 0		crdate2 = 511		1ff	18.06.2154 08:25:21
crdate1 = 0		crdate2 = 65535		ffff	18.06.2154 08:25:21
crdate1 = 0		crdate2 = 16777215	ffffff	18.06.2154 08:25:21
crdate1 = 0		crdate2 = 33554431	1ffffff	18.06.2154 01:42:54
 
Ich habe das mit Excel schon etwas fortgeführt.
Wenn ich CRDATAT1 unverändert lasse und CRDATAE2 und das Datum wie nachfolgende herunterziehe, berechnet Excel das Datum und die Uhrzeit bis auf ein paar Sekunden auch korrekt.
Dennoch habe ich die Systematik noch nicht verstanden und ich habe auch ein anderes Datum (02.03.2151) bei undefinierten Werten von CRDATE1 und CRDATE2.
Verwendet wird Step 7 5.6 SP1 HF5

CRDATE1CRDATE2Erstellt am Datum
0002.03.2151 02:00:00
18757344642804382002.03.2151 16:06:03
-18757344642804382002.03.2151 16:06:57
18757344642814382017.01.1984 18:33:56
-18757344642814382017.01.1984 18:34:50
18757344644094382003.04.2158 22:02:54
-18757344644094382003.04.2158 22:03:49
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich finde mein Step7dBase Projekt grad nicht wieder, aber die Quellordner hatte ich meine ich auch nie verarbeitet.

Andere Zeitstempel in den Projektdateien waren meine ich in 2 Bytes die Anzahl der Tage und in weiteren 4 Bytes die Anzahl an Millisekunden vom 1.1.1984 00:00:00 Uhr an gerechnet, das scheint hier nicht der Fall zu sein. Was Siemens auch gerne verwendet, ist BCD codiert wie auch in Step7, mit zwei Varianten einmal mit 8 oder 10 Bytes. Dort geht das Jahr aber nur bis 2089.

Musst mal mit den Sysinternals Process Monitor aufzeichnen was für Dateien Step7 so verarbeitet wenn du dir die Bausteineigenschaften anzeigen lässt.
 
Sehr seltsam, ich habe das Projekt mit crdate1 = 0, crdate2 = 33554431 nochmal geöffnet, jetzt bekomme ich 07.09.2057 01:32:58 angezeigt. Ich habe aber noch Step7 V5.5.

Möglich wäre auch eine 64 Bit Gleitkommazahl kombiniert in den beiden Feldern, das verwendet wohl dBase selber als Timestamp Format, mit einer anderen Endianess als üblich.
 
Zurück
Oben