Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 1 von 6 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 59

Thema: libnodave und .NET

  1. #1
    Registriert seit
    10.01.2013
    Ort
    Oldenburg
    Beiträge
    6
    Danke
    1
    Erhielt 2 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> 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.n et.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\NODA VE


    \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.n et.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
    Zitieren Zitieren libnodave und .NET  

  2. #2
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.745
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard

    Als alernative kann ich dir meine toolbox empfehlen, diese nutzt libnodave in einer von mir gepatchten version. Ist auch kostenlos. http://siemensplctoolboxlib.codeplex.com/
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten

  3. Folgender Benutzer sagt Danke zu Jochen Kühner für den nützlichen Beitrag:

    Rio (25.01.2013)

  4. #3
    Registriert seit
    25.08.2010
    Beiträge
    49
    Danke
    3
    Erhielt 4 Danke für 4 Beiträge

    Standard

    Moin,

    Zitat Zitat von Rio Beitrag anzeigen
    System.AccessViolationException: Es wurde versucht, im geschützten Speicher zu lesen oder zu schreiben. ...
    beim letzten Versuch mit libnodave auf etwas zuzugreifen ist was schief gelaufen. Darüber wurdest Du von libnodave aber schon informiert (Stichwort "Rückgabewert"). Einfach die Verbindung als abgebrochen deklarieren und neu aufbauen.

    hand, mogel

    BTW: bei mir war es immer ein Timeout - UMTS ist nicht so berauschend in Berlin

  5. #4
    Avatar von Rio
    Rio ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    10.01.2013
    Ort
    Oldenburg
    Beiträge
    6
    Danke
    1
    Erhielt 2 Danke für 1 Beitrag

    Standard

    Hallo,
    danke fuer die schnellen Antworten.

    @ Jochen Kuehner:
    Ich war so frei und habe mir die "libnodave_jfkmod(64).dll" und "libnodave_jfkmod.net.cs" aus der "DotNetSiemensPLCToolBoxLibrary" heraus kopiert und anstelle der original "libnodave" Dateien benutzt. Funktioniert bis jetzt (7394+s) super danke.

    @ mogel:
    Die Idee hatte ich auch schon und habe deshalb bei jedem Verbindungsaufbau neue Instanzen angelegt und nach Beendigung entsprechend verworfen. Hatte aber nicht den gewuenschten Erfolg

    Gruss Rio

  6. #5
    Registriert seit
    25.01.2013
    Beiträge
    9
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    hallo zusammen habe mal eine frage zu .net
    ich bin ein totaler anfänger in der . net sprache und weis leider nicht wie ich hierbei vorgehen soll. alle anleitungen, die ich finde sind für mich nicht zu gebrauchen. darum bitte ich hier um hilfe. kann mir jemand mal ein beispielprojekt senden mit eiem einfachen zugriff auf einen merker über iso on tcp und das mit der libnodave.net.dll ? oder gibts da ein buch, dass man kaufen kann.
    ich benötige dies, um einzelne wörter aus der Cpu 315 schreiben und lesen zu können.
    vielen dank im voraus

  7. #6
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.745
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard

    Zitat Zitat von steim18 Beitrag anzeigen
    hallo zusammen habe mal eine frage zu .net
    ich bin ein totaler anfänger in der . net sprache und weis leider nicht wie ich hierbei vorgehen soll. alle anleitungen, die ich finde sind für mich nicht zu gebrauchen. darum bitte ich hier um hilfe. kann mir jemand mal ein beispielprojekt senden mit eiem einfachen zugriff auf einen merker über iso on tcp und das mit der libnodave.net.dll ? oder gibts da ein buch, dass man kaufen kann.
    ich benötige dies, um einzelne wörter aus der Cpu 315 schreiben und lesen zu können.
    vielen dank im voraus
    schau dir mal meine connectionnlib an, da sind die verschiedensten beispielprogramme und auch ein ganz einfaches csharp beispiel dabei!
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten

  8. #7
    Registriert seit
    25.01.2013
    Beiträge
    9
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo jochen. Vielen dank für di schnelle antwort. Ja deine biblithek habe ich gesehen. Nur verwendest du doch eine eigene dll und mit diesen aufruffen funkt das nicht. Wie gesagt bin totaler anfänger in .net programmierung. Ich verstehe das nicht so genau wie ich die libnodave.net dll in ein projekt einbinden muss und wie dann die verbindung gemach wird. Das kann doch nich so schwer sein, ich suche wahrscheinlich am falschen ort. Vielen dank schon mal im voraus. Gruss tinu

  9. #8
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.745
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard

    Also meie Bibliothek baut auch auf libnodave auf, verwendet aber eine modifizierte Version die um Routing und div weitere Kleinigkeiten erweitert wurde!
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten

  10. #9
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.745
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard

    Da du aber auch totaler Anfängert bist, empfehle Ich dir halt meine lib, da du dich um vieles was du bei libnodave machen musst nicht mehr selbst kümmern musst:

    z.B. Verbindungskonfiguration:

    Code:
    Configuration.ShowConfiguration("SimpleCSharpDemonstrationConnection", true);
    Auslesen einer Variable

    Code:
    myConn = new PLCConnection("SimpleCSharpDemonstrationConnection");
    myConn.Connect();
    var tag = new PLCTag("MW88");
    myConn.ReadValue(tag);
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten

  11. #10
    Registriert seit
    25.01.2013
    Beiträge
    9
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ok und wo krieg ich deine lib her? Ist denn deine lib kostenlos? Gruss tinu

Ähnliche Themen

  1. MPI- und MPI2-Protokolle mit Libnodave und VB.Net
    Von Earny im Forum Hochsprachen - OPC
    Antworten: 2
    Letzter Beitrag: 08.01.2011, 22:57
  2. LibNoDave unter VB.Net ohne libnodave.net.dll
    Von Earny im Forum Hochsprachen - OPC
    Antworten: 2
    Letzter Beitrag: 09.03.2010, 18:57
  3. VB.Net und Libnodave
    Von oliverlorenz im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 07.05.2008, 10:54
  4. vb.net und libnodave
    Von Ruud im Forum Hochsprachen - OPC
    Antworten: 7
    Letzter Beitrag: 04.11.2007, 10:07
  5. LibNoDave und NET
    Von Lazarus™ im Forum HMI
    Antworten: 9
    Letzter Beitrag: 03.10.2005, 12:41

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •