Libnodave Werte zyklisch auslesen mit VB

Fluffi

Level-2
Beiträge
453
Reaktionspunkte
69
Zuviel Werbung?
-> Hier kostenlos registrieren
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.
 
Zuletzt bearbeitet:
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.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
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 ?
 
Zuletzt bearbeitet:
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.:ROFLMAO:

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

ja

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 ;)
 
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 ?
 
Zurück
Oben