# Wie lange braucht ein Unerfahrener um Libnodave einzusetzen??



## ANo (13 April 2006)

Hallo zusammen,
ich hab hier eine allgemeine Frage.
Ich möchte gerne meinen Kunden eine günstige Alternative zu WinCC anbieten. Da habe ich an Libnodave gedacht.
Und nun die Frage: Ist es einem SPS-Programmierer, deren C++ - Kenntnise aus der Schule stammen, zuzutrauen Libnodave mit C++ zum laufen zu bringen?
Also, die Visualisierung in C++ krige ich hin, mein Problem ist die Kommunikation zwischen der SPS und der C++ Anwendung herzustellen. 
Aus der C++ Beispielen werd' ich nicht so richtig schlau und ich hab' eigentlich nur 1 Woche Zeit mich in Libnodave einzuarbeiten. 

Gruss
Alex


----------



## seeba (13 April 2006)

ANo schrieb:
			
		

> Hallo zusammen,
> ich hab hier eine allgemeine Frage.
> Ich möchte gerne meinen Kunden eine günstige Alternative zu WinCC anbieten. Da habe ich an Libnodave gedacht.
> Und nun die Frage: Ist es einem SPS-Programmierer, deren C++ - Kenntnise aus der Schule stammen, zuzutrauen Libnodave mit C++ zum laufen zu bringen?
> ...


Ich programmiere zwar schon länger (natürlich noch nicht perfekt) und auch nicht in C++, sondern mittlerweile in C#, aber ich meine, dass libnodave doch sehr leicht einzusetzen ist. Es gibt ja diese simple Beispiele. Schau dir die doch mal an.


----------



## Rainer Hönle (13 April 2006)

ANo schrieb:
			
		

> Hallo zusammen,
> ich hab hier eine allgemeine Frage.
> Ich möchte gerne meinen Kunden eine günstige Alternative zu WinCC anbieten. Da habe ich an Libnodave gedacht.
> Und nun die Frage: Ist es einem SPS-Programmierer, deren C++ - Kenntnise aus der Schule stammen, zuzutrauen Libnodave mit C++ zum laufen zu bringen?
> ...


Ist dann nicht #SCADA eine Alternative?


----------



## afk (13 April 2006)

ANo schrieb:
			
		

> Ich möchte gerne meinen Kunden eine günstige Alternative zu WinCC anbieten. Da habe ich an Libnodave gedacht.
> Und nun die Frage: Ist es einem SPS-Programmierer, deren C++ - Kenntnise aus der Schule stammen, zuzutrauen Libnodave mit C++ zum laufen zu bringen?
> Also, die Visualisierung in C++ krige ich hin, mein Problem ist die Kommunikation zwischen der SPS und der C++ Anwendung herzustellen.
> Aus der C++ Beispielen werd' ich nicht so richtig schlau und ich hab' eigentlich nur 1 Woche Zeit mich in Libnodave einzuarbeiten.


Wenn Du die Visualisierung in C++ realisieren kannst, dann solltest Du auch mit libnodave klar kommen, ich bin mir allerdings nicht sicher, ob Dir das alleine weiterhilft.

Libnodave stellt die Kommunikation mit der SPS bereit, bietet aber damit noch lange nicht die Funktionalität eines HMI- bzw. SCADA-Systems. Das zyklische Einlesen der benötigten Daten mit Hilfe von libnodave, das Erfassen von Änderungen an diesen Daten, das Auswerten von Signalen und Alarmen, das Bereitstellen der Daten für die Anzeige, usw. mußt Du dann alles noch in Deinem Programm implementieren.

Alles in Allem ist es schon eine etwas umfangreichere Angelegenheit, eine Visualisierung mit allem Drum und Dran zu implementieren. 

Als kostengünstige Alternative bieten sich da evtl. Visual, #SCADA oder PVBrowser an, allesamt bereits in diesem Forum besprochen.


Gruß Axel


----------



## seeba (13 April 2006)

#SCADA ist hoffentlich bald fertig.  Bin nun schon ein paar Stunden dran. 

Gruß Sebastian


----------



## afk (13 April 2006)

seeba schrieb:
			
		

> #SCADA ist hoffentlich bald fertig.  Bin nun schon ein paar Stunden dran.


Mit so einem Projekt wird man eigentlich nie fertig, irgendetwas findet man immer, was man noch hinzufügen oder verbessern kann... 

Wenn es gut läuft, dann gehst Du mit dem Projekt in Rente. 


Gruß Axel


----------



## seeba (13 April 2006)

afk schrieb:
			
		

> Mit so einem Projekt wird man eigentlich nie fertig, irgendetwas findet man immer, was man noch hinzufügen oder verbessern kann...
> 
> Wenn es gut läuft, dann gehst Du mit dem Projekt in Rente.
> 
> ...


Naja ich will es nur endlich mal etwas stabil haben.


----------



