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