Matlab goes Simatic S7

Die Software Matlab und Simulink ist etabliert für Simulation und Diagnose in der Automatisierungsbranche. Bis dato fehlte in dieser Umgebung aber das notwendige Interface, um mit Simatic-S7-Steuerungen Prozessdaten auszutauschen. Eine neue Toolbox für Matlab liest und schreibt Daten der Steuerungsfamilien Simatic S7-1500, 1200, 300, 400, Logo! sowie kompatibler Systeme ohne SPS-Programm - via direkten Datenzugriff - auch symbolisch.

Die Firma Traeger Industry Components liefert mit IP-S7-Link .Net Advanced eine Toolbox für Matlab, die sich nahtlos ins System integriert und komfortablen Zugriff auf sämtliche Daten der S7-Steuerung ermöglicht. Die Adressierung der Variablen erfolgt dabei gemäß IEC61131-3. Beispielsweise könnte ein Datenbaustein in der SPS zur Simulation des gesamten Prozesseingangsbereiches dienen. Dazu müsste im SPS-Programm lediglich am Zyklusbeginn der Baustein ins Prozessabbild kopiert werden. So könnten über Matlab, durch Änderung der DB-Daten, die Eingangswerte simuliert werden.

Sammlung implementierter Objekte

Die auf den IP-S7-Link-.Net-Software-Treiber basierende Toolbox stellt eine Sammlung von in Matlab implementierten Objekten bereit (Bild 3). Mit-hilfe dieser lässt sich mit wenigen Zeilen Matlab-Code die Kommunikation mit der SPS realisieren. Das Interface an sich ist dabei komplett objektorientiert implementiert. Auf der Webseite des Anbieters kann eine 14 Tage lauffähige unverbindliche Testversion heruntergeladen werden. Zur Installation muss der Anwender lediglich das heruntergeladene Archiv gemäß den Anweisungen in der Readme.txt einrichten. Der im Folgenden beschriebene Umgang mit der Toolbox beschränkt sich auf das Command Window von Matlab. Zum Test bietet der Hersteller seinen Kunden auf Wunsch auch einen Zugang per Internet auf eine S7-SPS. So lässt sich der Erfolg der ausgeführten Methode sofort nachvollziehen. Das erste zu erstellende Objekt ist vom Typen SiemensDevice. Dabei spielt es für die Toolbox keine Rolle, ob es sich bei der SPS um eine S7-300, S7-400, S7-1200, S7-1500 bzw. eine Logo! handelt. Wurde erst einmal der entsprechende Endpunkt der SPS (IP-Adresse, Rack und Slot) definiert, kann die verbindungsorientiere Interaktion mit der SPS beginnen. Hierzu bietet das zuvor definierte Device-Objekt die CreateConnection-Methode an (Bild 2). Das dabei bereitgestellte PlcDeviceConnection-Objekt übernimmt schließlich die Kommunikation mit der SPS via ISO on TCP. Zu beachten ist, dass sich die Verbindung aktuell im Zustand Created befindet. Vor dem ersten Zugriff auf die SPS muss somit per Aufruf der Open-Methode die Verbindung geöffnet werden (Bild 2). Die tatsächliche Verbindung zur SPS wird letztendlich beim ersten Aufruf einer Methode durchgeführt die eine direkte Interaktion mit der SPS voraussetzt. Eine solche Methode wäre z.B. ReadByte oder WriteByte der PlcDeviceConnection-Klasse.

Lesen und Schreiben von Werten

