Libnodave mit VB.net über S7Online

Olli0285

Level-1
Beiträge
9
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich bin im moment an meinem Technikerprojekt und mölchte eine Visualisierung mit VB.net erstellen.

Mein Problem ist das ich beim Aufruf von "libnodave.opens7online("S7Online") einen Fehler erhalte. Ich denke es liegt an der Parameterübergabe, konnte aber nichts darüber im Forum finden. Screenshot mit Fehlermeldung ist im Anhang.

Libnodave.dll ist im Ordener System32 und ein Verweis auf die net.dll ist auch vorhanden.

Libnodave Version 0.8.4.5
S7 313c
USB Adapter X5678

Wäre schön wenn mir jemand helfen könnte, da die Zeit langsam knapp wird!

MfG

Olli
 

Anhänge

  • screenshot.jpg
    screenshot.jpg
    196,1 KB · Aufrufe: 51
Hallo Olli,

hast Du auf Deinem PC eine Siemens-Software installiert, die S7Online zur Verfügung stellt (z.B. Step7, Softnet PG, ...)?
Hast Du in der Systemsteuerung das Objekt "Setting the PG-PC Interface"?

Gruß
Harald
 
Hallo,

ich habe in einem älteren Beitrag hier im Forum folgenden Funktionsaufruf für openS7online gefunden:

fds.rfd = libnodave.openS7online ("S7Online", Form1.Handle)

Übergeb doch mal zusätzlich das zweite Argument.


Gruß
Earny
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Jochen,

ich werds morgen Mal probieren und Rückmeldung geben.

MfG

Olli

Also wenn du die neuste libnodave benutzt sollte es damit auf jeden Fall gehen.

Kannst aber auch immer noch mein Connection Library verwenden, da musst du dich um die LibNoDave internas nicht kümmern!! ;-)
 
Ich würde es mal mit einem seriellen Adapter probieren.
Ich habe noch keine Verbindung über USB hinbekommen.
Hatte auch schon mal hier im Forum danach gefragt aber es schein da
noch keine Lösung zu geben.
 
Hallo,
den folgende Verbindungsaufbau und -abbau habe ich mit dem Siemens-USB-Adapter 6ES7 972-0CB20-0XA0 erfolgreich eingesetzt.
Ich setze allerdings nicht den Wrapper (libnodave.net.dll) ein. Dafür benötigt mein VB.Net den LibnodaveModul.vb.
Den LibnodaveModul.vb habe ich hier angehängt. Vor dem Einsatz des Moduls muss dieser am besten in das aktuelle Projektverzeichnis kopiert und dann in die VB-Projektverwaltung aufgenommen werden.
Die Aufnahme geschieht bei VB2005 in: "Projekt" - "Vorhandenes Element hinzufügen...".
Der Verweis auf die libnodave.net.dll sollte sicherheitshalber entfernt werden (falls er vorhanden war).

