PLCSim Netzwerkerweiterung "NetToPLCSim"

Zuviel Werbung?
-> Hier kostenlos registrieren
Was mir noch fehlt sind Verbindungen zum Client über AG_Send / AG_RECV Bausteine.

Ist sowas überhaupt über NETTOPLCSIM möglich ?
Nein, da von Plcsim aus nichts aktiv heraus gesendet werden kann. Wie ich schon schrieb funktionieren z.B. Put/Get-Bausteine über eine projektierte S7-Verbindung zwischen mehreren Plcsim-Instanzen direkt, ohne nettoplcsim.
Welche Bausteine noch funktionieren steht in diesem Siemens FAQ:
http://support.automation.siemens.com/WW/view/de/22957061
 
Hallo und vielen Danke für Ihre Software !
Ich wollte zwei Fragen stellen:
- Die Quellen der Version 0.9 sind sie frei? denn ich nicht gefunden habe.
- ist es möglich, mehrere Clients für jede Instanz von PLCSIM haben (zB : SCADA und Prozess Simulator)
Entschuldigen Sie mich für meine niedrigen Niveau in Deutsch, Ich hoffe, diese Fragen wurden nicht vorher gefragt, aber ich habe nicht alles verstanden
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Habe ich noch nicht gemacht. Aber sollte möglich sein.
In der PDF ist beschrieben wie man mehrere IPs anlegt.
Mit PLCSim 5.4 und dem antsprechenden Hotfix können mehrere PLCSim-Steierungen parallel Simuliert werden.
 
- Die Quellen der Version 0.9 sind sie frei? denn ich nicht gefunden habe.
Ich habe die Quellen jetzt als zusätzliche zip-Datei in das Verzeichnis 0.9.0 bei Sourceforge gelegt.
Eigentlich hatte ich vor das neue Projekt in das SVN-Verzeichnis zu übertragen. Aber ich habe noch nicht rausgefunden wie ich das am elegantesten in den aktuellen Quellenpfad ablege, da die Version 0.9 mit der alten keine Dateien gemeinsam hat. Darum ist im SVN erstmal nur die "alte" Version.
- ist es möglich, mehrere Clients für jede Instanz von PLCSIM haben (zB : SCADA und Prozess Simulator)
Mit der neuen Version (0.9.0) können auch mehrere Clients auf eine Instanz zugreifen. Ebenso können mehrere PLCSIM-Instanzen gestartet werden. Dann benötigt aber jede Instanz eine eigene IP-Adresse. Wie das einzurichten ist habe ich im PDF-Dokument hoffentlich ausreichend beschrieben, ansonsten einfach nochmal nachfragen.

Ich habe es mit insgesamt 6 PLCSIM Instanzen und einem Prozessleitsystem welches auf die 6 Instanzen zugreift getestet. Von der Geschwindigkeit lässt sich da noch nichts negatives feststellen.
 
Hallo,
habe folgendes Problem:
Habe die neuste Version von Net to PLCSim und möchte damit eine Simualtion von Win Fact verbinden.
Mit der alten Version habe ich in Win FAct die local Host Adresse angegeben und das hat funktioniert, jetzt schreibt er mir das mit dieser Einstellung keine Verbindung möglich ist.
Umstellung war eigentlich nur weil bei anderen Rechnern die alte Version die Fehlermeldung bringt:
boris.jpg
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
habe folgendes Problem:
Habe die neuste Version von Net to PLCSim und möchte damit eine Simualtion von Win Fact verbinden.
Mit der alten Version habe ich in Win FAct die local Host Adresse angegeben und das hat funktioniert, jetzt schreibt er mir das mit dieser Einstellung keine Verbindung möglich ist.
Moin,
bei der neuen nettoplcsim Version musst du bei "Network address" ebenfalls 127.0.0.1 einstellen, wenn du dich über diese IP-Adresse zu nettoplcsim verbinden willst. Die alte Version war generell auf allen verfügbaren IP-Adressen erreichbar, aus dem Grunde musste man bei dieser nichts einstellen
Da die neue Version aber auch die Anbindung von mehreren Simulationen unterstützt, musste ich diesen zusätzlichen Parameter einfügen.

Umstellung war eigentlich nur weil bei anderen Rechnern die alte Version die Fehlermeldung bringt:
Anhang anzeigen 16011
Hm, so ein Fehler tritt eigentlich auf wenn Plcsim nicht gestartet ist. Im Screenshot kann man es aber sehen. Hat die Anbindung an Plcsim denn auf diesem Rechner noch nie funktioniert, oder hat sich das Verhalten mal geändert?

