# daveV ???



## der Micha (27 Juni 2007)

Hallo zusammen !

Bin mit libnodave ein wenig am probieren und es klappt recht gut . Letztens  habe ich      daveV   und   davelokal     irgendwo gelesen und wollte in Zottels Codes mal nachsehen was man da mit anstellen kann , mein Prob ist nur ich Finde nichts darüber . Hat jemand dieses schon benutzt / genutzt , welche Funktion steckt dahinter ?

Gruss Micha


----------



## Ralle (27 Juni 2007)

Nie davon gehört, was soll das denn sein?


----------



## der Micha (27 Juni 2007)

In der libnodave 8.2 finde ich auch nichts wenn ich suche . Habe das im Netz beim Googlen gesehen .
PPI_area { 
daveSD = 0x3, daveInputs = 0x81, daveOutputs = 0x82, daveFlags = 0x83, 
daveDB = 0x84, daveDI = 0x85, daveLocal = 0x86, daveV = 0x87, 
daveCounter = 28, daveTimer = 29

Auf der Seite stand noch mit bei :

00034       daveLocal   = 0x86, //not tested
00035       daveV       = 0x87, // don't know what it is

Gut , der Beitrag ist was älter , dachte erst es ist was für die V Area der 200er , aber die ruft man ja mit DB1 ab .


----------



## afk (27 Juni 2007)

der Micha schrieb:


> 00034  daveLocal = 0x86, //not tested
> 00035 daveV = 0x87, // don't know what it is


Das ist aus der nodave.h, und eigentich hat Zottel alles, was Du wissen willst, in die Kommentare geschrieben: daveLocal hat er noch nicht ausprobiert, und bei daveV weiß er nicht, wofür es da ist. Wenn irgendein libnodave-User mehr dazu wüßte, dann hätte er bestimmt entsprechende Rückmeldung bekommen.


Gruß Axel


----------



## Question_mark (27 Juni 2007)

*Was ist das ??*

Hallo,



			
				der Micha schrieb:
			
		

> 00034 daveLocal = 0x86, //not tested
> 00035 daveV = 0x87, // don't know what it is



Also, wenn es denn weiterhilft :

0x86 sind die Lokaldaten, also der L-Stack der CPU
0x87 ist der vorherige L-Stack

Gruss

Question_mark


----------



## afk (27 Juni 2007)

Question_mark schrieb:


> 0x86 sind die Lokaldaten, also der L-Stack der CPU
> 0x87 ist der vorherige L-Stack


Aha, QM ist in dem Fall also der Einäugige unter den Blinden , aber mit dem Zweiten sieht wohl trotzdem nur Siemens ... 

Jetzt klär mich als dummen PC-Programmierer doch bitte auch noch auf, ob das Auslesen des L-Stacks vom PC aus überhaupt sinnvoll ist, bzw. wofür der L-Stack da ist.


Gruß Axel


----------



## der Micha (28 Juni 2007)

THX für das schnelle Antworten . Denke mal er meint dieses :

*[FONT=Arial,Bold]Temporäre Daten (TEMP) in allen Bausteinen​*[/FONT]Temporäre Daten sind Lokaldaten eines Bausteins, die während der Bearbeitung eines Bausteins im
Lokaldaten-Stack (L-Stack) abgelegt werden und nach der Bearbeitung nicht mehr verfügbar sind.
​


----------



## Zottel (28 Juni 2007)

Danke, jetzt wissen wir ein bischen mehr...


afk schrieb:


> Jetzt klär mich als dummen PC-Programmierer doch bitte auch noch auf, ob das Auslesen des L-Stacks vom PC aus überhaupt sinnvoll ist,


für typische Anwendungen von Libnodave sicher nicht. Lesen mittels daveRead...() erfolgt meines Wissens irgendwann während der Programmausführung und der Inhalt des L-Stacks wechselt. 
Die Konstanten 0x86, 0x87 werden allerdings in gleicher Weise bei den Testfunktionen verwendet, die die SPS zur Verfügung stellt, um einem PG das Beobachten zu ermöglichen.


> bzw. wofür der L-Stack da ist.


Für die lokalen Variablen, im Prinzip genauso wie in Pascal.


----------



## Ralle (28 Juni 2007)

Zottel schrieb:


> für typische Anwendungen von Libnodave sicher nicht. Lesen mittels daveRead...() erfolgt meines Wissens irgendwann während der Programmausführung und der Inhalt des L-Stacks wechselt.



Das denke ich auch, der L-Stack wird ja von allen Bausteinen genutzt, ein Auslesen hätte ja nur richtig Sinn, wenn man auch Informationen dazu bekommt, an welcher Stelle des Programms sich die SPS gerade befindet, wer also den L-Stack gerade benutzt.


----------



## afk (28 Juni 2007)

Zottel schrieb:


> Die Konstanten 0x86, 0x87 werden allerdings in gleicher Weise bei den Testfunktionen verwendet, die die SPS zur Verfügung stellt, um einem PG das Beobachten zu ermöglichen.


Jetzt bin ich neugierig geworden. Daraus schließe ich, daß die SPS über das S7-Protokoll auch Funktionen zur Verfügung stellt, um bestimmte, nur temporär innerhalb vom SPS-Zyklus gültige Werte auszulesen, ist das richtig ?

Falls ja, geht das dann auch mit libnodave ?


Gruß Axel


----------



## Question_mark (28 Juni 2007)

*L-Stack*

Hallo,

den Lokalstack wird man schon brauchen, um eine Darstellung im Status "Baustein beobachten" (oder so ähnlich heisst das doch bei den PG-Funktionen?) zu realisieren. Die Notwendigkeit des vorherigen L-Stacks habe ich auch noch nicht ganz begriffen, aber wie der Kollege mit dem Wikingerhelm ja schon richtig festgestellt hat : Ich bin nur der Einäugige     

Gruss

Question_mark


----------



## Question_mark (28 Juni 2007)

*L-Stack*

Hallo Axel, Du böse Achse



			
				afk schrieb:
			
		

> daß die SPS über das S7-Protokoll auch Funktionen zur Verfügung stellt, um bestimmte, nur temporär innerhalb vom SPS-Zyklus gültige Werte auszulesen,



Ich denke mal nicht über das S7-Protokoll, sondern eher über die PG-Funktionen, wie schon von Zottel gesagt (Äähemmm geschrieben).

Gruss

Question_mark


----------



## afk (29 Juni 2007)

Wie bereits geschrieben, jetzt bin ich neugierig geworden, darum wird dieser Thread jetzt wohl zur Fragerunde:



Question_mark schrieb:


> Ich denke mal nicht über das S7-Protokoll, sondern eher über die PG-Funktionen, wie schon von Zottel gesagt (Äähemmm geschrieben).


Was meinst Du mit PG-Funktionen ? 

In libnodave gibt es Funktionen zum Abfragen der SZL der CPU, damit lese ich schon die Konfiguration der CPU, die LED-Anzeigen, einen Teil der Hardware-Konfiguration und den Diagnosepuffer aus. Das ist aber auch ein Bestandteil des S7-Protokolls. Meinst Du das ?

Wenn ich das richtig sehe, dann teilt Step7 der CPU mit, welche Daten über welchen Programmausschnitt erfasst werden sollen, und die CPU überwacht das dann im Zyklus und gibt die gesammelten Daten zurück. Mich würde einfach interessieren, ob man diese Diagnosefunktionen auch mit libnodave nutzen kann. 


Gruß Axel


----------



## hovonlo (29 Juni 2007)

Also diese Kennungen von 81h bis 87h finden sich in der Simatic Manager-Hilfe bei den Any-Pointern:

```
[B]Hexadezimalcode [/B][B]Bereich [/B][B]Beschreibung
[/B] b#16#81      E     Speicherbereich der Eingänge 
 b#16#82      A     Speicherbereich der Ausgänge 
 b#16#83      M     Speicherbereich der Merker 
 b#16#84      DB    Datenbaustein 
 b#16#85      DI    Instanz-Datenbaustein 
 b#16#86      L     Lokaldaten (L-Stack) 
 b#16#87      V     Vorherige Lokaldaten
```
Und beim Einsatz von Any-Pointern im Programmcode auf der SPS ist die Verwendung des Lokaldatenbereichs oder der vorherigen Lokaldaten ja durchaus sinnvoll. Bei der Verwendung von libnodave wird da wohl nicht unbedingt was vernünftiges rausfallen...


----------



## Question_mark (29 Juni 2007)

Hallo Axel,



			
				afk schrieb:
			
		

> Meinst Du das ?



Nein, ich dachte da eher an die Funktionen um z.B. die Statusinformationen beim Beobachten von Bausteinen auszulesen oder auch den Transfer von Bausteinen (also auch SDB, DB, FB, FC etc.) u.s.w.

Gruss

Question_mark


----------

