Libnodave und Visual Basic 2008

Hmm also das mit der Seriennummer klappt Aufgrund der dc Variable nicht...

Siehe Screenshot :confused:
 

Anhänge

  • fehler.JPG
    fehler.JPG
    86,1 KB · Aufrufe: 77
Zuviel Werbung?
-> Hier kostenlos registrieren
habe Dir das VB-Programm mit dem zugehörigen S7-Programm angehängt.

Der Fehler, den Du beobachtest, dürfte aus dem Umstand resultieren, dass Du den Wrapper (libnodave.net.dll) verwendest. Hierbei wird ein anderer Verbindungsauf- und Abbau gemacht und "dc" mit keinem Wert versorgt.

Ich benutze, wie ich schon gesagt habe, einen Modul, auch wenn das nicht ganz .Net-konform ist. Es gibt bei mir nicht den Wrapper und deshalb auch keinen Verweis auf den Wrapper!

"Mein" LibnodaveModul.vb (der den Wrapper ersetzt) wurde aus dem alten Modul12 für Excel und VB6.0 abgeleitet, in dem ich den alten Typ "Long" durch "Integer" ersetzt habe. Im Modul stehen alle Libnodave-Konstanten, -prozeduren und -funktionen. Sie sind mit "Public" deklariert und deshalb im gesamten VB-Projekt bekannt!

Das VB-Programm ermöglicht die Verbindung zu Accontrol. In diesem Fall musst Du die IP-Adresse 127.0.0.1 auswählen. Die IP-Adressen 192.168.53.51, .52 und .53 sind für die Kommunikation mit MPI-LAN-Kabel bestimmt.

Das MPI2-Protokoll funktioniert mit den alten Siemens-PC-Adaptern mit 19200 und 38400 Bit/s und ermöglicht eine Kommunikation über die serielle Schnittstelle eines Rechners.

Wenn Du die "Daten" in eine Excel-Mappe schreiben willst, dann muss eine Excel-Mappe im Defaultordner des VB-Projekts liegen (in diesem Ordner sucht CurDir). Falls Du nicht mit CurDir arbeiten willst, kannst Du auch den absoluten Pfad angeben.
Die Startroutinen für Excel entsprechen nicht den strengen .Net-Vorgaben. Ich habe bisher noch keinen Weg gefunden, auf die Zellen (cells) mit der frühen Bindung zuzugreifen. Die "Methode", die ich hier zeige, stammt aus der MSDN-Hilfe für VB6.0 und funktioniert auch mit VB2005 Prof. Dabei habe ich leichte Änderungen vorgenommen.

Mein VB-Programmm kann die Seriennummer der CPU bestimmen, INT-, DINT- und REAL-Variablen lesen, Bits in Datenbausteine schreiben und daraus lesen und auch 1000 Integerwerte in einen DB schreiben und wieder lesen.

Das S7-Programm hat nur die Aufgabe, den M90.0 zyklisch auf "1" zu setzen. Der M90.0 ist das "livebit", dass ich in meinem VB-Programm zur Überprüfung der Verbindung abfrage und dann wieder auf 0 setze. Im S7-Programm sind noch ein paar DBs zu Testzwecken eingefügt.

Außerdem habe ich hier nochmal mein Beschreibung angehängt.

Viel Spaß beim Testen.

Gruß
Earny
 

Anhänge

  • S7Prog.zip
    384,5 KB · Aufrufe: 128
  • VBProg.zip
    304,7 KB · Aufrufe: 194
  • LibNoDave mit VB2005.pdf
    465,7 KB · Aufrufe: 207
Hallo Earny,

Konnte heute endlich wieder ein Zeitfenster finden um im Labor zu testen. Nun funktioniert es einwandfrei und die Siemens Nummer kann ausgelesen werden und die anderen Libnodave Befehle sind auch verfügbar:D:D

Danke!!:D
 
Hi Earny,
zunächst einmal Kompliment zu dem prima Tutorial. Ich bin völliger S7 Anfänger (völlig unbeleckt) und bastele an einer SAP <-> S7 Verbindung.

Also - ich habe Accontrol installiert - und habe in die Accontrol dein S7 Programm geladen und die libnodave.dll in system32 eingefügt.
ACcontrol-Test-Excel.JPG

