Klassenmodell verhindert unnötigen Traffic

Bei Einzelzugriffen muss für jede Variable ein separates Telegramm erzeugt und zur SPS gesendet werden. Dieses Vorgehen führt zu Performance-Verlust und unnötigen Traffic auf der Leitung. Dieses Problem löst die Toolbox mit einem entsprechenden Klassenmodell (Bild 3). Per Definition handelt es sich bei den SPS-Zugriffen immer um die Kombination von Adress-Operand und Wert. Kapselt man diese Paare anhand der spezialisierten PlcValue-Klassen (Bild 5), so lassen sich innerhalb einer einzigen Transaktion n-verschiedene skalare Werte bzw. Arrays in beliebiger Kombination in die SPS schreiben oder von dieser lesen. Die Toolbox kollektiert die geforderten Transaktionen und generiert die kleinstmögliche Menge von benötigten Transporttelegrammen für die SPS. Dabei wird auch die maximale PDU-Size der Kummunkationsebene ausgeschöpft. Werden die Verweise auf die Value-Objekte in Variablen gemerkt, so lassen sich diese auch jederzeit wiederverwenden. Die Werte der Variablen können vor Aufruf von Write über die Value-Eigenschaft gesetzt werden. Nach Read-Aufrufen wird der Wert über die Value-Eigenschaft abgerufen. Initialwerte der PlcValue-Objekte können bereits beim Aufruf des Konstruktors festgelegt werden.

Verbindungen unter der Haube

Betrachtet man die PlcDeviceConnection-Klasse genauer, so finden sich u.a. Eigenschaften die den Typen, Zustand und Timeouts der Verbindung festlegen. Weiter finden sich noch zahlreiche andere Read- und Write-Methoden für den lesenden und schreibenden Zugriff auf die SPS (Bild 6). Wird eine mit Open geöffnete Verbindung nicht länger benötigt, sollte diese mit der Close-Methode wieder geschlossen werden. So werden die zur Kommunikation mit der SPS angeforderten Ressourcen wieder freigegeben. Die genaue Art des verwendeten Kanals lässt sich darüber hinaus über die Type-Eigenschaft festlegen. Hierzu stehen SPS-typisch die Kanäle Operationpanel (OP), Programmiergerät (PG) und Sonstige/SPS zur Verfügung. Die für die SPS spezifischen Daten wie der Gerätetyp, Rack und Slot werden hingegen auf der PlcDevice-Klasse über die EndPoint-Eigenschaft festgelegt. Die dafür entsprechenden Werte können darüber hinaus auch beim Erstellen des IPDeviceEndPoint Objektes im Konstruktor übergeben werden. In Sachen Fehlerbehandlung bedient sich die Toolbox am für Matlab üblichen Error-Handling. Kommt es somit bei der Kommunikation zu einen Fehler, so wird eine Matlab-Ausnahme (MException) erzeugt. Interessant ist auch, dass die Toolbox Verbindungen zur SPS automatisch wiederherstellt, sobald wieder möglich. Seien es Störungen im Netzwerk oder weil z.B. die SPS außer Betrieb war. Ein besonderes Szenario im Falle von Verbindungsproblemen bleibt somit dem Toolbox-Anwender erspart. Die Toolbox liest und schreibt alle Daten immer konsistent. Dadurch wird zum einen die Korruption von Daten in der SPS vermieden und zum anderen auch die Richtigkeit der Daten die gelesen werden sichergestellt.

Ausblick

Im Release 11/2015 implementiert Traeger die Integration von Siemens-Projekten wie dem Step7- und TIA-Projektformat. Eines der dabei adressierten Funktionen ist das automatische Bereitstellen von PlcDevice-spezifischen Informationen. Dazu gehören die Endpunkt Konfigurationen, die Baustein Daten und Symboltabellen. Sie ermöglichen den symbolischen Zugriff auf SPS-Variablen (Bild 5). Hierbei finden die vom SPS-Programmierer vorgegebenen symbolischen Namen Verwendung. Die S7-Toolbox für Matlab erlaubt durch die übersichtlichen Klassen und Schnittstellen einen schnellen Einstieg in die Ansteuerung der SPS in Matlab. Ob skalare Werte, Arrays oder gar gemischte Datentypen alle Kombinationen lassen sich einfach und schnell aus der SPS lesen und in diese zurückschreiben. Auch auf die Fehlerbehandlung wurde geachtet, so dass die Kommunikation stets stabil und passend durchgeführt wird. Hierbei werden sämtliche SPS-Datenformate wie Ganzzahl-, Fließkommazahl-, Datum-, Zeit- und S7-String-Werte unterstützt und können mit einer Zeile Code gelesen und geschrieben werden. Das zusätzliche dynamische Erzeugen der Adress-Operanden überzeugt hierbei auch in Sachen Parameterisierbarkeit.