Libdonave kontinuerlich Daten lesen

Byzanz

Level-2
Beiträge
22
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo !

Habe gestern Libdonave herunter geladen

Excel Beispiel über ISO TCP laufen lassen.
Wenn ich das Unterprogramm "readFromPLC" über eine
Endlosschleife aufrufe, werden die Daten immer 3961 mal gelesen
danach werden die Daten nicht mehr aktualisiert.

Was kann der Grund dafür sein ?
Wie kann ich anders kontinuerlich von der SPS lesen ?

Danke!
 
Daten lesen..

Hi,
ahm, das Verhalten ist komisch..überläuft vielleicht da was? Na ja, und wenn das so ist, kann man den Fehler abfangen, und dann die Verbindung neu aufbauan, dann gehts ja wieder.Ist zwar "unschön", aber wenns's hilft..

Vladi
 
Wenn ich das Unterprogramm "readFromPLC" über eine
Endlosschleife aufrufe, werden die Daten immer 3961 mal gelesen
danach werden die Daten nicht mehr aktualisiert.

Was kann der Grund dafür sein ?
Wie kann ich anders kontinuerlich von der SPS lesen ?

Normal ist das nicht, wenn möglich kannst du mal dein Programm hier reinstellen, ich würd auch sagen das da was nicht passt
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Excel + Libnodave

Hi Kollege,

du wolltest was ausprobieren..ok, aber so in einer DO Schleife die Funktion
"ReadFromPLC" direkt hintereinander aufzurufen ist :rolleyes: nicht schön.
Da wird die Verbindung unnötig immer aufgebaut und geschlossen, und sofort wieder vor vorn..
Es reicht so was:
- Initialisieren, Verbindung aufbauen, lesen, lesen, lesen...
dann Verbindung zu, fertig. Und wenn irgendwann ein Fehler auftretten sollte, dann schliessen, neu Init.. und weiterlesen.
Da sollte man sich die Beispielmakros anpassen bzw. neue schreiben.

Vladi
 
Libdonave kontineurlich daten lesen

Hallo Viladi,

das hat mit der Do Schleife nichts zu tun. (schön ist es klar nicht)
Muß jedoch genau so beim xxxxx mal funktionieren.

Ich habe jetzt versucht wie du erwähnt hast nur readBytes
selbe in grün. Debugger zeit nach einer kurzen Weile
Fehler bei daveGetFloat.
Lösche ich die beiden daveGetFloat Zeilen so funktioniert
es immer.

Ich denke da liegt ein Problem bei DaveGetFloat

Danke !
 
Ich denke da liegt ein Problem bei DaveGetFloat
Ich halte DaveGetFloat für fehlerfrei.

DaveGetFloat stellt das von einem DBD gelesene Bitmuster um (wegen little/big endian) und kopiert es dann in eine Variable.
Es wird nicht geprüft, ob dieses Bitmuster eine GÜLTIGE floating point Zahl darstellt.
Wenn das SPS-Programm in dem DBD kein REAL anlegt, liegt es eben am Zufall. Die meisten Bitmuster sind GÜLTIGE Fließkommazahlen.
Selbst wenn das SPS-Programm dort ein REAL benutzt, kann es außer den normalen Zahlenwerten noch die Werte NAN, INF und -INF annehmen.
Ich habe nicht ausprobiert, was VB(A) macht, wenn es einen solchen Wert:
- als Funktionswert zurückgeliefert bekommt
- solch einen Wert weiterverarbeiten btw. anzeigen soll
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Libdonave kontineurlich Daten lesen

Hallo Zottel,

besten Dank.

VBA erwarte von der SPS auf MD12 (Merkerdoppelwort) ein Real Wert
nach dem ich es in der SPS mit einem Realwert beschrieben hatte,
konnte ich ohne Probleme Daten kontineurlich unbegrenzt lesen.
 
Zurück
Oben