PLCSim Netzwerkerweiterung "NetToPLCSim"

Zuviel Werbung?
-> Hier kostenlos registrieren
Haha, super!
Das mit den SZL-Anfragen ist eine schwierige Sache, da von Siemens der Inhalt der verschiedenen SZL-IDs kaum dokumentiert ist. Mit ein wenig nachforschen findet man in älteren Handbüchern oder auch Handbüchern zu den Soft-SPS (WinAC-RTX oder M7) noch ein paar Infos.
Naja, zumindest funktioniert es. Komisch dass neue WinCC Versionen sich da nicht dran stören wenn die SPS in Stop steht.
 
Hi Thomas

I have been using your tool for quite a while now. It was working fine, but recently I have encountered a problem...all settings stayed the same.. the client connection keeps loggin into my local pc where plc-sim is running, and does not want to connect to my client pc. As I say all configurations and IP's stayed the same. Have anyone else encountered this problem?;)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,
ich hatte oben das Problem mit WINCC V5 eingestellt und wollte hier nun meine Ergebnisse mitteilen.

Ich habe mehrere Konfigurationen getestet.
1.PLCSIM-SPS ,mit WINCCFlexible und NetToplcsim auf einem PC und WINCC auf einem eigenen PC. :)

2.PLCSIM-SPS ,mit WINCC-Flexible und NetToPLCSim auf einem PC und WINCC in einer VMWare-Umgebung auf dem gleichen PC. :)

3.Drei SPS'sen mit je PLCSIM-SPS ,mit WINCC-Flexible und NetToPLCSim auf einem PC einer Originalen S7-400 und WINCC auf einem eigenen PC. :)

Alles funktioniert einwandfrei.

Ich möchte mich hier mal bei Thomas bedanken, der dieses super Tool geschrieben hat.
Vielen Vielen Dank!

Gruß
duk64
 
simatic to nettoplcsim problem

hi Tomas
before anything else i should thank you for your program nettoplcsim but i have problem to use this program i want to download a s7-417 program from simatic to plcsim in different pc as follows
pc1 windows xp sp3 simatic v5.4 sp5 PLCSIM v5.4 sp3 ip 192.168.1.1
pc2 windows xp sp2 simatic v5.4 sp5 PLCSIM v5.4 sp3 nettoplcsim v 0.7.1 ip 192.168.1.2
when i try to download s7 program from simatic on pc1 to plcsim on pc2 simatic netpro see the nettoplcsim and plcsim but the following message appears
simatic net pro message windows
the configured module (offline) is different from the target module (online):
name ------------------- offline ---------------------------online
order number ------- 6ES7 417-4HL04-0AB0---- 6ES7 315-2AF03-0AB0 firmware version-------- V4.0----------------------------- 2
please help to solve this problem of course before , performing this steps i downloaded hardware config to plcsim in pc1
thank you very much
 
Step 7 koppelt nicht zu Soft-SPS

Hallo Thomas,

besten Dank für dieses großartige Tool :TOOL:.

Folgende Ausgangssituation:

1. Soft-SPS-Rechner: Step7 V5.4 SP5 -> PLCSIM V5.4 SP3 -> NetToPLCSIM 0_7_1b (IP: 192.168.0.86)
2. WinCC-Server: WinCC V7.0 SP1 HF5 (IP: 192.168.0.82)
3. PG-Rechner: Step7 V5.4 SP5 (IP: 192.168.0.163)

Rechner 1 und 2 Kopplung ist wunderbar, danke nochmals!

Zu meinem Problem:

S7-Projekt ist auf dem Server mit Rechner 1 aufgemacht in PLCSIM geladen und NetToPLCSIM gestartet, alles gut auf dieser Seite -> "Listening for clients..." wird ausgegeben. Mache jetzt das Projekt mit Step7 auf dem PG-Rechner und will online gehen Step7 hängt sich auf und nach lägerer Zeit kommt die Fehlermeldung:
"Keine Antwort auf Step7-Telegramm".
In dieser Zeit sehe ich in NetToPLCSIM:
"Client (192.168.0.163: 1846) has connected..."
"Server/client disconnected!"
"Client (192.168.0.163: 1848) has connected..."

