Kommunikation zwischen VB6.0-Visu und PLCSim über NetToPLCSim

Zuviel Werbung?
-> Hier kostenlos registrieren
Es läuft beides auf dem gleichen Rechner.
IP-Adresse der CPU314C 2PN/DP: 192.168.0.80 (per HW-Konfig)
IP-Adresse des Rechners: 192.168.0.21
Subnet: 255.255.255.0


Gruß
Earny
 
habe die Version für 64 Bit Windows von NetToPLCSim auf meinem alten WinXp-Rechner (32 Bit) mit Step7 V5.5 SP1 getestet.
Da funktionierts! Nützt natürlich nichts!

Earny
 
habe die Version für 64 Bit Windows von NetToPLCSim auf meinem alten WinXp-Rechner (32 Bit) mit Step7 V5.5 SP1 getestet.
Da funktionierts! Nützt natürlich nichts!

Das ist komisch, denn bei mir funktioniert die 64-Bit Version auch unter 32-Bit Windows.
Imho wird durch das patchen nur die Information gesetzt, dass die Version auch unter 64 Bit lauffähig ist, und sonst nichts anderes gemacht.

Was zeigt denn "netstat -a" bei dir an? Ist dort auf Port 102 jemand am abhören? Dann steht dort ein Eintrag wie:
Proto Lokale Adresse Remoteadresse Status
TCP 0.0.0.0:102 VORTEX:0 ABHÖREN

Du könntest auch mal probieren was passiert, wenn nettoplcsim läuft und du aus einer Eingabeaufforderung heraus "telnet 192.168.0.21 102" aufrufst. Normalerweise sollte dann der Verbindungsaufbau im nettoplcsim-Fenster angezeigt werden.

Edit:
Ergänzung wie man aus der Eingabeaufforderung an den Prozessnamen kommt welcher einen Port belegt:
Code:
>netstat -ano -p TCP | findstr "102"

 TCP    0.0.0.0:102            0.0.0.0:0              ABHÖREN         964
 TCP    0.0.0.0:10243          0.0.0.0:0              ABHÖREN         4
Die Zahl 964 ist die Prozess-ID. Welcher Name hinter dieser ID steckt bekommt man so heraus:
Code:
>tasklist /FI "PID eq 964"
Wenn Nettoplcsim läuft kommt das:
Code:
Abbildname                     PID Sitzungsname       Sitz.-Nr. Speichernutzung
========================= ======== ================ =========== ===============
NetToPLCSim.exe                964 Console                    1        19.804 K
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
ich habe jetzt auch noch die Bentzerkontensteuerung auf meinem Win7 64 Bit-Rechner abgeschaltet. Die war ja bei Vista in Verruf geraten.
Nützt auch nichts. Die Visu kriegt keinen Kontakt zu NetToPLCSim.
Ich habe dann noch einen Test unternommen, mit meiner VB2010-Visu auf eine reelle CPU314C 2PN/DP-CPU per Ethernet zu gehen. Das funktioniert!!!
Die Visu dürfte also auch OK sein.

Earny
 
wenn ich "netstat -a" eingebe werden aktive Verbindungen angezeigt.
Zuerst 11 mal 0.0.0.0:????? (das Fragezeichen steht für 3 bis 5-stellige Ziffern)
dann 5 mal 127.0.01:????? (4 bis 5-stellig)
dann 1 mal 192.168.0.20:139 ABHÖREN


Bemerkung: die 192.168.0.20 = WLAN

192.168.0.21 = LAN


Bei Aufruf der Telnet.exe passiert nichts. Könte an meiner Fehlbedienung liegen.



Earny
 
telnet rufst du auch aus der Windows Eingabeaufforderung auf. Du musst es einfach so eingeben wie ich es oben geschrieben habe (ohne das ">", das habe ich nur geschrieben damit man erkennt dass es auf einer Eingabeaufforderung heraus eingegeben werden muss). Der erste Parameter bei telnet ist die IP-Adresse zu der eine Verbindung aufgebaut werden soll, der zweite Parameter gibt eine Port-Nummer an. Die S7-Kommunikation läuft immer über Port 102, darum ist hier immer nur dieser Port interessant.

Darum musst du auch bei netstat nach Port 102 suchen. Die Ziffern hinter dem Doppelpunkt bedeuten die Port-Nummer auf dem ein TCP-Server gestartet würde.
Die Angabe 0.0.0.0:102 bedeutet, dass ein TCP-Server auf allen verfügbaren Adressen auf eingehende Anfragen auf Port 102 lauscht.