Klassenweit gültige Variablen:
Code:
[COLOR=#0000ff][COLOR=#0000ff]Dim[/COLOR][/COLOR] ph [COLOR=#0000ff][COLOR=#0000ff]As[/COLOR][/COLOR] [COLOR=#0000ff][COLOR=#0000ff]Integer[/COLOR][/COLOR] [COLOR=#008000][COLOR=#008000]'Informationen zum Kommunikationskanal[/COLOR]
[/COLOR][COLOR=#0000ff][COLOR=#0000ff]Dim[/COLOR][/COLOR] di [COLOR=#0000ff][COLOR=#0000ff]As[/COLOR][/COLOR] [COLOR=#0000ff][COLOR=#0000ff]Integer[/COLOR][/COLOR] [COLOR=#008000][COLOR=#008000]'Informationen zum Interface[/COLOR]
[/COLOR][COLOR=#0000ff][COLOR=#0000ff]Dim[/COLOR][/COLOR] dc [COLOR=#0000ff][COLOR=#0000ff]As[/COLOR][/COLOR] [COLOR=#0000ff][COLOR=#0000ff]Integer[/COLOR][/COLOR] [COLOR=#008000][COLOR=#008000]'Informationen zur CPU[/COLOR]
[/COLOR][COLOR=#0000ff][COLOR=#0000ff]Dim[/COLOR][/COLOR] res [COLOR=#0000ff][COLOR=#0000ff]As[/COLOR][/COLOR] [COLOR=#0000ff][COLOR=#0000ff]Integer[/COLOR][/COLOR] = 0


Verbindungsaufbau:
Code:
[COLOR=#0000ff][COLOR=#0000ff]Private[/COLOR][/COLOR] Sub S7Online()
[COLOR=#0000ff][COLOR=#0000ff]Dim[/COLOR][/COLOR] localMPI [COLOR=#0000ff][COLOR=#0000ff]As[/COLOR][/COLOR] [COLOR=#0000ff][COLOR=#0000ff]Integer[/COLOR][/COLOR] = 0
[COLOR=#0000ff][COLOR=#0000ff]Dim[/COLOR][/COLOR] plcMPI [COLOR=#0000ff][COLOR=#0000ff]As[/COLOR][/COLOR] [COLOR=#0000ff][COLOR=#0000ff]Integer[/COLOR][/COLOR] = 2
ph = openS7online([COLOR=#800000][COLOR=#800000]"S7online"[/COLOR][/COLOR], [COLOR=#0000ff][COLOR=#0000ff]Me[/COLOR][/COLOR].Handle)
[COLOR=#0000ff][COLOR=#0000ff]If[/COLOR][/COLOR] ph = 0 [COLOR=#0000ff][COLOR=#0000ff]Then[/COLOR]
[/COLOR]di = daveNewInterface(ph, ph, [COLOR=#800000][COLOR=#800000]"IF1"[/COLOR][/COLOR], localMPI, daveProtoS7online, daveSpeed187k)
res = daveInitAdapter(di)
[COLOR=#0000ff][COLOR=#0000ff]If[/COLOR][/COLOR] res = 0 [COLOR=#0000ff][COLOR=#0000ff]Then[/COLOR]
[/COLOR]dc = daveNewConnection(di, plcMPI, 0, 0)
res = daveConnectPLC(dc)
[COLOR=#0000ff][COLOR=#0000ff]End[/COLOR][/COLOR] [COLOR=#0000ff][COLOR=#0000ff]If[/COLOR]
[/COLOR][COLOR=#0000ff][COLOR=#0000ff]End[/COLOR][/COLOR] [COLOR=#0000ff][COLOR=#0000ff]If[/COLOR]
[/COLOR][COLOR=#0000ff][COLOR=#0000ff]End[/COLOR][/COLOR] Sub

Verbindungsabbau:
Code:
[COLOR=#0000ff][COLOR=#0000ff]Private[/COLOR][/COLOR] [COLOR=#0000ff][COLOR=#0000ff]Sub[/COLOR][/COLOR] VerbindungAbbauen()
[COLOR=#0000ff][COLOR=#0000ff]If[/COLOR][/COLOR] dc <> 0 [COLOR=#0000ff][COLOR=#0000ff]Then[/COLOR]
[/COLOR]res = daveDisconnectPLC(dc)
[COLOR=#0000ff][COLOR=#0000ff]Call[/COLOR][/COLOR] daveFree(dc)
dc = 0
[COLOR=#0000ff][COLOR=#0000ff]End[/COLOR][/COLOR] [COLOR=#0000ff][COLOR=#0000ff]If[/COLOR]
[/COLOR][COLOR=#0000ff][COLOR=#0000ff]If[/COLOR][/COLOR] di <> 0 [COLOR=#0000ff][COLOR=#0000ff]Then[/COLOR]
[/COLOR]res = daveDisconnectAdapter(di)
[COLOR=#0000ff][COLOR=#0000ff]Call[/COLOR][/COLOR] daveFree(di)
di = 0
[COLOR=#0000ff][COLOR=#0000ff]End[/COLOR][/COLOR] [COLOR=#0000ff][COLOR=#0000ff]If[/COLOR]
[/COLOR][COLOR=#0000ff][COLOR=#0000ff]If[/COLOR][/COLOR] ph = 0 [COLOR=#0000ff][COLOR=#0000ff]Then[/COLOR][/COLOR]
res = closeS7online(ph)
ph = 0
[COLOR=#0000ff][COLOR=#0000ff]End[/COLOR][/COLOR] [COLOR=#0000ff][COLOR=#0000ff]If[/COLOR]
[/COLOR][COLOR=#0000ff][COLOR=#0000ff]End[/COLOR][/COLOR] [COLOR=#0000ff][COLOR=#0000ff]Sub[/COLOR]
[/COLOR]

Etwas sonderbar ist die Tatsache, dass "ph" beim Verbindungsaufbau mit openS7Online den Wert "0" erhält?!
Bemerkung: Beim Verbindungsaufbau mit MPI2 oder ISO-over-TCP erhält "ph" immer einen Wert größer 0?!


Gruß
Earny
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Vielen Dank für eure Hilfe!

Mit der der geupdateten Libnodave.net.dll von Jochen hat es funktioniert! Dem Wrapper der beim Download dabei war fehlt ein Übergabeparameter.

Bei weiteren Fragen, die wohl noch auftreten, werde ich nochmal posten.

MfG

Olli
 
Zuletzt bearbeitet:
Zurück
Oben