# Libnodave vs. ACCON-AGLink



## ToBo (8 August 2009)

Hallo Ihr Wissenden,

habe eben etwas Namens Libnodave endeckt. Allerdings nur gelesen und
noch nie verwendet. 

Habe in der Vergangeheit einiges mit ACCON-AGLink und VB-6 gemacht
und komme damit mittlerweile ziemlich gut klar. ACCON-AGLink ist
natürlich NICHT umsonst zu haben wie Libnodave, deswegen frage ich.
Kosten spielen ja immer eine Rolle. Die Anbindung S7 --> PC mach ich
meistens über nen NetLink PRO Adapter via Ethernet.

Lohnt es sich für mich sich Zeit in Libnodave zu investieren und ist
die Funktionalität ähnlich ?

Gruß.

ToBo


----------



## Rainer Hönle (8 August 2009)

Im Prinzip können sowohl libnodave als auch AGLink Daten aus einer Steuerung lesen und schreiben. Auch libnodave kann über den ACCON-NetLink-PRO kommunizieren. Wenn dies der einzige Kommunikationsweg ist, der verwendet wird und die verwendeten Funktionen in libnodave auch enthalten sind, dann ist libnodave sicher eine Alternative. 
Vorteil von AGLink aus meiner Sicht: Einheitliche API unabhängig von der verwendeten Steuerung (S7-200, S7-1200, S7-300, S7-400, S5, RK512), unabhängig vom verwendeten Kommunikationsweg (MPI, PPI, PB, TCP/IP, S7Onlinx, ...), unabhängig vom verwendeten Betriebssystem (Windows, Linux WinCE, Solaris, ...). Das Ganze funktioniert ohne Änderung der Applikation z.B. bei der Änderung des Kommunikationsweges. Einfache Parametrierung, einfacher interaktiver Funktionstest (Stichwort API-Guide) etc. Zu unseren AGLink-Kunden zählen deshalb auch einige große Visu-Hersteller (darunter auch eine Siemens-Tochter) und auch einige Abteilungen beim großen S.


----------



## zotos (8 August 2009)

*receive*

Ich klink mich mal in das Thema ein.
Warum Benutzt man denn überhaupt solch eine Software? Ich möchte diese Produkte und Projekte nicht schlecht machen aber ich frage mich immer wieder warum man, wenn man eh auf beiden Seiten programmiert (also SPS und PC) nicht mit Send und Receive winsock arbeitet.

UNd gleich noch eine Frage an den Themenstarter wäre eine SPS mit direktem Ethernetanschluss nicht günstiger als einen Adapter zu verwenden?


----------



## argv_user (8 August 2009)

zotos schrieb:


> Ich klink mich mal in das Thema ein.
> Warum Benutzt man denn überhaupt solch eine Software? Ich möchte diese Produkte und Projekte nicht schlecht machen aber ich frage mich immer wieder warum man, wenn man eh auf beiden Seiten programmiert (also SPS und PC) nicht mit Send und Receive winsock arbeitet.
> 
> UNd gleich noch eine Frage an den Themenstarter wäre eine SPS mit direktem Ethernetanschluss nicht günstiger als einen Adapter zu verwenden?



Hallo zotos,
nach meiner Erfahrung werden solche Softwareprodukte von Leuten benutzt,
deren Schwerpunkt auf der PC-Seite liegt.  Die Variante Send/Receive scheidet
meist deshalb aus, weil dann doch in der SPS was geändert werden muss.

Gut, bei einem neuen Projekt geht das oft, aber wenn Du an eine laufende
Anlage kommst und sollst nur mal eben ein paar Prozessdaten  visualisieren/protokollieren, dann geht es ja los...


----------



## ToBo (8 August 2009)

Aktuelles Projekt.

5 Montageanlagen auf Transfersystembasis. Jede Anlage hat
zwischen einer Zentralsteuerung S7-300 bis 15 einzelne Einheiten-
Steuerungen S7-200.

Realisiert werden soll eine Maschinen-Daten-Erfassung.

Die Anlagen wurden alle ursprünglich von mir, bzw. meiner 
Abteilung für unsere Produktion gebaut. Also Eigenbau und
nichts zu gekauft.

Stehen jetzt in Tschechien und aufgrund von sehr großen
Produktivitätsschwankungen soll eine MDE geschaffen werden,
die es ermöglicht den Zustand jeder Anlage via Internet Explorer
von jeder Stelle im Intranet der Unternehmensgruppe abzufragen.