PS:
Kann man Winfact an eine S7 anbinden oder was sehe ich da in dem Screenshot?
 
Hallo,
ja danke erstmal für die schnelle Antwort.
Das wars habe die Adresse geändert und jetzt läuft WinFact mit ner S7 Simulation.
Was man im Screenshot noch sieht ist das Batch was ausgeführt wird, damit starte ich Net to PLCSim und stoppe gleichzeitig die Hilfe des Simatic Manager,schliesse ich Net to PLC startet die Hilfe wieder, nix wildes.
Das mit WinFact läuft recht gut finde ich.
 
Eine hilfreiche Funktion fehlt mir aber: Die Möglichkeit der Anzeige des Status aus der alten Version ("Display requested data area" und "display requested PLCSim data".

Bin ich nur blind, oder gibts das nicht mehr?
Nein, die Funktion ist in der neuen Version leider nicht mehr enthalten

Das hat mehrere Gründe. Zum einen 'schaue' ich bei der neuen Version gar nicht mehr in das Protokoll so tief rein, sondern leite die Daten an eine andere Schnittstelle weiter. Bei der alten Version habe ich das Protokoll komplett selber zerlegt, darum sind diese Informationen eh vorhanden gewesen.

Ich fand die Funktion selber auch recht nützlich, denn so konnte man schnell einen Fehler lokalisieren, oder eine Aussage über die Performance eines Anbindungstreibers machen. Kannst ja mal schreiben wofür du die Funktion genutzt hast.

Evtl. baue ich zumindest die Anzeige für angefragte Datenbereiche auch in die neue Version ein. Nur unterstützt die neue Version auch mehrere Clients und mehrere Server-IP Adressen. Darum würde ich optional ein Trace nur für eine bestimmte Server-IP starten.


Alternativ kannst du Wireshark mit meiner Plugin-DLL nutzen, und hast damit die gleichen Diagnosemöglichkeiten:
http://sourceforge.net/projects/s7commwireshark/

Du müsstest auf dem Rechner auf dem Step7/Plcsim läuft Wireshark installieren, und die s7comm.dll in das Plugin Verzeichnis kopieren.
 
Nein, die Funktion ist in der neuen Version leider nicht mehr enthalten

Ich fand die Funktion selber auch recht nützlich... Kannst ja mal schreiben wofür du die Funktion genutzt hast.

Evtl. baue ich zumindest die Anzeige für angefragte Datenbereiche auch in die neue Version ein. Nur unterstützt die neue Version auch mehrere Clients und mehrere Server-IP Adressen. Darum würde ich optional ein Trace nur für eine bestimmte Server-IP starten.

Hallo Thomas,

nicht so wichtig, wollte nur sichergehen, dass ich nichts übesehen habe.

War nur eine hilfreiche kontrolle, was der Client überhaupt anfragt (wie du schon beschrieben hast). Das heisst, genau das, was du "evtl." vorhast (die Anzeige der angefragten Datenbereiche für eine Server-IP) wäre perfekt.

Aber auch so: Danke für die Software, hat mir schon viel Arbeit erspart... :D

Grüsse

Alfred
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Was mir noch fehlt sind Verbindungen zum Client über AG_Send / AG_RECV Bausteine.
Hallo,
ich hab mir einen "Workaraound" dafür gebastelt; mit nettoplcsim und libnodave hole ich mir die Daten aus der einen Steuerung ("AG-Send") in Excel und schreibe sie anschliessend wieder mit libnodave in die zweite Steuerung ("AG-Receive"). In libnodave sind Beispiele für Excel dabei.

Das schöne daran: Geht auch zum Simulieren einer H1-Verbindung S5-S7 (IBHSoftec SimS5 - PLCsim).

Alfred
 
Ich habe eine neue Version hochgeladen (0.9.1) bei der wieder eine Statusanzeige der Daten möglich ist.

Wenn der Server gestartet ist, ist im Kontextmenü der Stationsliste ein Eintrag "Start monitoring" verfügbar. Das Monitor-Fenster das sich dann öffnet zeigt den Datenaustausch zwischen den Client(s) und dem gewählten Interface an.
Es werden nur die angefragten Datenbereiche von Read/Write-Requests angezeigt, die darin enthaltenen Daten oder Antworttelegramme und werden nicht angezeigt. Ich denke für eine schnelle Diagnose des Datenverkehrs ist das ausreichend.

Durch das aktivierte Monitoring wird der Datenaustausch aber erheblich langsamer.

https://sourceforge.net/projects/nettoplcsim/
 
Hallo Thomas,

erstmal vielen Dank für eine wirklich notwendige Funktionalität welche Siemens nicht zu liefern in der Lage ist! ;)
Ich teste gerade damit die Verbindung von dem PLS Braumat/SISTAR V5.3 zu PLCSim.
Die Konfiguration sind 2 Server und 3 PLCs (416-3 mit CP443-1 auf Slot 6 im Rack)
Wenn das Leitsystem hochfährt und eine Datenverbindung aufbauen will, dann stürzt das NettoPLCSim ab.
Ich habe es auch schon mit nur einer PLC veruscht - leider ohne Erfolg.

