
- •1 Kurzer Einblick in CoDeSys
- •1.1 Was ist CoDeSys
- •1.2 Überblick über die Funktionalität von CoDeSys...
- •1.3 Übersicht der Anwender-Dokumentation zu CoDeSys
- •2 Was ist was in CoDeSys
- •2.1 Bestandteile eines Projekts...
- •2.2 Die Sprachen...
- •2.2.1 Anweisungsliste (AWL)...
- •2.2.2 Strukturierter Text (ST)...
- •2.2.3 Ablaufsprache (AS)...
- •2.2.4 Funktionsplan (FUP)...
- •2.2.5 Der freigraphische Funktionsplaneditor (CFC)...
- •2.2.6 Kontaktplan (KOP)...
- •2.3 Debugging, Onlinefunktionalitäten...
- •2.4 Die Norm...
- •3 Wir schreiben ein kleines Programm
- •3.1 Die Steuerung einer Ampelanlage...
- •3.2 Die Visualisierung einer Ampelanlage...
- •4 Die Komponenten im Einzelnen
- •4.1 Hauptfenster...
- •4.2 Projekt Optionen...
- •4.3 Projekte verwalten...
- •4.4 Objekte verwalten...
- •4.5 Allgemeine Editierfunktionen...
- •4.6 Allgemeine Online Funktionen...
- •4.7 Fenster ...
- •4.8 Die rettende Hilfe...
- •5 Die Editoren
- •5.1 Das gilt für alle Editoren...
- •5.2 Der Deklarationseditor...
- •5.2.1 Arbeiten im Deklarationseditor
- •5.2.2 Deklarationseditoren im Online Modus
- •5.3 Editoren der textuellen Programmiersprachen...
- •5.3.1 Arbeiten in den Texteditoren
- •5.3.2 Der Anweisungslisteneditor...
- •5.3.3 Der Editor für Strukturierten Text...
- •5.4 Editoren der grafischen Programmiersprachen...
- •5.4.1 Arbeiten in den grafischen Editoren
- •5.4.2 Der Funktionsplaneditor...
- •5.4.3 Der Kontaktplaneditor...
- •5.4.4 Der Ablaufspracheneditor...
- •5.4.5 Der freigraphische Funktionsplaneditor (CFC)...
- •6 Die Ressourcen
- •6.1 Übersicht Ressourcen
- •6.2 Globale Variablen, Variablenkonfiguration, Dokumentvorlage
- •6.2.1 Globale Variablen
- •6.2.2 Variablenkonfiguration...
- •6.2.3 Dokumentvorlage
- •6.3 Alarmkonfiguration
- •6.3.1 Überblick
- •6.3.2 Alarmsystem, Begriffe
- •6.3.3 Alarmklassen
- •6.3.4 Alarmgruppen
- •6.3.5 Alarmspeicherung
- •6.3.6 Menü Extras: Einstellungen
- •6.4 Bibliotheksverwaltung...
- •6.5 Logbuch...
- •6.6 Steuerungskonfiguration
- •6.6.1 Überblick
- •6.6.2 Arbeiten im CoDeSys Steuerungskonfigurator
- •6.6.3 Allgemeine Einstellungen in der Steuerungskonfiguration
- •6.6.4 Anwendungsspezifischer Parameterdialog
- •6.6.5 Konfiguration eines I/O Moduls...
- •6.6.6 Konfiguration eines Kanals
- •6.6.7 Konfiguration von Profibus Modulen...
- •6.6.8 Konfiguration von CAN Modulen...
- •6.6.9 Konfiguration eines CanDevice (CANopen Slave)
- •6.6.10 Steuerungskonfiguration im Online Modus
- •6.6.11 Hardware Scan/Status/Diagnose aus dem Zielsystem
- •6.7 Taskkonfiguration...
- •6.7.1 Arbeiten im Taskkonfigurator
- •6.7.2 System-Ereignisse
- •6.7.3 Taskkonfiguration im Online Modus
- •6.8.1 Überblick
- •6.9 Traceaufzeichnung...
- •6.9.1 Überblick und Konfiguration
- •6.9.2 Darstellung der Traceaufzeichnung
- •6.9.3 'Extras' 'Tracewerte speichern'
- •6.9.4 'Extras' 'Externe Tracekonfigurationen'
- •6.10 Arbeitsbereich
- •6.11 Parameter Manager ..
- •6.11.1 Aktivieren des Parameter Managers
- •6.11.2 Der Parameter Manager Editor, Overview
- •6.11.3 Parameterlisten: Typen und Attribute
- •6.11.4 Parameterlisten verwalten
- •6.11.5 Parameterlisten editieren
- •6.11.6 Parameter Manager im Online Modus
- •6.11.7 Export / Import von Parameterlisten
- •6.12 Zielsystemeinstellungen
- •6.13 PLC Browser...
- •6.13.1 Allgemeines zur PLC-Browser- Bedienung
- •6.13.2 Kommandoeingabe im PLC-Browser
- •6.13.3 Verwendung von Makros bei der Kommandoeingabe im PLC-Browser
- •6.13.4 Weitere PLC-Browser-Optionen
- •6.14 Tools
- •6.14.1 Eigenschaften der bestehenden Verknüpfungen (Objekt Eigenschaften)
- •6.14.2 Verwalten von Verknüpfungen
- •6.14.3 Die wichtigsten Fragen zu Tools
- •7 ENI Versionsverwaltung
- •7.1.2 Voraussetzungen für das Arbeiten mit einer ENI Projektdatenbank
- •7.1.3 Arbeiten in CoDeSys mit der Projektdatenbank
- •7.1.4 Kategorien innerhalb der Projektdatenbank
- •8 DDE Kommunikation
- •8.1 DDE Schnittstelle des CoDeSys Programmiersystems...
- •8.2 DDE Kommunikation über den GatewayDDE-Server...
- •9 Lizenzmanagement in CoDeSys
- •9.1 Der 3S Licensing Manager
- •9.1.1 Erstellen einer lizenzpflichtigen Bibliothek
- •10 ANHANG
- •Anhang A IEC Operatoren und zusätzliche normerweiternde Funktionen
- •Arithmetische Operatoren...
- •Bitstring Operatoren...
- •Bit-Shift Operatoren...
- •Auswahloperatoren...
- •Vergleichsoperatoren...
- •Adressoperatoren...
- •Aufrufoperator...
- •Typkonvertierungen...
- •Numerische Operatoren...
- •Anhang B Operanden in CoDeSys
- •Konstanten...
- •Variablen...
- •Adressen...
- •Funktionen...
- •Anhang C Datentypen in CoDeSys
- •Standard Datentypen
- •Definierte Datentypen
- •Anhang D CoDeSys Bibliotheken
- •Die Bibliothek Standard.lib
- •String Funktionen...
- •Bistabile Funktionsblöcke...
- •Flankenerkennung...
- •Zähler...
- •Timer...
- •Die Bibliothek Util.lib
- •BCD-Konvertierung...
- •Bit-/Byte-Funktionen...
- •Mathematische Hilfsfunktionen...
- •Regler...
- •Signalgeneratoren...
- •Funktionsmanipulatoren...
- •Analogwertverarbeitung...
- •Die Bibliothek AnalyzationNew.lib
- •Die CoDeSys Systembibliotheken
- •Anhang E Übersicht: Operatoren und Bibliotheksbausteine
- •Anhang F Kommandozeilen-/Kommandodatei-Befehle
- •Kommandozeilen-Befehle
- •Kommandodatei (Cmdfile)-Befehle
- •Anhang G Siemens Import
- •SEQ-Symbolikdatei importieren
- •S5-Datei importieren
- •Konvertierung S5 nach IEC 1131-3
- •Anhang H Dialoge der Zielsystemeinstellungen
- •Einstellungen in Kategorie Zielplattform
- •Einstellungen in Kategorie Allgemein
- •Einstellungen in Kategorie Speicheraufteilung
- •Einstellungen in Kategorie Netzfunktionen
- •Einstellungen in Kategorie Visualisierung
- •Anhang I Tastaturbedienung
- •Tastaturbedienung
- •Tastenkombinationen
- •Anhang J Übersetzungsfehler und -warnungen
- •Warnungen...
- •Übersetzungsfehler...
- •Index

