Sonstiges DB auf MMC mit libnodave lesen

MKFein

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

ich möchte gerne mehrere Datenbausteine (DB400 bis DB499) via Excel mit libnodave auslesen.
In den Bausteinen sind Prüfwerte gespeichert.

Verbaut ist eine S7-300 CPU 314C-2.

Andere DBs auszuelsen (DB100 oder DB150) ist kein Problem.

Ich hatte telefonischen Kontakt mit dem Programmierer und der hat gesagt es liegt vermutlich daran, dass die Datenbausteine (DB400 bis DB499) auf der MMC liegen.

Wie kann ich darauf zugreifen.
Libnodave liefert als Rückgabewert immer die 10 (means a a piece of data is not available in the CPU, e.g. when trying to read a non existing DB).

Ich benutze folgenden Aufruf dafür: res2 = daveReadBytes(dc, daveDI, 50, 0, 50, buffer)

Muss ich vor dem Auslesen die CPU in den Stop-Betrieb versetzen?

Vielen Dank an alle.
 
Nein, STOP ist nicht nötig. Du mußt nur dafür sorgen, daß der interessierende DB im Arbeitsspeicher liegt. ggf. ein Handshake programmieren, daß die CPU den DB vom Ladespeicher (MMC) in einen DB im Arbeitsspeicher lädt.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Da ich nicht in der Automatisierungswelt zuhause bin nun die Frage:

Geht der Handshake mit libnodave oder brauch ich dazu ein PG?

Ich denke es gibt so eine Funktion in der Steuerung um die Archivdaten auf dem HMI anzuschauen. Könnte diese Funktion möglicherweise von extern angestoßen werden?
 
Mit Handshake ist gemeint, daß via Libnodave in der CPU eine Anforderung gesetzt wird, worauf die CPU reagiert und den gewünschten DB in den Arbeitsspeicher lädt und eine fertig-Meldung setzt, welche von Excel gepollt wird (oder Excel wartet eine feste Zeit). Danach kann der DB von Excel gelesen werden. Daß heißt, das SPS-Programm muß erweitert werden.

Meines Wissens ist es nicht möglich, mit Libnodave DBs aus dem Ladespeicher zu lesen.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich denke es gibt so eine Funktion in der Steuerung um die Archivdaten auf dem HMI anzuschauen. Könnte diese Funktion möglicherweise von extern angestoßen werden?
Das könnte schon das sein, was Du brauchst. Doch dazu mußt Du das SPS-Programm und/oder die HMI-Projektierung kennen, um zu sehen, wie die Funktion von außen angestoßen wird, und ob dabei womöglich das HMI gestört wird.

Harald
 
Wenn Du ein PG mit Step7 zur Verfügung hast, dann kannst Du manuell den DB mit Step7 online auf der MMC öffnen und in Excel kopieren.

Harald
 
Meines Wissens ist es nicht möglich, mit Libnodave DBs aus dem Ladespeicher zu lesen.
Mir fällt gerade wieder ein, Libnodave kann wohl doch DBs vom Ladespeicher lesen (habe ich nur noch nie gemacht). Schau Dir mal die Funktionen mit "upload" im Name an, damit kann man Programmbausteine und vermutlich auch DBs aus (dem Ladespeicher?) der CPU laden.

Oder schau Dir mal die DotNetSiemensPLCToolBoxLibrary von Jochen Kühner an, ich meine die kann das zurücklesen auch und kennt auch das Format dessen, was da zurückkommt. Über die DotNetSiemensPLCToolBoxLibrary ist auch hier in der Forumssuche viel zu finden.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Da der Tag noch relativ jung ist versuch ich es mal.

PG und Step7 habe ich nicht zur Verfügung. Ich bin mehr in der Embedded-Welt zuhause.

Die Implementierung einer Kopierfunktion vom Flash ins RAM sollte so 5h dauern meint der Programmierer. Scheinbar ist hier von Siemens schon einiges vorbereitet.

Ich geb Rückmeldung wie es letzten Endens funktioniert hat.
 
Habs geschafft die Daten auszulesen indem ich mir die Doku für die Visualisierung der Werte auf dem HMI besorgt habe.
Es dauert zwar ein wenig alle 10.000-Werte aus dem Ringspeicher zu lesen, aber Excel im Zusammenspiel mit der libnodave-Bibliothek bekommt das glänzend hin.

Danke für die Hilfe.
 
Zurück
Oben