Was mir noch aufgefallen ist, dass wenn ich in HW-Konfig die CPU 416 3DP "Laden in Baugruppe" starte (es ist die, die in PLCSIM schon geladen ist), sieht man im Fenster "Teilnemeradresse wählen" die IP: 192.168.0.86 (alles richtig) aber der Baugruppentyp wird als 315 - 2DP erkannt :confused: und dementsprechend nich geladen weden, da die Baugruppe (offline) sich von Baugruppe (online) unterscheidet. zur gleichen Zeit kommen in NetToPLCSIM die gleichen Meldezeilen wie oben und der Client bleibt auf connected. Wocher kommt dieser Baugruppentyp?
Habe das gleiche mit einem anderen Projekt, anderen IPs und zwei anderen Rechnern gemacht, das gleiche Phenomen offline ist eine 415er und online wird eine 315er erkannt.
icon5.gif


Hoffe es kenn mir jemand Helfen bin schon am verzweifeln, nur die Hälte funktioniert.

Mit freundlichen Grüßen

Slawa
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
beim nettoplcsim werden nur die Protokolle zum Datenaustausch (Datenbereiche lesen und schreiben) unterstützt.
Du kannst also nicht über Step 7 von einem anderen Rechner das Programm übers Netzwerk in PLCsim laden, weil eben diese PG-Funktionen nicht unterstützt werden. Da die PG-Funkionen aber auch über Port 102 laufen, gibt es zumindest einen kurzen Verbindungsaufbau, mehr aber auch nicht.

PLCsim bietet auch keine Schnittstelle für diese Funktionen an, somit könnte ich dies auch nicht wenn ich wollte in nettoplcsim nachrüsten.
 
Hallo Thomas!

Vielen Dank für das sehr nützliche Projekt. Ein Kollege von mir arbeitet derzeit mit WinCC 7, wobei das WinCC-Projekt auf einem extra Rechner läuft.
Dein Projekt kam nun zum Einsatz, als wir mal ein bißchen die Zusammenhänge mit der Steuerung testen wollten (weil ich grade eine Stunde Luft hatte) - funktioniert (wenn man die Häkchen lt. Doku entfernt) 1A.

Ich werd das mal ein wenig für uns aufbereiten und (wenn Du nichts dagegen hast) hausintern an die Kollegen weitergeben.

Danke und vlg
Maxl
 
Du kannst aber auch mal die angehängte Version testen, dort habe ich noch einige weitere SZL-IDs ergänzt.
WinCC 5 steht mir leider nicht zur Verfügung, darum kann ich das nicht testen.
Hallo Thomas,
auch von mir danke für das Tool; darauf hatte ich schon lange gewartet.

Zur Info: Allerdings funktionierts bei mir auch erst mit der Version 0-7-1-b_szl_cpu_run; mit der vorigen Version bekam ich zwar im NetToPLCSim den Status "Client: Connected", Daten wurden aber keine übertragen (WinCC Driver Status: Disconnected). Bin beinahe verzweifelt, weils offensichtlich mit 6.2 bei allen anderen funktioniert hat. Dann bin ich auf diesen Beitrag gestossen, nach Austausch der DLL war alles ok.

Konfiguration:
1. Rechner: XP Pro SP3, PLCSim V5.4 SP3
2. Rechner: XP Pro SP3, PCS7 V7.02, WinCC V6.2 SP2 HF7

Nochmal Danke! :sm24:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Instanzen angeben

Hallo !
Zusammen => bin gerade erst auf das Programm gestoßen => es stellt sich die Frage ob es auch irgendwie möglich auf mehrere Instanzen (auf einem Rechner zuzugreifen ) ?

