# libnodave timer/counter schreiben



## b0den (15 Mai 2008)

Hallo!

Zuerst einmal danke für das tolle Forum. Vielen Dank auch an Zottel für libnodave, ein wirklich sehr geiles Tool!

Nun habe ich ein kleines Problem: Könnte mir jemand eine .exe oder eine Wireshark-Aufzeichnung des schreibens eines Counters / Timers geben?
Kann es leider nicht selbst kompilieren.
Oder gibt es gar eine Test-Exe im libnodave, die das macht (habe nichts gefunden)?
Benutze übrigens Iso on TCP. 

Herzlichen Dank!

schönen Grüß
b0den


----------



## BorisDieKlinge80 (16 Mai 2008)

schon mit libnodave gearbeitet? hast du erfahrung mit C oder C++? 

Kannst du dein timer coutner problematik  genauer beschreiben?


----------



## b0den (16 Mai 2008)

Hallo!

Ja habe ich.
Es geht mir eher um den Aufbau eines write requests, wenn es sich um einen counter / timer handelt. 
Da ich aus dem Source / Hilfe nicht recht schlau werde, würde ich mich freuen, wenn mir jemand ein Wireshark-Protokoll bzw. eine .exe mit einem Beispiel des Schreibens geben könnte.

Danke!

Gruß
b0den


----------



## BorisDieKlinge80 (16 Mai 2008)

du willst auf eine PLC zugreifen via IP und port, und im intervall daten auslesen bzw. schreiben?


----------



## b0den (16 Mai 2008)

BorisDieKlinge80 schrieb:


> du willst auf eine PLC zugreifen via IP und port, und im intervall daten auslesen bzw. schreiben?



Ja.
Genauer: ich will nur timer / counter schreiben. Also ein daveWriteBytes(daveCounter/Timer, ...)
Und davon bräuchte ich eine .exe / Aufzeichnung, z.B. wo irgendwas in irgendeinen Timer/Counter geschrieben wird.

Danke & Gruß

b0den


----------



## BorisDieKlinge80 (16 Mai 2008)

wen du erfahrung hast in C und C++ schreib dir ne kleine anwendung  mit timer funktion bspw. extra thread...und schreib im intervall.. 

das ganze kompilierst dann


----------



## b0den (16 Mai 2008)

Es geht mir eigentlich um den schreibenden Zugriff auf Zähler / Timer auf der S7 mit libnodave. 
Habe fast keine Erfahrung, von daher wäre mir o.g. lieber.
Trotzdem danke!


----------



## Zottel (16 Mai 2008)

b0den schrieb:


> Es geht mir eigentlich um den schreibenden Zugriff auf Zähler / Timer auf der S7 mit libnodave.
> Habe fast keine Erfahrung, von daher wäre mir o.g. lieber.
> Trotzdem danke!


Selbst ich habe damit kaum Erfahrung.
1. Ändere den Quellcode von testXXX.exe und setze bei den Schreibtests daveTimer statt daveFlags oder daveDB ein.
2. Pro Timer brauchst du 2 byte Puffer, da der Timerwert 2 byte lang ist.
3. Ich erinnere mich nicht, ob der parameter len bei Timern die Anzahl der Bytes oder Timer angibt. Kannste ja probieren.
4. Danach kannst du selbst mit Wireshark aufzeichnen,
5. es gibt zwar eine Funktion getSeconds, die das S5T#-Format in Sekunden wandelt, aber nicht die Umkehrfunktion. Grund: Es gibt mehrere Möglichkeiten, dieselbe Zeit darzustellen, je nach Auflösung.

Was schreibt man eigentlich bei einem Timer, die LAUFENDE Zeit oder die ENDZEIT???
Und was passiert, wenn man auf einen laufenden Timer schreibt???


----------

