Wenn du dich schon ein wenig mit der SPS Programmierung beschäftigt hast, dann wird dir je nachdem, was du alles an Software installiert hast, aufgefallen sein, dass es in der Siemens Welt 3 verschiedene PLCSim gibt.
Und diese werden wir uns jetzt ansehen und vergleichen, um das für uns beste Tool zu nutzen.
PLCSim Classic
Step 7 Simatic Manager
Das klassische PLCSim vom "Step 7 Simatic Manager" wird benötigt, wenn wir das Anwenderprogramm einer S7 300 oder S7 400 Steuerung simulieren und testen wollen.
Dabei ist es egal, ob die CPU tatsächlich noch klassisch im Simatic Manager projektiert wurde oder auch schon im TIA Portal.
In der einfachsten Form sieht das dann so aus, dass wir im Simatic Manager eine CPU anlegen und ein Mini-Programm schreiben, in dem der Ausgang A0.0 ein High Signal zugewiesen bekommt, wenn der Eingang E0.0 betätigt wurde.
TIA Portal
Wenn wir im TIA Portal eine CPU der Baureihe S7 300 oder S7 400 anlegen, wird selbst hier ebenfalls das alte PLC Sim vom TIA Portal aus geöffnet und verwendet.
Wichtig zu wissen ist, dass das alte PLC Sim automatisch mit dem TIA Portal mit installiert wird und du nicht unbedingt den Simatic Manager brauchst. Ich persönlich habe aber beides drauf, weil doch noch hin und wieder Programmieranfragen von sagen wir etwas in die Jahre gekommenen Anlagen reinkommen.
TIA Portal PLCSim
Bevor wir zum spannendsten Teil übergehen, lass uns vorher auch noch kurz das TIA Portal PLCSim ansehen.
Dieses benötigen wir vermutlich am häufigsten und es wird benötigt, um die CPU Typen der 1200er und der 1500er-Reihe zu simulieren.
Dazu habe ich auch bereits ein ausführliches Video erstellt, welches ich dir ans Herz legen kann, wenn du erfahren möchtest, wie du Simulationstabellen und Simulationssequenzen anlegen kannst.
Was ich da aber nicht gesagt habe, ist dass du damit auch 2 CPUs auf einmal simulieren kannst.
Des Weiteren ist es mit Einschränkungen auch möglich, eine simulierte TCP/IP Verbindung herzustellen und eine Verbindung zu einer anderen CPU aufzubauen.
Damit die Lektion an dieser Stelle aber nicht zu lange wird, möchte ich dir die verschiedenen Kommunikationswege gerne ausführlich in einem separaten Video zeigen.
PLCSim Advanced - Einleitung und Download
Einleitung
Dieses Simulationstool arbeitet als eigenes unabhängiges Programm und du kannst deine SPS Programme auf einem virtuellen Controller simulieren und benötigst dafür keine reale SPS.
Sprich, du bereitest dein Anwenderprogramm im TIA Portal vor und lädst es anschließend in den virtuellen Controller, um zu testen, ob dein Programm auch so funktioniert, wie du dir das vorgestellt hast.
Bis dahin scheint alles gleich wie beim normalen PLC Sim zu sein und zugegeben für viele wird das auch reichen.
Der Vorteil vom Advanced ist jetzt, dass dieses Programm einer echten CPU sehr stark nachempfindet und dem tatsächliche Verhalten einer realen CPU sehr nahekommt.
Auch hast du einen zusätzlichen virtuellen Ethernetanschluss, mit dem auch nach außen kommuniziert werden kann, während das normale PLC Sim eigentlich nur das Anwenderprogramm simuliert.
Das bedeutet, dass du nicht nur mit anderen Geräten eine Kommunikation testen, sondern über die Anwenderschnittstelle (API) auch eine eigene Interaktion mit selbst geschriebenen C++ oder C# Programmen oder mit einer weiteren Simulationssoftware herstellen kannst.

