-> Hier kostenlos registrieren
Hallo,
ich versuche zur Zeit im Rahmen eines Schulprojekts eine S7-1200 (1212C AC/DC/RLY) mittels eines Programms, geschrieben in c#, zu verbinden um Daten zu lesen bzw zu schreiben.
Dazu benutze ich VS c# mit libnodave. Es befinden sich beide dll im debug-Ordner, und die libnodave.net.dll ist als Verweis hinzugefügt.
Das Programm orientiert sich an einem Prog eines Users das laut seiner Aussage in der gleichen Kombination funktioniert.
Verbunden ist das ganze per Ethernet, soll also per ISO over TCP laufen.
Problem: der Befehl dc.connectPLC() liefert nur -1
Probiert habe ich: diverse Kombinationen Rack/Slot da teils unterschiedliche Aussagen welche denn lauffähig ist; VS 2008,VS2010( dabei jeweils auf 32bit umgestellt da System 64 bit), VMWare mit XP32bit und VS2010
mit TIA Portal kann ich alles wunderbar programmieren und auch online Veränderungen der Eingänge/Variablen im DB beobachten.
Spassershalber habe ich einmal Wireshark während des Verbindungsversuchs laufen lassen, dabei liefert schon der Befehl connectPLC() an die SPS ein malformed Packet oder Wireshark kann damit einfach nix anfangen. Nach erhalt es Pakets führt die SPS scheinbar einen RESTART aus( auch wenn ich optisch an der SPS nicht sehe) und das wars dann.
Ich habe schon dieses und auch jede Menge englischsprachige Foren durchsucht, es gab zwar einige mit dem gleichen Problem aber nix was mir zu einer Lösung verholfen hat.
Ich muss gestehen, dass sich meine Kenntnisse in c# als auch SPS nur auf den Schulunterricht begrenzen(c# halbes Jahr; SPS 1,5 Jahre)
Müssen denn in der SPS bzw im Projekt bestimmte Sachen eingestellt werden um das ganze lauffähig zu machen( TCON? )
Die Toolbox habe ich mir auch runtergeladen muss aber ebenfalls gestehen das ich nur Bahnhof versteh wie die zu verwenden ist. Von den Beispielprogrammen ist auch keins lauffähig, da kommt direkt ne Fehlermeldung von Win7
Und es gibt noch 2 große Fragezeichen: einmal gibt es in der libnodave Funktionen die mir als protected angezeigt werden, z.b daveReadBytes(....), daveconnectPLC(),...
die auch einige User verwendet haben. Ich kann die aber gar nicht benutzen-> VS meldet Zugriff aufgrund der Sicherheitsebene nicht möglich
Was mach ich da falsch??
und zum anderen diese Befehle:
a = dc.getS32();
b = dc.getS32();
c = dc.getS32();
d = dc.getFloat();
(nach: res = dc.readBytes(libnodave.daveFlags, 0, 1, 16, null);
die ich überhaupt nicht verstehe. wieso der gleiche Befehl dreimal ?und dann float-weiss jetzt nicht ob der Lesebefehl dafür korrekt ist, hab viel rumgebastelt aber lief ja nix zum testen- was liest der denn da in die vier Variablen ein???? Vielleicht ein Beispiel damit ich das verstehe
Vielen Dank schonmal im Vorraus ( ich weiss, is bissl was zum lesen)
Hoffe jemand kann mir helfen, bin sonst echt am A...
ich versuche zur Zeit im Rahmen eines Schulprojekts eine S7-1200 (1212C AC/DC/RLY) mittels eines Programms, geschrieben in c#, zu verbinden um Daten zu lesen bzw zu schreiben.
Dazu benutze ich VS c# mit libnodave. Es befinden sich beide dll im debug-Ordner, und die libnodave.net.dll ist als Verweis hinzugefügt.
Das Programm orientiert sich an einem Prog eines Users das laut seiner Aussage in der gleichen Kombination funktioniert.
Verbunden ist das ganze per Ethernet, soll also per ISO over TCP laufen.
Problem: der Befehl dc.connectPLC() liefert nur -1
Probiert habe ich: diverse Kombinationen Rack/Slot da teils unterschiedliche Aussagen welche denn lauffähig ist; VS 2008,VS2010( dabei jeweils auf 32bit umgestellt da System 64 bit), VMWare mit XP32bit und VS2010
mit TIA Portal kann ich alles wunderbar programmieren und auch online Veränderungen der Eingänge/Variablen im DB beobachten.
Spassershalber habe ich einmal Wireshark während des Verbindungsversuchs laufen lassen, dabei liefert schon der Befehl connectPLC() an die SPS ein malformed Packet oder Wireshark kann damit einfach nix anfangen. Nach erhalt es Pakets führt die SPS scheinbar einen RESTART aus( auch wenn ich optisch an der SPS nicht sehe) und das wars dann.
Ich habe schon dieses und auch jede Menge englischsprachige Foren durchsucht, es gab zwar einige mit dem gleichen Problem aber nix was mir zu einer Lösung verholfen hat.
Ich muss gestehen, dass sich meine Kenntnisse in c# als auch SPS nur auf den Schulunterricht begrenzen(c# halbes Jahr; SPS 1,5 Jahre)
Müssen denn in der SPS bzw im Projekt bestimmte Sachen eingestellt werden um das ganze lauffähig zu machen( TCON? )
Die Toolbox habe ich mir auch runtergeladen muss aber ebenfalls gestehen das ich nur Bahnhof versteh wie die zu verwenden ist. Von den Beispielprogrammen ist auch keins lauffähig, da kommt direkt ne Fehlermeldung von Win7
Und es gibt noch 2 große Fragezeichen: einmal gibt es in der libnodave Funktionen die mir als protected angezeigt werden, z.b daveReadBytes(....), daveconnectPLC(),...
die auch einige User verwendet haben. Ich kann die aber gar nicht benutzen-> VS meldet Zugriff aufgrund der Sicherheitsebene nicht möglich
Was mach ich da falsch??
und zum anderen diese Befehle:
a = dc.getS32();
b = dc.getS32();
c = dc.getS32();
d = dc.getFloat();
(nach: res = dc.readBytes(libnodave.daveFlags, 0, 1, 16, null);
die ich überhaupt nicht verstehe. wieso der gleiche Befehl dreimal ?und dann float-weiss jetzt nicht ob der Lesebefehl dafür korrekt ist, hab viel rumgebastelt aber lief ja nix zum testen- was liest der denn da in die vier Variablen ein???? Vielleicht ein Beispiel damit ich das verstehe

Vielen Dank schonmal im Vorraus ( ich weiss, is bissl was zum lesen)
Hoffe jemand kann mir helfen, bin sonst echt am A...