-

Matlab®-Integration in PLCnext Engineer

Dieses Hilfekapitel bietet folgende Informationen:

Allgemeine Informationen über Matlab®-Bibliotheken

Mit PLCnext Technology-Steuerungen und PLCnext Engineer lassen sich Matlab®-Modelle integrieren.

Solche Modelle müssen in der Matlab®-Umgebung als Bibliothek (*.pcwlx) exportiert werden. Anschließend können Sie diese in Ihrem PLCnext Engineer-Projekt einbinden und auf der PLCnext Technology-Steuerung ausführen. Auf diese Weise stehen das modellbasierte Design sowie die vielseitigen Möglichkeiten zur Simulation von Matlab® auch für Automatisierungsprojekte in der PLCnext Technology-Plattform zur Verfügung.

Hinweis
Um ein Matlab®-Modell als PLCnext Engineer-Bibliothek exportieren zu können, ist in Matlab® das Software-Add-on für PLCnext Technology-Steuerungen von Phoenix Contact erforderlich.

Weitere Infos
Detaillierte Information zum Installieren des Software-Add-on und Exportieren eines Matlab®-Modells für PLCnext Technology-Steuerungen in Matlab® finden Sie im Benutzerhandbuch "Software-Add-on zur Einbindung und Ausführung von MATLAB®-Modellen auf Remote Field und Axioline F Controllern".

Eine PLCnext Engineer-Modellbibliothek enthält das generierte Matlab®-Programm als PLCnext-Komponente in C++ Code. Außerdem enthält die Bibliothek Metadaten, die es ermöglichen, den Code in PLCnext Engineer in speziellen Matlab® Viewern anzuzeigen und den extern erzeugten C++ Code zu überwachen.

Die folgenden Matlab®-Codetypen werden unterstützt:

Für jeden Codetyp gibt es einen speziellen Viewer. Weitere Informationen hierzu finden Sie im Thema "Matlab® Viewer in PLCnext Engineer".

Hinweis
Benannte Matlab®-Objekte werden auch in der Querverweisliste gesammelt. Der Pfad zum entsprechenden Submodul/Subprogramm wird in der Spalte 'Ort' angezeigt.

Multirate-Programme bestehend aus mehreren Teilprogrammen

Ein Matlab®-Programm kann aus mehreren Teilprogrammen bestehen. Jedes Teilprogramm muss separat instanziiert werden. Teilprogramme können unterschiedlichen Tasks (desselben ESM) zugewiesen sein, wodurch in einem Modell unterschiedliche Aktualisierungszyklen möglich sind. Solche Programme werden als Multirate-Programme bezeichnet.

Ein Multirate-Programm muss in Matlab® entsprechend strukturiert werden und die Update-Zyklen müssen dort für jedes Teilprogramm festgelegt werden. Beim Erzeugen (Exportieren) der PLCnext Engineer-Bibliothek in Matlab® werden diese Teilprogramme als separate Subknoten (Subprogramme) angelegt. Nach Einbinden der Bibliothek erscheinen diese Elemente dann im KOMPONENTEN-Bereich. Solche Typen erkennen Sie am -Symbol.

Im Code Viewer werden die Subprogramme in unterschiedlichen Farben angezeigt. Der Name des Subprogramms enthält den erforderlichen Taskzyklus. Sie müssen in PLCnext Engineer mehrere Tasks mit den benötigten Zykluszeit:en anlegen und die Subprogramme wie nachfolgend beschrieben instanziieren.
Lesen Sie hierzu auch den Abschnitt "Matlab®-Code in ihrer Solution integrieren".

