# LibNoDaveProtokoller



## Jochen Kühner (11 Mai 2010)

Aufgrund keiner Kritik ;-) (siehe hier: http://www.sps-forum.de/showpost.php?p=259898&postcount=11), hier mal eine kleine Beschreibung meines LibNoDave Protokollers.

Der LibNodave Protokoller ist ein Windows programm (Dienst) geschrieben in (CSharp). Er läuft auf einem Computer.

Der LibNoDaveProtokller dient dazu um Daten von einer SPS in eine Datenbank zu schreiben. Dazu ist in dem Quellcode auch ein FC für eine S7 vorhanden, um die Daten in der S7 in ein FiFo zu schreiben, falls der Protokoller mal nicht hinterherkommen würde.

Der Protokoller benutzt zur Kommunikation mit der SPS die LibNoDave von Zottel, d.h. alle Verbindungen die damit Möglich sind, sollten auch mit dem Protokoller möglich sein. Er kann aber auch zusätzlich mit einer direkten TCP Verbindung mit der SPS Kommunizieren, falls die Kommunikation über LibNoDave (welches ja durch die PDU größe usw begrenzt ist) zu langsam ist.

Es kann die Daten dann in eine Datenbank (MySQL, Postgres, SQLLite, ODBC) (wobei ODBC glaub noch nicht funktioniert, wird aber bei bedarf implementiert) ablegen.

Das Programm läuft als Windows-Dienst, somit muss am PC keiner eingeloggt sein!

Normalerweise nutzt das Programm zur Kommunikation 2 Handshake Bits, in der neuesten Version kann aber auch einfach alle x Sekunden Protokolliert werden.

Die Daten müssen im Moment alle in einem zusammenhängenden Bereich liegen (wobei Zwischenräume über den Platzhaltertyp "space" ausgeblendet werden können). In einer zukünftigen neuen Version (wenn meine LibNoDave Connection Library vollendet ist) werden die Adressen aller Variablen frei Vergebbar sein (Zusammenhängende werden dann aber optimiert auf einmal gelesen).

Achso, das ganze gibts hier:

http://jochensserver.dyndns.org/wordpress/?page_id=9


----------



## Question_mark (11 Mai 2010)

*Man beachte meinen Nick, immer nur Fragen*

Hallo,



			
				Jochen Kühner schrieb:
			
		

> Er kann aber auch zusätzlich mit einer direkten TCP Verbindung mit der SPS Kommunizieren, falls die Kommunikation über LibNoDave (welches ja durch die PDU größe usw begrenzt ist)



Auch hier noch mal eine Frage : Welche SPS kann denn direkt, also ohne SPS spezifisches Protokoll, nur über den TCP/IP Stack mit irgendeinem Partner kommunizieren. Also irgendwie habe ich da immer noch Verständnisprobleme, die Du aber sicherlich beseitigen kannst.

Gruß

Question_mark


----------



## Jochen Kühner (11 Mai 2010)

Question_mark schrieb:


> Hallo,
> 
> 
> 
> ...



Jede SPS Theoretisch, die TCP/IP kann. Mein FC welcher Für S7 dabei ist, schickt einfach alle Variablen eines Datensatzes in einem Telegramm an den PC, d.h. alle Variablen direkt aneinandergereiht. (Es können auch mehrere Datensätze in einem Telegramm zusammengefasst werden).

D.h. wenn Ich in einer anderen SPS (nicht Siemens) die Daten auch so an meine Software schicke, gehts.

Meine Software kann aktiv oder passive sein, Port ist einstellbar!


----------



## Question_mark (11 Mai 2010)

*Ich habe wohl noch nicht alles verstanden*

Hallo,



			
				Jochen Kühner schrieb:
			
		

> in einem Telegramm an den PC,



Damit ist endlich die Frage beantwortet, die ich schon mehrmals gestellt habe : Es gibt immer noch den obligatorischen PC zwischen SPS und Datenbank. Es hat etwas gedauert das aus Deinen Beiträgen herauszufiltern. Und Dir und dem rudl (der wohl an einem ähnlichem Projekt arbeitet), kann ich nur raten : Vergesst es einfach, oder seht es einfach als Hobby oder Zeitvertreib an. Ich finde es toll, dass Ihr Euch damit beschäftigt um die Zeit totzuschlagen oder einfach um weiter zu lernen, aber gebrauchen kann man das in der industriellen Umgebung (wo ich auch für die Funktionalität meiner Programmierung mit meinen persönlichen Vermögen hafte) absolut nicht. Aber weiterhin viel Spass beim Weiterentwickeln ...

Gruß

Question_mark


----------



## Jochen Kühner (11 Mai 2010)

*Wieso...*

Die Software kann aber genau so gut auf dem Rechner laufen auf dem die Datenbank ist!

Ich brauche ja immer irgendeine Software welche die SPS Werte in die Datenbank schreibt, sei es OPC oder irgendein Programm direkt in der DB.

Also wir haben die Software schon in einigen Bäckereien im Einsatz (mehr als 10 Stück) welche die ganzen Verwiegungen mitprotokollieren.


----------



## Jochen Kühner (11 Mai 2010)

*Und noch was...*

Auch auf einigen WinCC Visualisierungen haben wir die Software als Telegrammlogger im Einsatz (Ausgabe der daten über WinCC).


----------



## Jochen Kühner (19 Mai 2010)

*Neue Version...*

Hab mal ne neue Version, welche das Logging in Textfiles und das Datenbankschreiben in Threads unterstützt!

Ist aber leider noch nichts getestet, da Ich auf Baustelle bin... Tests folgen morgen im Büro...


----------



## pvbrowser (19 Mai 2010)

Question_mark schrieb:


> Und Dir und dem rudl (der wohl an einem ähnlichem Projekt arbeitet), kann ich nur raten : Vergesst es einfach, oder seht es einfach als Hobby oder Zeitvertreib an. Ich finde es toll, dass Ihr Euch damit beschäftigt um die Zeit totzuschlagen oder einfach um weiter zu lernen, aber gebrauchen kann man das in der industriellen Umgebung (wo ich auch für die Funktionalität meiner Programmierung mit meinen persönlichen Vermögen hafte) absolut nicht. Aber weiterhin viel Spass beim Weiterentwickeln ...



Etwas ähnliches hast Du ja schon zu unserem pvbrowser verlautbaren lassen.

Du scheinst ja ein schöner Ignorant zu sein.


----------



## Question_mark (19 Mai 2010)

*Ist der Keller verschlossen ???*

Hallo,



			
				pvbrowser schrieb:
			
		

> Du scheinst ja ein schöner Ignorant zu sein.



Naja, da gebe ich Dir dann mal zu 50% Recht, schön bin ich natürlich, vielen Dank für die Anerkennung ...

Ein Ignorant aber mit Sicherheit nicht, Du wirst es nicht glauben, ich übe Selbstkritik (und daher erlaube ich mir, auch andere(s) kritisch zu betrachten) und kann auch über mich selber lachen. Diese Fähigkeit besitzen viele nicht. Geh doch einfach in Deinen Keller und lach mal wieder.

Gruß

Question_mark


----------



## Jochen Kühner (19 Mai 2010)

*Sorry...*

Sorry, hatte noch ein paar kleine Bugs drinnen, nun sollts gehen.


----------



## Jochen Kühner (4 Juni 2010)

*Neue Version...*

Neue Version Online...

- Hat einen Simplen Datenbankbrowser integriert (Hatte das problem das Sqlitebrowser bei abfragen die Datenbank blockiert und so mein Logger nicht weiterläuft, deshalb ein Simple Viewer ohne schreibzugriff). Getestet mit Postgres und Sqllite (MySQL programmiert aber nicht getestet).

- Ringpuffer. Es kann gesagt werden wieviel DS maximal in einer Tabelle sein sollen, dann wird der älteste gelöscht (Noch nicht getestet, mach ich am Montag!) (Zur Zeit nur mit Sqlite implementiert)

- Div Bugs gefixt

Falls es jm. interessiert, Ich habe den protokoller nun an einer Anlage als Telegrammlogger im Einsatz (Aufkommen mehrere Hundert Telegramme pro Minute), funzt ohne Probleme. Läuft auf unserem WinCC Server nebenher um bei einer Störung im Telegrammlog nachzuschauen wer den Fehler gemacht hat (unsere MFR-SPS oder die unterlagerte SPS)


----------



## Jochen Kühner (7 Juni 2010)

*Update...*

Nochmals ne neue Version Online...

(Paar kleine Bugfixes)


----------



## Joline (24 Juni 2010)

Hallo Jochen,

ich habe Dein Programm mal ausprobieren wollen. Aber schon bei den ersten Klicks (Dienst install, uninstall, test) ist es mir mit nicht abgefangenen Exceptions um die Ohren geflogen. Das läuft wohl leider nur mit Administratorrechten   Schade.

Im Moment kann man damit nur auf Datenbausteine zugreifen, oder?

Joline


----------



## Jochen Kühner (24 Juni 2010)

Joline schrieb:


> Hallo Jochen,
> 
> ich habe Dein Programm mal ausprobieren wollen. Aber schon bei den ersten Klicks (Dienst install, uninstall, test) ist es mir mit nicht abgefangenen Exceptions um die Ohren geflogen. Das läuft wohl leider nur mit Administratorrechten   Schade.
> 
> ...



Jo im Moment gehen nur Datenbausteine, freie variablen werden erst wenn Ich meine Connectionlibrary einbinde möglich werden.

Was für eine Exception denn? Würde den Fehler natürlich gerne beheben...


----------



## Joline (24 Juni 2010)

Das Hauptproblem liegt darin, dass man als Benutzer keinen schreibenden Zugriff auf manche Bereiche hat (Und das ist auch gut so!). Nun will aber z.B. die Funktion

```
System.Diagnostics.EventLog.WriteEntry(..);
```
was schreiben, was sie nicht darf. Kannst Du ganz einfach nachvollziehen, wenn Du Dich mal nicht als Administrator anmeldest. Dann treten Exceptions auf, die nicht behandelt werden (try .. catch).

EDIT: Ich habe noch einmal ein Bild angehängt, was auftritt, wenn ich "install" ausführen will (Hier wird allerdings die Exception weggefangen.   ).


----------



## Jochen Kühner (24 Juni 2010)

Ahh so...

Wie willst du denn aber einen Dienst ohne Administratorrechte installieren, das ist doch meines Wissens gar nicht möglich....


----------



## MenthalMan (25 August 2010)

Hallo Jochen,

Deine Software macht schonmal einen guten Eindruck.
Ich hab noch ein paar fragen zu den Optionen.

Was machen die Werte für NewDateInterval, NoDataCycles und NoDataInterval.

Danke und lieben Gruß
Ron


----------



## Jochen Kühner (25 August 2010)

NewDateInterval
Inerhalb von diesem Interval versucht der protokoller wieder von der SPS Daten zu lesen (schaut nach ob das bit sitzt).

Wenn jetzt für NoDataCycles keine neuen daten da waren, schaltet der Protokoller auf das Langsamere Intervall in NoDataInterval um!

Nur zu Info:

Arbeite im Moment an einer neuen Version, welche aber nicht kostenlos ist! (Die aktuelle Version darf ja auch nur für private Zwecke kostenlos verwendet werden!) Diese wird dann aber beliebig verteilte Daten protokollieren können!

Mfg.


----------



## MenthalMan (25 August 2010)

Gut zu wissen, 
zur zeit benutze ich es zwar nur zum rumspielen 
aber hast du schon in etwa eine vorstellung was der Spaß kosten soll??

lg Ron


----------



## Thomas_v2.1 (28 August 2010)

Jochen Kühner schrieb:


> Nur zu Info:
> 
> Arbeite im Moment an einer neuen Version, welche aber nicht kostenlos ist! (Die aktuelle Version darf ja auch nur für private Zwecke kostenlos verwendet werden!) Diese wird dann aber beliebig verteilte Daten protokollieren können!



Dann bitte auch deine ganzen Threads zu deinem Protokoller in "Werbung und Produktneuheiten" verschieben.

Find ich echt schon recht frech hier die Foren-User als Betatester zu missbrauchen und Know-How abzuziehen, und damit dann in die kommerzielle Ecke zu verschwinden. Aber wenn man deine Vorgehensweise bei der Softwareentwicklung aus deinen ganzen Postings hier sieht, wäre ich zumindest abgeneigt da auch nur einen Cent für abzudrücken.


----------



## Jochen Kühner (28 August 2010)

Der alte bleibt ja weiterhin kostenlos und es werden auch noch Fehler behoben...

Da aber immer mehr Leute mich angefragt haben, welche das Programm im komerziellen Umfeld nutzen, Ihnen was zu erweitern, oder bei der Konfiguration zu helfen, sehe Ich nicht ein das weiterhin kostenlos zu tun wenn andere damit Geld verdienen!


----------

