Please help!!! Connection, reading data with S7 300(LibNoDave.dlll, C#)

ceasar

Level-1
Beiträge
10
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, alle.

Ich muss die Daten aus den Tabellen des Controllers erhalten.
Die Verbindung zur Steuerung habe ich bereits realisiert haben. Ein Beispiel für meinen Code unten.

Code:
try 
            { 
                int a = 0, res, b = 0, c = 0; 
                float d = 0;

                fds.rfd = libnodave.openSocket(102, IP); 
                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()) 
                    { 
                          ................................
                    } 
                    dc.disconnectPLC(); 
                    // } 
                    // di.disconnectAdapter(); // does nothing in ISO_TCP. But call it to keep your programs indpendent of protocols 
                    libnodave.closeSocket(fds.rfd); 
                } 
                else 
                {
                    MessageBox.Show("Couldn't open TCP connaction to " + IP);
                } 
            } 
            catch (Exception ex) 
            { 
                MessageBox.Show(ex.ToString()); 
            }

Müssen Sie Daten aus einer Tabelle von der Steuerung gelesen. Die erste Tabelle enthält die Daten "Datum \ Zeit"-Eintrag des Zählers, enthält die zweite Tabelle die Theke.

Datentabellen finden Sie in der Anlage entnommen werden.

Bitte helfen Sie den Code schreiben, können Sie Daten aus den Tabellen von der Steuerung gelesen.1.jpg2.jpg
 
In der Demo SimpleISO_TCP.cs steht doch alles drin:

Code:
res=dc.readBytes(libnodave.daveFlags, 0, 0, 16, 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));
 
Zurück
Oben