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

Ergebnis 1 bis 4 von 4

Thema: LibNoDave S7Online Fehlermeldung

  1. #1
    Registriert seit
    23.06.2010
    Beiträge
    1
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Beitrag


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo ich bin neu im Forum,
    ich habe gerade begonnen mit LibNoDave und VB 2008 zu arbeiten, also absoluter Neuling in allem.

    Ich habe ein Problem bei der S7Online Verbindung und zwar kommt bei mir in der Zeile fds.rfd = libnodave.openS7online("S7online") immer die Meldung "AccessViolationException was unhandled" Es wurde versucht im geschützten Speicher zu lesen oder zu schreiben....

    mein Programmcode sieht so aus:

    Dim localMPI As Integer = 0, plcMPI As Integer = 2
    Dim fds As libnodave.daveOSserialType
    Dim di As libnodave.daveInterface
    Dim dc As libnodave.daveConnection
    Dim res As Integer = 1
    Dim Pfad As String = My.Application.Info.DirectoryPath

    Private Declare Function daveGetU8from Lib "libnodave.dll" (ByRef buf As Byte) As Byte
    Private Declare Function daveGetS8from Lib "libnodave.dll" (ByRef buf As Byte) As Short
    Private Declare Function daveGetS16from Lib "libnodave.dll" (ByRef buf As Byte) As Short
    Private Declare Function daveGetS32from Lib "libnodave.dll" (ByRef buf As Byte) As Integer
    Private Declare Function daveGetFloatfrom Lib "libnodave.dll" (ByRef buf As Byte) As Single

    Private Function PLCConnect(ByVal MPIAddress As String, Optional ByVal PLCRack As Integer = 0, Optional ByVal PLCSlot As Integer = 2) As Boolean
    Dim ConnectionOpened As Boolean
    Dim initSuccess As Integer = 0
    Dim i As Integer

    For i = 0 To 3
    fds.rfd = libnodave.openS7online("S7online")
    fds.wfd = fds.rfd
    If fds.rfd > 0 Then
    Exit For
    End If
    Next
    If (fds.rfd > 0) Then
    di = New libnodave.daveInterface(fds, "IF1", 0, libnodave.daveProtoS7online, libnodave.daveSpeed1500k)
    di.setTimeout(1000)
    Dim j As Integer
    For j = 0 To 2
    If (0 = di.initAdapter) Then
    initSuccess = 1
    Exit For
    Else
    di.disconnectAdapter()
    End If
    Next
    If initSuccess <> 1 Then
    MsgBox("Couldn't connect to Adapter!")
    Exit Function
    End If
    dc = New libnodave.daveConnection(di, MPIAddress, PLCRack, PLCSlot)
    Dim ErrorCode As Integer = dc.connectPLC()
    If ErrorCode = 0 Then
    MsgBox("Connection opened.")
    ConnectionOpened = True
    Else
    MsgBox("Error opening connection. Check rack & slot." & " = " & libnodave.daveStrerror(ErrorCode))
    ConnectionOpened = False
    End If
    Else
    MsgBox("Error opening access point.")
    ConnectionOpened = False
    End If
    Return ConnectionOpened
    End Function

    Ich hoffe, dass ich im Forum alles richtig gemacht habe.
    Vielen Dank

    koch-nix
    Zitieren Zitieren LibNoDave S7Online Fehlermeldung  

  2. #2
    Registriert seit
    04.04.2008
    Beiträge
    389
    Danke
    85
    Erhielt 39 Danke für 24 Beiträge

    Standard

    Hallo,

    versuch mal:
    Code:
    fds.rfd = openS7online("S7online", Me.Handle)

    Gruß
    Earny

  3. Folgender Benutzer sagt Danke zu Earny für den nützlichen Beitrag:

    koch-nix (04.07.2010)

  4. #3
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.758
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard

    Zitat Zitat von koch-nix Beitrag anzeigen
    Hallo ich bin neu im Forum,
    ich habe gerade begonnen mit LibNoDave und VB 2008 zu arbeiten, also absoluter Neuling in allem.

    Ich habe ein Problem bei der S7Online Verbindung und zwar kommt bei mir in der Zeile fds.rfd = libnodave.openS7online("S7online") immer die Meldung "AccessViolationException was unhandled" Es wurde versucht im geschützten Speicher zu lesen oder zu schreiben....

    mein Programmcode sieht so aus:

    Dim localMPI As Integer = 0, plcMPI As Integer = 2
    Dim fds As libnodave.daveOSserialType
    Dim di As libnodave.daveInterface
    Dim dc As libnodave.daveConnection
    Dim res As Integer = 1
    Dim Pfad As String = My.Application.Info.DirectoryPath

    Private Declare Function daveGetU8from Lib "libnodave.dll" (ByRef buf As Byte) As Byte
    Private Declare Function daveGetS8from Lib "libnodave.dll" (ByRef buf As Byte) As Short
    Private Declare Function daveGetS16from Lib "libnodave.dll" (ByRef buf As Byte) As Short
    Private Declare Function daveGetS32from Lib "libnodave.dll" (ByRef buf As Byte) As Integer
    Private Declare Function daveGetFloatfrom Lib "libnodave.dll" (ByRef buf As Byte) As Single

    Private Function PLCConnect(ByVal MPIAddress As String, Optional ByVal PLCRack As Integer = 0, Optional ByVal PLCSlot As Integer = 2) As Boolean
    Dim ConnectionOpened As Boolean
    Dim initSuccess As Integer = 0
    Dim i As Integer

    For i = 0 To 3
    fds.rfd = libnodave.openS7online("S7online")
    fds.wfd = fds.rfd
    If fds.rfd > 0 Then
    Exit For
    End If
    Next
    If (fds.rfd > 0) Then
    di = New libnodave.daveInterface(fds, "IF1", 0, libnodave.daveProtoS7online, libnodave.daveSpeed1500k)
    di.setTimeout(1000)
    Dim j As Integer
    For j = 0 To 2
    If (0 = di.initAdapter) Then
    initSuccess = 1
    Exit For
    Else
    di.disconnectAdapter()
    End If
    Next
    If initSuccess <> 1 Then
    MsgBox("Couldn't connect to Adapter!")
    Exit Function
    End If
    dc = New libnodave.daveConnection(di, MPIAddress, PLCRack, PLCSlot)
    Dim ErrorCode As Integer = dc.connectPLC()
    If ErrorCode = 0 Then
    MsgBox("Connection opened.")
    ConnectionOpened = True
    Else
    MsgBox("Error opening connection. Check rack & slot." & " = " & libnodave.daveStrerror(ErrorCode))
    ConnectionOpened = False
    End If
    Else
    MsgBox("Error opening access point.")
    ConnectionOpened = False
    End If
    Return ConnectionOpened
    End Function

    Ich hoffe, dass ich im Forum alles richtig gemacht habe.
    Vielen Dank

    koch-nix
    Und Ich würde das ganze auch nicht in einer Schleife machen, sonst bekommst du die hier beschriebenen Probleme: http://www.sps-forum.de/showthread.php?t=35831 . Und bei OpenS7Online ist auch 0 ein gültiger Wert!.

    Kannst aber auch noch meine COnnection Library anschauen, da hab Ich die ganzen Funktionen gekappselt! http://jochensserver.dyndns.org/wordpress/?page_id=55
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten

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

    koch-nix (04.07.2010)

  6. #4
    Registriert seit
    30.05.2007
    Beiträge
    70
    Danke
    6
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    sorry falscher thread.....

Ähnliche Themen

  1. libnodave S7Online mir .Net
    Von eloboy im Forum Hochsprachen - OPC
    Antworten: 14
    Letzter Beitrag: 31.08.2011, 01:57
  2. Libnodave und S7online
    Von adi im Forum Hochsprachen - OPC
    Antworten: 2
    Letzter Beitrag: 05.01.2011, 16:31
  3. LibNoDave + S7Online
    Von Lazarus™ im Forum Hochsprachen - OPC
    Antworten: 14
    Letzter Beitrag: 05.05.2009, 19:56
  4. LibNoDave - S7Online - TCP/IP
    Von Jochen Kühner im Forum Hochsprachen - OPC
    Antworten: 1
    Letzter Beitrag: 09.03.2009, 12:33
  5. Libnodave und S7Online
    Von Ralle im Forum Hochsprachen - OPC
    Antworten: 14
    Letzter Beitrag: 02.02.2007, 13:49

Stichworte

Lesezeichen

Berechtigungen

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