# Libnodave Timer Counter



## lorenz2512 (30 Oktober 2005)

Hallo,
hab mal ein Problem mit Libnodave, versuche Timer oder Counter Werte auszulesen mit VBA oder VB, benutze Libnodave0.8 an einer S7-222.
Hier mal mein Code:
    res2 = daveReadBytes(dc, daveTimer200, 39, 39, 2, 0)
    If res2 = 0 Then
        Text4 = daveGetSeconds(dc)
Hab bald alle Möglichkeiten durch, wenn ich unten anstatt getSeconds float nehme tut sich ab und zu was.
Bei den Countern benutze ich "davegetcountervalue(dc)" zum auslesen.
Übertrage ich den Timer in ein Wort klappt alles mit dem Wort auslesen.
Ich hoffe Ihr könnt mir helfen.


----------



## Zottel (30 Oktober 2005)

Timer und Counter sind sicherlich einfach schlampig implementiert, die von der 200 möglicherweise gar nicht. 
getCounterValue ist sicher für Zähler der 300/400 gemacht.
Soweit ich mich erinnere, wahr für die Zähler der 200 keine spezielle Funktion nötig.

Entweder Timer oder Counter der 200 oder beide liefern mehr als einen Wert:
Aktueller Wert, voreingestellter Wert, Zustand oder so. Ich erinnere mich nur dunkel.
Am Besten schaust du mit daveGetWord, was raus kommt und vergleichst mit dem, was du Microwin im Tabellenstatus liefert...
Wenn abei raus kommt, daß es nicht funktioniert, wundert mich das auch nicht.


----------



## seeba (30 Oktober 2005)

*Re: Mal eine saublöde Frage*



			
				lorenz2512 schrieb:
			
		

> Hallo Zottel,
> soll das etwa heißen ich bin der erste Depp der danach fragt?das gebe mir dann natürlich zu denken.
> Bits, Bytes, Vw, Vd, real alles kann ich lesen nur die Timer und Counter nicht, aber das muß doch auch jemand anderes aufgefallen sein? Man liest zwar viel über Libnodave, aber Anwendungen oder Beispiele sucht man vergebens. Ich habe da was in Excel fertig, aber mein Versuchskaninchen hat im Augenblick keine S7-200  , wenn der das packen würde, dann ist es wirklich fast narrensicher.
> Oben im Forum ist einer der sucht sowas, hab ich angeboten ihm zu schicken(probieren) hat sich nicht gemeldet :roll: http://www.sps-forum.de/phpBB2/viewtopic.php?t=5381
> Das kann es doch alles nicht sein, auf der einen Seite suchen Sie was kostenloses, aber das muß dann alles mit Tüv-Siegel sein, und mit Garantie, und hübsch aussehen.



Also: Die Counter funktionieren mit der S7 300/400! Timer werde ich heute nachmittag ausprobieren.


----------



## lorenz2512 (30 Oktober 2005)

Hallo Seeba,
nächste Woche habe ich höchstwahrscheinlich auch eine 300er zur Verfügung, denn hier mit der 200er komm ich nicht weiter, Zottel hat bei einigen 'Sachen auch dabei geschrieben nicht getestet, und darunter fallen auch die Counter und Timer der S7-200, leider .


----------



## lorenz2512 (30 Oktober 2005)

Hallo,
jetzt nochmal zu den Countern, in der Einstellung:
If res = 0 Then
    res2 = daveReadBytes(dc, daveCounter200, 0, 1, 4, 0)
    If res2 = 0 Then
        Text4 = daveGetS32(dc)
zählt er immer in 256 Schritten hoch, hat er den Wert erreicht dann schmeißt er noch was dazu, und dann wird es wirr.
Und hier:
    res2 = daveReadBytes(dc, daveCounter200, 0, 1, 1, 0)
    If res2 = 0 Then
        Text4 = daveGetS32(dc)
ist die null gleich 104 und zählt 257(?) dazu.

Schade, da bleibt wohl nur ein bißchen tricksen 


Und bei den timern sieht noch bescheidener aus:
    res2 = daveReadBytes(dc, daveTimer200, 0, 37, 4, 0)
    If res2 = 0 Then
        Text4 = daveGetS32(dc)

bei Timer 37 (100ms) Voreinstellung 999 , kommt nach einiger Zeit eine 1, das geht dann bis 3 und das war's.