Ich habe unter Extras -> CPU Konfiguration -> CPU Kopplung -> die 127.0.0.1 eingetragen.
Danach habe ich die Excel gestartet und zunächst alle Makros aktiviert etc.
Wenn ich die Buttons anklicke tut sich aber nichts. Es gibt auch keine Fehlermeldung. Ich habe in Excel für das
eine MsgBox in Initialize () ausgegeben, die einen Verbindungsfehler (ph = 0) meldet. Dieser Verbindungsfehler bestätigt sich
auch mit dem TestTool von libnodave -> testISO_TCP.exe.
ACcontrol-Test-IP-Excel.JPG

Wo liegt mein Konfigurationsfehler?
Liebe Grüße
SB- Herzogenrath 2010
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Axel,

wo Dein Verbindungsfehler liegt, dürfte schwer herauszufinden sein.

Ich habe Dir mal ein LibNoDave-Projekt für Excel2007 angefügt. In der Voreinstellung ist das VB2005-Projekt für die Kommunikation mit ACCONTrol eingestellt. Das zugehörige S7-Programm ist auch dabei.

In ACCONtrol habel ich noch nie irgendwelche Einstellungen vorgenommen.
Evtl. musst Du aber noch den IEPG-Help-Service abschalten - ein bekanntes Problem von ACCONtrol, an dem Siemens "schuld" sein soll.

Die Beschreibung passt nicht 100%-ig zur Excel-Mappe. In meiner Excel-Mappe ist der Programmcode nicht einer Tabelle, sondern einem Formular zugeordnet. Das Formular wird durch Klick auf den Button in der Tabelle gestartet.

Nach dem Öffnen der Excel-Mappe müssen erst noch die Makros aktiviert werden. Ohne diese Einstellung bleibt der Klick auf den Button wirkungslos.

Achtung: Da die ursprüngliche Excel-Mappe wegen der Endung "xls" nicht angehängt werden konnte, habe ich die Endung auf "rar" gestellt. Vor dem Öffnen mit Excel muss deshalb die Endung wieder auf "xls" gestellt werden!!!

Gruß
Earny
 

Anhänge

  • S7Prog.zip
    29,7 KB · Aufrufe: 37
  • Hinweise LibNoDave mit Excel2007.doc
    279 KB · Aufrufe: 167
  • LibNoDave mit Excel 2007.rar
    151 KB · Aufrufe: 64
Hi Earny,
also zunächst vielen herzlichen Dank für die Antwort. Das Problem wurde unter Server 2003 R2 SP2 durch libnodave verursacht und nicht durch ACcontrol.

Unter Win XP SP3 funktioniert alles einwandfrei. Da ich aber eine SAP<-> ACcontrol Verbindung zunächst auf dem gleichen Rechner simulieren wollte,

musste ich Win Server 2003 benutzen.


Dort (Server 2003) funktionieren nur normale .net-Socketverbindungen aber keine libnodave Sockets.


Wie der Entwickler von libnoadave - Thomas Hergenhahn - mitteilte, liegt dies an .net 4.0 Sicherheitsmechanismen, die den Aufruf von win32 Sockets,

die aus der .net.libnodave.dll -> über die libnodave.dll aufgerufen werden, unterbinden.

Ich habe übrigens eine ganz tolle Sache gefunden, die ich mir jetzt genauer ansehen werde und zwar das Mitsubishi
MES-IT Interface Modul für SAP®-Systeme.

Liebe Grüße
Axel Arnold Bangert - Herzogenrath 2010

 
Zuletzt bearbeitet:
Hallo Axel,

von Win Server 2003 u.a. sowie SAP habe ich keinen blassen Dunst.
In unserem "Betrieb" mit ca. 200 Rechnern, die unter irgendeinem Win Server laufen, konnten wir, das war wohl im Jahr 2007, keine VB-Projekte in der Entwicklungsumgebung im Debug-Modus betreiben, weil immer eine Fehlermeldung kam: "Projektspeicherort ist nicht vertrauenswürdig". Unser Admin war natürlich geknickt und wusste nicht, was zu tun war.
Im .Net-Forum habe ich dann eine Abhilfe gefunden (Anlage). Vielleicht kommt etwas in dieser Art auch für Dich in frage.


Gruß
Earny
 

Anhänge

  • X2_Projektspeicherort nicht vertrauenswürdig.doc
    33 KB · Aufrufe: 39
Zurück
Oben