S7-314 mit LibNoDave, DotNetSiemensPLCToolBoxLib oder Snap7

P

Parmaster

Guest
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo!

Ich habe eine S7-314 C-2 DP und 3 Karten (FM 353) für Schrittmotoren, wobei ich nur eine Verbindung zur CPU mit MPI habe.

Dazu schreibe ich noch ein Programm mit VB.NET.

Nun stellt sich mir die Frage, welche Lib am besten dafür geeignet ist? Wenn ich das richtig gesehen hab, funktioniert Snap7 nur mit Ethernet, oder hab ich etwas übersehen?
Mit den anderen beiden sollte die Verbindung mit MPI funktionieren, oder?

Wo findet man eine Doku der beiden Libs? Mich würde vor allem die Verbindung mit MPI interessieren, und natürlich auch eine komplette Übersicht der Befehle.

Bei der DotNetSiemensPLCToolBoxLib finde ich ehrlich gesagt nicht mal die DLL.

Wäre nett wenn mir jemand helfen könnte, und evtl. auch ein Beispiel zeigen könnte wie man die Verbindung mit MPI herstellt.

Vielen Dank schon mal.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo!

Das bei github hab ich schon gefunden, allerdings muss ich zugeben dass ich nicht weiß was ich da genau nehmen soll. Den Ordner TestVB? Da ist ja schon seit 2 Jahren nichts mehr geändert worden. Oder ist das noch aktuell?

Und wo finde ich dort die benötigten DLLs?
 
Es wäre nett wenn mir mal jemand zeigen könnte wie man damit eine MPI Verbindung aufbaut. Ich finde bei den ganzen Beispielen usw. bei github keine einzige Verbindung mit MPI per VB.NET. Und die benötigten DLLs hab ich auch noch nicht gefunden.
 
In dem TestVB Programm wird wenn man auf "Show Config" klickt die Verbindungsconfig angezeigt! Da kann man auch eine MPI Verbindung einstellen. Danach kann man mit "MW100 lesen" das Merkwort 100 auslesen.

Falls dert Fehler kommt "Die DLL "libnodave_jfkmod.dll": Das angegebene Modul wurde nicht gefunden. (Ausnahme von HRESULT: 0x8007007E) kann nicht geladen werden.", die Dll liegt im "externalDlls" Ordner der Solution und muss in das Verzeichnis in dem dein Programm compiliert wird kopiert werden!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn ich die DLL hinzufügen will, kommt die Meldung
Code:
---------------------------
Es konnte kein Verweis auf "C:\Users\$USERS\Documents\Visual Studio 2010\Projects\TestVB\TestVB\bin\Debug\libnodave_jfkmod.dll" hinzugefügt werden. Stellen Sie sicher, dass auf die Datei zugegriffen werden kann und dass sie eine gültige Assembly oder COM-Komponente ist.
---------------------------
 
Ja, die ist dort auch. Ich hab TestVB genau so übernommen, und in den ersten Zeilen steht dort:

Code:
Imports DotNetSiemensPLCToolBoxLibrary.DataTypes.Blocks
Imports DotNetSiemensPLCToolBoxLibrary.Communication
Imports DotNetSiemensPLCToolBoxLibrary.DataTypes
Imports DotNetSiemensPLCToolBoxLibrary
Imports DotNetSiemensPLCToolBoxLibrary.Projectfiles
Imports DotNetSiemensPLCToolBoxLibrary.DataTypes.Blocks.Step7V5
Imports DotNetSiemensPLCToolBoxLibrary.DataTypes.Projectfolders.Step5
Imports DotNetSiemensPLCToolBoxLibrary.DataTypes.Blocks.Step5

Allerdings bekomme ich als Fehler das hier

Code:
Der in Imports "DotNetSiemensPLCToolBoxLibrary.DataTypes.Blocks" angegebene Namespace oder Typ enthält keine öffentlichen Member oder kann nicht gefunden werden. Stellen Sie sicher, dass der Namespace oder der Typ definiert ist und mindestens einen öffentlichen Member enthält und dass der importierte Elementname keine weiteren Aliase enthält.

Die DotNetSiemensPLCToolBoxLibrary.dll ist auch in dem Verzeichnis.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Du solltest dich vielleicht erst mal mit Grundlagen in Vb.Net befassen!

Welches .Net Framework hast du als Ziel ausgewählt? Also Ich kann mein Projekt kompilieren und das läuft auch, darin stimmen auch die Verweise! Zu deinem kann Ich ohne Source nichts sagen!
 
Moin!

