# Länge von DB s und andere Libnodave Fragen



## RobiHerb (5 November 2009)

Wie stelle ich die Länge von DBs und das Vorhandensein überhaupt fest.

Ich bekomme die Fehlermeldung 5, wenn ich lesen möchte, was es nicht gibt.

Kann man das vorher abfragen?

Gibt es eine Liste mit allen Fehlercodes? Theoretisch gibst in Dave auch eine Fumktion FehlerCode -> Text aber bei mir unter .Net ergibt das unlesbaren Mist, da wohl die Unicode Umwandlung fehlt.


----------



## Thomas_v2.1 (5 November 2009)

RobiHerb schrieb:


> Wie stelle ich die Länge von DBs und das Vorhandensein überhaupt fest.



Mit daveListBlocksOfType gibt es eine Liste der SPS vorhandenen Bausteine.
Mit daveGetBlockInfo lassen sich dann die Bausteineigenschaften abfragen.



RobiHerb schrieb:


> Ich bekomme die Fehlermeldung 5, wenn ich lesen möchte, was es nicht gibt.
> 
> Kann man das vorher abfragen?
> 
> Gibt es eine Liste mit allen Fehlercodes? Theoretisch gibst in Dave auch eine Fumktion FehlerCode -> Text aber bei mir unter .Net ergibt das unlesbaren Mist, da wohl die Unicode Umwandlung fehlt.



Alle OPC-Server oder Treiber die ich bisher gesehen habe machen das genauso. Es wird eine Anfrage an den Datenbereich gestellt, und wenn dieser nicht vorhanden ist wird gilt/gelten das/die Items als gestört.
Nachteil an der Sache ist, dass wenn man z.B. einen Block von 100 Bytes aus einem DB liest, dieser aber nur 99 Bytes lang ist, der ganze Block "ungültig" ist. Aber so ist das nunmal.

Die defines der Fehlernummern stehen in der nodave.h.


----------



## Thomas_v2.1 (5 November 2009)

Ergänzung:
Der Simatic OPC-Server fragt beim "Brausen" die Bausteinliste und Daten aus der SPS ab. Aber auch nur dabei. Wenn die Items einmal angemeldet sind fragt er danach auch nicht mehr.


----------

