# Libnodave Werte zyklisch auslesen mit VB



## Fluffi (25 Juli 2009)

hi

ich möchte einige Werte einer SPS zyklisch, also in einem bestimmten Intervall mit Libnodave auslesen und möchte KEINEN VB-Timer dazu verwenden.
Daher folgende Frage:
Gibt es in Libnodave selber spezielle Überwachungsfunktionen um so etwas zeitgesteuert ablaufen zu lassen oder gibt es in VBA irgendwelche Events die nach einem bestimmten Intervall ausgeführt werden.

Edit: Diese beiden Methoden scheinen wohl das beste zu sein was Excel hergibt.
http://www.cpearson.com/excel/OnTime.aspx

*Ich hab jetzt aber ein neues Problem:*
Und zwar übertrage ich ca 50 Bytes an Daten byteweise von der SPS zur VBA-Anwendung. Die Übertragungsdauer ist vielleicht 1,5s
Das ganze läuft im Takt von ca.10 Sekunden ab.
Leider schaffe ich es aber nur höchstens ca. 5-15 solcher 50Bytes-Datenpakete zu übertragen. Dann erhalte ich bei  daveConnectPLC(dc) den Rückgabewert -1.
Beende ich Excel und Start das Programm erneut funktioniert alles wieder. Aber wieder nur begrenzt.


----------



## Human (25 Juli 2009)

Zu deinem Timerproblem kann ich dir leider nichts sagen, da ich mit VB nicht viel am Hut habe.

Aber mit deinem neuen Problem, das ich auch mal gehabt habe:

Das liegt an irgendwelchen Handels, die nicht freigegeben werden, nachzulesen hier:
http://www.sps-forum.de/showthread.php?t=27801&page=3&highlight=libnodave
bzw. die Funktion, die du nach dem schließen der Verbindung ausführen solltest ist WSACleanup, müsste aber soviel ich weiß in der neuesten Version (0.8.5.5) behoben sein.


----------



## Fluffi (25 Juli 2009)

das mit WSACleanup verstehe ich nicht so ganz.
Wo gibt es die 8.5.5er Version? Ist nicht die 8.4.5 die aktuellste ?

Wie sollte eigentlich der standardmäßige Ablauf fürs schreiben oder lesen aussehen:
etwa so?
initialize
daveRead... oder daveWrite...
CleanUp

ist daveStart und DabeStop nicht zwingend notwendig ?


----------



## MW (26 Juli 2009)

Fluffi schrieb:


> das mit WSACleanup verstehe ich nicht so ganz.
> Wo gibt es die 8.5.5er Version? Ist nicht die 8.4.5 die aktuellste ?



Die 0.8.4.5 ist die Aktuelle, human hat sich da bestimmt nur vertippt.



Fluffi schrieb:


> Wie sollte eigentlich der standardmäßige Ablauf fürs schreiben oder lesen aussehen:
> etwa so?
> initialize
> daveRead... oder daveWrite...
> CleanUp



ja



Fluffi schrieb:


> ist daveStart und DabeStop nicht zwingend notwendig ?



nicht wirklich, mit davestart und davestop kann man meines Wissens nach die SPS in RUN bzw. STOP schalten. Du solltest damit also nicht überall rumspielen


----------



## Fluffi (26 Juli 2009)

Fehler gefunden: Ich hatte vergessen nach dem Schreiben ein CleanUp zu machen.

Neuer Fehler: Sobald ich in Excel eine Zeile editiere, also einen Doppelklick drauf mache und der Coursor blinkt, kann kein VBA-Code mehr ablaufen. Weiss jmd wie man dieses Manko umgehen könnte ?


----------