Dreisterweise hänge ich mich hier mal an, weil meine Probleme ähnlich sind:
Eine kleine Routine, welche mir die Daten aller Profinet-Teilnehmer ausliest wollte ich mir schreiben und greife hierzu auf die SimaticLib zu. Das funzt so weit auch ganz gut, scheitern tue ich an der CPU. Die ist ja kein Slave, sondern ein Modul im Rack unter Stations. Ich komme aber an die Module nicht heran, dann entsann ich mich der DotNetSiemensPLCToolBoxLibrary und bin auch ziemlich begeistert. Ein wesentlicher Punkt ist, daß ich bei den Modulen auch die Angabe der GSDML-Datei benötige, oder der Simatic-Bestellnummer. Eben diese finde ich jedoch in der, von DotNetSiemensPLCToolBoxLibrary gelieferten Struktur auch nicht. Jetzt sitze ich einigermaßen in der Tinte und sehe mich gezwungen, diese Informationen doch wieder von Hand auszulesen, habe aber ein paar Tage mit dem Versuch zugebracht, die Datenbeschaffung zu automatisieren. Hier wäre ich für jeden Tip dankbar.

By the way: Wenn ich im Debuggingmodus Online auf die Steuerung zugreifen will, bekomme ich die Meldung:
System.DllNotFoundException wurde nicht von Benutzercode behandelt.
Message=Die DLL "libnodave_jfkmod.dll": Das angegebene Modul wurde nicht gefunden. (Ausnahme von HRESULT: 0x8007007E) kann nicht geladen werden.
Source=DotNetSiemensPLCToolBoxLibrary
TypeName=""
StackTrace:
bei DotNetSiemensPLCToolBoxLibrary.Communication.LibNoDave.libnodave.closeS7online(IntPtr port)
bei DotNetSiemensPLCToolBoxLibrary.Communication.PLCConnection.Dispose() in z:\A\DotNetSiemensPLCToolBoxLibrary-master\LibNoDaveConnectionLibrary\Communication\PLCConnection.cs:Zeile 2694.
bei DotNetSiemensPLCToolBoxLibrary.Communication.ConnectionEditor.tryConnect_DoWork(Object sender, DoWorkEventArgs e) in z:\A\DotNetSiemensPLCToolBoxLibrary-master\LibNoDaveConnectionLibrary\Communication\ConnectionEditor.cs:Zeile 711.
bei System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
bei System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)
InnerException:

Wenn ich die libnodave_jfkmod.dll in das bin-Verzeichnis kopiere, kann ich die ToolboxForSiemensPLCs.exe auch Online verwenden, aber ich kann halt keine Onlinesachen im Debugmodus betreiben.
Das ist aber nur Jugend forscht und im Moment nicht mein Hauptproblem, dennoch freute mich auch in diesem Fall ein hilfreicher Tip.

Gruß

der Westermann
 
Nochma Moin!

Fräst mich doch der Gedanke, daß ich vielleicht gar nicht aktuell bin, was die DotNetSiemensPLCToolBoxLibrary angeht und siehe da, nehme ich die aktuellste Version, ist auch das Online-Problem verschwunden.

Das Problem mit den Modulen bleibt dergestallt, daß ich vorhin einmal die Module im Rack vermittels der SimaticLib auslesen konnte. Nun aber immer die Meldung Reentrancy erkannt bekomme. Auch nach Neustart der VM. Ich raste aus.....

Gruß

der Westermann
 
In diesem Falle Hardware-Daten, jedoch habe ich mich jetzt mal durch alle Forenbeiträge zum Thema DotNetSiemensPLCToolBoxLib gelesen und da erfuhr ich, daß Du die Hardware nicht so behandelt hast. Daher bin ich zu der Variante mit SimaticLib zurückgeschwenkt.
Asche auf mein Haupt, jawaohl ich bin zu doll gesprungen. Ein Thread wäre das Problem mit dem Auslesen von Hardwaredaten vermittels DotNetSiemensPLCToolBoxLib, das hat sich vorerst erledigt, weil diese Daten nun mal nicht in der dll verfügbar gemacht werden.
Der nächste Thread wäre die Online-Verbindung über DotNetSiemensPLCToolBoxLib gewesen, das hat sich erledigt, da mit der neuesten Bibliothek von Dir dieses wieder funzt.
Bleibt der Thread, daß ich die Hardwaredaten für die ProfiNet-Teilnehmer und die CPU über die SimaticLib finden will, das müßte dann eigentlich ein neuer werden.

Gruß

der Westermann
 
Zurück
Oben