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

Ergebnis 1 bis 3 von 3

Thema: LibNoDave unter VB.Net ohne libnodave.net.dll

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich hätte da mal eine grundsätzliche Frage zum Einsatz der libnodave.net.dll.
    Ich hatte bisher auch stets die libnodave.net.dll (Wrapper-dll) eingesetzt. Mittlerweile habe ich aber mehrere Projekte ohne den Wrapper umgesetzt und bin mit dem Resultat zufrieden.
    Ich habe jetzt in meinen VB-Projekten stets meine neu erstellte Klasse mit Namen LibnodaveClass.vb eingefügt. Darin enthalten sind sämtliche Libnodave-Konstanten, -Prozeduren, und -Funktionen aus dem alten Modul12 des VB6.0-Excel-Libnodave-Beispiels. Man muss nur den alten Long-Datentyp von VB6.0 durch den Integer-Datentyp von VB.Net ersetzen (beides ist 32 Bit Integer). Gelegentlich muss noch der letzte Parameter von ByVal (Wertparameter, ohne Rückgabe) auf ByRef (Zeigerparameter mit Rückgabe) umgestellt werden.
    Über den Klassennamen kann ich jetzt problemlos auf alle Methoden von Libnodave zugreifen. Ich brauche also nicht mehr den Wrapper. Die Zugriffe sehen ähnlich aus, wie bei VB6.0, nur der Klassenname ist vorangestellt.
    Außerdem kann ich jetzt jederzeit in der Klasse nachsehen, welche Konstanten, Prozeduren und Funktionen Libnodave besitzt. Auch der Verbindungssaufbau und -abbau sehen dann aus wie bei VB6.0.

    Oder gibt es doch gute Gründe, die für den Einsatz der libnodave.net.dll sprechen, und ich habe die möglicherweise noch nicht entdeckt?


    Gruß
    Earny
    Zitieren Zitieren LibNoDave unter VB.Net ohne libnodave.net.dll  

  2. #2
    Registriert seit
    27.10.2005
    Ort
    Schwäbisch Gmünd
    Beiträge
    5.224
    Danke
    630
    Erhielt 955 Danke für 769 Beiträge

    Standard

    Im Prinzip schreibst Du dabei einen eigenen Wrapper. Siehst Du im originalen keine Konstanten etc.?
    Rainer Hönle
    DELTA LOGIC GmbH

    Ein Computer kann das menschliche Gehirn nicht ersetzen. Engstirnigkeit kann unmöglich simuliert werden. (Gerd W. Heyse)

  3. #3
    Earny ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    04.04.2008
    Beiträge
    389
    Danke
    85
    Erhielt 39 Danke für 24 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Rainer,
    ja ist wohl auch so eine Art Wrapper. Allerdings kann ich jederzeit in meiner Klasse nachsehen welche Konstanten, Prozeduren und Funktionen LibNoDave zur Verfügung stellt. Ich habe ja, wie gesagt den alten Modul12 zu meiner neuen Klasse gemacht und in dem Modul12 stehen ja relativ ausführliche Kommentare drin. Für die libnodave.net.dll habe ich die Erklärungen noch nicht gefunden. Natürlich erhält man durch Eingabe eines Punktes hinter dem Objekt, alle programmierbaren Methoden und Eigenschaften angeboten. Das ist bei meiner Version im Prinzip auch so.

    Erstaunlicherweise sind aber z.B. die Routinen für den Verbindungsaufbau zumindest optisch stark unterschiedlich aus, obwohl ja prinzipell das gleiche geschehen muss. Da muss die libnodave.net.dll doch eine maßgebliche Rolle spielen:

    Verbindungsaufbau für ISO_TCP, wenn libnodave.net.dll vorhanden:
    Code:
    Dim IP As String
    IP = cbxIP.Text
    fds.rfd = libnodave.openSocket(102, IP) 'Portstatus - lesen
    fds.wfd = fds.rfd 'Portstatus schreiben = Portstatus - lesen
    di = New libnodave.daveInterface(fds, "Mein Interface", localMPI, _
    libnodave.daveProtoISOTCP, libnodave.daveSpeed187k)
    di.setTimeout(1000000)
    res = di.initAdapter
    If res = 0 Then 'initAdapter OK
    ' Rack und Slot spielen keine Rolle bei diesem Protokoll
    dc = New libnodave.daveConnection(di, 0, 0, 2)
    res = dc.connectPLC()
    ...
    ...
    Verbindungsaufbau ISO_TCP ohne libnodave.net.dll:
    Code:
    IP = cbxIP.Text
    ph = Libno.openSocket(102, IP)
    If (ph > 0) Then
    di = Libno.daveNewInterface(ph, ph, "IF1", 0, Libno.daveProtoISOTCP, Libno.daveSpeed187k)
    res = Libno.daveInitAdapter(di)
    If res = 0 Then
    dc = Libno.daveNewConnection(di, 0, 0, 2)
    res = Libno.daveConnectPLC(dc)

    Gruß
    Earny
    Geändert von Earny (09.03.2010 um 21:27 Uhr)

Ähnliche Themen

  1. LibNoDave mit Lazarus unter Mac OS X?
    Von marcengbarth im Forum Hochsprachen - OPC
    Antworten: 19
    Letzter Beitrag: 08.09.2013, 10:37
  2. Qt4 unter Windows und Libnodave
    Von Waddi im Forum Hochsprachen - OPC
    Antworten: 7
    Letzter Beitrag: 16.02.2011, 14:28
  3. Libnodave unter delphi 2006 ohne Komponente
    Von emsbootsmann im Forum Hochsprachen - OPC
    Antworten: 3
    Letzter Beitrag: 04.03.2010, 19:52
  4. libnodave unter windows ce 5.0???
    Von Jochen Kühner im Forum HMI
    Antworten: 1
    Letzter Beitrag: 26.06.2007, 09:57
  5. Problem mit Libnodave unter VB
    Von Buster im Forum Hochsprachen - OPC
    Antworten: 6
    Letzter Beitrag: 25.04.2006, 13:28

Lesezeichen

Berechtigungen

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