Prodave mit Visual c# benutzen

L

Linde

Guest
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen!

Wir wollen jetzt in unserer Firma von dem C++ Builder 6-Zug auf den Microsoft Visual C#-Zug mit all seinen Vor- und Nachteilen aufspringen. Für die Kommunikation mit der SPS benutzen wir zurzeit Prodave und AGLINK.
Eine Lösung zur Kommunikation mit der SPS über AGLink haben wir schon gefunden. Allerdings wollen wir auch weiterhin Prodave nutzten. Gibt es eine Möglichkeit Prodave auch mit c# zu einzusetzen?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Libnodave ist in C geschrieben. Die .NET-dll benutzt "wrapper"-Klassen, um Aufrufe von Bibliotheksfunktionen in Methoden zu kapseln und den Umgang mit Zeigern (unsafe) zu vermeiden. Es gibt zwar Zeiger, aber das ist für den C#-Compiler nicht ersichtlich. Die Erzeugung dynamischer Objekte im Konstruktor und die Freigabe im Destruktor machen den Umgang damit sicher und sorgen dafür, daß die Zusammenarbeit mit dem Garbage-Collecto klappt.
Da die Sourcen offen liegen, kannst du dir anschauen, wie's gemacht ist und das auf Prodave anwenden.

Ansonsten wird Libnodave mit der nächsten Version unter Win32 auch über CPs kommunizieren können, sofern die mit Step7 installierten dlls und Treiber vorhanden sind, indem es die s7onlinx.dll für den Transport nutzt.
Dann sollte es in keiner Hinsicht weniger konnen, aber in einigen mehr, z.B. SZLs lesen, Uhr lesen und stellen, Bausteine auslesen...
 
Hi Zottel,

musst du dazu die S7Online.dll debuggen, oder woher hast du die Aufrufinfo's ???

Ich habe nun meinen CP343-Lean hier und starte mal mit der LibnoDave unter TCP/IP / ISO... Gefällt mir soweit nämlich immernoch besser,als das Prodave 6.x IE Zeug...
 
Lazarus™ schrieb:
Hi Zottel,

musst du dazu die S7Online.dll debuggen, oder woher hast du die Aufrufinfo's ???
Nein, Debuggen ginge ja nur mit einer debug-version.

Welche Funktionen eine .dll exportiert, siehst du z.B. mit:
winedump dump -x xy.z.dll.
Es mag auch ein Microsoft-Tool geben, das ähnliches leistet, aber da kenne ich mich nicht so aus.
Darauf hin habe ich mir eine eigene .dll mit Namen s7onlinx.dll geschrieben, die alle Aufrufe an die Original-dll weiterleitet, nachdem sie die übergebenen Daten in eine log-Datei geschrieben hat. Die zurückgegebenen Daten loggt sie dann auch wieder, bevor sie an die Applikation zurückgegeben werden.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi Zottel,

Fett ;-) DIe Idee mit dem DLL-Dummy zum rumschnüffeln ist auch wieder eine geniele Idee. Man lernt hier immer was neues, oder bekommt einen Kick, wie man es sonst noch machen könnte... Sensationell, würde Stefan Raab brüllen :D
 
Zurück
Oben