DataMan Cognex Scanner unter Vb.Net Implementieren

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von HGR.

    DataMan Cognex Scanner unter Vb.Net Implementieren

    Liebes Forum,

    ich bin ein wenig am verzweifeln.

    Im Internet gibt es eine Anleitung support.cognex.com/docs/dmst_6…pplicationDevelopment.htm mit der die Implementierung des Dataman Scanners von Cognex in C# funktioniert. Das haben wir soweit in einer Testform auch hinbekommen. Nun versuche ich gerade ein kompakte Klasse in VB zuschreiben, die mir die benötigen Funktionen bereitstellt und eben das Ganze noch einmal in Vb.Net umzusetzen. Der Hintergrund ist, dass wir diese Funktion in unserer bereits bestehende Applikation einbinden wollen, die auch in VB.Net geschrieben ist.

    Tja, und bei dieser Umsetzung hänge schon zu Beginn fest. Folgende C# Code-Zeile bekomme ich einfach nicht in Vb.Net hin:

    C#-Quellcode

    1. ethSystemDiscoverer.SystemDiscovered += new EthSystemDiscoverer.SystemDiscoveredHandler(OnEthSystemDiscovered);


    In VB scheint es, in "ethSystemDiscoverer" den Event "SystemDiscovered" garnicht zu geben (siehe Bilder)

    aber wieso?? ?(

    Wenn mir jemand hier weiterhelfen könnte wäre das spitze!

    Viele Grüße
    Bilder
    • c#.JPG

      29,58 kB, 505×211, 107 mal angesehen
    • VbNet.JPG

      30,12 kB, 589×301, 116 mal angesehen
    ok, die Frage hat sich geklärt. Das ganze muss dann in VB so aussehen:

    VB.NET-Quellcode

    1. ​Option Strict On
    2. Imports Cognex.DataMan.SDK
    3. Imports Cognex.DataMan
    4. Imports Cognex.DataMan.CogNamer.PlatformHelpers
    5. Imports Cognex.DataMan.SDK.Discovery
    6. Imports Cognex.DataMan.SDK.Utils
    7. Public Class cCognexScanner
    8. Class ScannerParameter
    9. Public sIP_Address As String
    10. Public acksendAddress As String
    11. Public ackrecieveAddress As String
    12. Public scann_Offset As Integer
    13. Public scann_DBnr As Integer
    14. Public acksend_DBnr As Integer
    15. Public aclreceive_DBnr As Integer
    16. End Class
    17. Public scannPar As ScannerParameter
    18. Public ethSystemDiscoverer As EthSystemDiscoverer
    19. Public systemDiscoveredHandler As EthSystemDiscoverer.SystemDiscoveredHandler
    20. Public myConn As EthSystemConnector
    21. Public DataManSystem As DataManSystem
    22. Public FoundItem As String
    23. Public FoundIpAdress As Net.IPAddress
    24. Public FoundString As String
    25. Public byte_ip(3) As Byte
    26. Public Sub Initialize()
    27. ethSystemDiscoverer = New EthSystemDiscoverer
    28. scannPar = New ScannerParameter()
    29. AddHandler ethSystemDiscoverer.SystemDiscovered, AddressOf OnEthSystemDiscovered
    30. ethSystemDiscoverer.Discover()
    31. Dim iP As Net.IPAddress = New Net.IPAddress(byte_ip)
    32. myConn = New EthSystemConnector(iP)
    33. myConn.UserName = "admin"
    34. myConn.Password = ""
    35. DataManSystem = New DataManSystem(myConn)
    36. DataManSystem.Disconnect()
    37. AddHandler DataManSystem.SystemConnected, AddressOf OnSystemConnected
    38. AddHandler DataManSystem.SystemDisconnected, AddressOf OnSystemDisconnected
    39. AddHandler DataManSystem.ReadStringArrived, AddressOf OnStringArrived
    40. End Sub
    41. Public Sub OnEthSystemDiscovered(ByVal evt As EthSystemDiscoverer.SystemInfo)
    42. FoundItem = "Discovered:" & evt.Name & " (" & evt.MacAddress & "): " & evt.IPAddress.ToString()
    43. FoundIpAdress = evt.IPAddress
    44. End Sub
    45. Private Sub OnSystemConnected(ByVal sender As Object, ByVal e As EventArgs)
    46. End Sub
    47. Private Sub OnSystemDisconnected(ByVal sender As Object, ByVal e As EventArgs)
    48. End Sub
    49. Private Sub OnStringArrived(ByVal sender As Object, ByVal e As ReadStringArrivedEventArgs)
    50. FoundString = e.ReadString
    51. End Sub
    52. End Class


    Ich teste mal und werde berichten
    Hallo Zusammen,

    Ich habe das ganze in einer Testform wie folgt zum laufen gebracht:

    VB.NET-Quellcode

    1. ​Option Strict On
    2. Imports Cognex.DataMan.SDK
    3. Imports Cognex.DataMan.SDK.Discovery
    4. Public Class Form1
    5. Public ethSystemDiscoverer As EthSystemDiscoverer
    6. Public systemDiscoveredHandler As EthSystemDiscoverer.SystemDiscoveredHandler
    7. Public myConn As EthSystemConnector
    8. Public DataManSystem As DataManSystem
    9. Public FoundItem As String
    10. Public FoundIpAdress As Net.IPAddress
    11. Public FoundString As String
    12. Public byte_ip(3) As Byte
    13. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    14. Initialize()
    15. Timer1.Enabled = True
    16. Timer1.Start()
    17. End Sub
    18. Public Sub Initialize()
    19. Try
    20. ethSystemDiscoverer = New EthSystemDiscoverer
    21. AddHandler ethSystemDiscoverer.SystemDiscovered, AddressOf OnEthSystemDiscovered
    22. ethSystemDiscoverer.Discover()
    23. byte_ip(0) = 192
    24. byte_ip(1) = 168
    25. byte_ip(2) = 214
    26. byte_ip(3) = 78
    27. Dim iP As Net.IPAddress = New Net.IPAddress(byte_ip)
    28. myConn = New EthSystemConnector(iP)
    29. myConn.UserName = "admin"
    30. myConn.Password = ""
    31. DataManSystem = New DataManSystem(myConn)
    32. Dim result_Types As ResultTypes = ResultTypes.ReadString Or ResultTypes.ReadXml Or ResultTypes.XmlStatistics
    33. DataManSystem.SetResultTypes(result_Types)
    34. AddHandler DataManSystem.SystemConnected, AddressOf OnSystemConnected
    35. AddHandler DataManSystem.SystemDisconnected, AddressOf OnSystemDisconnected
    36. AddHandler DataManSystem.ReadStringArrived, AddressOf OnStringArrived
    37. Catch ex As Exception
    38. MsgBox("Error: " & vbNewLine & ex.Message & vbNewLine & ex.StackTrace)
    39. End Try
    40. End Sub
    41. Public Sub OnEthSystemDiscovered(ByVal evt As EthSystemDiscoverer.SystemInfo)
    42. FoundItem = "Discovered:" & evt.Name & " (" & evt.MacAddress & "): " & evt.IPAddress.ToString()
    43. FoundIpAdress = evt.IPAddress
    44. MsgBox(FoundIpAdress.ToString)
    45. End Sub
    46. Private Sub OnSystemConnected(ByVal sender As Object, ByVal e As EventArgs)
    47. MsgBox("Connected")
    48. End Sub
    49. Private Sub OnSystemDisconnected(ByVal sender As Object, ByVal e As EventArgs)
    50. MsgBox("Disconnected")
    51. End Sub
    52. Private Sub OnStringArrived(ByVal sender As Object, ByVal e As ReadStringArrivedEventArgs)
    53. 'FoundString = e.
    54. 'TbRead.Text = FoundString
    55. MsgBox(FoundString)
    56. End Sub
    57. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    58. DataManSystem.Connect()
    59. End Sub
    60. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    61. DataManSystem.Disconnect()
    62. End Sub
    63. Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    64. TbState.Text = DataManSystem.State.ToString
    65. End Sub
    66. End Class