Dassidirect => nettoplcsim => PCLSim ?

Ich hab da was gelesen das PCLsim das ja können sollte => und mich auch ein bisschen duch den Sourcecode gewühlt => leider versteh ich aber noch nicht so richtig wie ich die Instanzen durch das ganze (nodave??) durchleiten kann.

Auf der Kommunikation zwischen dassidirect und nettoplcsim würde ich das ganze einfach über mehrere IP - Adressen machen....
 
Hallo !
Zusammen => bin gerade erst auf das Programm gestoßen => es stellt sich die Frage ob es auch irgendwie möglich auf mehrere Instanzen (auf einem Rechner zuzugreifen ) ?

Dassidirect => nettoplcsim => PCLSim ?

Ich hab da was gelesen das PCLsim das ja können sollte => und mich auch ein bisschen duch den Sourcecode gewühlt => leider versteh ich aber noch nicht so richtig wie ich die Instanzen durch das ganze (nodave??) durchleiten kann.

Auf der Kommunikation zwischen dassidirect und nettoplcsim würde ich das ganze einfach über mehrere IP - Adressen machen....

Hallo superwolfi,

das Thema mit mehreren Instanzen wurde irgendwo hier im Thread schonmal angesprochen.

Die Möglichkeit mehrere Instanzen von PLCsim zu starten kam erst mit einem neueren Servicepack hinzu. Die Prosim-Schnittstelle welche ich zum Datenaustausch mit PLCsim benutze, ist abwärtskompatibel gehalten. Wenn der optionale Parameter der Instanz-Nummer fehlt, wird die Verbindung immer zur ersten Instanz aufgebaut.
Dieser Teil - also die PLCsim Schnittstelle - findest du im C#-Programm in der Datei PLCSim.cs.

Die Netzwerkgeschichte sowie das Auseinandernehmen des S7-Protokolls geschieht im C-Part (nachher nodaveserver.dll).
Wie man das mit mehreren IP-Adressen machen kann hatte ich bisher nur überlegt, aber nicht weiter ausprobiert. Unter Windows kann man einer Netzwerkkarte zwei IP-Adressen zuweisen.
Wenn ich das richtig sehe muss man dann beim bind() auf den Socket eine entsprechende lokale IP-Adresse angeben, damit man zwei Socket-Server auf Port 102 aber verschiedenen IP-Adressen starten kann. Momentan steht an der Stelle als lokaler Endpunkt die Wildcard-Adresse ADDR_ANY. Du findest das in der nodaveserver.c in Zeile 654

http://nettoplcsim.svn.sourceforge....Server/noDaveServer.c?revision=14&view=markup

Die IP-Adresse müsste an die Funktion startTCPServer() dann als Parameter übergeben werden.

Letztendlich müsste man also die GUI um zwei Parameter erweitern:
1. Angabe der Instanz-Nummer zu PLCsim
2. Angabe der lokalen IP-Adresse an welche der Server laufen soll

Momentan komme ich aber nicht dazu damit groß rumzutesten, aber wenn du Erfahrung damit hast wie man das gut umsetzen kann, bin ich ganz Ohr :)
 
Nur um sicher zu gehen das libnodave - C Teil ist eine c Bib um eine SPS zu simulieren bzw. auch darauf zuzugreifen.

Was ist bitte die LibNoDaveConnectionLibrary
?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Nur um sicher zu gehen das libnodave - C Teil ist eine c Bib um eine SPS zu simulieren bzw. auch darauf zuzugreifen.

Was ist bitte die LibNoDaveConnectionLibrary[/SIZE][/FONT] ?

Nein, libnodave ist eine Bibliothek aus C-Funktionen um auf Daten in einer SPS zuzugreifen. Mein Programm verwendet einige Funktionen aus dieser Bibliothek, also nettoplcsim ist gegen nodave gelinkt.
Es wird auch keine SPS simuliert (das macht PLCsim), sondern das Programm leitet nur die Anfragen zum Lesen/Schreiben von Datenbereichen von der Netzwerkschnittstelle an PLCsim weiter.