Die Einzel SPS einer Anlage sind untereinander per PPI / MPI
vernetzt. 

Bei diesen Anlagen liest eine Steuerung per NetRead die Daten
aus den anderen aus und Puffert sie zwischen. Einen Server
habe ich in CZ aufgestellt, auf denen zum einen ein VB-6
Programm die Daten aus den 5 Anlagen pollt und in eine SQL
Datenbank speichert. Dies geschied mittels AG-Link und CP-343-1,
bzw. NetLink-Pro Adapter.

Mittels VB-Script und ASP werden die Daten aus der SQL Datenbank
aufbereitet und im Internet Explorer dargestellt, bzw. können
Auswertungen über Produktivität, Aufträge, Stückzahl, etc.
gefahren werden.

Sowas gab's nicht von der Stange, bzw. wäre bei einem externen
extrem teuer geworden und ist zudem genau auf unserer Bedürfnisse
zurecht geschnitten.


----------



## ToBo (8 August 2009)

Anderes Projekt. Vor kurzem abgeschlossen.

Ein Prüftstand für Gasregler, der drei Regler zur gleichen
Zeit überprüfen soll. Leistungkurven, Verbrauchsdrücke,
Sicherheitseinrichtungen testet etc. Diese Daten müssen
für jeden Prüfling gespeichert werden und nach der Prüfung
bekommt jeder Prüfling eine Seriennummer und Prüfzettel
von der Anlage automatisch ausgedruckt.

Nun habe ich ca. 18 Analoge Eingänge und 12 Analoge 
Ausgänge. Einen PC zur Datenspeicherung hätte ich eh
gebraucht. Diese Anzahl von AE und AA wäre rein SPS
hardwaremäßig sehr teuer geworden. Somit habe ich 
in den Mini Industrie PC PC104 Analogkarten eingebaut,
die einen Bruchteil der SPS Hardware kosten. Eine SPS
S7-226 für den reinen Ablauf und der normalen E/A
Steuerung. 

Kopplung PC --> SPS via NetLink USB. HMI Programm am
PC mit VB-6. Analogverarbeitung / Normierung rein im PC 
und die Werte werden in den Speicher der SPS geschrieben
und verarbeitet.

Meine Projekte sind zu 99% Unikate und keine Serienmaschinen.
Deswegen auch oftmals spezielle Wege um eine kostengünstige
Lösung zu finden. 

Nachteil. Ein Firmen / Abteilungsfremder wird nur sehr sehr
schwer da was machen können.


----------



## Rainer Hönle (9 August 2009)

zotos schrieb:


> Ich klink mich mal in das Thema ein.
> Warum Benutzt man denn überhaupt solch eine Software? Ich möchte diese Produkte und Projekte nicht schlecht machen aber ich frage mich immer wieder warum man, wenn man eh auf beiden Seiten programmiert (also SPS und PC) nicht mit Send und Receive winsock arbeitet.
> 
> UNd gleich noch eine Frage an den Themenstarter wäre eine SPS mit direktem Ethernetanschluss nicht günstiger als einen Adapter zu verwenden?



Der Send bzw. Receive soll dann in der SPS laufen? Wer bildet dann die Gegenstelle? Muss diese dann nicht auch programmiert werden?
Zum Grundsätzlichen: es gibt zwei verschiedene Möglichkeiten. Bei der einen kann ich von außen, d.h. ohne Änderung im SPS-Programm (wichtig bei bestehenden Anlagen) die Kommunikation durchführen. Die SPS bekommt das gar nicht mit. Bei der anderen benötige ich entsprechende Kommunikationsbausteine in der SPS und entsprechende projektierte Verbidnungen. Hier geht nur, was vorher im SPS-Programm festgelegt war. Aber in beiden Fällen läuft auf beiden Seiten ein Programm, muss also programmiert werden. Dies ist bei IEC-Steuerungen übrigens genauso.


----------



## RobiHerb (13 August 2009)

*Kann man auch kaufen*



argv_user schrieb:


> Hallo zotos,
> nach meiner Erfahrung werden solche Softwareprodukte von Leuten benutzt,
> deren Schwerpunkt auf der PC-Seite liegt.  Die Variante Send/Receive scheidet
> meist deshalb aus, weil dann doch in der SPS was geändert werden muss.
> ...



So eine Visualisierung/Datenerfassung basierend auf AG-Link kann man gegen kleines Geld auch bei uns kaufen.

Wegen Demo und weiteren Infos (Preis) bitte PN mit Systemanforderungen und Stückzahlen senden.