Matlab®-Code in ihrer PLCnext Engineer-Solution integrieren

  1. Fügen Sie die Bibliothek in der Kategorie 'Bibliotheken' des KOMPONENTEN-Bereichs ein:
    Rechtsklicken Sie auf den Ordner 'Bibliotheken', wählen Sie im Kontextmenü 'Anwenderbibliothek einfügen...' und suchen Sie nach der Bibliotheksdatei.

    Die in der Bibliothek enthaltenen Programme sind anschließend im KOMPONENTEN-Bereich unter 'PLCnext Komponenten & Programme' verfügbar. Sie sehen dort einen Ordner mit allen in der Bibliothek enthaltenen Programmen.

    Simulink®-Programme, Stateflow Charts und Truth Tables-Modelle besitzen dasselbe Symbol:
    Enthält die Bibliothek ein Multicore-Programm (mit Subprogrammen), werden die einzelnen Subprogramme jedoch separat mit dem -Symbol angezeigt. Beide Szenarien sind im folgenden Beispiel dargestellt.

    Beispiele

  2. Instanziieren Sie das externe Matlab®-Programm wie folgt:
    1. Doppelklicken Sie in der ANLAGE auf den 'PLCnext'-Knoten und öffnen Sie den Editor 'Tasks und Events'.
    2. Legen Sie in der 'Tasks und Events'-Tabelle ggf. einen neuen Task an. Beachten Sie bei Multicore-Steuerungen, dass Tasks unter dem entsprechenden Kern (ESM-Knoten) definiert werden müssen.

      Wenn Sie Matlab®-Multirate-Subprogramme instanziieren, setzen Sie die Zykluszeit: jedes Task auf den Wert, der im Namen des zugewiesenen Subprogramms erscheint. Für das Multirate-Programm im oben gezeigten Beispiel müssten Sie vier zyklische Tasks anlegen und das Intervall auf die Werte 10 ms, 120 ms, 200 ms und 40 ms setzen. Diese Instanziierung ist im nachfolgenden Beispiel gezeigt.

    3. Linksklicken Sie in der Task-Tabelle in das Feld 'Programmtyp' (dieses zeigt den Text 'Programmtyp wählen') oder bewegen Sie den Tabellencursor mit Hilfe der Pfeiltasten oder <Tab>/<Umschalt>+<Tab> auf dieses Tabellenfeld und drücken Sie die <Eingabe>-Taste. Wählen Sie in der Rollenauswahl links in der Baumstruktur einen Ordner und anschließend rechts das Programm. Bestätigen Sie mit der <Eingabe>-Taste.

      Durch das Auswählen und Einfügen des Programms in die Tabelle wird eine Programminstanz erzeugt. Den Standardinstanznamen können Sie bei Bedarf ändern.

      Wenn Sie Matlab®-Multirate-Subprogramme instanziieren, stellen Sie sicher, dass für die erzeugte Instanz die richtige Zykluszeit eingestellt ist. PLCnext Engineer überprüft Ihre Taskkonfiguration entsprechend und verifiziert, dass das eingestellte Taskintervall der empfohlenen Aktualisierungsrate entspricht, die im Matlab®-Code eingestellt ist. (Die Rate wird im Namen des Subprogramms angezeigt.) In der Task-Tabelle werden solche Subprogramminstanzen mit dem Symbol angezeigt.
      Wenn Sie eine ungültige Zykluszeit einstellen, wird eine entsprechende Warnmeldung ausgegeben.

      Beispiel: Instanziierung von mehreren Subprogrammen eines Matlab®-Multirate-Programms

  3. Öffnen Sie die GDS-Portliste des 'PLCnext'-Knotens. Die Liste enthält die Ports, die im Projekt vorhanden sind. Hier stehen nun auch die Ports des neu instanziierten externen Programms zur Verfügung (mit Ausnahme von Modell-internen Testpunkten) und können anderen Ports von IEC 61131-3-konformen Programmen oder nicht-IEC 61131-3-Programmen zugeordnet werden.

    • Mappen Sie Eingänge des Matlab®-Modells auf OUT-Ports Ihrer PLCnext Engineer-Applikation.
    • Mappen Sie Ausgänge des Matlab®-Modells auf IN-Ports Ihrer PLCnext Engineer-Applikation.

    Beispiel

    Sie können auch die Portliste der Programminstanz öffnen. Erweitern Sie dazu den jeweiligen ESM- und Task-Knoten in der ANLAGE und doppelklicken Sie auf das instanziierte Modell.

    Beispiel

    Die Rollenzuordnung von IN- und OUT-Ports ist im Thema "GDS-Portlisten" beschrieben.