10 - ANHANG
Anhang G Siemens Import
Im Submenü 'Projekt''Siemens Import' finden Sie Befehle zum Import von Bausteinen und Variablen aus Siemens-STEP5-Dateien. Der Befehl 'SEQ-Symbolikdatei importieren' dient zum Import von globalen Variablen aus STEP5-Symbolikdateien. Er sollte vor den Befehlen 'S5-Datei importieren' aufgerufen werden, damit beim Import von Bausteinen aus absoluten Adressen lesbare symbolische Namen erzeugt werden können. Dieser Befehl dient zum Import von Bausteinen aus STEP5Programmdateien. Dabei werden die Bausteine in das geöffnete CoDeSys-Projekt eingefügt. Sie können auswählen, ob die Bausteine in der Sprache STEP5-AWL bleiben, oder in eine IEC-Sprache konvertiert werden.
Das CoDeSys-Projekt, in das Sie importieren, sollte am besten leer sein. Allerdings sollten Sie sicherstellen, dass die Bibliothek standard.lib an Ihr Projekt gebunden ist, sonst können keine Zähler und Timer importiert werden.
10.25 SEQ-Symbolikdatei importieren
Das SEQ-Format ist ein gängiges Format für die Symbolikdatei in einem STEP5-Projekt. Aus SEQ- Symbolik-Dateien (*.seq) können symbolische Zuordnungen gelesen werden. Eine symbolische Zuordnung enthält eine absolute Adresse eines S5-Programmelements (Eingang, Ausgang, Merker, etc.), einen zugehörigen symbolischen Bezeichner und optional einen Kommentar zum Symbol. Eine SEQ-Datei ist eine Textdatei, die pro Zeile eine solche Zuordnung enthält, wobei die einzelnen "Felder" der Zuordnung durch Tabulatoren getrennt sind. Eine Zeile kann auch nur einen Kommentar enthalten; sie muss dann mit einem Semikolon beginnen.
Die symbolischen Zuordnungen in der SEQ-Datei werden in globale Variablendeklarationen nach IEC 1131-3 übersetzt. Dabei werden der symbolische Name, die Adresse und ggf. der Kommentar übernommen. Die Adresse wird der IEC 1131-3 angepaßt (Prozentzeichen etc.). Da ein S5Symbolikname Zeichen enthalten kann, die innerhalb eines IEC-Bezeichners unzulässig sind, wird ggf. der Name geändert. Ungültige Zeichen werden zunächst durch Unterstriche ersetzt; falls mehrere Unterstriche direkt hintereinander kommen würden, wird jeweils der zweite Unterstrich durch ein gültiges Zeichen (z.B. '0') ersetzt. Falls ein symbolischer Name bei der Konvertierung verändert wurde, wird der Originalname in einem Kommentar dahintergefügt. SEQ-Kommentarzeilen werden als Kommentare übernommen. Es können mehrere Blöcke von globalen Variablen erzeugt werden. Jeder Block umfasst weniger als 64K Text.
Das beschriebene SEQ-Format wird von der Siemens-STEP5-PG und von ACCON-PG von DELTALOGIC verwendet.
Der Benutzer wählt in einem Standard-Windows-Dialog die SEQ-Datei aus. Dann wird der Import durchgeführt, abschließend wird die globale Variablenliste übersetzt. Dabei können Fehler auftreten, die durch die Umwandlung der STEP5-Bezeichner in IEC1131-3-konforme Bezeichner bedingt sind. Zum Beispiel werden die STEP5-Bezeichner "A!" und "A?" beide in den IEC-Bezeichner "A_" umgeformt, so dass eine Meldung "Mehrere Deklarationen mit dem gleichen Bezeichner A_" erscheint. Ändern Sie einen der beiden ab.
Nehmen Sie auf gar keinen Fall sonstige Änderungen an der globalen Variablenliste vor. Falls Sie Adressen sehen, die auf einer Siemens-SPS gültig, auf Ihrer Steuerung jedoch ungültig sind: Lassen Sie diese Adressen vorläufig in Ruhe, auch wenn Sie tausend Fehlermeldungen beim Übersetzen bekommen. Die Adressen werden genau so beim Import der Bausteine gebraucht!
Falls das Projekt, in das Sie importieren, bereits eine Deklaration einer globalen Variablen x mit Adresse (z.B. "%MX4.0") enthält, kann es sein, dass beim SEQ-Import für dieselbe Adresse noch eine andere Variable mit derselben Adresse definiert wird. Das ist nach IEC 1131-3 zulässig, aber meistens nicht im Sinne des Anwenders. Sie erhalten keine Fehlermeldungen, aber Ihr Programm wird eventuell nicht so funktionieren wie gewünscht, da die Adresse in verschiedenen Bausteinen ohne Zusammenhang benutzt wird. Importieren Sie deshalb am besten in ein leeres Projekt, oder in Projekt, in dem (noch) keine absoluten Adressen verwendet werden.
Nach dem SEQ-Import können Sie nun STEP5-Bausteine importieren. Sie können auch bereits jetzt in der Steuerungskonfiguration die verwendeten Einund Ausgänge einfügen. Diese werden beim
CoDeSys V2.3 |
10-77 |