Eintrag im EventLog:

Ereignistyp: Fehler
Ereignisquelle: .NET Runtime 2.0 Error Reporting
Ereigniskategorie: Keine
Ereigniskennung: 5000
Datum: 04.01.2012
Zeit: 16:30:39
Benutzer: Nicht zutreffend
Computer: VM-TMPL-S7-V11
Beschreibung:
EventType clr20r3, P1 nettoplcsim.exe, P2 1.0.0.0, P3 4ef07635, P4 system, P5 2.0.0.0, P6 4db9c770, P7 2cec, P8 23, P9 system.net.sockets.socket, P10 NIL.

Weitere Informationen über die Hilfe- und Supportdienste erhalten Sie unter http://go.microsoft.com/fwlink/events.asp.
Daten:
0000: 63 00 6c 00 72 00 32 00 c.l.r.2.
0008: 30 00 72 00 33 00 2c 00 0.r.3.,.
0010: 20 00 6e 00 65 00 74 00 .n.e.t.
0018: 74 00 6f 00 70 00 6c 00 t.o.p.l.
0020: 63 00 73 00 69 00 6d 00 c.s.i.m.
0028: 2e 00 65 00 78 00 65 00 ..e.x.e.
0030: 2c 00 20 00 31 00 2e 00 ,. .1...
0038: 30 00 2e 00 30 00 2e 00 0...0...
0040: 30 00 2c 00 20 00 34 00 0.,. .4.
0048: 65 00 66 00 30 00 37 00 e.f.0.7.
0050: 36 00 33 00 35 00 2c 00 6.3.5.,.
0058: 20 00 73 00 79 00 73 00 .s.y.s.
0060: 74 00 65 00 6d 00 2c 00 t.e.m.,.
0068: 20 00 32 00 2e 00 30 00 .2...0.
0070: 2e 00 30 00 2e 00 30 00 ..0...0.
0078: 2c 00 20 00 34 00 64 00 ,. .4.d.
0080: 62 00 39 00 63 00 37 00 b.9.c.7.
0088: 37 00 30 00 2c 00 20 00 7.0.,. .
0090: 32 00 63 00 65 00 63 00 2.c.e.c.
0098: 2c 00 20 00 32 00 33 00 ,. .2.3.
00a0: 2c 00 20 00 73 00 79 00 ,. .s.y.
00a8: 73 00 74 00 65 00 6d 00 s.t.e.m.
00b0: 2e 00 6e 00 65 00 74 00 ..n.e.t.
00b8: 2e 00 73 00 6f 00 63 00 ..s.o.c.
00c0: 6b 00 65 00 74 00 73 00 k.e.t.s.
00c8: 2e 00 73 00 6f 00 63 00 ..s.o.c.
00d0: 6b 00 65 00 74 00 20 00 k.e.t. .
00d8: 4e 00 49 00 4c 00 0d 00 N.I.L...
00e0: 0a 00 ..

Betriebssystem ist Windows XP SP3

Ich hoffe du kannst mir da weiterhelfen!?

Viele Grüße
Matthias
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich teste gerade damit die Verbindung von dem PLS Braumat/SISTAR V5.3 zu PLCSim.
Die Konfiguration sind 2 Server und 3 PLCs (416-3 mit CP443-1 auf Slot 6 im Rack)
Wenn das Leitsystem hochfährt und eine Datenverbindung aufbauen will, dann stürzt das NettoPLCSim ab.
Ich habe es auch schon mit nur einer PLC veruscht - leider ohne Erfolg.

Hallo Matthias
ich kenne Braumat zwar nicht im Detail, aber wenn ich das richtig sehe setzt das auf PCS7 auf. Bei PCS7 werden viele Telegramme von der SPS aus getriggert, Telegramme bei Variablenänderungen schicken, Bausteinmeldungen etc.
Das alles funktioniert mit Plcsim und dann in Zusammenspiel mit nettoplcsim leider nicht.

