Rio
Level-1
- Beiträge
- 6
- Reaktionspunkte
- 2
-> Hier kostenlos registrieren
Hallo Zusammen,
ich habe eine kleine HMI in C# geschrieben um Daten aus einer "S7 314C-2 PN/DP" darzustellen. Zur Kommunikation benutze ich libnodave-0.8.4.6 auf einem Windows 7 Professional 32-Bit System. Die Daten werden jede Sekunde geholt und aktualisiert. Die Interaktion Winforms <> Datenmanager funktioniert auch ganz gut.
Allerdings fliegt mir die Anwendung nach etwa 10-15 Minuten auseinander mit folgenden Fehlermeldungen:
1.:
System.AccessViolationException: 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.
bei libnodave.daveConnection.daveDisconnectPLC(IntPtr dc)
bei libnodave.daveConnection.disconnectPLC() in c:\Users\Computer\BUGGIE\Automation\VisuaDotNet\SharpHMI\DATA\DRIVER\libnodave.net.cs:Zeile 346.
bei SharpHMI.DATA.CONTROLLER.S7.NODAVE.LanCPU.__S7LanClose() in c:\Users\Computer\BUGGIE\Automation\VisuaDotNet\SharpHMI\DATA\CONTROLLER
\S7\NODAVE\LanCPU.cs:Zeile 99.
bei SharpHMI.DATA.CONTROLLER.S7.NODAVE.BaseCPU.Read() in c:\Users\Computer\BUGGIE\Automation\VisuaDotNet\SharpHMI\DATA\CONTROLLER\S7\NODAVE
\BaseCPU.cs:Zeile 80.
bei SharpHMI.DATA.Manager.__readController(Object o) in c:\Users\Computer\BUGGIE\Automation\VisuaDotNet\SharpHMI\DATA\Manager.cs:Zeile 47.
bei System.Threading.ThreadHelper.ThreadStart_Context(Object state)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
bei System.Threading.ThreadHelper.ThreadStart(Object obj)
oder 2.:
System.AccessViolationException: 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.
bei libnodave.pseudoPointer.daveFree(IntPtr p)
bei libnodave.pseudoPointer.Finalize() in c:\Users\Computer\BUGGIE\Automation\VisuaDotNet\SharpHMI\DATA\DRIVER\libnodave.net.cs:Zeile 232.
Es haengt also an der c-lib bzw. an der Speicherverwaltung .NET<>Native. Hat von euch evtl jemand eine Idee wie man das Problem fixen kann bzw. was man "kosten neutral" anstelle von libnodave.dll benutzen kann?
Vielen dank im voraus
Gruss Rio
ich habe eine kleine HMI in C# geschrieben um Daten aus einer "S7 314C-2 PN/DP" darzustellen. Zur Kommunikation benutze ich libnodave-0.8.4.6 auf einem Windows 7 Professional 32-Bit System. Die Daten werden jede Sekunde geholt und aktualisiert. Die Interaktion Winforms <> Datenmanager funktioniert auch ganz gut.
Allerdings fliegt mir die Anwendung nach etwa 10-15 Minuten auseinander mit folgenden Fehlermeldungen:
1.:
System.AccessViolationException: 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.
bei libnodave.daveConnection.daveDisconnectPLC(IntPtr dc)
bei libnodave.daveConnection.disconnectPLC() in c:\Users\Computer\BUGGIE\Automation\VisuaDotNet\SharpHMI\DATA\DRIVER\libnodave.net.cs:Zeile 346.
bei SharpHMI.DATA.CONTROLLER.S7.NODAVE.LanCPU.__S7LanClose() in c:\Users\Computer\BUGGIE\Automation\VisuaDotNet\SharpHMI\DATA\CONTROLLER
\S7\NODAVE\LanCPU.cs:Zeile 99.
bei SharpHMI.DATA.CONTROLLER.S7.NODAVE.BaseCPU.Read() in c:\Users\Computer\BUGGIE\Automation\VisuaDotNet\SharpHMI\DATA\CONTROLLER\S7\NODAVE
\BaseCPU.cs:Zeile 80.
bei SharpHMI.DATA.Manager.__readController(Object o) in c:\Users\Computer\BUGGIE\Automation\VisuaDotNet\SharpHMI\DATA\Manager.cs:Zeile 47.
bei System.Threading.ThreadHelper.ThreadStart_Context(Object state)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
bei System.Threading.ThreadHelper.ThreadStart(Object obj)
oder 2.:
System.AccessViolationException: 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.
bei libnodave.pseudoPointer.daveFree(IntPtr p)
bei libnodave.pseudoPointer.Finalize() in c:\Users\Computer\BUGGIE\Automation\VisuaDotNet\SharpHMI\DATA\DRIVER\libnodave.net.cs:Zeile 232.
Es haengt also an der c-lib bzw. an der Speicherverwaltung .NET<>Native. Hat von euch evtl jemand eine Idee wie man das Problem fixen kann bzw. was man "kosten neutral" anstelle von libnodave.dll benutzen kann?
Vielen dank im voraus
Gruss Rio