# Was ist Libnodave ?



## Outrider (20 März 2013)

Hallo, 
was ist Libnodave und wofür kann man es verwenden ?
Gruß


----------



## Sinix (20 März 2013)

Libnodave ist eine Bibliothek für verschiedene Hochsprachen(zB VB,C++,C#,...) , die die notwendigen Funktionen , die zum Verbinden und Austauschen von Daten zwischen Siemens Steuerungen zur Verfügung stellt.


----------



## bike (20 März 2013)

Mäuseklavier schrieb:


> Libnodave ist eine Bibliothek für verschiedene Hochsprachen(zB VB,C++,C#,...) , die die notwendigen Funktionen , die zum Verbinden und Austauschen von Daten zwischen Siemens Steuerungen zur Verfügung stellt.


... die ein Kollge, der hier im Forum aktiv ist, programmiert hat.


bike

btw auch für Delphi funktioniert das ganze ;-)


----------



## Ralle (20 März 2013)

Mäuseklavier schrieb:


> Libnodave ist eine Bibliothek für verschiedene Hochsprachen(zB VB,C++,C#,...) , die die notwendigen Funktionen , die zum Verbinden und Austauschen von Daten zwischen Siemens Steuerungen zur Verfügung stellt.



Ich will ja nicht Oberlehrerhaft daherkommen, aber es werden nicht Daten zwischen S7-Steuerungen ausgetauscht, sondern ein PC kann damit Daten aus einer S7-Steuerung lesen und in diese hineinschreiben. Natürlich kann man über diesen PC dann auch Daten zwischen Siemens-Steuerungen austauschen. Nur zur Klarstellung, damit der Fragesteller nicht auf einen falschen Pfad kommt.


----------



## Krumnix (20 März 2013)

LibNoDave ist der kleine kostenlose "Bruder" von ProDave von Siemens. Es ist aber KEIN Produkt von Siemens kann aber viele Funktionen, von ProDave umsetzen.
Es dient dazu, über ein Hochsprachenprogramm Zugriff auf eine S7-Steuerung zu erhalten. Schnittstellen dazu können MPI, ProfiBus und Ethernet sein.
In dem Hochsprachen-Programm kann man dann z.B. auf einen DB zugreifen und dort Daten auslesen oder auch Daten reinschreiben.
Das funktioniert auch mit E/A's und Merker.


----------



## Mobi (20 März 2013)

bike schrieb:


> btw auch für Delphi funktioniert das ganze ;-)


Und in AutoIt funktionierts auch prächtig.


----------



## Sinix (20 März 2013)

Ralle schrieb:


> Ich will ja nicht Oberlehrerhaft daherkommen, aber es werden nicht Daten zwischen S7-Steuerungen ausgetauscht, sondern ein PC kann damit Daten aus einer S7-Steuerung lesen und in diese hineinschreiben. Natürlich kann man über diesen PC dann auch Daten zwischen Siemens-Steuerungen austauschen. Nur zur Klarstellung, damit der Fragesteller nicht auf einen falschen Pfad kommt.



Hab nur die Systembeschreibung für die Suchfaulen frei übersetzt:

Libnodave is a library that provides the necessary functions to connect to and exchange data with Siemens S7 300/400 PLCs (200 family and S5 family now also supported).Can now also be used under Win32.

Vielleicht hatte ich deshalb immer schlechten Noten in der Schule


----------



## Zottel (20 März 2013)

leo.org übersetzt "with" mit "mit" oder "bei".
Wenn ich "zwischen" gemeint hätte, hätte ich "...exchange data *between* Siemens S7 300/400 PLCs..." geschrieben.


----------



## Sinix (20 März 2013)

Jepp, da haste wohl recht, hehe


----------



## SoftMachine (21 März 2013)

.
Gebt dem TE doch einfach den Link, wo er sich die 
Dokumentation und die SW herunterladen kann.  

@TE
Die Forumssuche (oben rechts) wird dich mit Sicherheit
auch sehr viel weiterbringen.


----------



## Outrider (22 März 2013)

*Danke*

Danke für die Antworten,
Daten mit PC austauschen, das klingt fast nach OPC oder...?
Habt ihr irgendwelche Projektbeispiele wie man z.B. einen DB ausliest in den PC oder den Status eines Bits abfragt.
Egal was, hauptsache etwas um mal zu sehen wie es funktioniert.
Als Programmierhochsprachen kämen C++, VB oder Java in Frage.
Gruß und Danke


----------



## bike (22 März 2013)

Ist besser als OPC.
Hast du dir schon die Mühe gemacht die Beispiele anzuschauen?


bike


----------



## S7_Mich (30 Januar 2019)

Hallo zusammen,

ich hab ein kleines Tool in Visual Studio in Visual Basic geschrieben. Dazu habe ich die libnodave.dll eingebunden. Darf man die libnodave.dll gewerblich verwenden? Wie ist das lizenzrechtlich. Es wird mit diesem Tool nichts in der Steuerung geschrieben, lediglich wird ein Bit zyklisch ausgelesen. 

Ich hab schon gegoogelt aber dazu nichts gefunden. 

Viele Grüße
Michael


----------



## Fabpicard (30 Januar 2019)

Kurz: klar

Genauer: libnodave steht unter der LGPL Lizenz, alles weitere wichtige kannst du hier nachlesen https://de.wikipedia.org/wiki/GNU_Lesser_General_Public_License

MfG Fabsi


----------



## PN/DP (30 Januar 2019)

(Hinweis: Beitrag überarbeitet wegen Irrtum)



Fabpicard schrieb:


> libnodave steht unter der LGPL Lizenz


GNU Library General Public License


> Hinweis: Die GNU Library General Public License (LGPL-2.0) wurde durch die GNU Lesser General Public License abgelöst.



@S7_Mich
Öffne in Deinem Libnodave-Paket die nodave.c-Datei, da findest Du:


> Part of Libnodave, a free communication libray for Siemens S7 200/300/400
> [...]
> Libnodave is free software; you can redistribute it and/or modify
> it *under the terms of the GNU Library General Public License* as published by
> ...


Bibliotheken: GNU General Public License (GPL) vs. GNU Lesser General Public License (LGPL)


> Die Wahl der Lizenz macht einen großen Unterschied: mithilfe der GNU LGPL wird die Nutzung der Bibliothek in proprietären Programmen erlaubt, mithilfe der GNU GPL ist sie ausschließlich für freie Programme nutzbar.



Harald


----------



## Tom.R (11 April 2019)

Halllo zusammen,

bisher habe ich mit der Sharp 7 Bibliothek in einem C# Programm auf meine Steuerung zugegriffen, um hier Parameter zu lesen oder zu beschreiben und mir damit in Excel eine Visualisierung erstellt. 

Dies funktioniert allerdings nur mit nicht optimierten Bausteinen. Auch wenn dies recht gut funktioniert, auch mit hohen Datenmengen, denke ich das der optimierte Zugriff noch deutlich perofrmanter ist.

Ist es inzwischen mit libnodave möglich symbolisch auf DBs zuzugreifen bzw. gibt es andere Möglichkeiten?

Weiter oben schrieb mal jemand, es wäre möglich die Bibliothek mit 50 zeilen Code so zu modifzieren das dies möglich wäre?


Gruß

Tom


----------



## Sven Rothenpieler (11 April 2019)

Tom.R schrieb:


> Halllo zusammen,
> 
> bisher habe ich mit der Sharp 7 Bibliothek in einem C# Programm auf meine Steuerung zugegriffen, um hier Parameter zu lesen oder zu beschreiben und mir damit in Excel eine Visualisierung erstellt.
> 
> ...


Eine Alternative wäre *ACCON-AGLink* von Deltalogic. Ist allerdings nicht kostenlos.


----------



## PN/DP (11 April 2019)

Tom.R schrieb:


> Dies funktioniert allerdings nur mit nicht optimierten Bausteinen. Auch wenn dies recht gut funktioniert, auch mit hohen Datenmengen, denke ich das der optimierte Zugriff noch deutlich perofrmanter ist.


Wie kommst Du da drauf? Das halte ich für ein Gerücht oder Marketing-Blabla. Symbolischer Zugriff auf Objekte in "optimiertem" Speicher ist weitaus komplizierter als direkter Zugriff auf Speicher mit Standard-Zugriff - wie soll das "performanter" sein?

Harald


----------



## Eleu (11 April 2019)

Tom.R schrieb:


> Ist es inzwischen mit libnodave möglich symbolisch auf DBs zuzugreifen bzw. gibt es andere Möglichkeiten?



Hallo,
eigentlich ist es, bei der S7-1500er doch nicht möglich, weil man ja nicht die Adresse, einer Variablen, im Speicher der CPU kennt? Ich hatte es so verstanden, 
das alles symbolisch editiert wird und das BS der CPU, die Ablage der Variablen, irgendwo im Speicher, selbst organisiert?  Wie kann man da wissen, wo Libnodave im Speicher suchen muss,
wenn er den Wert einer Variablen xy auslesen möchte?

Bei den 300er und 400er Steuerung wird ja absolut adressiert.

Gruß
Eleu


----------



## Eleu (11 April 2019)

PN/DP schrieb:


> Wie kommst Du da drauf? Das halte ich für ein Gerücht oder Marketing-Blabla. Symbolischer Zugriff auf Objekte in "optimiertem" Speicher ist weitaus komplizierter als direkter Zugriff auf Speicher mit Standard-Zugriff - wie soll das "performanter" sein?
> 
> Harald



Hallo,

ich glaube der Vorteil ist das Laden, ohne den DB reinitialisieren zu müssen. Das heißt, du kannst die Klasse (FB) ändern und auch laden, erzeugst dann an der Aufrufschnittstelle einen neuen Instanz DB
und kannst ihn im laufenden Betrieb, ebenfalls in die Steuerung laden. Ich habe das noch nicht ausprobiert, aber auf einer Schulung, wurde mir gesagt, dass das mit optimierten Datenbausteinen gehen soll?
Also, ohne das die CPU in Stop geht...
Gruß
Eleu


----------



## Jochen Kühner (11 April 2019)

Also mit AGLink ist der Symbolische Zugriff möglich. Allerdings muss dazu eine Liste der Symbole aus der Steuerung geladen werden, dazu gibt es in AGLink einen Befehl.

Das lesen von Daten aus der Steuerung ist dann über den Symbolischen Zugriff auch weitaus schneller als über das alte S7 Protokoll. Denke das liegt daran, das man auch nicht mehr auf 240Bytes (480) beschränkt ist. 

Das in libnodave zu implementieren wird nicht so einfach sein. Da das Protokoll nicht offen Dokumentiert ist.

In dem wireshark dissector von Thomas_V2.1 ist dazu bischen was drin: https://sourceforge.net/projects/s7commwireshark/


----------



## Eleu (12 April 2019)

Jochen Kühner schrieb:


> Also mit AGLink ist der Symbolische Zugriff möglich. Allerdings muss dazu eine Liste der Symbole aus der Steuerung geladen werden, dazu gibt es in AGLink einen Befehl.
> 
> Das lesen von Daten aus der Steuerung ist dann über den Symbolischen Zugriff auch weitaus schneller als über das alte S7 Protokoll. Denke das liegt daran, das man auch nicht mehr auf 240Bytes (480) beschränkt ist.
> 
> ...



Ich habe früher Anwendungen mit dem Hochsprchenadapter Prodave programmiert. Damals sogar mit ProDave für S5 über die TTY - Schnittstelle des AG`s.
S7 300 / 400 über Prodave MPI. Jetzt gibt es PRODAVE MPI/IE V6.2. 
Kann man damit auch symbolisch auf die Variablen einer 1500er zugreifen? Könnte mir vorstellen, dass man damit vorher keine Symbole hochladen muss,
da es ja ein Hochsprachenadapter von Siemens ist?

Weiß aber auch nicht, ob das immer noch der alte Schuh ist und von Siemens gar nicht mehr weiter entwickelt wird? M.Wissens hat ja jede 1500er CPU auch einen OPC Server im Bauch?

Hat schon mal jmd. über Prodave auf eine 1500er zugergriffen?

Gruß
Eleu


----------



## Jochen Kühner (12 April 2019)

Soweit ich weiß wird da von Siemens nix mehr entwickelt.

Un warum sollte der Siemens Adapter nix laden müssen? Über die geladenen Daten wird eine Umsetzung auf die Adresse gemacht. Es geht auch ohne Laden von der Steuerung, wenn man das TIA Projektfile nimmt!


----------



## Dumpfbacke (10 Juli 2019)

hallo, 

also fuinktioniert diese libodave jetzt mit einer 1500 (optimiert, oder nicht optimiert)?
Auf der Website http://libnodave.sourceforge.net/ steht das nur S7 200, 300 und 400 funktioniert.

Wenn ja hat jemand die lib schon mal auf einem OPen Controller probiert?

Ich hab sharp7 getestet, da funktioniert zwar die kommunikation mir der Soft SPS des Open Controller über die Profinetschnittstelle nicht aber über die LAN Schnittstelle der "Windows Seite".
Grundsätzlich geht die Kommunikation mit der LAN Schnittstelle weil auch TIA Portal über diese LAN Schnittstelle mit der Soft SPS des OPenController reden kann.

Danke, mfg Dumpfbacke


----------



## Ralle (10 Juli 2019)

Ich hab libnodave schon kurz mit einer 1500-er getestet, aber natürlich nur mit einem nicht oprimierten DB und in den Einstellungen der SPS muß Put/Get-Kommunikation freigegeben werden.
Zum Open Controller kann ich nichts agen.


----------



## luzi3009 (8 März 2020)

Hallo Zusammen
Das Thema ist zwar schon etwas her, aber ich hoffe ihr könnt mir helfen.

Ich habe mir jetzt viel mit Snap7, bzw Sharp7 beschäftigt. Mein Stand  jetzt: Ein/Ausgänge lesen, DB's lesen schreiben ist kein Problem. 

Zu meiner Frage. Gibt es eine Möglichkeit die Variablentabelle der S7 auszulesen? 
D.h ich möchte den E1.1 auslesen und dabei dann wissen welchen Namen dieser in der Variablentabelle hat.
Benutze eine S7-1500.

Vielen Dank für euche Hilfe


----------



## Thomas_v2.1 (8 März 2020)

luzi3009 schrieb:


> Zu meiner Frage. Gibt es eine Möglichkeit die Variablentabelle der S7 auszulesen?
> D.h ich möchte den E1.1 auslesen und dabei dann wissen welchen Namen dieser in der Variablentabelle hat.
> Benutze eine S7-1500.



Das sollte über die Openess-Schnittstelle möglich sein. Dazu benötigst du aber das TIA-Projekt und ein lizensiertes TIA-Portal mit installierem Openess auf dem gleichen Rechner.
Die Symbolik ist prinzipiell auch in der SPS online vorhanden, da gibt es aber noch keine freie Software die dir das auslesen kann.

Die einfachste Möglichkeit dürfte sein, die Symbolik aus dem Projekt z.B. in einer CSV-Datei abzuspeichern und damit zu arbeiten.


----------