Ich würde erstmal bei netstat nachsehen ob Nettoplcsim überhaupt läuft und auf Port 102 auf eingehende Anfragen wartet. Dann mit telnet versuchen eine Verbindung aufzubauen.
Evtl. ist das bei dir auch ein Problem mit der Firewall, denn diese ist bei Windows 7 meistens aktiv, oder irgendwelchen "Security" Programmen. Meistens ist es nicht ungefragt erlaubt, einen Dienst mit dieser niedrigen Port-Nummer zu starten. Die Windows-Firewall fragt zumindest nach ob sie dem Programm das erlauben soll. Wenn du eine andere Software einsetzt, musst du da mal nach entsprechenden Einstellungen sehen, und nettoplcsim dafür freigeben.
 
Dann schau doch nochmal bitte bei gestartetem nettoplcsim bei der Ausgabe von netstat wie oben beschrieben.

Poste einmal das Ergebnis von
netstat -ano -p TCP | findstr "102"

und dann mit der letzten Zahl das Ergebnis von:
tasklist /FI "PID eq XXX"
 
wenn ich jetzt das "netstat -a" oder
"netstat -ano -p TCP findstr "102" eingebe

blendet ein schwarzes Fenster für einige ms auf und verschwindet sofort wieder.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ok, dann habe ich was falsches vorrausgesetzt, dachte Programmierer kennen das ;-)

Du öffnest erst die Eingabeaufforderung über
Start -> Alle Programme -> Zubehör -> Eingabeaufforderung

In das schwarze Fenster gibst du dann die Befehle ein.
 
Ich bin nur ein Hobby-Programmierer.

Wenn ich das "netstat -ano -p TCP | findstr "102" eingebe, findet er zwei Sachen.
Irgendwas mit 0.0.0.0:102 mit Prozess-ID 2172 und 0.0.0.0:135 (vermutlich irrelevant)

Ich habe dann bei 2172 nachgesehen mit "tasklist..." dann wurde der s7oiehsx64.exe angezeigt, weil der IEPG-Helpservice lief.


Ich habe ihn dann abgeschaltet. Die nochmalige Anwendung von netstat... ergab, dass der 102 jetzt frei ist.


Es gibt also kein anderes Prog, was den 102 belegt.
 
Ok, und wenn du jetzt nettoplcsim startest und das Ganze nochmal machst, sollte nettoplcsim.exe den Port beanspruchen.
Eigentlich sollte es dann funktionieren. Kannst ja erstmal mit telnet probieren.
Wenn du eine LAN- und WLAN-Schnittstelle hast, würde ich wenn ein LAN-Kabel gesteckt ist vorrangig die IP-Adresse der LAN-Schnittstelle verwenden.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
habe PLCSim und NetToPLCsim gestarte.
dann mit netstat die Prozess-ID ermittelt und dann mit tasklist herausgefunden, dass die zu NetToPLCsim gehört.

Die telnet.exe ist bei Win7 gut versteckt. Die liegt innerhalb amd64....
Ich glaube, das ist nicht die richtige telnet.exe.

Bei der Eingabe von telnet.... passiert nichts.
 
habs jetzt auch zusammen mit meiner Anwendung getestet:

Wenn ich das richtig verstehe, dann liegen jetzt zwei Anwendungen auf dem Port 102. Die erste, das ist NetToPLCsim steht auf "ABHÖREN", die zweite, das ist die exe meiner Anwendung, steht auf "HERGESETELLT".

Wenn "Hergestellt" bedeuten soll "Verbindung hergestellt", so ist das gelogen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
"Abhören" heißt, es wartet ein TCP-Server auf eine eingehende Verbindung. Das ist das was nettoplcsim oder der Siemens Dienst macht. Auf einen Port kann immer nur eine Anwendung lauschen. Darum muss man vor nettoplcsim Start den Siemens Dienst beenden.

"Verbindung hergestellt" bedeutet dass deine Anwendung mit jemand anderem verbunden ist.

Hast du deine Anwendung denn jetzt mit nettoplcsim getestet? Was passiert denn?
 
Es ist, wies war.

in PLCSim läuft das S7-Programm. NetToPLCsim sagt "PLCSim: Connected" aber "Client: Disconnected", auch wenn meine Visu läuft.
Die Visu bringt keine Fehlermeldung. Der Wert im gelesenen S7-Speicher wird mit 0 angezeigt, obwohl er in PLCSim ständig wechselt.

Wenn ich auf meinem Xp-Rechner ins NetToPLCsim schaue steht bei "Client..." die IP-Nummer.
 
Hab ehrlich gesagt keine Ahnung woran es liegen könnte. Wenn nettoplcsim bei netstat auftaucht sollte es eigentlich auch erreichbar sein.
Ich habe ja die Vermutung dass das an irgendwelchen Sicherheitseinstellungen liegt.
Du kannst ja mal von deinem XP-Rechner aus versuchen, ob das von dort aus mit telnet (wie oben beschrieben) klappt.
 
Zurück
Oben