Anlagen-Simulation mit der SPS (Teil 2)

Nachdem im ersten Teil die Simulation des virtuellen Reaktors programmiert wurde, fehlt nun noch eine Visualisierung der Anlage mit Hilfe derer auch die beiden Taster betätigt werden können.

Der wichtige Punkt hierbei ist, dass die Visualisierung die Daten im Instanz-Datenbaustein des aufgerufenen virtuellen Reaktors nutzen muss. Damit wird sichergestellt, dass die Visualisierung und der Simulationsbaustein unabhängig vom Rest der Steuerung bleiben.

In unserem Fall kann das HMI-Panel zum Beispiel auf die Variable %DB1.DI.S1 (sofern %DB1 der Instanz-Datenbaustein der Simulation ist) zugreifen, um einen Druck auf den Taster S1 zu simulieren.

Auf der anderen Seite kann die Visualisierung die Variable %DB1.Fuellstand nutzen, um den aktuellen Füllstand der Anlage darzustellen.

Genutzt werden kann natürlich jede Variable im Instanz-DB. Ein passendes Bild in WinCC könnte dann zum Beispiel so aussehen.

Der einfachste Weg die Visualisierung auf dem Computer ausführen zu können ist eine SIMATIC HMI Application zu erstellen anstelle eines HMI-Panels. Dafür wird allerdings WinCC Advanced benötigt. Der Rest dieses Artikels ist auch mit WinCC Basic umsetzbar.

Die Erstellung der Visualisierung sollte nun nicht weiter schwierig sein und ich will hier auch keine Anleitung geben, wie die einzelnen Schaltflächen und Anzeigen mit dem Instanz-Datenbaustein verknüpft werden. Da darf sich jeder selbst austoben.

Wichtig ist aber, dass die Visualisierung ausschließlich über den Instanz-Datenbaustein mit der Simulation kommuniziert.

Im Anhang gibt es ein kleines fertiges Projekt-Archiv (ab TIA V13 SP1) mit dem Baustein aus dem ersten Teil und dem oben abgebildeten HMI-Panel. Auch die nachfolgenden Änderungen sind dort schon mit eingearbeitet.

Unabhängigkeit schaffen

Derzeit müssen die Steuerung und die Visualisierung im selben TIA-Projekt liegen, da die Verbindung zwischen beiden vom TIA-Projekt verwaltet wird. Einfacher wäre es, wenn in der SPS nur die Simulationsbaustein angelegt werden muss, und die Visualisierung fertig übersetzt und eigenständig ausführbar vorliegt.

Dafür muss die HMI-Verbindung im TIA-Portal manuell projektiert werden und die Variablen im Instanz-Datenbaustein im besten Fall über Ihre absolute Adresse angesprochen werden. Für die manuelle Vernetzung kann nicht der Punkt Geräte & Netze im TIA genutzt werden, sondern nur die Verbindungen innerhalb der HMI Konfiguration.

Hier können nun eventuell vorhandene Verbindungen gelöscht eine manuelle Verbindung angelegt werden. Wichtig ist den zur Steuerung passenden Kommunikationstreiber einzusetzen. Danach kann im unteren Teil des Fensters die Quell- und Ziel-IP der HMI-Verbindung eingetragen werden. Die Quell-IP ist relativ unwichtig, daber die Ziel-IP sollte vorerst auf die IP der Steuerung zeigen. Diese kann später mit Hilfe eines Scriptes dynamisiert werden.

Um die HMI-Variablen auf diese Verbindung konfigurieren zu können, müssen die Variablen in der Steuerung absolut adressierbar sein. In der S7-1200 und S7-1500 Steuerung werden Datenbausteine aber in einem optimierten Format abgelegt. In diesem Format ist eine absolute Adressierung der Variablen im Datenbaustein nicht mehr möglich. Dafür muss der optimierte Bausteinzugriff in den Eigenschaften des FBs deaktiviert werden. Dadurch werden auch alle erzeugten Instanz-Datenbaustein nicht mehr optimiert angelegt.

Wenn der vorhandene Instanz-Datenbaustein nun neu übersetzt wird, sind die absoluten Adressen in der Spalte Offset des Datenbausteins zu finden.

Nun können die HMI-Variablen entsprechend erstellt bzw. angepasst werden. Es muss darauf geachtet werden, dass dies alles manuell eingegeben wird, da das TIA-Portal unter Umständen eine neue HMI-Verbindung anlegt, welche fest mit der Steuerung im Projekt verheiratet ist. Im folgenden Beispiel ist der Instanz-Datenbaustein mit der Nummer 800 angelegt worden.

Wenn die Runtime nun gestartet wird, versucht sie mit dem eingestellten Kommunikationstreiber eine Verbindung zur Ziel-IP der HMI-Verbindung aufzubauen und die angelegten Variablen über Ihre absolute Adresse zu erreichen.

Nun reicht es aus das HMI zu übersetzen und das generierte Runtime-Objekt zu sichern. Die nach dem übersetzen gesuchte Datei heißt pdata.fwc und liegt im Projekt-Ordner unter IM/HMI/<ID>/Generates/ und ist mit der WinCC Runtime ausführbar.

Kompilierte pdata.fwc Datei