Erstellung versionierter Treiber

Jedes aus Simulink® erstellte Objekt trägt eine Versionsinformation. Sie können entsprechend mehrere Versionen eines Simulink®-Modells bauen und in TwinCAT versions-selektiv die erstellten Module instanziieren.

Versionierung in Simulink® definieren

Vor dem Erstellen eines SPS-Funktionsbausteins oder eines TcCOM-Objekts können Sie unter TC General mit den Einträgen „Version source file“ und „Version part for increment“ die Version des TcCOM und der erstellten SPS-Bibliothek definieren.

Erstellung versionierter Treiber 1:

Automatische Versions-Inkremente

Die Basis-Version auf Basis derer ein Versionsupdate erstellt werden soll, wird über „Version source file“ angegeben. Im Standardfall ist dort $<LatestTMFile> angegeben. Dadurch wird auf dem lokalen Engineering PC nach der letzten verfügbaren Version des Modells gesucht und diese dann als Basis für den Versionsinkrement verwendet.

Die Versionsnummer besteht aus vier Digits, z. B. 1.0.3.2 oder 2.12.123.14. Jede Stelle kann separat hochgezählt werden nach dem Schema: <Major>.<Minor>.<Build>.<Revision>

Ist beispielsweise die letzte Version eines Modells mit dem Namen „MyModelXY“ auf dem Engineering PC mit 1.2.12.4 gefunden und das Inkrement auf „Revision“ gesetzt, wird eine Version 1.2.12.5 erstellt.

Wird „None“ gewählt, erfolgt kein Versionsupdate und die letzte Version auf dem Engineering PC wird überschrieben.

Vorgabe einer festen Versionsnummer

Soll eine Version in Simulink® vorgegeben werden, kann dies über DrvFileVersion erfolgen. Geben Sie einfach die Zielversion im Eingabefeld an.

Erstellung versionierter Treiber 2:

Im Engineering Repository wird für jede erstellte Version ein Ordner unter dem Modellnamen erstellt. Jeder Versionsordner enthält dann die entsprechenden Treiber und TwinCAT-Dateien. Siehe auch TwinCAT Objekte.

Erstellung versionierter Treiber 3:

Vorgabe einer Versionsnummer über ein externes File

Sie können ebenso eine externe Datei zur Vorgabe einer Version nutzen. Dies ist beispielsweise eine gängige Methode bei der Nutzung von Build Agents bei Continuous Integration.

Zur Konfiguration in Simulink® setzen Sie unter TC General Version part for increment auf „None“ und geben Sie den Fullpath zu ihrem Version-File unter Version source file an.

Erstellung versionierter Treiber 4:

Aufbau der externen Datei:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <appSettings>
    <add key="major" value="1" />
    <add key="minor" value="3" />
    <add key="build" value="1301" />
    <add key="revision" value="267" />
  </appSettings>
</configuration>

Versionierte Modelle im TwinCAT XAE verwenden

Alle im Engineering Repository verfügbaren Modelle können auch in jeder verfügbaren Version instanziiert werden. Navigieren Sie dazu, wie gewohnt, durch den Baum, um das TcCOM ihrer Wahl zu finden. In der letzten Hierarchieebene können Sie nun auch die Version des TcCOM auswählen.

Beispielhaft sind hier zwei Versionen (0.0.0.4 und 0.0.0.5) des SimpleTempCtrl verfügbar:

Erstellung versionierter Treiber 5:

Online Change eines TcCOM während TwinCAT Run

Um im laufenden Betrieb zwischen verschiedenen Versionen eines TcCOM zu schalten, muss das entsprechende Interface implementiert sein.
1. Wählen Sie dazu in Simulink® die Checkbox zu Online change support unter dem Tab TC TcCom General an.
Erstellung versionierter Treiber 6:

Online Change für SPS-Funktionsbaustein

Wenn Sie den Funktionsbaustein (PLC-FB) in einer versionierten SPS-Bibliothek verwenden, müssen Sie die Checkbox Online change support nicht aktivieren. Der Online-Change-Prozess läuft dann über den SPS-spezifischen Mechanismus.

Erstellung versionierter Treiber 7:

Darüber hinaus müssen angelegte Data Areas des TcCOM kompatibel zueinander sein. Wenn Online change support aktiviert ist, ist im Insert TcCom Object-Dialog die letzte Hierarchieebene strenger differenziert. Nur online-change kompatible TcCOM werden zusammengefasst.

Im Folgenden ist zu sehen, dass die Versionen 0.0.0.1 und 0.0.0.3 bzw. 0.0.0.4 und 0.0.0.5 kompatibel für Online-Change sind. Jedoch nicht 0.0.0.3 zu 0.0.0.4 oder 0.0.0.2.

Erstellung versionierter Treiber 8:

Um die Kompatibilität der Data Areas besser gewährleisten zu können, ist es zum Beispiel möglich, die Parameter, Block I/O, ContState und DWork eines Modells nicht in einer internen Data Area zu halten, sondern als Module Parameter. Damit sind nur die Inputs und Outputs als Data Area für die Kompatibilität der TcCOM-Versionen relevant.

Erstellung versionierter Treiber 9:
2. Nutzen Sie zur Durchführung des Online-Change im TwinCAT XAE das tree item TcCOM Modules und navigieren Sie zum Tab Online Changeable Objects.
Erstellung versionierter Treiber 10:
3. Wählen Sie im Drop-down-Menü unter Online Version eine Version Ihrer Wahl aus (es werden nur kompatible Versionen angezeigt).
4. Machen Sie einen Rechtsklick auf die Zeile des Objekts und wählen Sie Apply changed online object versions, um die neue Version des TcCOM zu aktivieren.
Details finden Sie auch in dieser TwinCAT C++ Dokumentation.