S7 Projekt offline auslesen

mario87

Level-1
Beiträge
7
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,
ich muss aus einem S7-Projekt (nur aus dem Projekt nicht online aus der SPS!) Daten auslesen und diese in einer Access Datenbank speichern.
In erster Linie ist die Symbolik entscheidend. Ähnlich wie die Struktur im Simatic Manager.
Die OB´s, DB´s und FB´s und FC´s sind Pflicht. Gibt es auch eine Möglichkeit die FC´s zu öffnen und diese dann z.b. in AWl darzustellen?
Ich habe jetzt schon viel recherchiert. Nach meinen Informationen hier im Forum und im Internet sind die DBF´s Files im Ordner /ombstx/offline/0000001 interessant und behalten meine gewünschten Informationen.
Mir fehlt jetzt ein bisschen der Ansatz mit der Aufschlüsselung der Zuordnung der Nummern zu den FC´s usw. Sollte man da eher auf fertige programme zum Auslesen setzen wie ACCON-AGLink von Deltalogic oder doch alles selber programmieren? Ich habe auch was von einer Simatic Type Lib gelesen, die sowas kann?

Hat da schon jemand Erfahrung mit und kann mir ein wenig auf die Sprünge helfen?

Bin über jede Antwort dankbar

MfG
Mario
 
Du kannst aus all deinen Bausteinen Quellen machen. Das sind dann normal Textdateien. Die sind dann sehr einfach auswertbar.
Aber vielleicht erklärst du mal etwas genauer was du genau benötigst bzw. machen willst.
 
Wenn du meine CSHarp Bibliothek unter http://siemensplctoolboxlib.codeplex.com verwenden willst, kannst du mit folgendem Code eine Symboltabelle auswählen und durch alle Einträge wandern:

Code:
DotNetSiemensPLCToolBoxLibrary.DataTypes.Projectfolders.Step7V5.SymbolTable symTab;
            symTab = DotNetSiemensPLCToolBoxLibrary.Projectfiles.SelectProjectPart.SelectSymbolTable();
            
            if (symTab!=null)
                foreach (var symbolTableEntry in symTab.SymbolTableEntrys)
                {

                }
 
das hört sich ja schon mal ganz gut an.
Kann ich denn die Bibiliothek auch aus Access/VBA aus ansprechen oder muss ich dann zwingend das Ganze in C-Sharp realisieren?

Gruß
Mario
 
Zuviel Werbung?
-> Hier kostenlos registrieren
das hört sich ja schon mal ganz gut an.
Kann ich denn die Bibiliothek auch aus Access/VBA aus ansprechen oder muss ich dann zwingend das Ganze in C-Sharp realisieren?

Gruß
Mario

nee, meine bib kann nur csharp! glaube aber du kannst sie auch in vba verwenden (laut dieser internetseite: http://bytes.com/topic/access/answers/205532-calling-c-net-dll-vba)
 
Habs jetzt grad mal probiert! So einfach ist es wohl doch nicht...
Funzt nicht... Es gehen keine abstrakten klassen, da müsste wohl einiges umdesignt werden!
 
Hat jemand Informationen darüber wo der Projektname abgespeichert wird?
Ich habe den Projektnamen bisher nicht gefunden.

Bin für jede Antwort dankbar.

MfG
Mario
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ist in meiner DLL Auf jeden Fall mit drinn! Wenn du dir ein Step7ProjectV5 Objekt erzeugst, bekommst du über obj.ProjectName den Projektnamen.

Ansonsten:
Der ist in der S7P Datei, also dem Projektfile drinnen! Dort steht er ab Byte 5 mit der länge welche in Byte 4 steht.

Wenn du noch mehr zum S7 Projektformat wissen willst schau dir einfach mal die Step7ProjectV5.cs Datei in meinem Source an, da passiert das ganze einlesen.
 
Infos Netzwerkkommentare in einem FC

Hallo zusammen,
ich habe ganz schön mit den Netzwerkkommentare zu knacken.
Ich habe da keine wirkliche Lösung. Ich kann diese zwar in Access einlesen, aber das wars auch. Ich bin auf der Suche nach einer vernünftigen Trennung. Access verwendet UTF-16 d.h. 1 Zeichen= 2 Byte.
Hat da schon jemand mehr in Erfahrung bringen können? Eine feste Anzahl an Zeichen vor einem Kommentar konnte ich leider ebenfalls nicht feststellen.
In der Bib von Jochen Kühner finde ich zwar Infos, kann aber mit diesen nichts richtig anfangen. Demnach müsste ein Netzwerkkommentar bei Byte1, was aber bei mir nicht der Fall ist.

Bin für jede Hilfe dankbar.

MfG
Mario
 
Zuletzt bearbeitet:
hmmm

Also in meiner Bib ist das lesen der Netwerkommentare komplett eingebaut, kannst es ja z.B. mit dem Tool das es hier gibt testen: http://sps-forum.de/showthread.php?t=41928

Nochwas: Schau mal in meinem source in datatypes/projectfolders/step7v5/blocksofflinefolder.cs

und such nach der region : usecomments from block

da passiert das einlesen!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ok, nochmal etwas genauer:

Die Netzwerkkomentare sind im feld "mc5code" wobei der subblktyp 19 (FC), 17 (OB), 18 (FB), 22 (SFC), 21(SFB) sein muss.

Dann folgt Byteweises auslesen.

in Byte(3,4) steht die Länge einer Kommentarzeile, nach diese Länge beginnt die nächste.

wenn in Byte(5) 6 steht ist es ein Netzwerkkomentar, dann steht in Byte(1) die länge der Netzwerk überschrift, danach folgt der kommentar!

wenn es kein Netzwerkkomentar ist (Byte(5) != 6), dann steht in Byte(2,3) wieviel Leerzeilen folgen. Wenn in Byte(4) 0x80 steht, dann ist es eine Kommentarzeile ohne AWL Code, ansonsten mit!
 
Zurück
Oben