Aber wenn Du sagst das das unter Umständen nicht geht, bin ich erleichtert, denn ich sitze schon Stunden davor und probier hier (was solls hab ja eh Bereitschaft).Und eins hab ich auch noch probiert die alte(langsame Lib0.74) wieder draufgemacht, weil Du ja geändert hast, aber keine Besserung in Sicht.


----------



## Zottel (30 Oktober 2005)

*Re: Mal eine saublöde Frage*



			
				seeba schrieb:
			
		

> lorenz2512 schrieb:
> 
> 
> 
> ...


Bei diesem Teil des Beitrags komme ich nicht klar, wer hier was an wen schreibt.


> Hallo Zottel,
> soll das etwa heißen ich bin der erste Depp der danach fragt?das gebe mir dann natürlich zu denken.


Ja, du bist möglicherweise der erste. Wenn nicht, habe ich auch anderen Leuten geschrieben, daß es halt nicht fertig ist.
Das mag daran liegen, daß ich selbst nie Zähler verwende. Und in der 200 sind Zähler und Zeiten auf Byte-Ebene anders aufgebaut, so daß es auf Dauer nicht ohne besondere Funktionen für die 200 gehen wird.
Zur Zeit würde ich raten, Zeit- und Zählerwerte einfach im SPS-Programm in Datenworte oder VWs zu übertragen.


----------



## lorenz2512 (30 Oktober 2005)

Hallo Zottel,
das was als Zitat da oben steht hatte ich vorher als Beitrag geschrieben, dann hatte ich es gelöscht(Selbstzensur) weil ich es für zu emotional fand, aber ich habe maßlos drüber aufgeregt das ich wohl der einzigste Depp auf der Welt bin der das ausprobiert haben soll, und das da nie jemand Rücksprache bei Dir gesucht hat(wie sollst Du was verbessern, wenn Du keine Rückmeldungen bekommst), aber es wird immer wieder "oh das ist aber toll"heißt und läuft "super", und dann hört man nie wieder was davon, wenn sich einer richtig damit beschäftigt muß sowas doch auffallen oder? jedenfals mir schon.
Hast Du schon mal ein Beispielprogramm in Vb oder VBa gesehen außer deinem, ich nicht, und das ärgert mich.

Aber danke für deine offenen Worte, mit dem Zähler das kann man hinbiegen, die Zeiten muß man dann aus einem Wort lesen.


----------



## Zottel (30 Oktober 2005)

lorenz2512 schrieb:
			
		

> Hallo Zottel,
> ...aufgeregt das ich wohl der einzigste Depp auf der Welt bin der das ausprobiert haben soll,


1. ist die 200 wohl nicht das erste Ziel, für Leute, die einen PC dranhängen wollen. 2. Ist ein Hauptanwendungsgebiet von Libnodave entweder Visualisierung oder Erfassung von Produktionsdaten. In beiden Fällen ist es optimal, eine größere Datenmenge bereits im SPS-Programm in einem DB hintereinander abzulegen. Das wird wohl auch bei den meisten Anwendungen anderer Bibliotheken so gemacht. Dann packt man eine einzelen Zeoit oder Zähler sowieso mit in den Austausch-DB.


> Hast Du schon mal ein Beispielprogramm in Vb oder VBa gesehen außer deinem, ich nicht, und das ärgert mich.


Ist mir im Moment nicht bewußt. Bestimmt schon Auszüge. Wenn mir einer seinen halben Code mailt, schreibe ich meist, daß mich sein Code nicht interessiert. Er soll die Testprogramme nehmen. Wenn die laufen, liegt's eh an seinem Code, und da habe ich keine Zeit für, den zu verstehen und zu korrigieren.
Es ist ein Problem, daß sich viele User mit privater e-Mail melden. Die Antwort kommt dann nur einem zugute. Um das zu ändern, habe ich oft aber nicht konsequent, die Antworten auch an die Mailing-liste libnodave-users@lists-sourceforge.net geschickt.
Ansonsten scheint mir das "help"-Forum auf sourceforge.net eigenlich der beste Ort: Man kann den Inhalt schneller durchlesen, als bei der Mailingliste.
Ich werde auf die libnodave-homepage schreiben, daß möglichst diese help-Forum benutzt werden soll.
Daher müßte ich Forum, Liste, SPS-Forum und private mails durchgucken, um zu wissen, wer wann nach was gefragt hat.


----------