## Thomas_v2.1 (13 April 2006)

Wie sieht es mit #Scada eigentlich aus, wenn man das einem Kunden verkaufen möchte?Da es ja auf einer MySQL-Datenbank aufsetzt wären hier doch soweit ich weiß Lizenzgebühren fällig.


----------



## seeba (13 April 2006)

Thomas_v2.1 schrieb:
			
		

> Wie sieht es mit #Scada eigentlich aus, wenn man das einem Kunden verkaufen möchte?Da es ja auf einer MySQL-Datenbank aufsetzt wären hier doch soweit ich weiß Lizenzgebühren fällig.


Genau, deswegen fliegt der Schrott raus und PostgreSQL + eigener TCP Server kommt demnächst rein!


----------



## ANo (15 April 2006)

Hi@all,

@Rainer Hönle 
Danke, #SCADA werd' ich mir mal genauer anschauen.




			
				afk schrieb:
			
		

> Wenn Du die Visualisierung in C++ realisieren kannst, dann solltest Du auch mit libnodave klar kommen, ich bin mir allerdings nicht sicher, ob Dir das alleine weiterhilft.
> 
> Libnodave stellt die Kommunikation mit der SPS bereit, bietet aber damit noch lange nicht die Funktionalität eines HMI- bzw. SCADA-Systems. Das zyklische Einlesen der benötigten Daten mit Hilfe von libnodave, das Erfassen von Änderungen an diesen Daten, das Auswerten von Signalen und Alarmen, das Bereitstellen der Daten für die Anzeige, usw. mußt Du dann alles noch in Deinem Programm implementieren.
> 
> ...


 
Hi afk,
aus Deiner Antwort sehe ich, dass Du Libnodave bereits eingesetz hast.
Wenn Du mir ein funktioniertes Beispiel zuschicken konntest aus dem ich sehen könnte wie ich Libnodave einsetze, käme ich weiter klar.
Es ist mir als NICHT Windows Programmierer der Erste Schritt am schwersten(vor allem wenn man den Weg nicht kennt).
Es reicht schon wenn es zu sehen ist wie man eine INT - Zahl aus der SPS in eine SHORT-Variable in C# oder C++ einliest.

Gruss
Alex


----------



## afk (18 April 2006)

ANo schrieb:
			
		

> aus Deiner Antwort sehe ich, dass Du Libnodave bereits eingesetz hast.


Ja, allerdings mit Delphi. Von mir stammt auch die Delphi-Komponente, die im libnodave-Paket enthalten ist.



			
				ANo schrieb:
			
		

> Wenn Du mir ein funktioniertes Beispiel zuschicken konntest aus dem ich sehen könnte wie ich Libnodave einsetze, käme ich weiter klar.
> Es ist mir als NICHT Windows Programmierer der Erste Schritt am schwersten(vor allem wenn man den Weg nicht kennt).
> Es reicht schon wenn es zu sehen ist wie man eine INT - Zahl aus der SPS in eine SHORT-Variable in C# oder C++ einliest.


Beispiele werden eigentlich schon reichlich bei libnodave mitgeliefert, schau doch mal in die Dateien testXYZ.c, (XYZ=Protokoll, mit dem Du arbeiten möchtest, z.B. PPI, MPI, ISO_TCP, ...), das sind Beispiele in C. 

In Kurzfassung läuft das z.B. so:


```
_daveOSserialType fds;
daveInterface * di;
daveConnection * dc;
int res;
fds.rfd=setPort('COM1', '38400', 'O');
fds.wfd=fds.rfd;
if (fds.rfd > 0) { 
    di = daveNewInterface(fds, "IF1", 1, daveProtoMPI, daveSpeed187k);
    daveSetTimeout(di,5000000);
    if (daveInitAdapter(di) == 0) {
        dc = daveNewConnection(di, 2, 0, 3);
        if (daveConnectPLC(dc) == 0) {
            if (daveReadBytes(dc, daveDB, 1, 0, 2, NULL) == 0) {
                res = daveGetS16(dc);
            }
        }
    }
}
```
Der Code sollte über einen MPI-Adapter an COM1 mit MPI-Adresse 1 aus einer CPU im Rack 0 / Slot 3 mit MPI-Adresse 2 von DB1 ab Adresse 0 insgesamt 2 Bytes auslesen und dann den INT-Wert an Adresse 0 in die Variable "res" übernehmen. Bis zum daveConnectPLC inclusive muß das nur einmal pro Verbindung ausgeführt werden.

Ich hoffe, daß ich da keinen Fehler drin habe, ich mache das sonst nur in Delphi, und da nehme ich dann immer meine Komponente. Wenn nötig, dann wird mich Zottel bestimmt korrigieren. 


Gruß Axel


----------



## ANo (18 April 2006)

Viellen Dank AFK!!

Jetzt wird mir das Ganze schon etwas klarer.

Gruß
Alex


----------