Wie du dir schon denken kannst ist das der Startschuss zur virtuellen Inbetriebnahme und einem digitalen Zwilling mit zum Beispiel Simit und NX MCD.
Dazu aber ein andermal mehr, jetzt kümmern wir uns erstmal um die Basics und wie wir das Tool handhaben.
Download
Das Tool PLC Sim Advanced kann über die Siemens Webseite ganz normal geladen und für die ersten 21 Tage nach der Aktivierung kostenlos ausprobiert werden.
Nur so am Rande, weil es dazu hin und wieder Fragen gibt. Du kannst dich auch als Privatperson registrieren und dir alle trialfähigen Programme laden und damit 21 Tage kostenlose üben.
Während die Installation läuft, möchte ich dir noch ein paar Informationen mitgeben.
Und zwar kannst du mit PLC Sim Advanced bis zu 16 CPUs auf einmal simulieren, aber du musst beachten, dass jede CPU Instanz einen Kern der echten PC CPU für die Simulation reserviert und jede Instanz auch 1GB RAM Arbeitsspeicher benötigt.
Die meisten aktuellen Rechner sollten für eine normale Simulation mit 2,3 oder 4 SPSen zwar kein Problem haben, aber bei 16 Instanzen verlangt das schon sehr viel Hardware Performance.
Im Laufe des Videos zeige ich dir aber auch noch, wie du die Anwendung auf mehrere Rechner verteilen kannst und dann sollten selbst sehr anspruchsvolle Anwendungen locker möglich sein.
Weiters können nur CPUs der 1500er Baureihe und da auch nicht alle simuliert werden.
Welche das genau sind und welche weiteren Einschränkungen es gibt findest du im Siemens Dokument unter dem Video verlinkt, wobei mit den nächsten Updates bestimmt auch weitere CPUs hinzukommen werden.
Und wenn wir schon dabei sind. In meinen Videos versuche ich dir immer die wichtigsten Informationen mitzugeben, damit du gleich durchstarten kannst, aber es gibt auch immer Sonderanwendungen, die ich allein schon aus Zeitmangel nicht behandeln kann.
In diesem Fall werde ich auf die API nicht im Detail eingehen, weil 99% der Programmierer inkl. mir nicht damit arbeiten werden. Wenn du aber zu den restlichen 1% gehörst, dann empfehle ich dir auf alle Fälle die offizielle Dokumentation.
PLCSim - Softbus
PLC Sim Advanced wurde nun installiert und dass ich nur dieses eine Programm geöffnet habe, soll nochmal verdeutlichen, dass es im Stand-Alone-Betrieb läuft und nicht mit dem klassischen PLC Sim vergleichbar ist. Denn das TIA Portal wird sich annähernd so verhalten, als ob tatsächlich eine echte CPU angeschlossen wäre.
Auch wenn es an dieser Stelle noch zu früh ist, arbeiten auch weiterführende Simulations- und Verhaltensmodelle wie Simit nach dem gleichen Prinzip. Das Ziel dabei ist im TIA Portal so zu tun, als würden wir mit der realen Hardware arbeiten, während rundum alles vorgetäuscht wird.
Jetzt aber wieder zurück zum PLC SIM Advanced und der Programmoberfläche.
Ganz oben sehen wir einen Schieberegler, mit dem wir zwischen PLCSIM sowie PLCSIM Virtual Ethernet Adapter hin und her wechseln und damit den Kommunikationsweg bestimmen können.
Steht der Regler nur auf PLCSIM, dann wird nur das interne Softbus Protokoll benutzt.
Der Vorteil dabei ist, dass das Anwenderprogramm nicht versehentlich in eine Hardware CPU heruntergeladen werden kann. Denn mit anderen Einstellungen ist es auch möglich, dass zum Beispiel 2 echte CPUs und eine Instanz mit PLC Sim Advanced im Netz sind und diese miteinander arbeiten.
Für einfache Simulationen, die nicht weiter nach außen kommunizieren müssen, reicht diese Einstellung bereits vollkommen aus.
Um nun eine solche Instanz anzulegen, brauchen wir nur noch einen Instanz-Namen für die virtuelle SPS anzugeben und zu starten, wobei es wahrscheinlich sinnvoll ist, den Profinet-Namen der SPS zu verwenden.
Mit der erstellten SPS Instanz sollte sie nun aus dem TIA Portal erreichbar sein.
Und wenn sie das ist, dann können wir das Projekt auch bereits laden und ganz normal testen, wie wir das auch schon vom normalen PLC Sim kennen.
Blöd ist jetzt aber wenn du die IP Adresse im Projekt ändern musst. Denn dann kannst du das Programm leider nicht mehr auf den virtuellen Controller übertragen, auch wenn er unter den erreichbaren Teilnehmern noch sichtbar ist.
Auch ein Löschen und neu Anlegen der Instanz bringt in diesem Fall nichts, weil unter dem Instanz-Namen diese IP hinterlegt ist.
Um doch noch weitermachen zu können, kannst du entweder die IP zurückändern, eine neue Instanz mit einem anderen Namen anlegen oder du löschst die virtuelle Speicherkarte, welche ähnlich wie eine echte CPU Speicherkarte ist.
Solltest du mehr als eine CPU über diesen Weg testen wollen, dann ist es ratsam, die PLC Instanzen nach und nach anzulegen sowie die Anwenderprogramme dann auch nach und nach zu laden, weil defaultmäßig immer dieselbe IP voreingestellt ist.
PLCSim Virtual Ethernet Adapter - lokal
Dann hätten wir die normale Verbindung über den internen Softbus soweit durch und
stellen wir den Regler auf PLCSIm Virtual Ethernet Adapter, dann befinden wir uns auch schon beim TCP/IP Protokoll und können einen OPC UA Kommunikation testen.
Jedoch mit der Einschränkung, dass die Kommunikation nur lokal auf dem Rechner stattfindet, auf welchem auch PLC Sim Advanced läuft.
Wichtig ist auch noch, dass beim Erstellen einer Instanz die IP Adresse und Subnetzmaske mit angegeben werden muss, damit wir vom TIA Portal aus darauf zugreifen können.
Ist das erledigt, dann kannst du das Programm wie vorhin auch auf den virtuellen Controller laden und testen.
Allerdings mit dem Unterschied, dass der „PLC Sim Virtual Ethernet Adapter“ ausgewählt werden muss.
PLCSim Virtual Ethernet Adapter - Ethernet
Die meisten Möglichkeiten haben wir aber erst mit einer verteilten TCP/IP Kommunikation, welche über deine reale Netzwerkkarte läuft.
Das könnte zum Beispiel so aussehen, dass auf Rechner eins zwei virtuelle Instanzen laufen, auf einem zweiten Rechner noch zwei weitere Instanzen und eine SPS ist tatsächlich physisch vorhanden.
Ein dritter PC könnte sich dann tatsächlich mit allen virtuellen und mit der echten SPS zur selben Zeit verbinden, solange alles zusammen vernetzt ist und auch der virtuelle Switch konfiguriert wurde.
Die PLC Sim Advanced Instanzen an einen anderen Rechner auszulagern kann auch Sinn machen, um die Ressourcen des eigenen Rechners zu schonen oder wenn du mit mehreren Programmierern an einem Projekt arbeitest und ihr nicht zur exakt selben Zeit euren Tag beginnt und aufhört.
Unter Umständen kann es auch sein, dass die Programmbibliothek WinPcap eine verteilte WLAN Kommunikation blockiert.
Warum das so ist kann ich aber leider nicht sagen. Bei manchen Netzwerkkarten geht die WLAN Kommunikation ohne Probleme und bei anderen nicht. Aber naja. Vielleicht wird es mit den nächsten Updates besser.
Lass uns zusammen einen einfachen Versuchsaufbau machen und dann testen wir, wie das funktionieren kann.
Als erstes hat bei mir die WLAN Kommunikation leider auch nicht geklappt, weshalb ich den Rat der Siemens Hilfe befolgt habe und die Geräte mit LAN verkabelt habe.
Remote Rechner
Nun wechsle ich auf den Rechner, auf dem die PLC Sim Advanced Instanz laufen wird, und prüfe die Netzwerkadaptereinstellungen unter Systemsteuerung --> Netzwerk und Freigabecenter --> und Adapter Einstellungen ändern.
In den Eigenschaften des Adapters, an dem das LAN Kabel angeschlossen ist, als auch am virtuellen Ethernetadapter muss unbedingt der Hacken bei „Siemens PLCSIM Virtual Switch“ gesetzt sein, damit die PLC Sim Advanced Instanz auch im Netzwerk sichtbar wird.
Die eigentlichen IP Adressen habe ich automatisch beziehen lassen und nicht manuell vergeben.
Wenn das bei dir, warum auch immer, nicht klappt, dann kannst du sie auch manuell eingeben.
Dann starte ich noch die virtuelle Instanz und wenn diese auch läuft, können wir wieder auf den Hauptrechner zurückwechseln.
Hauptrechner
Hier deaktiviere ich den virtuellen Adapter so, als ob ich hier gar kein PLC Sim Advanced installiert hätte, weil es sonst zu komischen Fehlermeldungen führen kann.
Bei der physisch vorhandenen Netzwerkkarte lasse ich die IP Adresse wieder automatisch vergeben, aber du kannst auch manuell eine IP Adresse im Netzwerk vergeben. Bitte nimm aber nicht jene von der virtuellen CPU, weil sonst zwei Geräte im Netzwerk dieselbe IP haben und es so zu einem IP Adressen Konflikt kommt.
Nun sollte die virtuelle SPS auch schon über die reale Netzwerkkarte sichtbar sein und das Programm kann geladen werden.
Strict Motion Timing und Virtual Time Scaling
Im Großen und Ganzen haben wir die wichtigsten Funktionen auch schon besprochen.
Was ich dir noch vorenthalten habe ist das „Strict Motion Timing“ und das „Virtual Time Scaling“.
Tja, um ganz ehrlich zu sein, kann ich über das „Strict Motion Timing“ bis jetzt noch gar nicht viel sagen, aber sobald ich den Kurs über die Antriebstechnik fertig habe, werde ich mit Sicherheit auch Wissen was es damit auf sich hat.
Das „Virtual Time Scaling“ hingegen kenne ich schon und ich denke ich kann auch ein paar Worte darüber sagen.
Der virtuelle Controller nutzt für die Simulation des Anwenderprogramms wie zyklische Obs, Systemzeiten, Zeitberechnungen und dergleichen eine virtuelle Uhr.
Diese virtuelle Uhr kannst du mit dem Faktor verlangsamen oder beschleunigen, um zu prüfen wie sich dein Programm verhält.
Bitte beachte aber, dass das Windows Betriebssystem diesen Faktor auch vorübergehend unterbrechen kann.
Und nur so am Rande gibt es zusätzlich noch eine reale Uhr, welche unverändert immer gleich läuft und unter anderem für die Kommunikation mit Step 7 benötigt wird.