Neues libnodave Version (woher?)

Beiträge
195
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,

wo bekomme ich die neuste libnodave Version???

Ich will libnodave mit c# verwenden, gibts gute beispiele?

Und noch was, wer hat mal die Datenübertragungs geschwindigkeit gestest zwischen PC und PLC (Siemens S7) über TCP/IP? Wie schnell sind so ungefähr die übertragungs zeiten?

EDIT: Gibt nes schöne Dokumentaion der libnodave library? Google spuckt nix aus:(
 
Zuletzt bearbeitet:
Die Datenübertragungszeiten bzw. der Datendurchsatz hängt weniger von der Bibliothek sondern eher vonder verwendeten SPS, dem Firmwarstand, der Zykluszeit, der sonstigen Kommunikationslast etc. ab. Was kommt genau für Hardware über welchen Kommunikationsweg zum Einsatz?
Zwecks lib: mal bei sourceforge schauen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
wo bekomme ich die neuste libnodave Version???
http://libnodave.sf.net
Die neueste Version ist immer noch 0.8.4.4

Ich will libnodave mit c# verwenden
kein Problem
, gibts gute beispiele?
Das will ich nicht beurteilen
Und noch was, wer hat mal die Datenübertragungs geschwindigkeit gestest zwischen PC und PLC (Siemens S7) über TCP/IP? Wie schnell sind so ungefähr die übertragungs zeiten?
Das Programm wartet haupsächlich auf die CPU. Die erreichbaren Zeiten und Geschwindigkeiten hängen sehr stark von der CPU (Typ? Firmware? Ausgabestand?) ab.
testISO_TCP -b [IP-Adresse] zeigt dir, was "drin" ist.
 
Bei der S7-400 mit CP 443-1 ist ein Nutzdatendurchsatz von über 50 KByte/s realisierbar, sofern die Daten einigermaßen am Stück vorliegen. Mit der Vipa habe ich keine Erfahrungen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Doch schon soviel? Also 315er mit CP343-1 schafft gerade 4KB/s max. liegt aber am Rückwandbuss. Die NetLinks sollte da um einiges schneller sein.

Herr Hönle kann sicher dazu was sagen, würde mich auch mal interessieren, was da möglich ist.
 
Gibts eigentlich ne Doku zu LibnoDave, google spuckt nix aus:(

Wie ist das eig. mit libnodave wird bei datenänderung auf der PLC ein event geworfen? oder muss ich per polling ständig änderungen mit nem lokalen buffer vergleichen..... ??
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Blöde Frage: hab es geschaft ne verbindung zu ner S7 aufzubauen mit libnodave, aber VIP "socked error" die IP stimmt , kann sie auch anpingen.. liegt vll. am Port? Verwenden VIPA nen anderen Port wie siemens (port 102) ?

@Rainer: verwende ISO TCP
 
Glaub ja und glaub mal was gelesen zu haben das man die auf Vipa Siete konfigurieren muss und die dann verwenden soll. Evtl. irgendwas mit 666 oder so aber weiß das auch nicht merh genau.

Zur not kannst du ja mit nem entsprechenden Tool mal die ports scannen dann sieht welche offen sind.
 
jetzt gehts (zahlendreher^^) ;) Ich hab immer noch keine dok.. wil DB2 -> 22 Real werte aulesen... verwendung ISO_TCP:

Code:
fds.rfd = libnodave.openSocket(102,"................");
           // fds.rfd=libnodave.openSocket(102,args[0]);
            fds.wfd=fds.rfd;
            if (fds.rfd>0) { 

                di =new libnodave.daveInterface(fds, "IF1", 0, libnodave.daveProtoISOTCP, libnodave.daveSpeed187k);
                di.setTimeout(1000000);
        //        res=di.initAdapter();    // does nothing in ISO_TCP. But call it to keep your programs indpendent of protocols
        //        if(res==0) {


                dc = new libnodave.daveConnection(di,0 , rack, slot);
                if (0==dc.connectPLC()) {
                    res=dc.readBytes(libnodave.daveFlags,2, 0, 88, null);
                    if (res==0) {
                        a=dc.getS32();    
                        b=dc.getS32();
                        c=dc.getS32();
                        d=dc.getFloat();
                        Console.WriteLine("FD0: " + a);
                        Console.WriteLine("FD4: " + b);
                        Console.WriteLine("FD8: " + c);
                        Console.WriteLine("FD12: " + d);
                    } else 
                        Console.WriteLine("error "+res+" "+libnodave.daveStrerror(res));
                }
                dc.disconnectPLC();

aber dc.connectPLC gibt NULL zurück.. muss ich bei

di =new libnodave.daveInterface(fds, "IF1", 0, libnodave.daveProtoISOTCP, libnodave.daveSpeed187k);
di.setTimeout(1000000);


noch was ändern???

ICH BRAUCH DOKU:(
 
jetzt gehts (zahlendreher^^) ;) Ich hab immer noch keine dok.. wil DB2 -> 22 Real werte aulesen... verwendung ISO_TCP:

Code:
byte[] buffer = new byte[88];
res=dc.readBytes(libnodave.daveDB,2, 0, 88, buffer);

So sollte es gehen

Edit: Aso gitb es NULL oder 0 zurück. 0 wäre in dem Fall korrekt.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
res=dc.readBytes(libnodave.daveDB,2, 0, 88, null);

oder muss ich per polling ständig änderungen mit nem lokalen buffer vergleichen..... ??
Ja. Must du. Und wenn ein OPC-Server das anders handhabt, bedeutet es, daß der ständig pollt.

Hat jemand Interesse an eine Passiv-Version (PC startet Server auf Port 102, SPS verbindet sich damit)? Damit könnte die SPS Daten bei Änderung senden. Allerdings müssen dann auf der SPS-Seite Verbindungsaufbau und Fehlerbehandlung abgewickelt werden.
 
Ist das ein Angebot es zu entwickeln oder hast du sowas schon da?

@Boris: evtl.
Code:
[SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]private [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#2b91af][SIZE=2][COLOR=#2b91af]libnodave[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2].[/SIZE][SIZE=2][COLOR=#2b91af][SIZE=2][COLOR=#2b91af]daveConnection[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] dc;[/SIZE]
vergessen?
 
res=dc.readBytes(libnodave.daveDB,2, 0, 88, null);


Ja. Must du. Und wenn ein OPC-Server das anders handhabt, bedeutet es, daß der ständig pollt.

Hat jemand Interesse an eine Passiv-Version (PC startet Server auf Port 102, SPS verbindet sich damit)? Damit könnte die SPS Daten bei Änderung senden. Allerdings müssen dann auf der SPS-Seite Verbindungsaufbau und Fehlerbehandlung abgewickelt werden.
Dieser Zusammenhang stimmt leider nicht. Der Unterschied zwischen aktiv und passiv ist nur, wer den Verbindungsaufbau initiiert. Der restliche Zugriff ist in beiden Fällen gleich. Wenn der PC Daten haben will, dann muss er sie normalerweise anfragen. Somit bringt eine Umstellung auf einen passive Verbindungsaufbau nichts außer Ärger, denn die SPS muss wissen, zu wem sie die Verbindung aufbauen soll. Andere TCP/IP-Adresse bedeutet somit andere Konfiguration. Und was dies bedeutet ist ja klar.
 
Dieser Zusammenhang stimmt leider nicht. Der Unterschied zwischen aktiv und passiv ist nur, wer den Verbindungsaufbau initiiert. Der restliche Zugriff ist in beiden Fällen gleich. Wenn der PC Daten haben will, dann muss er sie normalerweise anfragen.
Zweifel! Die SPS (mit CPx43 oder Ethernet onboard) sollte doch mittels der Bausteine GET und PUT Daten (auf ihre Initiative) zu einem PC schicken können?
Dabei wäre es vielleicht. noch schöner, wenn der PC diese Verbindung aufbaut, dann hätte man den Ärger mit der Konfiguration nicht...
 
Dies liegt aber nicht am aktiven oder passiven Verbindungasaufbau. Grundsätzlich sind bei projektierten Verbindungen ein paar zusätzliche Dinge wie BSEND, BRCV, USEND, URCV etc. realsierbar. Aber diese funktionieren, egal wer die Verbindung aufbaut.
Wir können gerne am Forumstreffen uns ausführlich darüber unterhalten. Kommst du dieses mal wieder?
 
Zurück
Oben