----------



## ToBo (14 August 2009)

RobiHerb schrieb:


> So eine Visualisierung/Datenerfassung basierend auf AG-Link kann man gegen *kleines* Geld auch bei uns kaufen.


 
Definier doch mal bitte >kleines Geld< ... :wink:

Das ist ja ein lustiges posting....


----------



## marlob (14 August 2009)

ToBo schrieb:


> Definier doch mal bitte >kleines Geld< ... :wink:
> 
> Das ist ja ein lustiges posting....


Du darfst die 10000 Euro dann in Centmünzen bezahlen ;-)


----------



## RobiHerb (14 August 2009)

*Kleines Geld*

Ich hatte ja gesagt, schickt mir ne Nachricht, wofür Ihr es brauchen könnt, dann gibts einen Preis.

Im Prinzip geht die Kalkulation so:

Eine eingeschränkte (nur wenige Datenpunkte z.B.10 , wenige Masken z.B.2) Version, die zudem mit der Demo Version von AG-Link auskommt, gibts für umsonst. (wenn Ihr schon AG-Link als Lizenz besitzt, also voll einsatzfähig).

Reicht das nicht, muss man über den Preis reden. Wir wollen auf jeden Fall unseren Hotline/Unterstützungs/Anpassungs Aufwand wieder reinbekommen.

Wir leben nicht vom Vertrieb fertiger Software Produkte sondern vom Engineering, deshalb auch kein Katalog mit Preisen sondern das Angebot, sehen wir mal, ob wir dazu eine Lösung schon haben, die preiswerter kommt als eine Neuentwicklung.

Übrigens die kompletten C++ Sourcen gibts für 5000 Euro.


----------



## ToBo (16 August 2009)

Mir ist schon bewusst, das gerade in der jetzigen Rezession der
Markt heiß umkämpft und jedes Mittel genutzt wird um Aufträge
zu bekommen...... 

Aber ehrlich gesagt bin ich ein wenig angefressen auf meine
Frage solch ein Posting zu bekommen. 

Eröffne einen eigenen Thread um Deine Werbung abzusetzen, oder
halte Dich an den Topic dieses Threads.

Jemanden zu finden, der AG-Link Projekte umsetzt war es NICHT.

Danke.

ToBo


----------



## RobiHerb (17 August 2009)

*Ertappt*



ToBo schrieb:


> Mir ist schon bewusst, das gerade in der jetzigen Rezession der
> Markt heiß umkämpft und jedes Mittel genutzt wird um Aufträge
> zu bekommen......
> 
> ...



Jetzt fühle ich mich aber ertappt, ich bin anscheinend einer der wenigen hier im Forum, der seine SPS Erfahrungen dazu missbraucht, sein täglich Brot damit zu verdienen.

Dabei hatte ich doch nur gesagt, dass man das Rad nicht neu erfinden muss sondern in Prinzip preisgünstiger kaufen kann, kleine Räder sogar geschenkt bekommt.

Somit dann die Ermahnung ernst genommen und zurück zum Thema: Ag-Link kenne ich seit über 15 Jahren, die Entwickler dort stehen zu ihrem Produkt, das war schon unter MS-DOS so, unter 16 Bit Windows, unter 32 Bit Windows, unter .NET. Die API ist konsistent und die Migration auf eine neue Version ist kein Totalumbau gewesen. Das weiss ich zu schätzen. Das muss man dann auch bezahlen, sonst verhungern die Leute.

Warum jemand eine kostenlose Konkurrenz Version entwickelt und supporten möchte, kann ich im Moment zumindest nicht nachvollziehen. Nicht einmal bei der Kirche gibt es etwas ohne Hintergedanken umsonst.


----------



## ToBo (17 August 2009)

RobiHerb schrieb:


> Warum jemand eine kostenlose Konkurrenz Version entwickelt und supporten möchte, kann ich im Moment zumindest nicht nachvollziehen. Nicht einmal bei der Kirche gibt es etwas ohne Hintergedanken umsonst.


 
Die Frage nach dem warum will ich gar nicht stellen, sondern ob es
funktioniert und vergleichbar "leicht" einzusetzen ist wie AG-Link.

Wenn Du meine Postings gelesen hast, habe ich schon ein Paar 
Projekte mit AG-Link realisiert. Da mein Arbeitgeber noch eines
der wenigen Unternehmen ist, welches sich einen eigenen Sonder-
Maschinenbau für die weltweite Unternehmensgruppe leistet und ich
diesen leite, bin ich auch bestrebt die Kosten zu minimieren. AG-Link,
so gut es auch sein mag und mal hier ein dickes Lob an den Support,
kostet nun mal Geld.

