Temperature Controller
Beschreibung
Im folgenden Beispiel werden die Grundlagen aus dem Beispiel „TemperatureController_minimal“ durch folgende Elemente erweitert:
Überblick Projektverzeichnis
TE1400Sample_TemperatureController enthält alle Dateien für dieses Beispiel:
TctSmplTempCtrl.mdl | erweiterter (aber immer noch sehr einfacher) Temperaturregler. |
TctSmplCtrlSysPT2.mdl | sehr einfaches PT2 Modell für die Regelstrecke. |
TctSmplClosedLoopCtrl.mdl | Modell eines geschlossenen Regelkreises, das durch Referenzieren der Reglermodelle und der Regelstrecke implementiert wurde. |
TctSmplTempCtrlParameters.mat | enthält alle notwendigen Modellparameter. |
TctSmplTempCtrlBusObjects.mat | enthält alle notwendigen Simulink BusObjects (Strukturdefinitionen). |
_PrecompiledTcComModules | Dieses Unterverzeichnis enthält bereits fertig kompilierte, aus den beiliegenden Simulink-Modellen erzeugte TwinCAT-Module. Diese erlauben es, die Einbindung eines Moduls in TwinCAT ohne vorherige Modulgenerierung auszuprobieren. Sie können z. B. genutzt werden, wenn beispielsweise noch keine MATLAB-Lizenz vorhanden ist. Eine Kurzanleitung zur Installation der Module auf dem Entwicklungsrechner liegt ebenfalls bei. Info: Um das Modul auf einem x64-Zielsystem starten zu können, muss dieses in den Testmodus versetzt werden! |
_PreviousSimulinkVersions | Die oben beschriebenen MDL-Dateien sind im Datei-Format der aktuellen Simulink-Version gespeichert. Dieses Unterverzeichnis enthält die Modelle im Datei-Format älterer Simulink-Versionen. |
Parameterzugriff
TctSmplTempCtrl.mdl hat keine eingebetteten Parameterwerte (inline parameters), d.h. die Parameterwerte sind in der entsprechenden Modellparameterstruktur gespeichert. Darüber hinaus ist der Modulgenerator unter dem Karteireiter TCT Advanced der Codereinstellungen so konfiguriert, dass ADS-Zugriff auf die Parameter und die Erzeugung von ADS-Symbolen erlaubt sind. Damit ist aus TwinCAT Scope View oder anderen ADS-Clienten ADS-Zugriff möglich. Der Karteireiter Block diagram in TwinCAT XAE ist ein ADS-Client und der Zugriff auf seine Parameter hängt an diesen Einstellungen.
Wenn die Option Inline parameters ohne weitere Konfigurationen aktiviert ist sind alle Parameterwerte in den generierten Modulcodes fest vorgegeben. Über die Schaltfläche Configure... neben Inline parameters kann ein Konfigurator geöffnet werden, in dem Sie Variablen des MATLAB Arbeitsbereichs auswählen können, die im generierten Modul einstellbar bleiben sollen:
Im gezeigten Beispiel bleiben nur die Arbeitsbereichsvariablen Kp und Tn einstellbar, somit sind auch nur die von diesen Variablen abhängigen Simulink Blockparameter einstellbar. Die Parameterstruktur ist auf diese beiden Elemente reduziert.
Weitere Informationen zu parameter inlining, siehe
Simulink Dokumentation.
Verwendung von Bus-Objekten
Mit Simulink BusObjects ist ein Zugriff auf in Simulink generierte TwinCAT Module über strukturierte Symbole möglich. Das vorliegende Beispiel enthält ein vordefiniertes BusObject namens MonitoringSignalsType. Es ist eine Ausgabestruktur, d.h. es weist die enthaltenen Signale einem SPS-Modul zu.
Die Konfiguration eines BusObjects wird durch Doppelklick auf den BusCreator Block gestartet. Um den Bus Editor zu starten, klicken Sie im Begrüßungsfenster auf die Bearbeiten Schaltfläche, wie in nachfolgender Abbildung gezeigt. Weitere Informationen zur Verwendung von BusObjects finden Sie in der Simulink Dokumentation.
Bei der Instanziierung des generierten Moduls in einem TwinCAT Projekt wird das spezifizierte BusObject als globaler TwinCAT Datentyp in das TwinCAT Projekt importiert. Dieser Datentyp wird vom generierten Modul selber für die Darstellung der Ausgabestruktur verwendet, kann aber auch von anderen Modulen wie eine SPS verwendet werden, die z. B. mit dieser Ausgabestruktur verknüpft wird.
Verwendung von Testpunkten
Sie können in Simulink auf Signalen Testpunkte festlegen, die z. B. von Simulink "Floating Scope" überwacht werden. Signale mit solchen Testpunkten werden bei Verwendung des TwinCAT Target Modulgenerators zwingend als Membervariable des generierten TwinCAT Moduls deklariert. Dadurch wird ADS-Zugriff auf das Signal möglich. Weitere Informationen zu Testpunkten siehe Simulink Dokumentation.
In diesem Beispiel wird mit dem Model Explorer ein Testpunkt für die Regeldifferenz e definiert:
Zur Freigabe von ADS-Zugriff, internal block output in den Codereinstellungen unter dem Karteireiter TCT Advanced ermöglichen:
So können Sie z.B. mit TwinCAT Scope View beim Ausführen des generierten TwinCAT Moduls auf das Signal mit Testpunkten und einige weitere Blockausgangsvariable zugreifen.
Verwendung von referenzierten Modellen
Öffnen Sie das Modell TctSmplClosedLoopCtrl.mdl, das zwei Modellreferenzen enthält. Referenzierte Modelle sind der bekannte Temperaturregler und ein einfaches P-T2 Modell einer Temperaturregelstrecke.
Ein solche Modellreferenzierung hat einige Vorteile, generell oder auch in Kombination mit TwinCAT Target. Zwei Grundmöglichkeiten für strukturierte Modellierung und, insbesondere in diesem Beispiel, für Reglergestaltung sind:
Simulation zur Optimierung des Reglers: | Optimieren des Reglerdesigns durch Simulation des Regelkreises mit MATLAB/Simulink und anschließend nur den optimierten Regler in die Echtzeitumgebung von TwinCAT 3 übertragen. Durch Verwendung der Standard-Simulink Ein- und Ausgabeblöcke für die Definition der TwinCAT Modulprozessabbildern müssen vor dem Start der Modulgenerierung keine Änderungen am Reglermodell erfolgen. |
Modellwiederverwendung und schnelleres Erstellen: | Ein Modell kann mehrere Male in einem oder mehreren übergeordneten Modellen referenziert werden. So können die Modelle in wiederverwendbare funktionale Einheiten aufgeteilt werden, wie in Text-Programmiersprachen, wo der Code in Funktionen oder Methoden gegliedert ist. So wird die Lesbarkeit komplexer Modelle verbessert. |
Verwendung von External Mode
Das Temperaturreglermodell TctSmplTempCtrl.mdl wurde so vorkonfiguriert, dass ExternalMode Verbindungen erlaubt sind:
Wegen dieser Konfigurationen können Sie mit dem Connect to Target Symbol in der Simulink Toolbar via ExternalMode eine Verbindung mit dem generierten Temperaturregler herstellen. Das Modul muss vorher generiert und auf einem TwinCAT System gestartet worden sein und es muss eine ADS-Route zwischen Ihrem Entwicklungssystem und dem entsprechenden Target System konfiguriert worden sein. Es werden einige Dialoge eingeblendet, die Ihnen bei der Navigation zur gewünschten Modulinstanz helfen.
Jetzt können Sie den Scope Block in Simulink zur Überwachung der Echtzeitsignale des generierten und nun verbundenen TwinCAT Moduls verwenden. Sie können auch z.B. den Wert des Internal Setpoint Blocks ändern. Sobald die Parameteränderung bestätigt ist, wird sie direkt zum Zielmodul heruntergeladen. Das ist nur möglich für einstellbare Parameter, wenn die Modellparameter not inlined sind (siehe "Parameterzugriff").
Generieren von TwinCAT Modulen aus Untersystemen
Erstellen eines TwinCAT Moduls in einem Simulink Untersystem, statt dem gesamten Modell, über das Untersystem Kontextmenü: