libnodave & Access violation

schindel

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

ich benutze libnodave um aus einer S7 via "ISO over TCP" DB's auszulesen.
Das lesen der DB's erfolgt, nach erfogreichen Connect zur S7, mit folgendem PDU Request:

Code:
 private void read_Settings()
        {    
            //vorbereiten der SPS Anfrage             
            pdu = dc.prepareReadRequest();

            //Teilabfrage 0
            pdu.addVarToReadRequest(libno.daveDB, 80, 0, 123); 

            //SPS auslesen
            res = dc.execReadRequest(pdu, rs);

            res = dc.useResult(rs, 0); //ersten Antwortblock auswerten

            if (res == 0)
            {
              clDaten_allgemein.dSettingTestVoltage = (double)dc.getFloat();
                 .
                 .
                 .
             }
        }
Diese Abfrage funktioniert eine Zeit lang ohne Probleme (einige Minuten bis Stunden), bis nach einer Zeit ein "Acccess Violation" Fehler (Speicher Zugriffsverletzung) auftritt. Hat jehmand eine Idee was ich falsch machen könnte.

Entstanden ist mein Programm in C# mit VS2005.

Kann es evtl. sein, dass der "Garbage Collector" von .NET sich mit libnodave ab und an nicht "verträgt" ?
icon6.gif
 
Ich habe genau das gleiche Problem. Benutze ebenfalls VS2005. Dies ist die Fehlermeldung:

System.AccessViolationException wurde nicht behandelt.
Message="Es wurde versucht, im geschützten Speicher zu lesen oder zu schreiben. Dies ist häufig ein Hinweis darauf, dass anderer Speicher beschädigt ist."
Source="libnodave.net"
StackTrace:
bei libnodave.pseudoPointer.daveFree(IntPtr p)
bei libnodave.pseudoPointer.Finalize()
bei libnodave.resultSet.Finalize()




Hat da jemand eine Ahnung?



Grüße Benjamin
 
Ich hatte dasselbe Problem mit VB.NET und libnodave.net. Habe Timeout der Verbindung von 2000 auf 20000 erhöht und seither keine Abstürze mehr.
 
Zurück
Oben