Genausowenig kann man Bausteine über nettoplcsim in die SPS(Plcsim) laden, da ab einem bestimmten Schritt bei der Übertragung die SPS die Initiative übernimmt. Kann sein dass es irgendwie möglich ist, aber die Schnittstelle zu Plcsim über die S7online Schnittstelle ist nicht offengelegt. D.h hier wäre viel forschen und probieren notwendig. Kann auch sein dass es mit Plcsim generell nicht geht. Die Alarm_P Bausteine werden laut Dokumentation von Plcsim selber schon nicht unterstützt.

Eigentlich sollte nettoplcsim dann aber nicht abstürzen. Um das Problem erstmal zu beseitigen würde mir ein Wireshark-Logfile der Kommunikation weiterhelfen, um zu sehen was der Braumat da so spezielles wissen will (Bier her...) ;-)

Alternativ kannst du es ja mal mit der Soft-SPS von Deltalogic testen. Die kommerzielle Version ist ja nicht so teuer. Ich weiß aber nicht ob diese in Zusammenhang mit PCS7 funktioniert.
 
Hallo Thomas,

also erstmal - Bier her ist kein Thema! ;)

Braumat setzt nicht auf PCS7 auf, es gibt jedoch mittlerweile Implementierungen wo beides gemischt wird.
PLCSim funktioniert generell mit Braumat wenn man auf MPI stellt und PLCSim auf dem Braumat-Server lokal läuft. Auch Siemens selbst nutzt das PLCSim zur Projektierung von Systemen.
Dies bringt jedoch viele Nachteile mit sich, der größte wohl, da dann nur eine Person an dem Projekt aktiv arbeiten kann.

Ich habe es schon mit etlichen SoftPLCs versucht, es ist jedoch bei allen gescheitert.
Alle anderen PLS werden bei uns auch mit einer SoftPLC von ABCIT projektiert und laufen problemlos.
Bei den bisherigen diversen Versuchen mit anderen SoftPLCs (auch Deltalogic) habe ich auch gesehen das größtenteils die ABCIT SoftPLC als Kern läuft (bei Deltalogic weiß ich es jetzt nicht genau).
Dort liegt das Problem darin das Braumat S7DOS Befehle nutzt die scheinbar von der SoftPLC nicht unterstützt werden.

Wenn Du nichts dagegen hast würde ich mal deinen zur Verfügung gestellten SourceCode nutzen und debuggen um zu sehen wo das Problem liegt!?
VS2010 C#?

Gruß
Matthias
 
Dort liegt das Problem darin das Braumat S7DOS Befehle nutzt die scheinbar von der SoftPLC nicht unterstützt werden.

Hast du Informationen wofür S7DOS benutzt wird? Bis jetzt war mir das völlig fremd. Aber wenn es mit Plcsim lokal funktioniert, sollte es ja generell erstmal davon unterstützt werden. Wenn man WinCCflexible lokal mit Plcsim testet nutzt dieses ebenfalls die S7online Schnittstelle, welche ich seit der 0.9.0 Version ebenfalls verwende.

Wenn Du nichts dagegen hast würde ich mal deinen zur Verfügung gestellten SourceCode nutzen und debuggen um zu sehen wo das Problem liegt!?
VS2010 C#?

Das kannst du gerne machen, ist komplett mit VS2010 C# (Express Version reicht) erstellt.

Das Hauptproblem liegt in der Schnittstelle die die S7onlinx.dll verwendet. Ich habe es erst mit Unterstützung von Jochen Kühner hinbekommen, diese aus .Net heraus direkt aufzurufen. Beim Datenaustausch gehe ich immer nach dem Schema send() in die dll rein, dann Daten mit receive() heraus vor. Darum kann momentan Plcsim selber nicht aktiv werden. Evtl. gibt es ja doch einen Weg aktiv zu werden, denn es ist zwar ein entsprechender Nachrichtenhandler (Winproc-Messages) registriert, aber hier kommen keine Nachrichten herein wenn man nicht vorher etwas angefragt hat. Zum Reverse-Engineeren habe ich eine tracer-dll mit der man die Aufrufe von anderen Programmen an diese dll mitloggen kann.
Evtl. wirst du in diesem Teil des Programmes ein paar nicht verwendete/auskommentierte Funktionen finden, die stammen alle vom ausprobieren verschiedener Aufrufe.

