Skip to main content

V2.3-Projekt öffnen

Tipp

Ein CoDeSys V2.3-Projekt kann nur mit einer 32-Bit-Version von CODESYS V3- konvertiert werden. Dazu muss in CODESYS V3 das Package CODESYS V2.3 Converter installiert sein. Das Package ist im CODESYS Store International erhältlich.

Sollten Sie mit einer 64-Bit-Version von CODESYSV3 arbeiten, müssen sie für die Konvertierung zusätzlich die 32-Bit-Version installieren. Nach der Konvertierung können Sie das Projekt in CODESYS 64-Bit öffnen.

Voraussetzung: Sie haben CODESYS V3 installiert und gestartet. Das Add-On CODESYS V2.3 Converter ist installiert.

  1. Wählen Sie Befehl Datei → Projekt öffnen.

  2. Wählen Sie im Dialog Projekt öffnen das gewünschte CoDeSys V2.3-Projekt oder Projektarchiv aus dem Dateisystem. Zur Suche können Sie den Dateifilter in der rechten unteren Ecke des Dialogs setzen.

    Falls noch ein anderes Projekt geöffnet ist, leitet CODESYS Sie entsprechend zum Schließen an. Danach startet automatisch der CoDeSys V2.3-Konverter.

  3. Der V2.3-Konverter prüft, ob das Projekt fehlerfrei kompilierbar ist. Wenn ja, bearbeitet er das Projekt automatisch.

  4. HINWEIS:

    Wenn das Projekt Visualisierungsobjekte mit Platzhaltervariablen enthält, die der Konverter nicht auflösen kann, erfolgt ein direktes Einbinden der jeweiligen Visualisierungen als Gruppierung an Stelle der Visualisierungsreferenzen.

  5. Gerätekonvertierung: Wenn im zu öffnenden Projekt ein Gerät (Zielsystem) referenziert ist, für das noch keine Konvertierungsregel definiert ist, erscheint der Dialog Gerätekonvertierung. Legen Sie hier fest, ob und wie der Konverter die bisherige Geräte-Referenz durch eine aktuelle ersetzen soll.

    Bei Ersetzung fügt der Konverter das neue Gerät anstelle des alten im Gerätebaum des konvertierten Projekts ein.

  6. Bibliothekskonvertierung: Wenn im zu öffnenden Projekt eine Bibliothek referenziert ist, für die noch keine Konvertierungsregel definiert ist, erscheint der Dialog Konvertierung einer Bibliotheksreferenz. Legen Sie hier fest, ob und wie der Konverter die bisherige Bibliotheksreferenz durch eine aktuelle ersetzen soll.

    Falls Sie dabei eine Bibliothek auswählen, für die Projektinformationen fehlen, erscheint der Dialog Projektinformationen eingeben, den Sie ausfüllen müssen.

    Der Konverter lädt das angepasste Projekt. Hinweis: Die neu definierten Bibliotheksreferenzen finden sich im globalen Bibliotheksverwalter in der POUs-Ansicht.

Einschränkungen beim Weiterverwenden eines CoDeSys V2.3-Projekts in CODESYS

Kompilierung

Das Projekt muss ohne Übersetzungsfehler in CoDeSys V2.3 kompilierbar sein. Hinweis: Dennoch gibt CODESYS bei der Übersetzung in V3 Warnungen aus. Diese werden durch implizite Konvertierungen hervorgerufen, die zu Informationsverlust führen können (beispielsweise durch Vorzeichenwechsel).

CODESYS V3 prüft „case“-Anweisungen gegen die Switch-Variable: CASE USINT OF INT wird in CoDeSys V2.3 nicht überprüft, es gibt jedoch eine Fehlermeldung beim Import in V3.

Steuerungskonfiguration

Die Steuerungskonfiguration eines CoDeSys V2.3-Projekts ist nicht in V3 importierbar. Sie müssen die Gerätekonfiguration neu erstellen und die in der Steuerungskonfiguration verwendeten Variablen erneut deklarieren.

Netzwerkvariablen

Für Netzwerkvariablen erzeugt CODESYS V3 GVL-Objekte und importiert die Variablendeklarationen. Die Netzwerkeigenschaften werden jedoch nicht importiert! Sehen Sie hierzu die Beschreibung zum Netzwerkvariablen-Austausch.

Bibliotheken

Alle Variablen und Konstanten, die in einer Bibliothek verwendet werden, müssen auch in dieser Bibliothek deklariert sein. Die Bibliothek muss in CoDeSys V2.3 fehlerfrei übersetzbar sein.

Syntaktische und semantische Einschränkungen seit CoDeSys V2.3

  • FUNCTIONBLOCK ist nicht länger ein gültiges Schlüsselwort anstelle von FUNCTION_BLOCK.

  • Nach TYPE (Deklaration einer Struktur) muss ein “:” folgen.

  • ARRAY-Initialisierung muss mit runden Klammern versehen sein.

  • INI wird nicht mehr unterstützt (Sie müssen dies im Code durch die Init-Methode ersetzen).

  • In Funktionsaufrufen ist es nicht länger möglich, explizite Parameterzuweisungen mit impliziten zu mischen. Deshalb kann die Reihenfolge der Parametereingangs-Zuweisungen verändert werden:

    fun(formal1 := actual1, actual2); // -> Fehlermeldung

    fun(formal2 := actual2, formal1 := actual1); // gleiche Semantik wie folgende Zeile:

    fun(formal1 := actual1, formal2 := actual2);

  • CoDeSys V2.3-Pragmas werden nicht konvertiert. Sie erzeugen in V3 eine Warnung.

  • Der TRUNC-Operator konvertiert nun in den Datentyp DINT, anstelle von INT; bei einem CoDeSys V2.3-Import fügt CODESYS automatisch eine entsprechende Typkonvertierung hinzu.