Diese Connectionlib hat mit diesem ganzen Thema nichts zu tun.
 
Hallo!

Auch ich hätte interesse PLCSim in mehreren Instanzen auszuführen.
Habe dazu auch schon Deine und die Beiträge von "superwolfi" gelesen und ein wenig den Sourcecode studiert. Wirklich durchblicken tue ich noch nicht :cry:

Vielleicht kann mir Thomas noch nähere Auskünfte dazu geben?
- Optionaler Parameter Instanz-Nummer - WO, WIE? :confused:
- IPAdresse server - WO, WIE? :confused:
 
- Optionaler Parameter Instanz-Nummer - WO, WIE?

Naja, nicht optional sondern es wurden dafür bei PLCSim 5.4 mit SP3 zwei neue Methoden eingebaut. Diese finden sich leider nicht im Handbuch (warum eigentlich nicht Herr Siemens?), sondern nur in der plcsim-liesmich.rtf unter den Änderungshinweisen.

plcsim-liesmich.rtf zu SP3 schrieb:
7.3.6.2 ConnectExt
STDMETHOD (ConnectExt)(/*[in]*/ long InstanceNumber)
Beschreibung
Verbindet S7ProSim mit der S7-PLCSIM Instanz mit der Nummer InstanceNumber.
Parameter
InstanceNumber [in] Nummer der Instanz, mit der S7ProSim verbunden werden soll

In nettoplcsim wäre in der Datei PLCsim.cs die Zeile 65 ( ps.Connect();) anzupassen, und natürlich weitere wenn die Instanznummer nicht statisch sein soll.

- IPAdresse server - WO, WIE? :confused:

Eben das ist die Frage wie man das überhaupt elegant lösen kann, da die Netzwerkkarte auf jeden Fall eine zweite IP-Adresse bekommen muss. Wenn sich einer mit dem Windows-Netzwerkkrams nicht detailliert auskennt, hagelt das wieder Fragen ohne Ende ;-)

Außerdem müsste für die Multiinstanzen nachher auf jeden Fall zwei Versionen von netttoplcsim geben. Eine für < 5.4 SP3 und eine für danach. Und selbst ich habe nicht auf allen Rechnern die neue Version.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Thomas_v2.1.

Du scheinst ja echt ein Spezialist auf dem Gebiet zu sein.
Ich habe natürlich gleich mal ausprobiert.
Also die Kommunikation mit mehreren PLCSim-Instanzen scheint tatsächlich zu funktionieren. Wie von Dir angedeutet, anstatt
Code:
ps.Connect()
zu verwenden einfach die Funktion
Code:
ps.ConnectExt( long InstanceNumber )
verwenden und die Instanznummer (1, 2, 3, ...) der PLCSim-Instanz angeben.
=> Der erste Teil scheint ja soweit mal geklappt zu haben. :D

Bleibt nurmehr das Zweite Problem mit der TCP-Verbindung.
Du hast ja angedeutet anstatt ADDR_ANY zu verwenden ene IP direkt zu benutzen. Nur stellt sich hier für mich die Frage, wie bringe ich diese IP als Übergabeparameter in die gelinkte C-Funktion??
Bzw. welches Konzept wäre Deiner Meinung nach am geeignetsten um dies auch wirklich in mehreren Instanzen (1, 2, 3, ...) ausführen zu können??? :confused:
 
Ich habe jetzt mal eine Version erstellt um das mit zwei IP-Adressen zu testen. Das funktioniert soweit auch. Man muss dazu der Netzwerkkarte eine zweite IP-Adresse zuweisen, und kann dann in einem Einstellungsfenster in nettoplcsim eine IP-Adresse festlegen, oder die Option "auf allen lauschen" anwählen. Dann ist das Verhalten wie früher.