Aber wie gesagt, für einen einfachen Einblick was da so abläuft würde mir ein Wireshark-Log schonmal reichen. Evtl. liegt der Bug ja an anderer Stelle.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Bei PCS7 werden viele Telegramme von der SPS aus getriggert, Telegramme bei Variablenänderungen schicken, Bausteinmeldungen etc.
Das alles funktioniert mit Plcsim und dann in Zusammenspiel mit nettoplcsim leider nicht.
Hallo zusammen,
sorry, wenn ich mich da einmische: Nach meinem (zugegebenermassen beschränkten) Wissen stimmt das so nicht. WinCC ist genau dasselbe, ob es nun "direkt" an irgendeine Steuerung gekoppelt ist oder eben an eine S7 im Rahmen von PCS7. Aktiv gesendet werden nur Bausteinmeldungen (= ereignisgesteuerte Alarmmeldungen), und auch das hat mit PCS7 nichts zu tun - diese Bausteinmeldungen verschickt die S7 auch ohne PCS7, wenn die entsprechenden Bausteine programmiert sind. Diese Alarmmeldungen funktionieren z.B. auch an Panels mit WinCC Flexible.

Das Erkennen von Variablenänderungen ist meines Wissens immer - auch bei PCS7 - die Aufgabe von WinCC (Data Manager).

Ich selbst habe schon oft nettoplcsim benutzt, um eine Verbindung OS-plcsim in einer PCS7-Umgebung herzustellen; funktioniert problemlos - bis eben auf die aktiven Alarme.

Sorry für meine Klugscheisserei, aber ich will damit nur verhindern, dass andere dieses super Werkzeug nur nicht benutzen, weil irgendwo PCS7 steht.

Auch meiner Meinung nach müssen die Abstürze andere Ursachen haben.

Grüsse
Alfred
 
WinCC ist genau dasselbe, ob es nun "direkt" an irgendeine Steuerung gekoppelt ist oder eben an eine S7 im Rahmen von PCS7. Aktiv gesendet werden nur Bausteinmeldungen (= ereignisgesteuerte Alarmmeldungen), und auch das hat mit PCS7 nichts zu tun - diese Bausteinmeldungen verschickt die S7 auch ohne PCS7, wenn die entsprechenden Bausteine programmiert sind. Diese Alarmmeldungen funktionieren z.B. auch an Panels mit WinCC Flexible.

Das Erkennen von Variablenänderungen ist meines Wissens immer - auch bei PCS7 - die Aufgabe von WinCC (Data Manager).
Klar, aus PCS7 kommt ja letztlich ein S7-Programm heraus, aber eben mit vielen Magic-Bausteinen und Funktionen wo man nicht weiß was da intern abläuft.
Ein nacktes WinCC versucht bei entsprechenden Einstellungen im Systemtreiber ebenfalls die Variablen nicht zu pollen, sondern sich bei Änderungen die Daten von der SPS aus schicken zu lassen. WinCCflexible macht das für die Variablen von Alarmmeldungen prinzipiell genau so. Da verschiedene CPUs aber verschiedene Datenmengen an zyklischen Daten unterstützen (oder auch gar keine) wird dieses Mengengerüst normalerweise vorher über eine SZL-Abfrage von der CPU abgefragt und dementsprechend reagiert, d.h. auf Polling umgestellt. Plcsim antwortet in dieser SZL generell, dass es keine zyklischen Daten unterstützt. Da PCS7 nur mit 400er CPUs läuft, könnte ich mir vorstellen dass die einfach von entsprechenden Ressourcen in der SPS ausgehen.

Ich selbst habe schon oft nettoplcsim benutzt, um eine Verbindung OS-plcsim in einer PCS7-Umgebung herzustellen; funktioniert problemlos - bis eben auf die aktiven Alarme.

Ok, dass der Rest dann läuft ist schonmal gut zu hören.
 
Hast du Informationen wofür S7DOS benutzt wird? Bis jetzt war mir das völlig fremd. Aber wenn es mit Plcsim lokal funktioniert, sollte es ja generell erstmal davon unterstützt werden. Wenn man WinCCflexible lokal mit Plcsim testet nutzt dieses ebenfalls die S7online Schnittstelle, welche ich seit der 0.9.0 Version ebenfalls verwende.
Nein, darüber habe ich damals leider keine Informationen erhalten. Ist dabei aber auch im LOG des PLS aufgelaufen.

Ok, ich werde morgen mal ein Wireshark-Log erstellen und dir zukommen lassen.
Parallel dazu lasse ich den Debugger laufen und schaue an welcher Stelle das Problem auftaucht.
Falls ich was finde werde ich etwas testen und dich dann informieren da du wohl am besten weißt wie und was dazu geeändert werden müsste.

@Alfred:
Danke für die Infos das es mit PCS7 läuft, dann weiß ich für die Zukunft bescheid, da das bei uns auch noch ins Haus steht.

Gruß
Matthias
 
Zurück
Oben