# Einführung in ST und PLC-Programmierung mit CODESYS ## Was ist ST (Structured Text)? **Structured Text (ST)** ist eine der fünf standardisierten Programmiersprachen nach IEC 61131-3 zur Programmierung von speicherprogrammierbaren Steuerungen (SPS). Es ist eine textbasierte Hochsprache, die an Pascal oder Ada erinnert. ### Merkmale - Klare, strukturierte Syntax - Unterstützt Kontrollstrukturen wie `IF`, `CASE`, `FOR`, `WHILE`, `REPEAT` - Unterstützt Funktionen, Funktionsbausteine und Prozeduren - Ideal für komplexe Berechnungen und Algorithmen - Bessere Lesbarkeit für Entwickler mit klassischem Programmierhintergrund --- ## Grundstruktur eines ST-Programms ```pascal VAR x: BOOL; counter: INT := 0; END_VAR IF x THEN counter := counter + 1; END_IF; ``` --- ## Was ist CODESYS? **CODESYS** ist eine IEC-61131-3-konforme, herstellerunabhängige Entwicklungsumgebung zur Programmierung von SPS. Es unterstützt mehrere Programmiersprachen und viele Zielsysteme (Controller unterschiedlicher Hersteller). ### Hauptfunktionen - Unterstützung aller IEC-61131-3-Sprachen inkl. ST - Grafische und textbasierte Editoren - Integrierter Simulator - Visualisierung und Debugging-Werkzeuge - Unterstützung für Industrieprotokolle (CAN, Modbus, EtherCAT usw.) --- ## Typische Elemente der ST-Programmierung in CODESYS | Element | Beschreibung | | --------------------------------------- | ---------------------------------------------------- | | `VAR`/`VAR_INPUT` | Definition von Variablen und Eingängen | | `PROGRAM`, `FUNCTION_BLOCK`, `FUNCTION` | Kapselung von Logik in wiederverwendbaren Bausteinen | | `IF`, `CASE`, `FOR` | Kontrollstrukturen | | `TON`, `TP`, `CTU` | Standard-Funktionsbausteine für Timer und Zähler | | `PLC_PRG` | Hauptprogramm eines CODESYS-Projekts | --- ## Beispiel: Zähler mit ST in CODESYS ```pascal PROGRAM PLC_PRG VAR btnStart: BOOL; counter: INT := 0; END_VAR IF btnStart THEN counter := counter + 1; END_IF; ``` --- ## Vorteile von ST in der Praxis - **Modularität**: Komplexe Funktionen lassen sich leicht kapseln und wiederverwenden. - **Lesbarkeit**: Insbesondere für Entwickler mit Hintergrund in klassischen Sprachen. - **Flexibilität**: Kombination mit grafischen Sprachen (FBD, LD) im selben Projekt möglich. --- ## Typischer Ablauf bei der Entwicklung mit ST in CODESYS 1. **Projekt erstellen** (z. B. „Standardprojekt“) 2. **Zielgerät auswählen** (Controller oder CODESYS Control Win) 3. **Programmstruktur erstellen** (`PLC_PRG`, Funktionsbausteine, etc.) 4. **Variablen definieren** 5. **Logik in ST schreiben** 6. **Simulation oder Download auf Steuerung** 7. **Test und Debugging** 8. **Visualisierung (optional)** --- ## Literatur und Weiteres - **IEC 61131-3 Norm** - **Offizielle CODESYS-Dokumentation** - **ST-Referenzhandbuch** - **OpenPLC Projekt (freies ST-Lernumfeld)** --- \newpage