Leider läuft mein Build-System noch unter Windows 2000, und dort kann ich in meinem Step 7 nicht das PLCsim SP3 aufspielen. Wenn ich die reine s7wspsmx.dll aus dem Servicepack 3 kopiere um den Verweis zu aktualisieren, ist hierin aber anscheinend noch keine Methode ConnectExt() vorhanden :confused:

Wenn jemand Lust hat das mal zu testen, kann er sich auf dem Subversion-Server bei sourceforge diesen Zweig mal auschecken.
Die Version liegt dort im Pfad /branches/multiinstace/

Oder ich schicke es auf Anfrage per Email.
 
Thomas_v2.1 ist ja wirklich schnell unterwegs - super! ;)

Mein Build-System ist ein Windows Server 2003 + SP2 mit PLCSim V5.4.3.0 + SP3 und <s7wspsmx.dll> in der Version 504.300.119.1
In dieser Konstelation ist die Funktion ConnectExt() vorhanden! :)

Ich hätte mir Dein Projekt von SourceForge jetzt geladen und ausprobiert, leider hast Du Deine zwei neuen Forms frmSettings() und frmInfo() nicht dazu gegeben! :confused:
Generell wäre ich Dir dankbar wenn du mir Dein gesamtes Projekt als zip-Datei schicken könntest!

Vielleicht kannst Du mir auch noch Tipps geben wo ich "drehen" müsste um dies auch noch für mehrere Instanzen (mehr als zwei) zum Laufen zu bringen??

Danke!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Thomas!

Danke für Deine Beta-Version.
Ich war natürlich gestern und heute morgen schon schwer am Testen.
Ein kleines Problem scheint es noch zu geben, und zwar:
Startet man eine zweite Instanz von NetToOLCSim, stellt man IP des Server und die PLCSim-Instanz ein, kommt immer die Error-Meldung "NoDaveServer could not be started! Could not bind socket to port 102."
Es scheint als würdest Du beide male den selben Port verwenden :confused:

Ich verwende die noDaveServer.dll vom 01.09.2010, aus Revison 26 - ist dies die Aktuellste??

Bei mir sollten alle Instanzen auf einer Maschin laufen!

lg
 
Ein kleines Problem scheint es noch zu geben, und zwar:
Startet man eine zweite Instanz von NetToOLCSim, stellt man IP des Server und die PLCSim-Instanz ein, kommt immer die Error-Meldung "NoDaveServer could not be started! Could not bind socket to port 102."
Es scheint als würdest Du beide male den selben Port verwenden :confused:

Ich verwende die noDaveServer.dll vom 01.09.2010, aus Revison 26 - ist dies die Aktuellste??

Nein, Port 102 ist fest für die Verbindungen zur SPS reserviert. Dieser Port kann in Visualisierungssystemen, OPC-Servern etc. nicht umgestellt werden. Wenn das über einen anderen (einstellbaren) Port laufen könnte, bräuchte man den Aufwand über die zweite IP-Adresse auch nicht zu gehen.

Das Starten von zwei nettoplcsim Instanzen an zwei IP-Adressen funktioniert bei mir aber.
Momentan werden die Einstellungen der IP-Adresse aus der Konfigurationsmaske aber nur bei Drücken der "Start"-Taste übernommen, vielleicht liegts bei dir daran?
Ein einer Release-Version müsste man das Settings-Fenster bei laufendem Server deaktivieren, da die Einstellungen nur beim Start von Winsock gemacht werden können.

Also Programm starten, IP-Adresse festlegen, dann "Start" drücken.

Die Version der dll sollte korrekt sein.
 
Ja leider, Deinen Ablauf habe ich so schon mehrere male probiert, leider ohne Erfolg.
Gibts ev. unter Windows, Netzwerkverbindungen irgend welche Einstellungen die man noch beachten sollte??
 
Zurück
Oben