Unter Einsatz eines PlcDeviceConnection-Objektes lassen sich sowohl einzelne Werte (skalar) als auch ganze Arrays aus der SPS lesen und auch wieder in diese zurückschreiben (Bild 4). Hierzu stehen datentypspezifische Read&Write-Methoden sowie die allgemeinen ReadValues- und WriteValues-Methoden zur Verfügung. Die dabei zu adressierenden Speicherbereiche der SPS lassen sich im typischen Adress-Operanden-Format gemäß dem IEC61131-3 angeben. Die dabei an die Toolbox übergebene PlcAddress wird gemäß dem Standard validiert und auf Kompatibilität mit dem zu lesenden bzw. schreibenden Speicherbereich geprüft. Alternativ kann der Adress-Operand auch dynamisch über die Klassen PlcAddress und PlcOperand im Code erzeugt werden (Bild 4). Bei Verwendung der dynamischen Erzeugung der absoluten Adress-Operanden wird an Stelle des Text-Operanden das PlcAddress-Objekt übergeben. Im Vergleich zum Zugriff auf skalare Werte muss beim Zugriff auf mehrere Werte vom gleichen Datentyp lediglich die Anzahl der zu lesenden Elemente nach dem Adress-Operanden übergeben werden. Beim Schreiben von Werten in die SPS bedient man sich der Write-Methoden der PlcDeviceConnection-Klasse. Im Gegensatz zu den Read-Methoden wird zusammen mit dem Adress-Operanden der zu schreibende Wert an die Methode übergeben. Auch hier lassen sich die dynamisch per Matlab-Code erzeugten Adress-Operanden verwenden. Auch ganze Arrays lassen sich über die selbigen Write-Methoden direkt in die SPS schreiben. Hierzu übergibt man an Stelle der einzelnen Zahl die entsprechende Array Variable oder definiert die Array Werte inline beim Aufruf der Methode (Bild 4). Das Besondere daran ist, dass die Toolbox dabei keinen Unterschied zwischen einem einfachen Array oder einem Cell-Array in Matlab macht. Beide Array-Typen werden gleich behandelt und führen zum selben Schreibergebnis. Die bisher erwähnten Zugriffe bezogen sich immer auf Datenbausteine. Die Toolbox bietet ebenso Zugriff auf Merker, Timer, Zähler sowie E/As und den Peripheriebereich der SPS. Hierzu verwendet man z.B. für einen Merker die Eigenschaft Flag der PlcOperand-Klasse anstelle der Methode DataBlock, die die Nummer des zu adressierenden Datenbausteins erwartet.

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.

Seiten: 1 2Auf einer Seite lesen

Traeger Industry Components GmbH
http://www.traeger.de

Das könnte Sie auch Interessieren

Weitere Beiträge

Bild: Ceratizit Deutschland GmbH
Bild: Ceratizit Deutschland GmbH
Werkzeuge – immer passend

Werkzeuge – immer passend

Eine digitalisierte Fertigung hat viele Gesichter… und Recker Technik aus Eschweiler setzt ihr auf jeden Fall einen Smiley auf. Dort bringt die Produktion mit digitalen Zwillingen mehr Effizienz in den Alltag sowie gleichzeitig mehr Überblick über das Toolmanagement und die Werkzeugkosten. Mit dabei: Zwei Tool-O-Maten, die intelligenten Werkzeugausgabesysteme von Ceratizit – dank denen immer das passende Werkzeug für den Job zur Hand ist.

mehr lesen
Bild: Hainbuch GmbH
Bild: Hainbuch GmbH
„Wie passende Spanntechnik die Automation voranbringt“

„Wie passende Spanntechnik die Automation voranbringt“

Zunehmend individuellere Kundenanforderungen, mehr Schwankungen im Auftragseingang und weniger Fachkräfte – diese Faktoren beeinflussen die Fertigungsplanung zunehmend. Gerade bei kleinen Herstellungschargen mit Losgrößen unter 100 macht in diesem Spannungsfeld die Automatisierung, etwa von Hainbuch, den Unterschied. Ein entscheidender Ansatzpunkt in der Umsetzung ist neben Maschine, Roboter und Bediener der Rüst- und Spannprozess.

mehr lesen
Bild: Schunk SE & Co. KG Spanntechnik
Bild: Schunk SE & Co. KG Spanntechnik
Futter für die Ewigkeit

Futter für die Ewigkeit

Siemens Energy setzt für die Präzisionsbearbeitung an einer Horizontaldrehmaschine Magnos Elektropermanent-Magnetspannfutter von Schunk ein. Dank der gleichmäßig dauerhaft wirkenden Magnetspannkraft erfolgt das Spannen der Werkstücke deformations- und vibrationsarm – für eine ausgezeichnete Bearbeitungs- und Oberflächenqualität. Mit der zugehörigen App lässt sich die Spannsituation simulieren und sicher parametrieren.

mehr lesen