Deswegen meine Frage, an die Leute, die Libnodave in Verbindung
mit VB-6 schon mal eingesetzt haben. 

Über AG-Link hab ich genug Infos... 

Bitte das mal ein Paar Libnodave Spezis schreiben...

Danke.

ToBo


----------



## Zottel (18 August 2009)

RobiHerb schrieb:


> Warum jemand eine kostenlose Konkurrenz Version entwickelt...


Ich brauchte S7_kommunikation unter Linux. Das wurde 2001? meines Wissens nicht angeboten. Also habe ich selbst Hand angelegt. Da ich das ganze Linux umsonst bekommen hatte und andererseits keine Ambitionen zur Vermarktung hatte, habe ich es ebenso veröffentlicht.


RobiHerb schrieb:


> ...und supporten möchte,...


Möchte ich gar nicht. Wenn ein kundiger Programmierer nachfragt, jemand einen nachvollziehbaren Fehler findet oder eine Verbesserung vorschlägt, kommt es auch mir zugute. Ich mache aber die Erfahrung, daß viele Leute anfragen, die Nachhilfe bei der SPS, bei PC-Programmierung oder der Handhabung ihrer Tools (die ich oft gar nicht habe) suchen. Ich vermute, die meisten würden mangles Vertrauen in ihre Fähigkeiten kein AG-Link kaufen, da sie fürchten müßten, nichts damit anfangen zu können.


----------



## Zottel (18 August 2009)

ToBo schrieb:


> Deswegen meine Frage, an die Leute, die Libnodave in Verbindung
> mit VB-6 schon mal eingesetzt haben.
> 
> Über AG-Link hab ich genug Infos...
> ...


Zu den Tools, die ich nicht habe, gehört VB6...
Die Beispiele habe ich mit dem VB for Applications in Excel geschrieben.
Zwei Probleme schienen im VB-Umfeld aufzutauchen:

1. nach Beendigung einer socket-Verbindung konnte die Resource nicht freigegeben werden. Meine ursprüngliche Vorstellung war, daß das über closesocket() aus wsock32.dll erledigt werden kann und das es wenig Sinn macht, in Libnodave eine Funktion anzubieten, die nichts weiter tut, als closesocket aufzurufen. Möglicherweiser führt aber Windows? VB? schon immer? ab einer gewissen Version? Buch, aus welchem Kontext (code adresse?) socket() und closesocket() aufgerufen werden.
Ab Libnodave 0.8.4.5 steht daher closeSocket()zur Verfügung.

2. Während ich meine, daveReadManyBytes() auch in der Dot.NET-Version erfolgreich getestet zu haben, gab es hier einen Thread, wo jemand sagt, daß es nicht geht. Hintergrund: daveReadManyBytes() (und auch daveReadBytes() wenn man einen Puffer angibt) wollen einen Zeiger auf den Puffer. In Dot.NET gibt es aber nur "Referenzen". Als ich den Code schrieb, war eine Referenz auf ein Byte-Array identisch mit der Adresse des ersten Elementes. Falls sich das inzwischen geändert hat, betrifft es alle Funktionen, die Adresszeiger erwarten.

Kommentare zu diesen beiden Punkten sind sehr willkommen.


----------



## Forscher (18 August 2009)

> 2. Während ich meine, daveReadManyBytes() auch in der Dot.NET-Version erfolgreich getestet zu haben, gab es hier einen Thread, wo jemand sagt, daß es nicht geht. Hintergrund: daveReadManyBytes() (und auch daveReadBytes() wenn man einen Puffer angibt) wollen einen Zeiger auf den Puffer. In Dot.NET gibt es aber nur "Referenzen". Als ich den Code schrieb, war eine Referenz auf ein Byte-Array identisch mit der Adresse des ersten Elementes. Falls sich das inzwischen geändert hat, betrifft es alle Funktionen, die Adresszeiger erwarten.



Also das würde mich sehr wundern wenn das  nicht geht. Ich setze zwar nicht die Funktion daveReadBytes() ein, aber andere Funktionen, welche ebenfalls mit Byte-Buffern arbeiten, und ich habe bisher keine Fehler feststellen können. 
Ich verwende die Dot.NET-DLL und arbeite noch mit dem Dot.NET Framework 2.0, evtl. ist das bei den neueren Versionen anders?


----------