Visualisierung

Platzhalter und deren Ersetzung

  • Platzhalter: PLC_PRG.$LocalVar$.aArr[0]

    VAR_INPUT: localVar: MyStruct;

    Verwendung: localVar.aArr[0]

    Ersetzung: localVar := PLC_PRG.myStructVar

  • Platzhalter: $Var$.aArr[0]

    VAR_INPUT: Var : MyStruct;

    Verwendung: Var.aArr[0]

    Ersetzung: Var := PLC_PRG.myStructVar

  • Platzhalter: PLC_PRG.myStructVar.aArr[$Index$]

    VAR_INPUT: Index : INT;

    Verwendung: PLC_PRG.myStructVar.aArr[Index]

    Ersetzung: Index := 0

Problematische Platzhalter

  • Platzhalter innerhalb eines Textes

    Text: $axle$-Axis

    Behebung:

    localVar : STRING;

    Text: %s-Axis

    TextVariable: localVar

  • Platzhalter beschreibt nur einen Teil eines Variablennamens

    axis$axis$spur$spur$.fActPosition

    Behebung:

    Definieren Sie für den Platzhalter axis$axis$spur$spur$ nur einen Platzhalter.

    axis_spur : MyFunctionBlock;

    Übergeben Sie dann direkt die entsprechende Instanz des Funktionsbausteins.

    axis_spur := PLC_PRG.axis1spur2;

  • Platzhalter wird durch einen Ausdruck ersetzt

    $Expression$ -> PLC_PRG.var1 + PLC_PRG.var2

    Behebung:

    Sie müssen den Ausdruck an eine Hilfsvariable übergeben und diese Hilfsvariable dann als Instanz übergeben.

  • Platzhalter beschreibt einen Programmnamen: $Program$.bToggle -> PLC_PRG.bToggle D

    Diese Form der Platzhalterersetzung kann der Konverter nicht in V3 übertragen. Sie werden sie in der Praxis aber selten verwenden.

  • Platzhalter wird durch verschiedene Typen ersetzt:

    $Var$

    -> Ersetzung 1 : PLC_PRG.n (INT)

    -> Ersetzung 2 : PLC_PRG.st (STRING)

    Behebung:

    Definieren Sie hierfür zwei verschiedene Platzhalter in der Schnittstelle.

  • Die Visualisierung liegt in einer Bibliothek. Sie ersetzen die Platzhalter erst später aus einem beliebigen Projekt, wenn Sie die Visualisierung dort verwenden.

    Behebung:

    Hier müssen Sie die TYPE_NONE-Datentypen manuell ersetzen. Es gibt aber auch die Möglichkeit, dass Sie die Bibliothek in ein Projekt einbinden und der Platzhalter richtig ersetzt wird. Wenn Sie nun dieses Projekt importieren, dann wird der Datentyp auch in der Bibliothek richtig ermittelt.

Nicht importierbare Elemente

Trend, ActiveX - Der Import ist nicht möglich, weil die Implementierung sehr unterschiedlich ist. In V3 wird eine entsprechende Warnung ausgegeben und ein entsprechender manueller Nachbau ist nötig.

Programmiersprachen ST, AWL, FUP

Keine Einschränkungen

Programmiersprache KOP

CODESYS importiert Funktionsbausteine mit Parallelverzweigungen so, dass der Teil vor der Verzweigung für jeden Zweig wiederholt wird. Das entspricht dem generierten Code, den CoDeSys V2.3 für Parallelverzweigungen erzeugt.

_cds_img_v23import_ld_example.png

Programmiersprachen AS

  • Explizit vom Anwender deklarierte Schrittvariablen müssen lokal im AS-Editor deklariert werden. Sie dürfen sie nicht als VAR_INPUT, VAR_OUTPUT oder VAR_INOUT deklarieren, da CODESYS die Aufrufe nicht automatisch angepassen kann. Erklärung: Schritte verwenden zur Verwaltung der internen Zustände in V3 keine booleschen Variablen mehr, sondern auch Strukturen vom Typ SFCStepType.

  • Kennzeichner: Nicht mit einem Unterstrich beginnen dürfen folgende Kennzeichner:

    • Namen von IEC-Aktionen im Baum

    • Variablen, die in einer IEC-Assoziationsliste aufgerufen werden

    • Namen von ausprogrammierten Transitionen

Erklärung: In V3 erhalten die impliziten Variablen, welche CODESYS für Aktionen anlegt, einen Unterstrich als Präfix. Es würde ein ungültiger Kennzeichner mit doppeltem Unterstrich entstehen.

Programmiersprachen CFC

  • Große Bausteine: Das Layout großer Bausteine kann durch den Import an Qualität verlieren; Die Baustein-Boxen überlappen sich möglicherweise stark. (Behebung geplant.)

  • Makros: Makros können nicht importiert werden. (Behebung geplant.)