S5-Datei importieren
STEP5-Import nicht vorausgesetzt, aber sobald Sie das Projekt neu übersetzen, werden die verwendeten Adressen geprüft, und ggf. als Fehler gemeldet.
10.26 S5-Datei importieren
Aus Siemens-S5-Programm-Dateien (*.s5d) können Bausteine gelesen werden. Der enthaltene Code ist MC5-Code, der von der S5-SPS ausgeführt werden kann. Der MC5-Code entspricht im allgemeinen direkt der STEP5-Anweisungsliste (ohne symbolische Namen), die der Programmierer kennt. Außerdem enthält die S5D die Zeilenkommentare der STEP5-Anweisungsliste. Da eine S5DDatei keine symbolischen Namen enthält, sondern nur absolute Adressen, sucht CoDeSys den symbolischen Namen für die jeweilige Adresse in den bereits vorhandenen Variablen des CoDeSysProjekts. Falls keiner gefunden wird, bleibt die absolute Adresse stehen. Wenn Sie also Wert auf symbolische Namen legen, importieren Sie die SEQ-Datei vor der S5-Datei.
Der Benutzer wählt in einem Standard-Windows-Dialog die S5D-Datei aus. Dann wird in einem zweiten Dialog die Liste der enthaltenen Bausteine zur Auswahl angeboten. Am besten ist es, sämtliche Bausteine auszuwählen. Sie können hier ebenfalls auswählen, ob die Bausteine in der Sprache STEP5-AWL belassen werden, oder nach AWL, KOP oder FUP konvertiert werden.
Soweit möglich werden beim Import symbolische Namen anstatt absoluter Adressen verwendet. Wenn CoDeSys beim Import eine Anweisung wie "U M12.0" findet, wird nach einer globalen Variablen gesucht, die auf den Merker M12.0 gelegt ist. Die erste passende Deklaration wird genommen, und die Anweisung wird als "U -Name" und nicht als "U M12.0" importiert (wobei Name der symbolische Bezeichner für den Merker M12.0 ist).
Manchmal werden beim Import bzw. der Code-Konvertierung zusätzliche Variablen benötigt. Diese werden global deklariert. Zum Beispiel sind zur Nachbildung flankengetriggerter Eingänge (z.B. bei einem S5-Zähler) R_TRIG-Instanzen nötig.
10.27 Konvertierung S5 nach IEC 1131-3
Falls Sie beim STEP5-Import als Zielsprache eine IEC-Sprache gewählt haben, müssen Sie davon ausgehen, dass nicht Ihr gesamtes Projekt nach IEC 1131-3 konvertierbar ist. Falls ein Teil eines S5Bausteins Code enthält, der nicht nach IEC 1131-3 konvertiert werden kann, wird eine entsprechende Fehlermeldung ausgegeben und der kritische Original-STEP5-AWL-Code als Kommentar in den IECBaustein übernommen. Dieser Code muss in der Regel von Ihnen ersetzt werden, d.h. neu geschrieben. Nicht IEC-konvertierbar sind Systembefehle, die nur auf einer bestimmten S5-CPU funktionieren. Der "STEP5-Kern-Befehlssatz" ist per Knopfdruck in IEC-Code umwandelbar, obwohl STEP5 enorme prinzipielle Unterschiede aufweist.
Der nach IEC 1131-3 konvertierbare Kern-Befehlssatz umfasst alle Befehle, die in einem STEP5Programmiersystem nach KOP oder FUP umwandelbar sind, und auch alle Befehle, die in einem STEP5-PB (Programmbaustein) erlaubt sind. Darüber hinaus sind von den STEP5-Befehlen, die nur in AWL oder nur in FBs (Funktionsbausteinen) erlaubt sind, im wesentlichen diejenigen IECkonvertierbar, die wirklich auf jeder S5-CPU zur Verfügung stehen, also z.B. absolute und bedingte Sprünge, Schiebebefehle usw.
Die einzige Ausnahme bzw. Einschränkung bei der Konvertierung betrifft das Rücksetzen von Timern, was in STEP5 möglich ist, aber in der Norm IEC 1131-3 nicht.
Konvertierbare Befehle im einzelnen:
U, UN, O, ON, S, R, = mit folgenden Bit-Operanden: E (Eingänge), A (Ausgänge), M (Merker), S (S-Merker), D (Daten in Datenbausteinen)
U, UN, O, ON mit folgenden Operanden: T (Timer), Z (Zähler) S, R mit folgenden Operanden: Z
SU, RU, P, PNmit folgenden Operanden: E, A, M, D O, O(, U(, )
10-78 |
CoDeSys V2.3 |
10 - ANHANG
L, T mit Operanden-Bereichen: E, A, M, D, T, Z, P (Peripherie) und Operanden-Größen: B (Byte), W (Wort), D (Doppelwort), L (linkes Byte), R (rechtes Byte)
L mit folgenden Konstanten-Formaten: DH, KB, KF, KH, KM, KT, KZ, KY, KG, KC SI, SE, SA mit folgenden Operanden: T
ZV, ZR mit folgenden Operanden: Z
+, -, X, : mit folgenden Operanden: F (Festpunktzahl), G (Gleitkommazahl) +, - mit folgenden Operanden: D (32-Bit-Festpunktzahl)
!=, ><, >, <, >=, <= mit folgenden Operanden: F, D, G ADD mit folgenden Operanden: BF, KF, DH
SPA, SPB mit folgenden Operanden: PB, FB (mit den meisten Parameter-Typen), SB A, AX mit folgenden Operanden: DB, DX
BE, BEA, BEB
BLD, NOP, ***
UW, OW, XOW
KEW, KZW, KZD
SLW, SRW, SLD, RRD, RLD SPA=, SPB=
SPZ=, SPN=, SPP=, SPM= TAK
D, I
Die meisten Formaloperanden-Befehle
Nicht konvertierbare Befehle
U, UN, O, ON, S, R, = mit folgenden Bit-Operanden: Timerund Zähler-Bits (T0.0, Z0.0) L, T mit folgenden Operanden-Bereichen: Q (erweiterte Peripherie)
LC mit folgenden Operanden: T, Z
SV, SS, R, FR mit folgenden Operanden: T FR mit folgenden Operanden: Z
Formaloperanden-Befehle zum Starten, Rücksetzen, Freigeben von Timern
Alle Befehle mit Operanden aus den Bereichen BA, BB, BS, BT (Betriebssystem-Daten). SPA, SPB mit folgenden Operanden: OB (geht nur auf manchen S5 mit manchen OBs) BA, BAB mit folgenden Operanden: FX
E, EX mit folgenden Operanden: DB, DX STP, STS, STW
DEF, DED, DUF, DUD SVW, SVD
SPO=, SPS=, SPR
AS, AF, AFS, AFF, BAS, BAF ENT
SES, SEF
B mit folgenden Operanden: DW, MW, BS LIR, TIR, LDI, TDI, TNW, TXB, TXW
CoDeSys V2.3 |
10-79 |

Konvertierung S5 nach IEC 1131-3
MAS, MAB, MSA, MSB, MBA, MBS MBR, ABR
LRW, LRD, TRW, TRD TSG
LB, TB, LW, TW mit folgenden Operanden: GB, GW, GD, CB, CW, CD ACR, TSC
BI
SIM, LIM
Wenn Sie sich die nicht konvertierbaren Befehle ansehen, werden Sie feststellen, dass die meisten Spezialbefehle sind, die nur auf manchen CPUs zur Verfügung stehen. Die Standard-Befehle, die nicht IEC-konvertierbar sind, sind: Laden von BCD-codierten Timeroder Zählerwerten (LC T, LC Z), die Timertypen SV, SS, und das Rücksetzen von Timern.
Datenbausteine
STEP5-Datenbausteine werden in Bausteine konvertiert, die einen Header haben, aber keinen Code. Das ist günstig, falls die Datenbausteine als normaler Variablenbereich verwendet werden, aber ungünstig, wenn im STEP5-Programm versucht wurde, Konzepte wie Instanz-Datenbausteine von Hand zu implementieren.
Sonstige Probleme beim STEP5-Import
Es gibt folgende Stellen, an denen der STEP5-Import von Hand verbessert werden kann. 1. Zeitwerte in Wortvariablen
In STEP5 kann ein Zeitwert in jeder Wortadresse stehen, sei es im Merkerbereich oder in einem Datenbaustein. In IEC 1131-3 ist dies verboten, TIME-Variablen oder -Konstanten sind nicht mit WORD-Adressen vereinbar. Beim STEP5-Import kann es sein, dass eine solche fehlerhafte Befehlssequenz erzeugt wird. Dies passiert nicht, wenn Sie auf einen Datenbaustein zugreifen und für die betreffende Adresse das Zeitformat (KT) gewählt hatten. Der Fehler tritt also nur dann auf, wenn das STEP5-Programm zumindest verbesserungswürdig ist. Sie erkennen den Fehler an der Meldung "Unverträgliche Typen: Kann WORD nicht in TIME konvertieren." oder "Unverträgliche Typen: Kann TIME nicht in WORD konvertieren." Bei der Nachbearbeitung müssen Sie die Deklaration der WORDVariablen (falls vorhanden) ändern und eine TIME-Variable daraus machen.
2. Fehler beim Zugriff auf Datenbausteine
Datenbausteine gibt es nicht in der IEC 1131-3 und man kann sie in dieser auch nicht vollständig nachbilden. Sie werden in STEP5 einmal als normaler Variablenbereich (wie etwa der Merkerbereich) verwendet, das anderes Mal in Form eines Arrays (B DW), eines Pointers (B MW100, A DB 0) oder einer Union (Byte-, Wortoder Doppelwort-Zugriffe in DBs). Die STEP5-Konvertierung kann DBZugriffe nur dann konvertieren, wenn sie einigermaßen strukturiert erfolgen. Konkret muss bei einem Zugriff bekannt sein, welcher DB gerade aufgeschlagen ist (A DB). Dies ist der Fall, wenn die A DBOperation im selben Baustein weiter vorne steht, oder wenn die DB-Nummer als Formalparameter dem Baustein mitgegeben wird. Falls vor dem ersten DB-Zugriff kein A DB steht, kann der Baustein nicht konvertiert werden. Sie erkennen das an der Warnung "Kein Datenbaustein aufgeschlagen (fügen Sie ein A DB ein)". Im konvertierten Baustein sehen Sie dann Zugriffe auf undefinierte Variable namens z.B. "ErrorDW0", die beim Übersetzen des gerade konvertierten Bausteins Fehlermeldungen verursachen. Sie können dann die Variablen durch Zugriffe auf den richtigen DB ersetzen, z.B. statt "ErrorDW0" überall schreiben "DB10.DW0". Die andere Möglichkeit ist, den konvertierten Baustein nochmals wegzuwerfen und in den STEP5-Baustein am Anfang ein A DB einzufügen.
In jedem Fall sollte ein STEP5-Baustein, der auf Datenworte (-bytes, etc.) zugreift, zuerst den Datenbaustein aufschlagen. Nötigenfalls sollte der Baustein vor dem Import verbessert werden, indem der passende A DB-Befehl eingefügt wird, am besten am Bausteinanfang. Ansonsten muss der konvertierte Baustein nachbearbeitet werden.
Falls es mehrere A DB-Operationen gibt, über die zum Teil hinweggesprungen wird, kann die Konvertierung fehlerhaft sein, d.h. es wird vielleicht Code erzeugt, der auf den falschen DB zugreift.
3. Höhere Konzepte beim Zugriff auf Datenbausteine
10-80 |
CoDeSys V2.3 |
10 - ANHANG
Es gibt in STEP5 die Möglichkeit, von Hand so etwas wie Instanzen zu realisieren, indem ein CodeBaustein einen Datenbaustein indiziert aufschlägt. So etwas geschieht z.B. mit folgender Codesequenz:
L KF +5
T MW 44
B MW 44
A DB 0
Hier wird letzten Endes der DB5 aufgeschlagen (allgemein wird der DB aufgeschlagen, dessen Nummer im Merkerwort %MW44 steht). Solche Zugriffe werden bei der Konvertierung nicht erfasst, d.h. hier muss wie folgt nachgearbeitet werden:
Zunächst müssen alle DBs importiert werden, die als Instanz-DBs dienen, z.B. den DB5 und den DB6. Diese werden als normale AWL-, KOPoder FUP-Bausteine importiert, wie Sie es möchten. Die Bausteine haben keinen Code, sondern nur einen Header mit Definitionen von lokalen Variablen. Aus diesen Bausteinen können nun Typ-Instanzen gemacht werden. Legen Sie einen benutzerdefinierten Typ an (namens z.B. DBTyp) und fügen in diesen als Komponenten die lokale Variablen der konvertierten DBs ein. Dann legen Sie globale Instanzen dieses Typs an, indem Sie in einer globalen Variablenliste schreiben:
VAR_GLOBAL
DB5, DB6 : DBTyp;
END_VAR
Nun können Sie die konvertierten DBs aus dem Projekt löschen.
Dann müssen Sie das indizierte Aufschlagen der DBs noch nachbilden, indem Sie dem entsprechenden Baustein noch einen VAR_INPUT-Parameter vom Typ DBTyp geben. Die Datenzugriffe innerhalb des Bausteins müssen dann auf diese Instanz abgeändert werden. Beim Aufruf müssen Sie dann einen der Instanz-DBs als Aktualparameter mitgeben.
4.Eine Sonderrolle haben sog. integrierte S5-Funktionsbausteine, die eine STEP5-Aufrufschnittstelle haben, deren Implementation aber entweder nicht in STEP5 (bzw. MC5) geschrieben oder durch einen besonderen Mechanismus geschützt ist. Solche Bausteine liegen meist als Firmware vor und können nur "als Schnittstelle importiert werden". Der Implementationsteil eines solchen Bausteins bleibt leer. Bei einer Konvertierung müssen solche Bausteine prinzipiell neu programmiert werden.
5.Es gibt auch Firmware-OBs, die zwar keine Schnittstelle haben, deren Code aber nicht in STEP5 vorliegt, sondern z.B. in 805xx-Assembler. Dies betrifft in erster Linie den als OB251 ausgeführten PID-Regler, der seine Parameter und lokale Variablen über einen wählbaren anderen (Daten-) Baustein erhält. Weder der PID-Regler oder der zugehörige Datenbaustein, noch andere Bausteine, den Regler benutzen, indem sie auf den Datenbaustein zugreifen, sind IEC-konvertierbar. Der IECCode, der für die Datenbausteine und andere Bausteine bei der Konvertierung erzeugt wird, ist ohne den PID-Regler sinnlos. Die Bedeutung von Programmteilen erschließt sich aus dem jeweiligen Programmier-Handbuch zur CPU.
6.Zur Konfiguration von S5-CPUs und manchmal auch Baugruppen gibt es manchmal Konfigurationsdatenbausteine, wie den DB1 (S5-95U), DX0, DX2, die bei der Konvertierung in sinnlose IEC-Bausteinen umgewandelt werden. Die Bedeutung von solchen Daten erschließt sich zum Teil aus dem jeweiligen Programmier-Handbuch zur CPU, zum Teil muss ein S5Programmiersystem herangezogen werden, das die Konfigurations-DBs auswerten kann. Die Konfiguration betrifft Einstellungen für z.B. Kommunikation, Analogwertverarbeitung, Mehrprozessorbetrieb, etc. Daher lohnt es sich nicht, diese Bausteine beim Wechsel auf eine Nicht- Siemens-SPS überhaupt anzufassen.
Nach dem Import müssen Sie den gemeldeten Fehlern nachgehen und die betreffenden Stellen verbessern, ergänzen bzw. neu schreiben. Diese Stellen sind gekennzeichnet mit Kommentaren nach:
(*ACHTUNG! Nicht konvertierbarer STEP5-Code als Kommentar:*)
Darauf folgt dann jeweils der nicht konvertierbare Code, ebenfalls als Kommentar.
Zum Schluss müssen Sie noch auf die Adressen achten. Beim Import werden Original-Siemens- Adressen erzeugt. Diese haben folgendes Adress-Schema:
CoDeSys V2.3 |
10-81 |

Konvertierung S5 nach IEC 1131-3
Bits: Byte-Offset.Bit-Nummer Nicht-Bits:Byte-Offset
Außerdem gilt dann, dass sich aufeinander folgende Wortadressen überlappen (eben, weil es sich bei den Zahlen in den Adressen um Byte-Offsets handelt). So haben %MW32 und %MW33 ein überlappendes Byte, nämlich %MB33 (natürlich nur auf einer Siemens-SPS). Auf Ihrer SPS haben normalerweise %MW32 und %MW33 gar nichts miteinander zu tun.
Ihre Steuerung hat evtl. mehr Hierarchien, z.B. haben Nicht-Bits mehrere Schachtelungsebenen ("%MW10.0.0" als WORD). Sie können entweder in den Adressen Ergänzungen vornehmen, so dass sie zu Ihrer Steuerung kompatibel sind, oder versuchen, die Adressen ganz wegzulassen. Seien Sie dabei sehr vorsichtig!! Es kommt häufig vor, dass im ursprünglichen Siemens-Programm auf denselben Speicherbereich einmal Wortzugriff und einmal Bitoder Byte-Zugriff gemacht wird. Beim Import in CoDeSys werden solche Zugriffe nur bei Datenbausteinen korrekt übersetzt. Hier legt CoDeSys für die Worte in DBs WORD-Variablen an. Beim WORD-Zugriff auf Wort x im DB y gibt es dann keine Probleme. Zugriffe auf das linke oder rechte Byte im Wort X, Doppelwort-Zugriffe und BitZugriffe werden dann in komplexere Ausdrücke übersetzt. Bei Merkern, Einund Ausgängen kann dies nicht gemacht werden, da man hier nicht von einer Standard-Zugriffsweise (z.B. Wortzugriff) ausgehen kann. Falls im Programm also einmal mit %MX33.3 und einmal mit %MB33 oder %MW32 oder %MD30 gearbeitet wird, müssen Sie dies mühevoll von Hand umsetzen. Das von CoDeSys beim Import erzeugte IEC-Programm funktioniert in diesem Fall mit Sicherheit nicht richtig.
Lassen Sie sich eine Querverweisliste ausgeben über alle Ein-, Ausgänge und Merker, um herauszufinden, welche Zugriffe kritisch sind. Beseitigen Sie gemischte Zugriffe von Hand.
10-82 |
CoDeSys V2.3 |