Herunterladen Inhalt Inhalt Diese Seite drucken
Siemens SIMOTION SCOUT Programmier- Und Bedienhandbuch
Vorschau ausblenden Andere Handbücher für SIMOTION SCOUT:
Inhaltsverzeichnis
SIMOTION
SIMOTION SCOUT
SIMOTION ST Structured Text
Programmier- und Bedienhandbuch
Gültig ab Version 5.1
07/2017
A5E33437165A
Vorwort
Grundlegende
Sicherheitshinweise
Einleitung
Erste Schritte mit ST
ST-Grundlagen
Funktionen,
Funktionsbausteine,
Programme
Objektorientierte
Programmierung - OOP (ab
Kernel V4.5)
Einbindung von ST in
SIMOTION
Fehlerquellen und
Programmtest
Anhang
1
2
3
4
5
6
7
8
A
Inhaltsverzeichnis
loading

Inhaltszusammenfassung für Siemens SIMOTION SCOUT

  • Seite 1 Vorwort Grundlegende Sicherheitshinweise Einleitung SIMOTION Erste Schritte mit ST SIMOTION SCOUT SIMOTION ST Structured Text ST-Grundlagen Funktionen, Funktionsbausteine, Programmier- und Bedienhandbuch Programme Objektorientierte Programmierung - OOP (ab Kernel V4.5) Einbindung von ST in SIMOTION Fehlerquellen und Programmtest Anhang Gültig ab Version 5.1...
  • Seite 2: Qualifiziertes Personal

    Dokumentationen müssen beachtet werden. Marken Alle mit dem Schutzrechtsvermerk ® gekennzeichneten Bezeichnungen sind eingetragene Marken der Siemens AG. Die übrigen Bezeichnungen in dieser Schrift können Marken sein, deren Benutzung durch Dritte für deren Zwecke die Rechte der Inhaber verletzen kann. Haftungsausschluss Wir haben den Inhalt der Druckschrift auf Übereinstimmung mit der beschriebenen Hard- und Software geprüft.
  • Seite 3: Vorwort

    Gültigkeitsbereich Das vorliegende Dokument ist Bestandteil des Dokumentationspaketes SIMOTION Programmieren. Das Dokument ist gültig für SIMOTION SCOUT, das Engineering System der Produktfamilie SIMOTION, in der Produktstufe V5.1 in Verbindung mit: ● Einem SIMOTION Gerät mit einem SIMOTION Kernel folgender Versionen: –...
  • Seite 4: Konvertieren Bestehender Projekte In Die Aktuelle Version Des Simotion Scout

    Vorwort Konvertieren bestehender Projekte in die aktuelle Version des SIMOTION SCOUT Ein Hochkonvertieren bestehender Projekte auf die aktuelle Version des SIMOTION SCOUT und der Programmiersprache SIMOTION ST ist möglich. Eine Neuübersetzung mit der aktuellen Version des Compilers ändert unter Umständen die Versionskennungen in den Datenbereichen der Programme und bewirkt damit ein Löschen und Initialisieren aller...
  • Seite 5 ● Weiterführende Links für den Download von Dokumenten ● Dokumentation online nutzen (Handbücher/Informationen finden und durchsuchen) https://support.industry.siemens.com/cs/ww/de/view/109479653 My Documentation Manager Unter folgendem Link finden Sie Informationen, wie Sie Dokumentation auf Basis der Siemens Inhalte individuell zusammenstellen und für die eigene Maschinendokumentation anpassen: https://support.industry.siemens.com/My/ww/de/documentation SIMOTION ST Structured Text...
  • Seite 6 Vorwort Training Unter folgendem Link finden Sie Informationen zu SITRAIN - dem Training von Siemens für Produkte, Systeme und Lösungen der Automatisierungstechnik: http://www.siemens.com/sitrain FAQs Frequently Asked Questions finden Sie in den SIMOTION Utilities & Applications, die im Lieferumfang von SIMOTION SCOUT enthalten sind, und in den Service&Support-Seiten unter Produkt Support: https://support.industry.siemens.com/cs/de/de/ps/14505/faq...
  • Seite 7: Inhaltsverzeichnis

    Inhaltsverzeichnis Vorwort.................................3 Grundlegende Sicherheitshinweise......................17 Allgemeine Sicherheitshinweise.....................17 Industrial Security........................18 Lebensgefahr bei Softwaremanipulation durch Verwendung von Wechselspeichermedien......................19 Einleitung..............................21 Höhere Programmiersprache....................21 Programmiersprache mit Technologiebefehlen..............21 Ablaufebenen.........................21 ST-Editor mit Werkzeugen für Erstellung und Test von Programmen........22 Erste Schritte mit ST...........................23 Einbindung von ST in SCOUT....................23 3.1.1 Elemente der Workbench kennenlernen................25 Voraussetzungen für die Programmerstellung...............26...
  • Seite 8 Inhaltsverzeichnis 3.3.6 Einstellungen für den Compiler vornehmen................62 3.3.6.1 Globale Einstellungen des Compilers..................62 3.3.6.2 Lokale Einstellungen des Compilers..................66 3.3.6.3 Wirksamkeit der globalen oder lokalen Einstellungen des Compilers........70 3.3.6.4 Bedeutung der Warnungsklassen..................73 3.3.6.5 Anzeige der Compileroptionen....................73 3.3.7 Know-how-Schutz für ST-Quellen..................75 3.3.8 Präprozessor-Definitionen vornehmen...................75 3.3.9 ST-Quelle exportieren, importieren und drucken..............77 3.3.9.1...
  • Seite 9 Inhaltsverzeichnis 4.2.4.2 Gleitpunktzahlen........................110 4.2.4.3 Exponenten..........................110 4.2.4.4 Boolesche Werte........................111 4.2.4.5 Datentypen von Zahlen......................111 4.2.5 Zeichenstrings........................111 Gliederung der ST-Quelle....................112 4.3.1 Anweisungen........................114 4.3.2 Kommentare.........................115 Datentypen...........................115 4.4.1 Elementare Datentypen.......................116 4.4.1.1 Wertebereichsgrenzen elementarer Datentypen..............118 4.4.1.2 Allgemeine Datentypen......................119 4.4.1.3 Elementare Systemdatentypen....................120 4.4.2 Anwenderdefinierte Datentypen...................120 4.4.2.1 Syntax anwenderdefinierter Datentypen (Typdeklaration)...........121 4.4.2.2 Ableitung elementarer oder abgeleiteter Datentypen............123 4.4.2.3...
  • Seite 10 Inhaltsverzeichnis 4.7.3 FOR-Anweisung........................172 4.7.4 WHILE-Anweisung.......................174 4.7.5 REPEAT-Anweisung......................175 4.7.6 EXIT-Anweisung........................176 4.7.7 CONTINUE-Anweisung......................177 4.7.8 RETURN-Anweisung......................177 4.7.9 WAITFORCONDITION-Anweisung..................178 4.7.10 GOTO-Anweisung........................180 Datentyp-Konvertierungen....................181 4.8.1 Konvertierung elementarer Datentypen................181 4.8.1.1 Implizite Datentyp-Konvertierungen..................182 4.8.1.2 Explizite Datentyp-Konvertierungen..................184 4.8.2 Ergänzende Konvertierungen....................185 Funktionen, Funktionsbausteine, Programme..................187 Erstellung und Aufruf von Funktionen und Funktionsbausteinen.........187 5.1.1 Funktionen definieren......................187 5.1.2...
  • Seite 11 Inhaltsverzeichnis 6.2.1.1 Klassen (Basisklassen) definieren..................222 6.2.1.2 Deklarationsabschnitt einer Klasse..................222 6.2.1.3 Zugriffsbezeichner innerhalb von Klassen................223 6.2.2 Erstellung von Methoden.....................225 6.2.2.1 Methoden definieren......................225 6.2.2.2 Deklarationsabschnitt von Methoden...................226 6.2.2.3 Anweisungsabschnitt von Methoden..................229 6.2.3 Methoden innerhalb der Klasse aufrufen................230 6.2.3.1 Methode aufrufen.........................230 6.2.3.2 Parameterübergabe zu Eingangsparametern..............231 6.2.3.3 Parameterübergabe zu Durchgangsparametern..............231 6.2.3.4...
  • Seite 12 Inhaltsverzeichnis 7.1.1.7 Expressions..........................277 7.1.1.8 Klassen (ab Kernel V4.5).....................278 7.1.1.9 Methoden..........................280 7.1.1.10 Objektorientiertes Interface (ab Kernel V4.5)...............281 7.1.1.11 Deklarationsabschnitt......................282 7.1.1.12 Anweisungsabschnitt......................283 7.1.1.13 Datentypdefinition........................284 7.1.1.14 Variablendeklaration......................285 7.1.2 Veröffentlichung und Verwendung von ST-Quellen.............288 7.1.2.1 Bezeichnung der Unit......................288 7.1.2.2 Interfaceabschnitt einer veröffentlichenden Unit..............288 7.1.2.3 Beispiel für veröffentlichende Unit..................290 7.1.2.4 USES-Anweisung in einer verwendenden Unit..............290...
  • Seite 13 Inhaltsverzeichnis 7.3.4.3 Absoluter Zugriff auf das feste Prozessabbild der BackgroundTask (Absoluter PA- Zugriff)..........................352 7.3.4.4 Syntax für den Bezeichner für einen absoluten PA-Zugriff..........353 7.3.4.5 Symbolischer Zugriff auf das feste Prozessabbild der BackgroundTask (Symbolischer PA-Zugriff)..........................354 7.3.4.6 Mögliche Datentypen des symbolischen PA-Zugriffs............355 7.3.4.7 Beispiel für symbolischen PA-Zugriff...................356 7.3.4.8 I/O-Variable für Zugriff auf das feste Prozessabbild der BackgroundTask erstellen....356...
  • Seite 14 Inhaltsverzeichnis 8.2.1.3 Parameter Lebenszeichenüberwachung................408 8.2.2 Editieren der Programmquellen im Online-Modus...............408 8.2.3 Symbol-Browser........................410 8.2.3.1 Eigenschaften des Symbol-Browsers..................410 8.2.3.2 Symbol-Browser einsetzen....................410 8.2.4 Variablen in Watchtabelle beobachten.................413 8.2.4.1 Variablen in der Watchtabelle....................413 8.2.4.2 Watchtabelle einsetzen......................414 8.2.5 Status Variable........................415 8.2.6 Programm-Durchlauf......................417 8.2.6.1 Programm-Durchlauf: Anzeige von Codestelle und Aufrufpfad...........417 8.2.6.2 Parameter Programm-Durchlauf..................417 8.2.6.3...
  • Seite 15 Inhaltsverzeichnis A.1.3.2 Schreibweise von Konstanten (Literale)................463 A.1.3.3 Kommentare.........................471 A.1.3.4 Abschnitte der ST-Quelle.....................472 A.1.3.5 Gliederungen von ST-Quellen....................472 A.1.3.6 Programmorganisationseinheiten (POE)................475 A.1.3.7 Deklarationsabschnitte......................481 A.1.3.8 Aufbau der Deklarationsblöcke....................484 A.1.3.9 Datentypen...........................494 A.1.3.10 Anweisungsabschnitt......................499 A.1.3.11 Wertzuweisungen und Operationen..................500 A.1.3.12 Aufruf von Funktionen, Funktionsbausteinen und Methoden..........506 A.1.3.13 Kontrollanweisungen......................509 A.1.3.14...
  • Seite 16 Inhaltsverzeichnis SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 17: Grundlegende Sicherheitshinweise

    Grundlegende Sicherheitshinweise Allgemeine Sicherheitshinweise WARNUNG Lebensgefahr bei Nichtbeachtung von Sicherheitshinweisen und Restrisiken Bei Nichtbeachtung der Sicherheitshinweise und Restrisiken in der zugehörigen Hardware- Dokumentation können Unfälle mit schweren Verletzungen oder Tod auftreten. ● Halten Sie die Sicherheitshinweise der Hardware-Dokumentation ein. ● Berücksichtigen Sie bei der Risikobeurteilung die Restrisiken. WARNUNG Lebensgefahr bei Fehlfunktionen der Maschine infolge fehlerhafter oder veränderter Parametrierung...
  • Seite 18: Industrial Security

    Industrial Security Hinweis Industrial Security Siemens bietet Produkte und Lösungen mit Industrial Security-Funktionen an, die den sicheren Betrieb von Anlagen, Systemen, Maschinen und Netzwerken unterstützen. Um Anlagen, Systeme, Maschinen und Netzwerke gegen Cyber-Bedrohungen zu sichern, ist es erforderlich, ein ganzheitliches Industrial Security-Konzept zu implementieren (und kontinuierlich aufrechtzuerhalten), das dem aktuellen Stand der Technik entspricht.
  • Seite 19: Lebensgefahr Bei Softwaremanipulation Durch Verwendung Von Wechselspeichermedien

    Grundlegende Sicherheitshinweise 1.3 Lebensgefahr bei Softwaremanipulation durch Verwendung von Wechselspeichermedien Lebensgefahr bei Softwaremanipulation durch Verwendung von Wechselspeichermedien WARNUNG Lebensgefahr bei Softwaremanipulation durch Verwendung von Wechselspeichermedien Die Ablage von Dateien auf Wechselspeichermedien birgt ein erhöhtes Risiko gegenüber Infektionen, z. B. mit Viren oder Malware. Durch fehlerhafte Parametrierung können Fehlfunktionen an Maschinen auftreten, die zu Körperverletzungen oder Tod führen können.
  • Seite 20 Grundlegende Sicherheitshinweise 1.3 Lebensgefahr bei Softwaremanipulation durch Verwendung von Wechselspeichermedien SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 21: Einleitung

    Verfügung, um die unterschiedlichen Aufgaben bei der Programmierung von Anwenderprogrammen bestmöglich zu unterstützen. SIMOTION SCOUT ist das Engineering System der Produktfamilie SIMOTION. ST ist die Hochsprache zur Programmierung von Anwenderprogrammen, wobei man in ST Anwenderprogramme für die verschiedenen Ablaufebenen entwickeln kann.
  • Seite 22: St-Editor Mit Werkzeugen Für Erstellung Und Test Von Programmen

    Der ST-Compiler übersetzt das editierte Programm in ausführbaren Code und zeigt jeden Syntaxfehler mit Angabe von Programmzeile und Fehlerursache an. Zum Testen der ST-Programme stehen Ihnen Testfunktionen im SIMOTION SCOUT zur Verfügung. Sie können Ihre Programme online visualisieren und testen.
  • Seite 23: Erste Schritte Mit St

    Register der Detailanzeige ist der Symbol-Browser; dort können Sie Variablen beobachten und ändern. Die einzelnen Komponenten sind einfach und komfortabel zu handhaben. Sie sind direkt in die Workbench von SIMOTION SCOUT eingebunden. Näheres zur Bedienung der Workbench und deren Werkzeuge siehe Projektierungshandbuch SIMOTION SCOUT.
  • Seite 24 Erste Schritte mit ST 3.1 Einbindung von ST in SCOUT ① Editor ② Compiler ③ Status Programm ④ Detailanzeige (Register Ausgabe übersetzen / prüfen) Bild 3-1 Entwicklungsumgebung von ST SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 25: Elemente Der Workbench Kennenlernen

    3.1.1 Elemente der Workbench kennenlernen Die Workbench stellt den Rahmen für den SIMOTION SCOUT dar. Mit deren Werkzeugen können Sie alle nötigen Schritte durchführen, um eine Maschine so zu konfigurieren, optimieren und programmieren, damit sie die gewünschte Aufgabe ausführen kann.
  • Seite 26: Voraussetzungen Für Die Programmerstellung

    Projekt einfügen oder öffnen Das Projekt ist die oberste Hierarchiestufe der Datenverwaltung. Alle Daten, die z. B. zu einer Produktionsmaschine gehören, legt SIMOTION SCOUT in dem zum Projekt gehörenden Verzeichnis ab. Das Projekt bildet somit die Klammer für alle SIMOTION Geräte, Antriebe usw., die zu einer Maschine gehören.
  • Seite 27: Technologieobjekte Einfügen Und Konfigurieren

    Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen Erst nach Konfiguration eines SIMOTION Geräts können Sie ST-Quellen einfügen und bearbeiten. Technologieobjekte einfügen und konfigurieren Die Funktionalität von Achsen, Nocken usw. wird in SIMOTION durch Technologieobjekte (TO) repräsentiert.
  • Seite 28 Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen 4. Geben Sie den Namen der ST-Quelle ein. Namen für Programmquellen müssen den Regeln für Bezeichner (Seite 99) genügen: Sie sind aus Buchstaben (A … Z, a … z), Ziffern (0 … 9) oder einzelnen Unterstrichen (_) in beliebiger Reihenfolge zusammengesetzt, wobei das erste Zeichen ein Buchstabe oder ein Unterstrich sein muss.
  • Seite 29: Vorhandene St-Quelle Öffnen

    Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen Hinweis Mit OK wird die ST‑Quelle nur in das Projekt übernommen. Auf dem Datenträger werden die Daten erst zusammen mit dem Projekt gespeichert, z. B. durch Projekt > Speichern oder Projekt >...
  • Seite 30 Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen 3. Wählen Sie Menü Bearbeiten > Objekteigenschaften. 4. Wählen Sie ggf. weitere Register, um dort lokale Einstellungen (nur für diese ST-Quelle gültig) vorzunehmen: – Register Allgemeines: Allgemeine Angaben zur ST-Quelle, z. B. Codegröße bei der letzten Übersetzung, Zeitstempel der letzten Änderung, Speicherort des Projekt (siehe Bild).
  • Seite 31: Mit Dem St-Editor Umgehen

    Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen Namen für Programmquellen müssen den Regeln für Bezeichner genügen: Sie sind aus Buchstaben (A … Z, a … z), Ziffern (0 … 9) oder einzelnen Unterstrichen (_) in beliebiger Reihenfolge zusammengesetzt, wobei das erste Zeichen ein Buchstabe oder ein Unterstrich sein muss.
  • Seite 32: Syntaxcoloring

    Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen Bild 3-5 Geöffnete ST‑Quelle im ST‑Editor 3.3.4.1 Syntaxcoloring Der ST-Editor stellt Sprachelemente mit verschiedenen Farben dar: ● Blau: Schlüsselwörter und Compiler-Buildin-Funktionen ● Magenta: Zahlen, Werte ● Grün: Kommentare ●...
  • Seite 33: Einstellungen Des St-Editors

    Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen So kopieren Sie Variablennamen aus dem Symbol-Browser in die ST‑Quelle: 1. Markieren Sie im Symbol-Browser die ganze Zeile der gewünschten Variablen. Klicken Sie dazu auf die Zeilennummer am Beginn der Zeile. 2.
  • Seite 34 Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen Bild 3-6 Einstellungen ST-Editor / Skripting Die Einstellungen sind auch gültig für den Skript-Editor. In der folgenden Tabelle finden Sie eine Beschreibung der einzelnen Parameter: Tabelle 3-1 Parameter Einstellungen ST-Editor / Skripting Parameter Beschreibung Zeilennummerierung anzeigen...
  • Seite 35: Einzüge Und Tabulatoren

    Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen Parameter Beschreibung Folding aktiv Wenn aktiv, wird links neben dem Editierbereich die Spalte mit den Faltungsinformationen eingeblendet. Sie können dann Blöcke in einer ST‑Quelle ausblenden, so dass nur die erste Zeile des Blocks sichtbar bleibt. Siehe: Falten (Blöcke ein- und ausblenden) (Seite 38).
  • Seite 36: Blöcke Automatisch Ein- Und Ausrücken

    Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen Blöcke automatisch ein- und ausrücken Der ST-Editor erkennt Blöcke, die durch ein Schlüsselwort eingeleitet und durch ein weiteres Schlüsselwort beendet werden, z. B.: ● INTERFACE / END_INTERFACE ● IMPLEMENTATION / END_IMPLEMENTATION ●...
  • Seite 37: Einrückhilfe (Einrückebene Anzeigen)

    Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen So gehen Sie vor: 1. Markieren Sie den Textbereich im ST‑Editor, den Sie einrücken bzw. ausrücken wollen (siehe Text markieren (Seite 44)). Der markierte Textbereich muss mehrere Zeilen umfassen. 2.
  • Seite 38: Falten (Blöcke Ein- Und Ausblenden)

    Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen 3.3.4.5 Falten (Blöcke ein- und ausblenden) Sie können Blöcke in einer ST‑Quelle ausblenden, so dass nur die erste Zeile des Blocks sichtbar bleibt. Dies erhöht die Übersichtlichkeit beim Bearbeiten oder Lesen einer längeren ST‑Quelle.
  • Seite 39: Falten Aktivieren Oder Deaktivieren

    Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen Bild 3-9 ST‑Quelle mit ausgeblendetem IF-Block (einschließlich Blockkommentar) Falten aktivieren oder deaktivieren Um das Ein- und Ausblenden von Blöcken nutzen zu können, muss das Falten aktiviert sein. Die Spalte mit den Faltungsinformationen (links vom Editierbereich) ist dann eingeblendet. So aktivieren oder deaktivieren Sie das Falten: ●...
  • Seite 40 Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen So blenden Sie Blöcke ein oder aus: ● Einzelnen Block ausblenden (Alternative): – Klicken Sie mit der Maus auf das Zeichen (Minus) in der Spalte mit den Faltungsinformationen. –...
  • Seite 41: Editorfenster Teilen

    Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen Hinweis Die Informationen über ein- und ausgeblendete Blöcke werden beim Schließen der ST‑Quelle im Projekt gespeichert. Beim Export der ST‑Quelle (Seite 77) werden diese Informationen nicht übernommen. 3.3.4.6 Editorfenster teilen Sie können das Fenster des ST‑Editor in zwei Segmente teilen.
  • Seite 42: Leerzeichen Und Tabulatoren Anzeigen

    Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen Segmenthöhe anpassen Sie können die Höhe der beiden Segmente Ihren individuellen Erfordernissen anpassen: 1. Bewegen Sie mit der Maus den Cursor zur Trennlinie zwischen den beiden Segmenten, bis er die Form eines Doppelpfeils annimmt (siehe obiges Bild). 2.
  • Seite 43: Schriftgröße Im St-Editor Ändern

    Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen 3.3.4.8 Schriftgröße im ST-Editor ändern Sie können die Schriftgröße der ST-Quelle im Editor verändern. Dabei werden auch die Schriftgröße der Zeilennummern und die Größe anderer Anzeigeelemente (z. B. Faltmarkierungen, Lesezeichen) angepasst.
  • Seite 44: Text Markieren

    Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen Die Einstellung wird wirksam bei allen ST-Quellen, die anschließend geöffnet werden. Sie wirkt sich nicht auf die aktuell geöffneten ST-Quellen aus. 3.3.4.9 Text markieren Text zeilenweise markieren So gehen Sie vor, um Text zeilenweise zu markieren: ●...
  • Seite 45: Text Spaltenweise Markieren

    Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen Text spaltenweise markieren So gehen Sie vor, um Text spaltenweise zu markieren: ● Mit der Maus: – Drücken Sie die Taste ALT und überstreichen Sie gleichzeitig mit gedrückter linker Maustaste den zu markierenden Text.
  • Seite 46: Gesamten Text Markieren

    Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen Gesamten Text markieren So gehen Sie vor, um den gesamten Text zu markieren (Alternativen): ● Drücken Sie die Taste STRG und klicken gleichzeitig mit der linken Maustaste in die Spalte mit den Zeilennummern.
  • Seite 47: Berechnung Der Folgenglieder

    Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen Berechnung der Folgenglieder Alle im ST‑Editor markierten Zahlen werden als mögliche Folgenglieder interpretiert. Die Anfangsglieder, aus denen die Folge berechnet wird, müssen hierbei ganzzahlige Werte darstellen. Bei der Ermittlung der Zahlenfolge wird angenommen, dass sich ein Folgenglied a aus dem jeweils vorhergehenden Folgenglied a mit einer linearen Funktion mit den ganzzahligen...
  • Seite 48 Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen Hinweis Die zur Berechnung verwendeten Anfangsglieder der Folge müssen ganzzahlige Werte darstellen. Sie können jedoch auch in der Gleitpunktdarstellung angegeben werden. Bei der Folgenberechnung zu berücksichtigende Zahlen müssen vollständig markiert werden. Nur Zahlen und ausgewählte Sonderzeichen (z.
  • Seite 49: Lesezeichen Verwenden

    Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen 3.3.4.11 Lesezeichen verwenden Sie können im ST‑Editor Lesezeichen setzen. Damit können Sie innerhalb der ST‑Quelle gezielt zu ausgewählten Zeilen springen. Bild 3-17 ST-Quelle mit Lesezeichen Lesezeichen setzen und löschen So gehen Sie vor, um an einer Zeile der aktiven ST‑Quelle ein Lesezeichen zu setzen bzw.
  • Seite 50: Alle Lesezeichen Löschen

    Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen So gehen Sie vor, um zum vorherigen Lesezeichen innerhalb der ST‑Quelle zu springen: ● Wählen Sie das Kontextmenü Lesezeichen > Vorheriges Lesezeichen. Alle Lesezeichen löschen So gehen Sie vor, um alle Lesezeichen in einer ST‑Quelle zu löschen: ●...
  • Seite 51: Funktionsweise

    Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen 4. Wählen Sie mit den Pfeiltasten auf/ab den gewünschten Bezeichner aus. 5. Übernehmen Sie den Bezeichner. Das aktuelle Wort wird überschrieben. Hinweis Wenn nur ein Bezeichner zur Auswahl steht, wird das Auswahlfenster nicht geöffnet und der Bezeichner sofort vervollständigt.
  • Seite 52: Weitere Hilfsmittel Des St-Editors

    Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen Das Verhalten ist abhängig von der Programmiersprache, in der die Quelle der aufgerufenen POE verfasst ist: ● Programmiersprache SIMOTION ST: Die entsprechende ST‑Quelle wird gegebenenfalls geöffnet. Der Cursor wird an den Anfang der entsprechenden POE im Implementationsabschnitt gesetzt.
  • Seite 53: Groß- Und Kleinschreibung Ändern

    Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen Groß- und Kleinschreibung ändern Sie können die Schreibweise eines markierten Textes in Großschreibung oder Kleinschreibung ändern: 1. Markieren Sie den Text, dessen Schreibweise Sie ändern wollen, siehe Text markieren. 2.
  • Seite 54 Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen Symbol Bedeutung Status Programm Klicken Sie auf dieses Symbol, um den Testmodus Status Programm zu starten. Wäh‐ rend des Programmdurchlaufs können Sie die Werte der in der ST-Quelle markierten Variablen beobachten.
  • Seite 55: Kontextmenü St-Editor

    Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen Symbol Bedeutung Alle Lesezeichen entfernen Klicken Sie auf dieses Symbol, um alle Lesezeichen aus der aktiven ST‑Quelle zu entfernen. Siehe: Lesezeichen verwenden (Seite 49). Gehe zu Blockanfang Klicken Sie auf dieses Symbol, um den Cursor an den Beginn des aktuellen bzw. über‐ geordneten Blocks zu verschieben.
  • Seite 56 Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen Funktion Bedeutung/Hinweis Zeilennummerierung an/aus Wählen Sie diesen Befehl, um in der aktiven ST‑Quelle die Zeilennummern ein- oder ausblenden. Siehe: Weitere Hilfsmittel des ST-Editors (Seite 52). Einrückhilfe Wählen Sie diesen Befehl, um in der aktiven ST‑Quelle die Ein- und Ausrückun‐ gen bei Blöcken durch senkrechte Hilfslinien (entsprechend der eingestellten Tabulatorweite) optisch hervorzuheben.
  • Seite 57 Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen Funktion Bedeutung/Hinweis Markierten Bereich einrücken ● Wenn kein Text markiert ist: Wählen Sie diesen Befehl, um den Text rechts vom Cursor zur nächsten Tabulatorposition zu verschieben. ● Wenn Text in einer einzigen Zeile markiert ist: Wählen Sie diesen Befehl, um den markierten Text zu löschen und den nachfolgenden Text zur nächsten Tabulatorposition zu verschieben.
  • Seite 58: Tastenkürzel (Shortcuts)

    Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen Funktion Bedeutung/Hinweis Lokale Verwendung >> Wenn der Cursor innerhalb einer Variablen steht bzw. wenn die Variable markiert ist: Wählen Sie diesen Befehl, um zur nächsten Verwendung der Variablen in der ST‑Quelle zu springen.
  • Seite 59 Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen Tastenkürzel/Shortcut Beschreibung ● Wenn kein Text markiert ist: Text rechts vom Cursor zur nächsten Tabulatorposition verschieben. ● Wenn Text in einer einzigen Zeile markiert ist: Markierten Text löschen und den nachfolgenden Text zur nächsten Tabulatorposition verschieben.
  • Seite 60 Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen Tastenkürzel/Shortcut Beschreibung STRG+F5 Alle Haltepunkte (in allen Programmquellen) des SIMOTION Geräts entfernen (Menü De‐ bug > Alle Haltepunkte entfernen). STRG+F7 Ein- oder Ausschalten der Funktion Status Programm (Menü ST‑Quelle > Status Pro‐ gramm Ein/Aus).
  • Seite 61: Compiler Starten

    Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen Tastenkürzel/Shortcut Beschreibung STRG+ALT+W Leerzeichen und Tabulatoren in der aktuellen ST‑Quelle ein- oder ausblenden. STRG+ADD (Ziffernblock) Schriftgröße in der aktuellen ST‑Quelle vergrößern. STRG+MINUS (Ziffernblock) Schriftgröße in der aktuellen ST‑Quelle verkleinern. STRG+DIV (Ziffernblock) Schriftgröße in der aktuellen ST‑Quelle 100 %.
  • Seite 62: Hilfe Zur Fehlerkorrektur

    Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen Vorgehensweise 1. Klicken Sie in das Fenster mit dem ST‑Editor. Das dynamische Menü ST‑Quelle wird eingeblendet. 2. Wählen Sie Menü ST‑Quelle > Übernehmen und Übersetzen. Hinweis Das Menü ST-Quelle ist dynamisch. Es wird nur eingeblendet, wenn das Fenster des ST- Editors aktiv ist.
  • Seite 63 Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen Bild 3-19 Globale Einstellungen des Compilers Parameter Tabelle 3-7 Parameter für globale Einstellungen des Compilers Parameter Beschreibung Warnungsklassen anzeigen Zusätzlich zu den Fehlermeldungen kann der Compiler Warnungen und Informationen aus‐ geben.
  • Seite 64 Bei Speichern des Projekts im alten Projektformat: Das Verwenden von Sprachelementen, welche diese Compileroption voraussetzen, verhindert das fehlerfreie Übersetzen des Pro‐ jekts in Versionen des SIMOTION SCOUT kleiner als V4.5. Objektorientierte Program‐ Aktiv: Bei der Programmiersprache ST sind zusätzliche Sprachelemente zur objektorientier‐...
  • Seite 65 Ausführliches Meldungspro‐ Hier steuern Sie den Umfang des Meldungsprotokolls, das in der Detailanzeige der Work‐ tokoll beim Übersetzen des bench angezeigt wird, wenn Sie in SIMOTION SCOUT den Befehl Speichern und Änderun‐ Projekts / von Geräten erstel‐ gen übersetzen aufrufen.
  • Seite 66: Lokale Einstellungen Des Compilers

    Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen 3.3.6.2 Lokale Einstellungen des Compilers Die lokalen Einstellungen werden für jede ST-Quelle einzeln vorgenommen und überschreiben die globalen Einstellungen. Vorgehensweise 1. Öffnen Sie das Eigenschaftsfenster der ST-Quelle, siehe Eigenschaften einer ST-Quelle ändern (Seite 29): Markieren Sie im Projektnavigator die ST-Quelle und wählen Sie das Menü...
  • Seite 67 Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen Parameter Tabelle 3-8 Parameter für lokale Einstellungen des Compilers an der ST-Quelle Parameter Beschreibung Quelle von der Übersetzung Aktiv: Beim Übersetzen des Projekts, des Geräts oder der Bibliothek (z. B. Menü Projekt > ausschließen Speichern und alles neu übersetzen) wird diese Quelle nicht übersetzt.
  • Seite 68 Bei Speichern des Projekts im alten Projektformat: Das Verwenden von Sprachelementen, welche diese Compileroption voraussetzen, verhindert das fehlerfreie Übersetzen des Pro‐ jekts in Versionen des SIMOTION SCOUT kleiner als V4.5. Objektorientierte Program‐ Aktiv: Es sind zusätzliche Sprachelemente zur objektorientierten Programmierung gemäß...
  • Seite 69 Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen Parameter Beschreibung Warnungen ausgeben Zusätzlich zu den Fehlermeldungen kann der Compiler Warnungen und Informationen aus‐ geben. Sie können den Umfang der ausgegebenen Warnmeldungen einstellen. Warnungsklassen Checkbox "Warnungen ausgeben": Aktiv: Der Compiler gibt Warnungen und Informationen entsprechend der nachstehenden Auswahl der Warnungsklassen aus.
  • Seite 70: Wirksamkeit Der Globalen Oder Lokalen Einstellungen Des Compilers

    Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen Parameter Beschreibung Globale Compilereinstellun‐ Aktiv: Die globalen Einstellungen des Compilers sind für alle Parameter unwirksam. Die gen ignorieren Checkboxen "Globale Einstellungen verwenden" sind nicht anwählbar und gegraut darge‐ (Das Programm wird bei Än‐...
  • Seite 71 Speichern und Änderungen übersetzen wird gewählt. Dies führt zu Problemen bei Bibliotheken, die mit einem Know-how-Schutz Programme (Seite 75) der Stufe "Hoch" versehen sind. Außerdem können bei Projekten, die von einer früheren Version des SIMOTION SCOUT konvertiert wurden, Online-Inkonsistenzen auftreten. SIMOTION ST Structured Text...
  • Seite 72 Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen Checkboxen für die weiteren Parameter Außerdem verfügt jeder Parameter, zu dem es auch eine globale Einstellung gibt, über mindestens 2 Checkboxen: ● Checkbox "Globale Einstellungen verwenden": Mit dieser Checkbox legen Sie fest, ob die globalen Einstellungen verwendet werden. Sie ist nur anwählbar, wenn die Checkbox "Quelle nicht neu übersetzen, wenn globale Compilereinstellungen geändert wurden"...
  • Seite 73: Bedeutung Der Warnungsklassen

    Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen Hinweis Die aktuellen Compileroptionen, die bei der nächsten Übersetzung der Programmquelle wirken, können Sie überprüfen: ● Wählen Sie das Register "Weitere Einstellungen" (Seite 73) im Eigenschaftsfenster der Programmquelle. 3.3.6.4 Bedeutung der Warnungsklassen In der Tabelle sind die Warnungsklassen und ihre Bedeutung aufgelistet.
  • Seite 74: Bedeutung Der Compileroptionen

    Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen Zum Anzeigen der beim letzten Übersetzen der Programmquelle verwendeten Compileroptionen: ● Wählen Sie das Register Übersetzung. Für die letzte Übersetzung der Programmquelle wird angezeigt: – Die Version des verwendeten Compilers. –...
  • Seite 75: Know-How-Schutz Für St-Quellen

    Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen Compileroption Bedeutung Weitere Optionen Interne Optionen des SIMOTION Compilers. Zur Bedeutung der Compileroption: siehe "Lokale Einstellungen des Compilers" (Seite 66). Nur bei Aufruf des Compilers über die Kommandozeile, z. B. mittels Scripting. Hinweis Die Compileroptionen können auch beim Aufruf des Compilers über die Kommandozeile angegeben werden, z.
  • Seite 76 Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen Bild 3-21 Präprozessor-Definitionen Tabelle 3-10 Syntax der Präprozessor-Definitionen Syntax Bedeutung Bezeichner=Text Bezeichner wird definiert und in der ST‑Quelle durch den Der angegebene Text ersetzt. angegebenen ’Bezeichner=Text’ Erlaubte Zeichen: Siehe Fußteil der Tabelle. "Bezeichner=Text"...
  • Seite 77: St-Quelle Exportieren, Importieren Und Drucken

    Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen 3.3.9 ST-Quelle exportieren, importieren und drucken Hier erhalten Sie einen Überblick über das Exportieren, Importieren und Drucken einer ST- Quelle. 3.3.9.1 ST-Quelle als Textdatei (ASCII) exportieren Sie können eine ST‑Quelle als Textdatei im ASCII‑Format exportieren. Sie können diese Datei wieder als ST‑Quelle importieren oder in jedem ASCII‑Editor bearbeiten Vorgehensweise So exportieren Sie eine ST-Quelle als ASCII-Datei:...
  • Seite 78: St-Quelle Im Xml-Format Exportieren

    Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen 3.3.9.2 ST-Quelle im XML-Format exportieren So exportieren Sie eine ST-Quelle im XML-Format: 1. Markieren Sie im Projektnavigator die ST-Quelle. 2. Wählen Sie das Kontextmenü Experte > Projekt speichern und Objekt exportieren. 3.
  • Seite 79: St-Quelle Drucken

    Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen Alternativ: 1. Markieren Sie im Projektnavigator den Ordner PROGRAMME. 2. Wählen Sie das Kontextmenü Objekt importieren. 3. Wählen Sie die zu importierenden XML-Daten aus. Eine neue ST‑Quelle wird angelegt und die XML-Daten importiert. Diese ST‑Quelle erhält den in den XML-Daten gespeicherten Namen;...
  • Seite 80: Einstellung Zur Verwendung Eines Externen Editors

    Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen Einstellung zur Verwendung eines externen Editors Die Einstellungen nehmen Sie in der SCOUT-Workbench vor: 1. Wählen Sie das Menü Extras > Einstellungen. 2. Wählen Sie das Register ST-Externer Editor (siehe Bild). 3.
  • Seite 81: Beachten Sie Unbedingt Folgendes Beim Verwenden Eines Externen Editors

    Beachten Sie unbedingt Folgendes beim Verwenden eines externen Editors: ACHTUNG Datenverlust möglich Wenn Sie ein Projekt schließen oder SIMOTION SCOUT beenden, bevor Sie alle Fenster des externen Editord geschlossen haben, besteht die Gefahr von Datenverlusten! Schließen Sie alle Fenster des externen Editors, bevor Sie ein Projekt schließen oder SIMOTION SCOUT beenden.
  • Seite 82: Kontextmenü St-Quelle

    Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen Funktion Bedeutung/Hinweis Status Programm Ein/Aus Wählen Sie diesen Befehl, um den Testmodus Status Programm zu starten. Während des Programmdurchlaufs können Sie die Werte der in der ST-Quelle markierten Variablen be‐ obachten.
  • Seite 83 Erste Schritte mit ST 3.3 Mit dem ST-Editor und dem Compiler umgehen Funktion Bedeutung/Hinweis Experte Objekt importieren Wählen Sie diesen Befehl, um XML-Daten einer ST‑Quelle, die Sie in einem anderen Projekt exportiert hatten, in die markierte ST‑Quelle zu importieren. Die in der importierenden ST-Quelle vorhandenen Daten werden überschrieben.
  • Seite 84: Ein Beispielprogramm Erstellen

    Erste Schritte mit ST 3.4 Ein Beispielprogramm erstellen Funktion Bedeutung/Hinweis Querverweise Die Querverweisliste der markierten ST‑Quelle wird gebildet und angezeigt. Die Querverweisliste enthält die Deklaration und Verwendung aller Bezeichner der markierten ST‑Quelle. Siehe: Inhalt der Querverweisliste (Seite 376). Programmstruktur Die Programmstruktur der markierten ST‑Quelle wird gebildet und angezeigt. Die Programmstruktur enthält alle Unterprogrammaufrufe und deren Schachtelung innerhalb der markierten ST‑Quelle.
  • Seite 85: Projekt Öffnen Oder Erstellen

    Erste Schritte mit ST 3.4 Ein Beispielprogramm erstellen 3.4.2 Projekt öffnen oder erstellen Projekte enthalten alle Informationen über Hardware und Konfiguration. Darin sind auch Programme enthalten, mit denen Sie diese Hardware steuern. Vorgehensweise Ist kein Projekt vorhanden, gehen Sie wie folgt vor: 1.
  • Seite 86: Hardware Bekanntmachen

    Erste Schritte mit ST 3.4 Ein Beispielprogramm erstellen 3.4.3 Hardware bekanntmachen Dieser Arbeitsschritt umfasst: 1. Neues SIMOTION Gerät (z. B. C240 V4.2) anlegen und konfigurieren. 2. Ausgang in der HW-Konfig auf Adresse 62 konfigurieren. Einzelheiten zu den Arbeitsschritten 1 und 2 siehe Online-Hilfe. Bild 3-24 Änderung in der HW-Konfig SIMOTION ST Structured Text...
  • Seite 87: Quelltext Mit Dem St-Editor Eingeben

    Erste Schritte mit ST 3.4 Ein Beispielprogramm erstellen 3.4.4 Quelltext mit dem ST-Editor eingeben Vorgehensweise 1. Öffnen Sie im Projektnavigator den Baum Ihres SIMOTION Geräts (Programme sind dem SIMOTION Gerät zugeordnet, auf dem Sie später laufen sollen.). 2. Markieren Sie den Ordner Programme und wählen Sie den Menüpunkt Einfügen >...
  • Seite 88: Funktionen Des Editors

    Erste Schritte mit ST 3.4 Ein Beispielprogramm erstellen 5. Verwenden Sie so oft wie möglich Kommentare. Geben Sie Ihren Kommentar nach den Zeichen // ein, wenn es sich um einzeiligen Text handelt. Wenn der Kommentar über mehrere Zeilen geht, schließen Sie ihn zwischen den Zeichenpaaren (* und *) ein. 6.
  • Seite 89: Quelltext Des Beispielprogramms

    Erste Schritte mit ST 3.4 Ein Beispielprogramm erstellen Eine ausführliche Beschreibung der Funktionen finden Sie in Mit dem ST-Editor umgehen (Seite 31) und in Einstellungen für den Compiler vornehmen (Seite 62). 3.4.4.2 Quelltext des Beispielprogramms Die Tabelle zeigt Ihnen den Quelltext des Beispielprogramms, so wie Sie ihn eingeben müssen, um lauffähigen Code erzeugen zu können.
  • Seite 90: Fehler Korrigieren

    Erste Schritte mit ST 3.4 Ein Beispielprogramm erstellen 3.4.5.2 Fehler korrigieren Der Compiler überprüft die Syntax der ST-Quelle. Im Register Ausgabe übersetzen/prüfen der Detailanzeige werden die erfolgreiche Übersetzung des Quelltextes bzw. Compiler-Fehler angezeigt. Die Fehlerangabe umfasst: Name der ST-Quelle, Zeilennummer, in welcher der Fehler aufgetreten ist, Fehlernummer und Fehlerbeschreibung.
  • Seite 91: Beispiel Für Fehlermeldungen

    Erste Schritte mit ST 3.4 Ein Beispielprogramm erstellen 3.4.5.3 Beispiel für Fehlermeldungen Bild 3-26 Fehlermeldung beim Übersetzen einer ST-Quelle Das Bild zeigt als Beispiel die Übersetzung der ST-Quelle ST_1 (siehe Quelltext des Beispielprogramms (Seite 89)), in der folgende Veränderung vorgenommen wurde: Am Ende der Zeile 18 mit der Anweisung "counterVar := counterVar + 1"...
  • Seite 92: Beispielprogramm Einer Ablaufebene Zuordnen

    Erste Schritte mit ST 3.4 Ein Beispielprogramm erstellen 3.4.6.1 Beispielprogramm einer Ablaufebene zuordnen Die Ablaufebenen legen die zeitliche Abfolge von Programmen fest. Jede Ablaufebene enthält eine oder mehrere Tasks, denen Sie Programme zuordnen können. Die Zuordnung eines Programmes zu einer Task kann nur nach dem Compilieren stattfinden und muss vor dem Laden des Programmes ins Zielsystem geschehen.
  • Seite 93: Verbindung Mit Dem Zielsystem Herstellen

    Gerät an, mit dem Sie verbunden sind. Am rechten unteren Bildschirmrand sehen Sie, dass Sie mit dem Zielsystem verbunden sind. Hinweis Nähere Informationen siehe Projektierungshandbuch SIMOTION SCOUT und Online-Hilfe SIMOTION SCOUT. SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 94: Beispielprogramm In Das Zielsystem Laden (Download)

    Erste Schritte mit ST 3.4 Ein Beispielprogramm erstellen Bild 3-28 Verbindung mit dem Zielsystem herstellen 3.4.6.3 Beispielprogramm in das Zielsystem laden (Download) So laden Sie das Beispielprogramm in das Zielsystem: 1. Schalten Sie das Zielsystem auf STOP. 2. Wählen Sie in der Menüleiste Zielsystem > Laden > Projekt ins Zielsystem laden. 3.
  • Seite 95: Beispielprogramm Starten Und Testen

    Erste Schritte mit ST 3.4 Ein Beispielprogramm erstellen Bild 3-29 Beispielprogramm in das Zielsystem laden (Download) 3.4.6.4 Beispielprogramm starten und testen Beispielprogramm starten So starten Sie das Beispielprogramm: ● Schalten Sie Ihr Zielsystem auf RUN (siehe Hardwarebeschreibung). An den Ausgängen Ihres Zielsystems blinken die Lämpchen in sequentieller Folge. Beispielprogramm testen Siehe Programmtest (Seite 403).
  • Seite 96 Erste Schritte mit ST 3.4 Ein Beispielprogramm erstellen SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 97: St-Grundlagen

    ST-Grundlagen Sie erfahren in diesem Kapitel, welche Sprachmittel Ihnen ST zur Verfügung stellt und wie Sie mit diesen Sprachmitteln umgehen können. Beachten Sie, dass Funktionen, Funktionsbausteine und die Tasksteuerung in den nächsten Kapiteln behandelt werden. Eine vollständige formale Sprachbeschreibung mit allen Syntaxdiagrammen siehe Anhang Regeln (Seite 462).
  • Seite 98: Blöcke In Syntaxdiagrammen

    ST-Grundlagen 4.2 Basiselemente der Sprache 4.1.2 Blöcke in Syntaxdiagrammen Ein Block ist ein Grundelement oder ein Element, das wiederum aus Blöcken zusammengesetzt ist. Das Bild zeigt die Symbolarten, die den Blöcken entsprechen: Bild 4-2 Blöcke Bei der Eingabe von Quelltexten, d. h., wenn Sie Blöcke oder Elemente eines Syntaxdiagrammes in Quelltext umsetzen, sind sowohl die formatpflichtigen Regeln als auch die formatfreien Regeln zu beachten, siehe Hilfen für die Sprachbeschreibung (Seite 447).
  • Seite 99: Der St-Zeichensatz

    ST-Grundlagen 4.2 Basiselemente der Sprache In den Syntaxdiagrammen werden Terminale durch Kreise oder Ovale dargestellt, zusammengesetzte Elemente durch Rechtecke, siehe Blöcke in Syntaxdiagrammen (Seite 98). Hier erhalten Sie eine Auswahl der wichtigsten Terminale, eine vollständige Übersicht finden Sie in Grundelemente (Terminale) (Seite 449). 4.2.1 Der ST-Zeichensatz ST benutzt aus dem ASCII-Zeichensatz folgende Buchstaben und Ziffern:...
  • Seite 100: Beispiele Für Bezeichner

    ST-Grundlagen 4.2 Basiselemente der Sprache Bild 4-3 Syntax: Bezeichner Dieses Syntaxdiagramm besagt, dass das erste Zeichen eines Bezeichners ein Buchstabe oder ein Unterstrich sein muss. Nach einem Unterstrich kommt zwingend ein Buchstabe oder eine Zahl, d. h. mehrere Unterstriche sind nicht erlaubt. Danach können Sie beliebig oft und in beliebiger Reihenfolge Unterstriche, Buchstaben oder Ziffern verwenden.
  • Seite 101: Reservierte Bezeichner

    ST-Grundlagen 4.2 Basiselemente der Sprache Ungültiger Bezeichner Grund Leerzeichen sind nicht erlaubt, da Sonderzeichen. S Wert ARRAY, REAL und _sizeOf sind zwar formal gültige, aber reservierte Be‐ Array zeichner (Seite 101) , d. h. sie dürfen nur wie vorbestimmt benutzt werden. REAL Somit dürfen Sie diese Namen nicht selbst vergeben, z.
  • Seite 102 ST-Grundlagen 4.2 Basiselemente der Sprache BIGBYTEARRAY_TO_ANYTYPE BOOL BYTE BOOL_TO_BYTE BYTE_TO_BOOL BOOL_TO_DWORD BYTE_TO_DINT BOOL_TO_WORD BYTE_TO_DWORD BOOL_VALUE_TO_DINT BYTE_TO_INT BOOL_VALUE_TO_INT BYTE_TO_SINT BOOL_VALUE_TO_LREAL BYTE_TO_UDINT BOOL_VALUE_TO_REAL BYTE_TO_UINT BOOL_VALUE_TO_SINT BYTE_TO_USINT BOOL_VALUE_TO_UDINT BYTE_TO_WORD BOOL_VALUE_TO_UINT BYTE_VALUE_TO_LREAL BOOL_VALUE_TO_USINT BYTE_VALUE_TO_REAL CASE CTD_DINT CLASS CTD_UDINT CONCAT CONCAT_DATE_TOD CTU_DINT CONSTANT CTU_UDINT CONTINUE CTUD CTUD_DINT CTUD_UDINT...
  • Seite 103 ST-Grundlagen 4.2 Basiselemente der Sprache ELSE END_PROGRAM ELSIF END_REPEAT END_CASE END_STRUCT END_CLASS END_TYPE END_EXPRESSION END_VAR END_FOR END_WAITFORCONDITION END_FUNCTION END_WHILE END_FUNCTION_BLOCK ENUM_TO_DINT END_IF EXIT END_IMPLEMENTATION END_INTERFACE EXPD END_LABEL EXPRESSION END_METHOD EXPT END_NAMESPACE EXTENDS F_TRIG FROM_BIG_ENDIAN FALSE FROM_LITTLE_ENDIAN FINAL FUNCTION FIND FUNCTION_BLOCK GOTO INT_TO_SINT IMPLEMENTATION...
  • Seite 104 ST-Grundlagen 4.2 Basiselemente der Sprache LABEL LREAL_TO_REAL LEFT LREAL_TO_SINT LREAL_TO_STRING LIMIT LREAL_TO_UDINT LITTLEBYTEARRAY_TO_ANYTYPE LREAL_TO_UINT LREAL_TO_USINT LREAL_VALUE_TO_BOOL LOWER_BOUND LREAL_VALUE_TO_BYTE LREAL LREAL_VALUE_TO_DWORD LREAL_TO_DINT LREAL_VALUE_TO_WORD LREAL_TO_INT METHOD NAMESPACE NULL OVERLAP OVERRIDE PRIVATE PROTECTED PROGRAM PUBLIC R_TRIG REAL_VALUE_TO_DWORD REAL REAL_VALUE_TO_WORD REAL_TO_DINT REAL_TO_DWORD REF_TO REAL_TO_INT REPEAT REAL_TO_LREAL REPLACE...
  • Seite 105 ST-Grundlagen 4.2 Basiselemente der Sprache SINT_TO_WORD SINT_VALUE_TO_BOOL SQRT SINT STRING SINT_TO_BYTE STRING_TO_DINT SINT_TO_DINT STRING_TO_LREAL SINT_TO_DWORD STRING_TO_REAL SINT_TO_INT STRING_TO_UDINT SINT_TO_LREAL STRUCT SINT_TO_REAL StructAlarmId SINT_TO_UDINT STRUCTALARMID_TO_DINT SINT_TO_UINT StructTaskId SINT_TO_USINT SUPER THEN THIS TO_BIG_ENDIAN TIME TO_LITTLE_ENDIAN TIME_OF_DAY TIME_TO_INT TRUE TIME_TO_REAL TRUNC TYPE SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 106 ST-Grundlagen 4.2 Basiselemente der Sprache UDINT UINT_TO_USINT UDINT_TO_BYTE UINT_TO_WORD UDINT_TO_DINT UINT_VALUE_TO_BOOL UDINT_TO_DWORD UNIT UDINT_TO_INT UNTIL UDINT_TO_LREAL UPPER_BOUND UDINT_TO_REAL USELIB UDINT_TO_SINT USEPACKAGE UDINT_TO_STRING USES UDINT_TO_UINT USING UDINT_TO_USINT USINT UDINT_TO_WORD USINT_TO_BYTE UDINT_VALUE_TO_BOOL USINT_TO_DINT UINT USINT_TO_DWORD UINT_TO_BYTE USINT_TO_INT UINT_TO_DINT USINT_TO_LREAL UINT_TO_DWORD USINT_TO_REAL UINT_TO_INT USINT_TO_SINT UINT_TO_LREAL USINT_TO_UDINT...
  • Seite 107: Reservierte Bezeichner Der Programmiersprache St

    ST-Grundlagen 4.2 Basiselemente der Sprache 4.2.3.2 Reservierte Bezeichner der Programmiersprache ST Die Tabelle enthält weitere reservierte Bezeichner, die künftigen Erweiterungen der Programmiersprache ST vorbehalten sind. Tabelle 4-2 Reservierte Bezeichner der Programmiersprache ST ACTION ADD_TIME ADD_TOD_TIME ADD_DT_TIME BCD_TO_BYTE BCD_TO_LWORD BCD_TO_DINT BCD_TO_SINT BCD_TO_DWORD BCD_TO_WORD BCD_TO_INT...
  • Seite 108: Weitere Reservierte Bezeichner

    ST-Grundlagen 4.2 Basiselemente der Sprache SEMA SUB_DT_DT SINT_TO_BCD SUB_DT_TIME STEP SUB_TIME SUB_TOD_TIME SUB_DATE_DATE SUB_TOD_TOD TRANSITION ULINT VAR_ACCESS VAR_EXTERNAL VAR_ALIAS VAR_OBJECT WORD_TO_BCD 4.2.3.3 Weitere reservierte Bezeichner In Anwenderdefinitionen sind neben den geschützten Bezeichnern (Seite 101) und den reservierten Bezeichnern (Seite 107) der Programmiersprache ST auch Bezeichner zu vermeiden, die in SIMOTION eine definierte Bedeutung haben oder für künftige Erweiterungen vorgesehen sind.
  • Seite 109: Bezeichner, Die Für Künftige Erweiterungen Von Simotion Vorgesehen Sind

    ST-Grundlagen 4.2 Basiselemente der Sprache Eine Auflistung aller Bezeichner mit definierter Bedeutung finden Sie im Funktionshandbuch SIMOTION Basisfunktionen. Bezeichner, die für künftige Erweiterungen von SIMOTION vorgesehen sind Vermeiden Sie anwenderdefinierte Bezeichner, die für zukünftige Erweiterungen von SIMOTION vorgesehen sind. Sie treffen dadurch Vorsorge, dass auch in zukünftigen Versionen Ihre anwenderdefinierten Bezeichner keine in SIMOTION definierten Bezeichner verdecken.
  • Seite 110: Gleitpunktzahlen

    ST-Grundlagen 4.2 Basiselemente der Sprache Im ST können Sie Ganzzahlen in unterschiedlichen Zahlensystemen darstellen. Das erfolgt durch Voranstellen eines Schlüsselwortes für das Zahlensystem. Dabei steht: ● 2# für das Binärsystem, ● 8# für das Oktalsystem und ● 16# für das Hexadezimalsystem. Gültige Darstellungen der Dezimalzahl 15 sind: 2#1111 8#17...
  • Seite 111: Boolesche Werte

    ST-Grundlagen 4.2 Basiselemente der Sprache 4.2.4.4 Boolesche Werte Boolesche Werte sind Bit-Konstanten. Sie müssen mit dem Wert Null (0) oder Eins (1) dargestellt werden oder durch die Schlüsselwörter FALSE bzw. TRUE. Beispiel: a := 1; // entspricht a := TRUE b := FALSE;...
  • Seite 112: Gliederung Der St-Quelle

    ST-Grundlagen 4.3 Gliederung der ST-Quelle Tabelle 4-3 Zwei-Zeichen-Kombinationen für Sonderzeichen in Strings Zeichenkombination Bedeutung Dollarzeichen $ ($24) Apostroph (Hochkomma) ’ ($27) $’ oder Line Feed LF ($0A) oder Carriage Return + Line Feed CR + LF ($0D$0A) oder Form Feed FF ($0C) oder Carriage Return CR ($0D) oder...
  • Seite 113 ST-Grundlagen 4.3 Gliederung der ST-Quelle FUNCTION Test1 : REAL VAR CONSTANT PI : REAL := 3.1415; END _ VAR VAR _ INPUT r1 : REAL; END _ VAR Test1 := PI * r1 * r1; END _ FUNCTION Bild 4-4 Aufbau einer ST-Quelle Nicht jede Funktion müssen Sie selbst programmieren.
  • Seite 114: Anweisungen

    ST-Grundlagen 4.3 Gliederung der ST-Quelle 4.3.1 Anweisungen Der Anweisungsteil einer Programmorganisationseinheit (POE – Programm, Funktion, Funktionsbaustein) besteht aus wiederholten einzelnen Anweisungen. Er folgt dem Deklarationsabschnitt einer POE und endet mit dem Ende der POE. Er hat keine expliziten Schlüsselwörter für Anfang und Ende. Es gibt im ST drei grundlegende Anweisungen: ●...
  • Seite 115: Datentypen

    ST-Grundlagen 4.4 Datentypen Bitte beachten Sie beim Einbau von Kommentaren: ● Innerhalb des Zeilenkommentars sind die Zeichenpaare (* und *) bedeutungslos. ● Die Schachtelung von Blockkommentaren ist standardmäßig nicht erlaubt. Möglich ist jedoch die Schachtelung von Zeilenkommentaren in Blockkommentaren. Nur bei akivierter Compileroption "Spracherweiterungen IEC61131‑3rd Edition zulassen": Es ist möglich, Blockkommentare zu schachteln.
  • Seite 116: Elementare Datentypen

    ST-Grundlagen 4.4 Datentypen 4.4.1 Elementare Datentypen Elementare Datentypen definieren die Struktur von Daten, die nicht in kleinere Einheiten zerlegt werden können. Ein elementarer Datentyp beschreibt einen Speicherbereich mit fester Länge und steht für Bitdaten, Ganzzahlen, Gleitpunktzahlen, Zeitdauer, Uhrzeit, Datum und Zeichenstrings.
  • Seite 117 ST-Grundlagen 4.4 Datentypen Reserv. Wort Bitbreite Wertebereich Zeitdauer in Schritten TIME T#0d_0h_0m_0s_0ms bis T#49d_17h_2m_47s_295ms von 1 ms Maximal 2 Stellen für die Werte Tag, Stunde, Minute, Sekun‐ de; maximal 3 Stellen für Millisekunden. Initialisierung mit T#0d_0h_0m_0s_0ms Datum in Schritten von DATE D#1992-01-01 bis D#2200-12-31 1 Tag...
  • Seite 118: Wertebereichsgrenzen Elementarer Datentypen

    ST-Grundlagen 4.4 Datentypen 4.4.1.1 Wertebereichsgrenzen elementarer Datentypen Die Grenzen der Wertebereiche einiger elementarer Datentypen sind als Konstanten verfügbar: Tabelle 4-8 Symbolische Konstanten für die Wertebereichsgrenzen elementarer Datentypen Symbolische Kon‐ Datentyp Wert Hex-Darstellung stante SINT#MIN SINT -128 16#80 SINT#MAX SINT 16#7F INT#MIN -32768 16#8000...
  • Seite 119: Elementare Systemdatentypen

    ST-Grundlagen 4.4 Datentypen Allgemeiner Datentyp Enthaltene Datentypen ANY_ELEMENTARY ANY_BIT, ANY_NUM, ANY_DATE, TIME, STRING ANY_ELEMENTARY, anwenderdefinierte Datentypen (UDT), Systemda‐ tentypen, Datentypen der Technologieobjekte Hinweis Allgemeine Datentypen können Sie nicht als Typbezeichner in Variablen- oder Typdeklarationen verwenden. Der allgemeine Datentyp bleibt erhalten, wenn ein anwenderdefinierter Datentyp (UDT) direkt von einem elementaren Datentyp abgeleitet wird (nur bei der Programmiersprache SIMOTION ST möglich).
  • Seite 120: Anwenderdefinierte Datentypen

    ST-Grundlagen 4.4 Datentypen 4.4.2 Anwenderdefinierte Datentypen Anwenderdefinierte Datentypen oder UDT (user defined data types), erstellen Sie mit dem Konstrukt TYPE / END_TYPE in den Deklarationsabschnitten nachstehender Quelldatei- Abschnitte (siehe Gliederung der ST-Quelle (Seite 112) und Quelldatei-Abschnitte (Seite 267)): ● des Interfaceabschnitts ●...
  • Seite 121 ST-Grundlagen 4.4 Datentypen Die Vereinbarung der UDT wird durch das Schlüsselwort TYPE eingeleitet. Danach folgt für jeden zu vereinbarenden Datentyp, siehe Bild: 1. Bezeichnung (Name): Die Bezeichnung des Datentyps muss den Regeln für Bezeichner entsprechen. 2. Datentyp-Spezifikation: Datentyp sind zusammengefasst, siehe Ableitung elementarer oder Unter dem Begriff abgeleiteter Datentypen (Seite 123): –...
  • Seite 122: Ableitung Elementarer Oder Abgeleiteter Datentypen

    ST-Grundlagen 4.4 Datentypen 4.4.2.2 Ableitung elementarer oder abgeleiteter Datentypen Bei der Ableitung von Datentypen wird im Konstrukt TYPE / END_TYPE dem zu definierenden Datentyp ein elementarer bzw. anwenderdefinierter Datentyp (UDT) zugeordnet: TYPE Bezeichner : elementarer Datentyp { := Initialisierung } ; END_TYPE TYPE Bezeichner : anwenderdefinierter Datentyp { := Initialisierung } ;...
  • Seite 123 ST-Grundlagen 4.4 Datentypen Bild 4-7 Syntax: ARRAY-Datentyp-Spezifikation Die Indexspezifikation beschreibt die Grenzen des Feldes: ● Die Array-Grenzen geben den kleinst- und größtmöglichen Wert für den Index an. Sie können durch Konstanten oder Konstantenausdrücke vorgegeben werden; der Datentyp ist DINT (oder implizit nach DINT konvertierbar – siehe Konvertierung elementarer Datentypen (Seite 181)).
  • Seite 124 ST-Grundlagen 4.4 Datentypen Ein - und mehrdimensionale Felder Man unterscheidet mehrere ARRAY-Typen: ● Der eindimensionale ARRAY-Typ ist eine Liste von Datenelementen, die in aufsteigender Reihenfolge angeordnet sind. ● Der zweidimensionale ARRAY-Typ ist eine Tabelle von Daten, die aus Zeilen und Spalten besteht.
  • Seite 125: Initialisierung

    ST-Grundlagen 4.4 Datentypen Mit dem erzeugten Datentyp für die Tabelle deklarieren Sie eine Variable. Jede Dimension der Tabelle sprechen Sie über eckige Klammern an, in unserem Fall mit Angabe der Zeile und der Spalte. Redeklaration Datentyp-Definitionen von Felder (ARRAY) werden (auch in unterschiedlichen Quellen) als identisch erkannt, wenn nachstehende Bedingungen erfüllt sind: 1.
  • Seite 126 ST-Grundlagen 4.4 Datentypen Mit der Konvertierungsfunktion ENUM_TO_DINT erhalten Sie den numerischen Wert eines Aufzählungselements. Die Syntax dieser Funktion ist im Funktionshandbuch "SIMOTION Basisfunktionen" beschrieben. Beispiel Tabelle 4-15 Beispiele für Aufzählungsdatentypen TYPE C1 : (RED, GREEN, BLUE); END_TYPE myC11, myC12, myC13 : C1; END_VAR myC11 := GREEN;...
  • Seite 127: Abgeleiteter Datentyp Struct - Struktur

    ST-Grundlagen 4.4 Datentypen 4.4.2.5 Abgeleiteter Datentyp STRUCT - Struktur Der abgeleitete Datentyp STRUCT oder Struktur umfasst im Konstrukt TYPE / END_TYPE einen Bereich aus einer festen Anzahl von Komponenten, deren Datentypen verschieden sein dürfen: TYPE Bezeichner : STRUCT-Datentyp-Spezifikation ; END_TYPE Bild 4-9 Syntax: STRUCT-Datentyp-Spezifikation Komponentendeklaration...
  • Seite 128 ST-Grundlagen 4.4 Datentypen Als Datentypen sind erlaubt: ● Elementare Datentypen ● Vorher vereinbarte UDT ● Systemdatentypen ● TO-Datentypen ● ARRAY-Datentyp-Spezifikation Optional können Sie Initialisierungswerte der Komponenten vorgeben, siehe "Initialisierung" in diesem Abschnitt. Hinweis Innerhalb einer Komponentendeklaration ist die direkte Verwendung folgender Datentyp- Spezifikationen nicht möglich: ●...
  • Seite 129: Komponentendeklaration Mit Angabe Der Relativen Adressen

    ST-Grundlagen 4.4 Datentypen Redeklaration Datentyp-Definitionen von Strukturen werden (auch in unterschiedlichen Quellen) als identisch erkannt, wenn nachstehende Bedingungen erfüllt sind: 1. Der Bezeichner des Datentyps ist identisch. 2. Alle Komponenten der Struktur sind identisch hinsichtlich: – Reihenfolge – Bezeichner – Datentypen bzw. ARRAY-Datentyp-Spezifikationen –...
  • Seite 130 ST-Grundlagen 4.4 Datentypen Bild 4-12 Syntax: Relative Adresse Wenn Sie relative Adressen der Strukturkomponenten vorgeben, müssen Sie dies bei allen Komponenten dieser Struktur tun. Die zulässigen relativen Adressen der Komponenten sind abhängig von deren Datentyp, siehe nachfolgende Tabelle: Tabelle 4-17 Zulässige Adressen und Länge verschiedener Datentypen Datentyp Zulässige Adresse Länge...
  • Seite 131: Struktur Mit Überlappenden Adressbereichen (Union)

    ST-Grundlagen 4.4 Datentypen Bei Verletzungen obiger Adressierungsregeln gibt der Compiler eine Fehlermeldung aus, in der auf den notwendiger Teiler hingewiesen wird. Tabelle 4-18 Beispiel für Struktur mit Angabe der relativen Adresse myLocatedStruct : STRUCT memb1 AT %B0 : INT; // Relative Adresse 0 // Byte 0 und 1 belegt memb2 AT %B8 : REAL;...
  • Seite 132 ● Bei der Watchfunktion von IT DIAG _exportUnitDataSet und _importUnitDataSet , siehe Funktionshandbuch ● Für die Funktionen SIMOTION Basisfunktionen. ● Bei automatischen Anzeigen im SIMOTION SCOUT (z. B. Symbol-Browser (Seite 410), Status Programm (Seite 418)). Hinweis Verdeckte Komponenten können bei der Programmierung verwendet werden. Im ST‑Editor werden Sie bei der Funktion "Automatisches Vervollständigen"...
  • Seite 133 ST-Grundlagen 4.4 Datentypen Als Beispiel sind die sichtbaren Komponenten der folgenden Strukturdeklaration in der anschließenden Tabelle erläutert. Die nachfolgenden Beispiele einer Strukturdeklaration erläutern das Verhalten für sichtbare und verdeckte Komponenten. Die sichtbaren Komponenten und die dazugehörigen relativen Adressen sind jeweils in der anschließenden Tabelle angegeben. mystru : STRUCT OVERLAP AT %B0 : INT;...
  • Seite 134: Datentypen Von Technologieobjekten

    ST-Grundlagen 4.4 Datentypen Die nachfolgenden Beispiele einer Strukturdeklaration erläutern dieses Initialisierungsverhalten. Die Initialisierungswerte der jeweiligen relativen Adressen sind jeweils in der anschließenden Tabelle angegeben. mystru_init : STRUCT OVERLAP AT %B0 : INT := 16#AAAA; // Warnung Initialisierungswert // Warnung OPC-XML AT %B6 : INT := 16#BBBB;...
  • Seite 135: Siehe Auch

    ST-Grundlagen 4.4 Datentypen posaxis deklarieren und ihr eine Beispielsweise können Sie eine Variable mit dem Datentyp entsprechende Instanz einer Positionierachse zuweisen. Eine solche Variable wird oft als Referenz bezeichnet. Tabelle 4-21 Datentypen von Technologieobjekten (TO-Datentyp) Technologieobjekt Datentyp enthalten im Technologiepaket Drehzahlachse DriveAxis CAM, PATH...
  • Seite 136: Vererbung Der Eigenschaften Bei Achsen

    ST-Grundlagen 4.4 Datentypen 4.4.3.2 Vererbung der Eigenschaften bei Achsen Vererbung bei den Achsen bedeutet, dass alle Datentypen, Systemvariablen und Funktionen des TO Drehzahlachse vollständig im TO Positionierachse enthalten sind. Die Positionierachse ist wiederum vollständig im TO Gleichlaufachse enthalten, die Gleichlaufachse im TO Bahnachse. Dies hat z. B. folgende Auswirkungen: ●...
  • Seite 137: Systemdatentypen

    ST-Grundlagen 4.4 Datentypen Das zweite Beispiel verzichtet auf eine Variable vom TO-Datentyp. Tabelle 4-24 Beispiel für die Verwendung eines Technologieobjekts myPos : LREAL; // Variable für Position der Achse retVal: DINT; // Variable für Rückgabewert der TO-Funktion END_VAR // Aufruf der Funktion ohne Variable vom TO-Datentyp // Name Axis1 wurde bei der Konfiguration der Achse // im Projektnavigator festgelegt.
  • Seite 138: Variablendeklaration

    ST-Grundlagen 4.5 Variablendeklaration Variablendeklaration Eine Variable definiert ein Datum mit variablem Inhalt, das in der ST-Quelle verwendet werden myVar1 ) und einem kann. Eine Variable besteht aus einem frei wählbaren Bezeichner (z. B. Datentyp (z. B. BOOL). Reservierte Bezeichner (siehe Reservierte Bezeichner (Seite 101)) dürfen nicht als Bezeichner verwendet werden.
  • Seite 139 ST-Grundlagen 4.5 Variablendeklaration Beachten Sie auch: ● Der Variablenname muss ein Bezeichner sein, d. h. er darf nur Buchstaben, Ziffern oder den Unterstrich enthalten, aber keine Sonderzeichen. ● Als Datentyp sind zulässig: – Elementare Datentypen – UDT (anwenderdefinierte Datentypen) – Systemdatentypen –...
  • Seite 140: Übersicht Aller Variablendeklarationen

    ST-Grundlagen 4.5 Variablendeklaration 4.5.2 Übersicht aller Variablendeklarationen In den Variablen- und Parameterdeklarationen vereinbaren Sie Namen, Datentypen und Anfangswerte für Variablen. Diese Deklarationen führen Sie immer in folgenden Deklarationsabschnitten nachstehender Quelldatei-Abschnitte aus: ● Interfaceabschnitt ● Implementationsabschnitt ● POE (Programm, Funktion, Funktionsbaustein, Expression) Der Quelldatei-Abschnitt bestimmt auch, welche Variablen Sie deklarieren können (siehe Tabelle), sowie deren Reichweite.
  • Seite 141: Initialisierung Von Variablen Oder Datentypen

    ST-Grundlagen 4.5 Variablendeklaration Schlüsselwort Bedeutung Deklaration in folgenden Deklara‐ tionsabschnitten RETAIN Deklaration remanenter Variablen Nur als Zusatz: siehe Variablenmodell (Seite 293) ● zu VAR in POE: – Programm – Funktionbaustein – Klasse ● zu VAR_GLOBAL im: – Interfaceabschnitt – Implementationsabschnitt CONSTANT Deklaration von Konstanten Nur als Zusatz:...
  • Seite 142 ST-Grundlagen 4.5 Variablendeklaration Die Vorlegung einer Variablen oder eines anwenderdefinierten Datentyps mit Anfangswerten erfolgt mit einer Wertzuweisung (:=) nach der Datentypangabe: ● Weisen Sie elementaren Datentypen (bzw. von elementaren Datentypen abgeleiteten Syntax: Konstantenausdruck zu. Datentypen) einen Konstantenausdruck gemäß Bild ● Weisen Sie einem Feld (ARRAY) eine Feldinitialisierungsliste gemäß Bild Syntax: Feldinitialisierungsliste zu.
  • Seite 143 ST-Grundlagen 4.5 Variablendeklaration Bild 4-15 Syntax: Konstantenausdruck Bild 4-16 Syntax: Feldinitialisierungsliste SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 144 ST-Grundlagen 4.5 Variablendeklaration Bild 4-17 Syntax: Strukturinitialisierungsliste Tabelle 4-27 Beispiele für Variableninitialisierungen // Deklaration einer Variablen ... var1 : REAL := 100.0; // ... oder falls es mehrere Variablen desselben Typs gibt: var2, var3, var4 : INT := 1; var5 : REAL := 3 / 2; var6 : INT := 5 * SHL(1, 4);...
  • Seite 145 Hinweis Beim Speichern im alten Projektformat: Das Verwenden der aggregierten Bezeichner verhindert das fehlerfreie Übersetzen des Projekts in Versionen des SIMOTION SCOUT kleiner als V4.5. Innerhalb einer Strukturinitialisierungsliste können Sie beide Schreibweisen verwenden, sofern Sie unterschiedliche Komponenten initialisieren. SIMOTION ST Structured Text...
  • Seite 146: Konstanten

    ST-Grundlagen 4.5 Variablendeklaration Felder innerhalb von Strukturen werden initialisiert, indem Sie der Komponente eine in eckigen Klammern "[" "]" eingeschlossene Feldinitialisierungsliste zuweisen. Siehe nachfolgendes Beispiel: Tabelle 4-29 Beispiele für die Initialisierung von Strukturen TYPE s_base : STRUCT i : INT; j : DINT;...
  • Seite 147 ST-Grundlagen 4.5 Variablendeklaration Bild 4-18 Syntax: Konstantenblock in einer POE Bild 4-19 Syntax: Unit-Konstanten im Interface- oder Implementationsabschnitt Bild 4-20 Syntax: Konstantendeklaration Zur Initialisierung einer Konstanten siehe "Initialisierung von Variablen oder Datentypen (Seite 141)". Der einer Konstanten zugewiesene Wert wird zum Zeitpunkt der Übersetzung aus dem Konstantenausdruck berechnet.
  • Seite 148: Wertzuweisungen Und Ausdrücke

    ST-Grundlagen 4.6 Wertzuweisungen und Ausdrücke Wertzuweisungen und Ausdrücke Sie haben bisher ganz selbstverständlich Wertzuweisungen mit der Zeichenfolge := erstellt, Beispiele für Anweisungen in etwa beim Beispiel für eine Anweisung (siehe Tabelle Anweisungen (Seite 114)) oder bei der Initialisierung von Variablen im Deklarationsabschnitt eines Quelldatei-Abschnitts.
  • Seite 149 ST-Grundlagen 4.6 Wertzuweisungen und Ausdrücke Bild 4-21 Syntax: Wertzuweisung In den folgenden Ausführungen finden Sie Erläuterungen und Beispiele zu der linken Seite der Wertzuweisung: ● Wertzuweisungen mit Variablen eines elementaren Datentyps (Seite 151) , ● Wertzuweisungen mit Variablen des abgeleiteten Datentyps Aufzählung (Enumerator) (Seite 155) ●...
  • Seite 150: Wertzuweisungen Mit Variablen Eines Elementaren Datentyps

    ST-Grundlagen 4.6 Wertzuweisungen und Ausdrücke 4.6.1.2 Wertzuweisungen mit Variablen eines elementaren Datentyps Ein Ausdruck mit einem elementaren Datentyp (Seite 116) kann einer Variablen zugewiesen werden, wenn eine der folgenden Bedingungen erfüllt ist: ● Ausdruck und Zielvariable haben den gleichen Datentyp. Beachten Sie den nachstehenden Hinweis zum Datentyp STRING (Seite 151).
  • Seite 151: Bearbeiten Von Strings

    ST-Grundlagen 4.6 Wertzuweisungen und Ausdrücke Beispiele: byteVar := string20[5]; string20[10] := byteVar; Folgende Sonderfälle sind zu betrachten: 1. Bei der Zuweisung einer Variablen vom Datentyp BYTE an ein Stringelement (z. B. stringVar[n] := byteVar): – Das Stringelement, dem der Wert zugewiesen werden soll, liegt außerhalb der deklarierten Länge des Strings: Der String bleibt unverändert, TSI#ERRNO wird auf den Wert 1 gesetzt –...
  • Seite 152: Wertzuweisungen Mit Variablen Eines Bitdatentyps

    ST-Grundlagen 4.6 Wertzuweisungen und Ausdrücke 4.6.1.4 Wertzuweisungen mit Variablen eines Bitdatentyps Zugriff auf einzelne Bits einer Variablen eines Bitdatentyps Sie können auf die einzelnen Bits einer Variablen vom Datentyp BYTE, WORD oder DWORD zugreifen: ● Mit Standardfunktionen, siehe Funktionshandbuch SIMOTION Basisfunktionen: Mit den Funktionen _getBit, _setBit und _toggleBit können Sie ein beliebiges Bit eines Bitstrings lesen, schreiben bzw.
  • Seite 153: Bearbeiten Von Variablen Der Bitdatentypen

    ST-Grundlagen 4.6 Wertzuweisungen und Ausdrücke Tabelle 4-31 Beispiel für direkten Bitzugriff // Nur mit Compileroption "Spracherweiterungen zulassen" FUNCTION f : VOID VAR CONSTANT BIT_7 : INT := 7; END_VAR dw : DWORD; : BOOL; END_VAR b := dw.BIT_7; // Zugriff auf Bit 7 b := dw.3;...
  • Seite 154: Wertzuweisungen Mit Variablen Des Abgeleiteten Datentyps Aufzählung (Enumerator)

    ST-Grundlagen 4.6 Wertzuweisungen und Ausdrücke 4.6.1.5 Wertzuweisungen mit Variablen des abgeleiteten Datentyps Aufzählung (Enumerator) Jeder Ausdruck und jede Variable des abgeleiteten Datentyps Aufzählung (siehe auch: Abgeleiteter Datentyp Aufzählung - Enumerator (Seite 125)) kann einer anderen typgleichen Variablen zugewiesen werden. type1 := BLUE;...
  • Seite 155: Ausdrücke

    ST-Grundlagen 4.6 Wertzuweisungen und Ausdrücke Gültige Angaben für eine Strukturvariable sind: struct1 // Bezeichner für eine Struktur struct1.elem1 // Bezeichner für Strukturkomponente struct1.array1 // Bezeichner eines einfachen Feldes // innerhalb einer Struktur struct1.array1[5] // Bezeichner einer Feldkomponente // innerhalb einer Struktur Für die Zuweisung von Strukturen an eine Variable gibt es zwei Varianten, Sie können komplette Strukturen oder Strukturkomponenten referenzieren: ●...
  • Seite 156: Ergebnis Eines Ausdrucks

    ST-Grundlagen 4.6 Wertzuweisungen und Ausdrücke ST unterscheidet: ● Arithmetische Ausdrücke (Seite 160) ● Vergleichsausdrücke (Seite 163) ● Logische Ausdrücke und Bitfolgeausdrücke (Seite 165) 4.6.2.1 Ergebnis eines Ausdrucks Das Ergebnis eines Ausdrucks können Sie ● einer Variablen zuweisen, ● als Bedingung für eine Kontrollanweisung verwenden, ●...
  • Seite 157 ST-Grundlagen 4.6 Wertzuweisungen und Ausdrücke Die Verarbeitung der Ausdrücke erfolgt nach bestimmten Regeln: ● Die Operatoren werden entsprechend ihrer Priorität bearbeitet (siehe Tabelle in Rangfolge der Operatoren (Seite 167)). ● Operatoren gleicher Priorität werden von links nach rechts bearbeitet. ● Das Voranstellen eines Minuszeichens vor einen Bezeichner ist gleichbedeutend mit der Multiplikation mit -1.
  • Seite 158: Operanden

    ST-Grundlagen 4.6 Wertzuweisungen und Ausdrücke 4.6.3 Operanden Definition Operanden sind Objekte, mit denen Ausdrücke gebildet werden können. Operanden lassen sich durch das Syntaxdiagramm darstellen: Bild 4-23 Syntax: Operand Tabelle 4-33 Beispiele für Operanden intVar %I4.0 NOT TRUE axis1.motionStateData.actualVelocity SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 159: Arithmetische Ausdrücke

    ST-Grundlagen 4.6 Wertzuweisungen und Ausdrücke 4.6.4 Arithmetische Ausdrücke Ein arithmetischer Ausdruck ist ein mit arithmetischen Operatoren gebildeter Ausdruck. Solche Ausdrücke ermöglichen die Verarbeitung von numerischen Datentypen. Bild 4-24 Syntax: arithmetischer Operator Bild 4-25 Syntax: arithmetischer Basisoperator Die nachfolgende Tabelle zeigt für jede arithmetische Operation: ●...
  • Seite 160 ST-Grundlagen 4.6 Wertzuweisungen und Ausdrücke Tabelle 4-34 Arithmetische Operatoren Operation Operator Datentyp 1. Operand 2. Operand Ergebnis Potenzierung ANY_REAL ANY_REAL ANY_REAL (siehe auch Funktion EXPT) unäres Minus ANY_NUM (kein) ANY_NUM Multiplikation ANY_NUM ANY_NUM ANY_NUM ANY_BIT ANY_BIT ANY_BIT TIME ANY_NUM TIME Division ANY_NUM ANY_NUM...
  • Seite 161: Beispiele Für Arithmetische Ausdrücke

    ST-Grundlagen 4.6 Wertzuweisungen und Ausdrücke Hinweis Wird bei Operationen mit Variablen vom allgemeinen Datentyp ANY_REAL die Grenzen des Wertebereichs überschritten, enthält das Ergebnis das entsprechende Bitmuster nach IEEE 754. Um festzustellen, ob bei der Operation der Wertebereich überschritten wurde, können Sie mit _finite (siehe Funktionshandbuch SIMOTION Basisfunktionen ) das Ergebnis der Funktion überprüfen.
  • Seite 162: Vergleichsausdrücke

    ST-Grundlagen 4.6 Wertzuweisungen und Ausdrücke t1 / 2 T#12H_30M_30S_500MS DATE_AND_TIME_TO_TIME_OF_DAY(dt1) TOD#11:11:11.110 DATE_AND_TIME_TO_DATE(dt1) D#2004-01-11 4.6.5 Vergleichsausdrücke Definition Ein Vergleichsausdruck ist ein mit Vergleichsoperatoren (siehe Bild) gebildeter Ausdruck vom Datentyp BOOL. Bild 4-26 Syntax: Vergleichsoperatoren Vergleichsoperatoren vergleichen 2 Operanden bezüglich ihres Wertes (siehe Tabelle) und liefern als Ergebnis einen Booleschen Wert.
  • Seite 163 ST-Grundlagen 4.6 Wertzuweisungen und Ausdrücke Die nachstehende Tabelle zeigt die für beide Operanden zulässigen Kombinationen der Datentypen und Vergleichsoperatoren. Tabelle 4-36 Vergleichsausdrücke: Zulässige Kombinationen der Datentypen und Vergleichsoperatoren Datentyp Zulässige Vergleichsoperatoren 1. Operand 2. Operand ANY_NUM ANY_NUM <, >, <=, >=, =, <> ANY_BIT ANY_BIT <, >, <=, >=, =, <>...
  • Seite 164: Logische Ausdrücke Und Bitfolgeausdrücke

    ST-Grundlagen 4.6 Wertzuweisungen und Ausdrücke Tabelle 4-37 Beispiele für Vergleichsausdrücke IF A = 2 THEN ; //... END_IF; var_1 := B < C; // var_1 vom Datentyp BOOL IF D < E OR var_2 THEN // var_2 vom Datentyp BOOL ;...
  • Seite 165: Beispiele

    ST-Grundlagen 4.6 Wertzuweisungen und Ausdrücke Der Ausdruck wird bezeichnet ● als logischer Ausdruck, wenn ausschließlich Operanden vom Datentyp BOOL verwendet werden. Die Operatoren wirken gemäß der nachfolgenden Wahrheitstabelle auf die Operanden. Das Ergebnis eines logischen Ausdrucks ist 1 (TRUE) oder 0 (FALSE). ●...
  • Seite 166: Rangfolge Der Operatoren

    ST-Grundlagen 4.7 Kontrollanweisungen 4.6.7 Rangfolge der Operatoren In Ausdrücke (Seite 155) wurden einige allgemeine Regeln zur Bildung von Ausdrücken beschrieben. In der Tabelle sehen Sie die Rangfolge der einzelnen Operatoren innerhalb eines Ausdrucks. Operation Symbol Rangfolge Klammerung (Ausdruck) Höchste Funktions-Auswertung Bezeichner (Argument-Liste) z.
  • Seite 167 ST-Grundlagen 4.7 Kontrollanweisungen Die Ausführung der bedingten Anweisung bewirkt die Auswertung der angegebenen logischen Ausdrücke. Ist der Wert eines Ausdrucks TRUE, so gilt die Bedingung als erfüllt, bei FALSE als nicht erfüllt. Bild 4-27 Syntax: IF-Anweisung Bearbeitungsreihenfolge Die IF-Anweisung wird nach den folgenden Regeln bearbeitet: 1.
  • Seite 168: Case-Anweisung

    ST-Grundlagen 4.7 Kontrollanweisungen Beachten Sie, dass die ELSIF-Zweige und/oder der ELSE-Zweig fehlen können. Diese Fälle werden behandelt, als wären diese Zweige mit leeren Anweisungen vorhanden. Hinweis Die Verwendung eines oder mehrerer ELSIF-Zweige bietet gegenüber einer Sequenz von IF- Anweisungen den Vorteil, dass die einem gültigen Ausdruck folgenden logischen Ausdrücke nicht mehr ausgewertet werden.
  • Seite 169 ST-Grundlagen 4.7 Kontrollanweisungen Bild 4-28 Syntax: CASE-Anweisung Bearbeitungsreihenfolge Die CASE-Anweisung wird nach folgenden Regeln bearbeitet: 1. Der Auswahlausdruck (Selektor) wird berechnet. Er muss einen Wert vom allgemeinen Datentyp ANY_INT (Ganzzahl) oder von einem Aufzählungsdatentyp liefern. 2. Anschließend wird überprüft, ob der Wert des Selektors in der Wertliste enthalten ist. Jeder Wert in dieser Liste stellt einen der erlaubten Werte für den Auswahlausdruck dar.
  • Seite 170 ST-Grundlagen 4.7 Kontrollanweisungen Wertliste Die Wertliste enthält die erlaubten Werte für den Auswahlausdruck. Bild 4-29 Syntax: Wertliste Beachten Sie bei der Formulierung der Wertliste: Wert ), einer Konstantenliste ( Wert1, Wert2, ● Jede Wertliste kann mit einer Konstanten ( Wert3, … ) oder einem Konstantenbereich ( Wert1 .. Wert2 ) beginnen. ●...
  • Seite 171: For-Anweisung

    ST-Grundlagen 4.7 Kontrollanweisungen 4.7.3 FOR-Anweisung Beschreibung Eine FOR-Anweisung oder auch Wiederholungsanweisung führt eine Anweisungsfolge in einer Schleife aus, wobei einer Variablen (der Laufvariablen) fortlaufend Werte zugewiesen werden. Die Laufvariable muss der Bezeichner einer lokalen Variablen vom Typ SINT, INT oder DINT sein. Die Definition einer Schleife mit FOR schließt die Festlegung eines Start- und Endwertes mit ein.
  • Seite 172 ST-Grundlagen 4.7 Kontrollanweisungen Bearbeitungsreihenfolge Die FOR-Anweisung wird nach folgenden Regeln bearbeitet: 1. Beim Start der Schleife wird die Laufvariable auf den Startwert gesetzt und nach jedem Schleifendurchlauf um die angegebene Schrittweite erhöht (positive Schrittweite) oder erniedrigt (negative Schrittweite), solange bis der Endwert erreicht ist. Nach dem ersten Schleifendurchlauf wird der Inhalt der Laufvariable als Aktualwert bezeichnet.
  • Seite 173: While-Anweisung

    ST-Grundlagen 4.7 Kontrollanweisungen 4.7.4 WHILE-Anweisung Beschreibung Die WHILE-Anweisung erlaubt die wiederholte Ausführung einer Anweisungsfolge unter der Kontrolle einer Durchführungsbedingung. Die Durchführungsbedingung wird nach den Regeln eines logischen Ausdrucks gebildet. Hinweis Verwenden Sie die WHILE-Anweisung, wenn die Anzahl der Durchläufe bei der Programmierung nicht bekannt ist.
  • Seite 174: Repeat-Anweisung

    ST-Grundlagen 4.7 Kontrollanweisungen Beispiel Das folgende Beispiel veranschaulicht den Gebrauch der WHILE-Anweisung: Beispiel für die WHILE-Anweisung WHILE Index <= 50 DO Index:= Index + 2; END_WHILE; 4.7.5 REPEAT-Anweisung Beschreibung Eine REPEAT-Anweisung bewirkt die wiederholte Ausführung einer zwischen REPEAT und UNTIL stehenden Anweisungsfolge bis zum Eintreten einer Abbruchbedingung. Die Abbruchbedingung wird nach den Regeln eines logischen Ausdrucks gebildet.
  • Seite 175: Exit-Anweisung

    ST-Grundlagen 4.7 Kontrollanweisungen Bearbeitungsreihenfolge Die REPEAT-Anweisung wird nach folgenden Regeln bearbeitet: 1. Nach jeder Ausführung des Anweisungsteils wird die Durchführungsbedingung ausgewertet. 2. Tritt der Wert FALSE auf, wird der Anweisungsteil erneut ausgeführt. 3. Tritt der Wert TRUE auf, wird die Ausführung der REPEAT-Anweisung beendet; die Programmabarbeitung wird nach END_REPEAT fortgesetzt.
  • Seite 176: Continue-Anweisung

    ST-Grundlagen 4.7 Kontrollanweisungen 4.7.7 CONTINUE-Anweisung Beschreibung Die CONTINUE-Anweisung steht nur zur Verfügung, wenn die Compileroption Spracherweiterungen IEC61131-3rd Edition aktiviert ist, siehe Globale Einstellungen des Compilers (Seite 62) und Lokale Einstellungen des Compilers (Seite 66). Sie dient zum Sprung an den Anfang einer Schleife (FOR, WHILE oder REPEAT-Schleife) von einer beliebigen Stelle aus.
  • Seite 177: Waitforcondition-Anweisung

    ST-Grundlagen 4.7 Kontrollanweisungen Beispiel Das folgende Beispiel veranschaulicht den Gebrauch der RETURN-Anweisung: Beispiel für die RETURN-Anweisung Index := 1; FOR Index := 1 to 51 BY 2 DO IF %I0.0 THEN RETURN; END_IF; END_FOR; Die folgende Wertzuweisung kommt nach dem regulären Ende der FOR-Schleife zur Ausführung, nicht jedoch nach Ausführung von RETURN.
  • Seite 178 ST-Grundlagen 4.7 Kontrollanweisungen Bild 4-33 Syntax: WAITFORCONDITION-Anweisung Expression - Bezeichnung ist ein mit EXPRESSION vereinbartes Konstrukt; ihr Wert bestimmt WITH Flankenauswertung ), ob die Bedingung als erfüllt gilt. (ggf. zusammen mit WITH Flankenauswertung ist optional. Dabei ist Flankenauswertung ein Ausdruck Die Folge Expression-Bezeichnung ausgewertet vom Datentyp BOOL;...
  • Seite 179: Goto-Anweisung

    ST-Grundlagen 4.7 Kontrollanweisungen Beispiel Das folgende Beispiel veranschaulicht den Gebrauch der WAITFORCONDITION-Anweisung: Beispiel für die WAITFORCONDITION-Anweisung // ... // Aufruf des Befehls mit Namen der Expression WAITFORCONDITION myExpression WITH TRUE DO // hier mind. eine Anweisung, wird hochprior ausgeführt, z. B. %Q0.0 := TRUE;...
  • Seite 180: Datentyp-Konvertierungen

    ST-Grundlagen 4.8 Datentyp-Konvertierungen Datentyp-Konvertierungen In diesem Kapitel erfahren Sie, wie Sie implizit und explizit zwischen elementaren Datentypen konvertieren können. Außerdem ist ein Überblick über ergänzende Konvertierungsmöglichkeiten enthalten. 4.8.1 Konvertierung elementarer Datentypen Die Tabelle gibt einen Überblick über die Konvertierungsmöglichkeiten zwischen numerischen Datentypen und Bit-Datentypen.
  • Seite 181: Implizite Datentyp-Konvertierungen

    ST-Grundlagen 4.8 Datentyp-Konvertierungen 4.8.1.1 Implizite Datentyp-Konvertierungen Eine implizite Konvertierung ist immer dann möglich, wenn durch Vergrößerung des Wertebereichs kein Wertverlust gegeben ist, z. B. von REAL nach LREAL oder von INT nach REAL. Das Ergebnis ist immer definiert. Das folgende Bild zeigt alle impliziten Typkonvertierungsketten grafisch. Dabei stellt eine Stufe in einer Typkonvertierungskette –...
  • Seite 182 ST-Grundlagen 4.8 Datentyp-Konvertierungen Alle anderen Typkonvertierungen sind nicht implizit durchführbar (z. B. UDINT nach REAL), d. h. Sie müssen eine explizite Funktion (Seite 184) benutzen, siehe Funktionshandbuch SIMOTION Basisfunktionen. Hinweis In Ausdrücken wird das Ergebnis immer im größten Zahlenformat des Ausdrucks berechnet. Eine Wertzuweisung des Ausdrucks an eine Variable ist nur möglich: ●...
  • Seite 183: Explizite Datentyp-Konvertierungen

    ST-Grundlagen 4.8 Datentyp-Konvertierungen Hinweis Geben Sie ggf. bei Zahlen den Datentyp explizit an (z. B. UINT#127, wenn die Zahl 127 vom Datentyp UINT statt USINT sein soll). 4.8.1.2 Explizite Datentyp-Konvertierungen Eine explizite Konvertierung ist immer dann notwendig, wenn Informationsverlust möglich ist, z.
  • Seite 184: Ergänzende Konvertierungen

    ST-Grundlagen 4.8 Datentyp-Konvertierungen 4.8.2 Ergänzende Konvertierungen Über ST-Systemfunktionen und ST-Systemfunktionsbausteine sind außerdem folgende Konvertierungen möglich: ● Zusammenfassen von Bitstring-Datentypen Diese Funktionen fassen mehrere Variablen eines Bitstring-Datentyps zu einer Variablen eines übergeordneten Datentyps zusammen. ● Zerlegen von Bitstring-Datentypen Diese Funktionsbausteine zerlegen eine Variablen eines Bitstring-Datentyps in mehrere Variablen eines untergeordneten Datentyps.
  • Seite 185: Funktionen, Funktionsbausteine, Programme

    Funktionen, Funktionsbausteine, Programme In diesem Kapitel erfahren Sie, wie Sie selbstdefinierte Funktionen und Funktionsbausteine erstellen und aufrufen. Standardfunktionen sind bereits im System vorhanden und stellen Ihnen Lösungen im Bereich Typumwandlung, Trigonometrie und Bitstrings zur Verfügung. Wie Sie Systemfunktionen und Funktionen der Technologieobjekte (TO-Funktionen) einsetzen, SIMOTION Basisfunktionen .
  • Seite 186: Funktionsbausteine Definieren

    Funktionen, Funktionsbausteine, Programme 5.1 Erstellung und Aufruf von Funktionen und Funktionsbausteinen Bild 5-1 Syntax: Funktion (FC) Geben Sie in folgender Reihenfolge ein, siehe Beispiel in Quelldatei mit Kommentaren (Seite 214)): ● das Schlüsselwort FUNCTION ● einen Bezeichner als FC-Namen ● Wenn die Funktion einen Rückgabewert hat, nach einem Doppelpunkt den Datentyp des Rückgabewerts Bei einer Funktion ohne Rückgabewert ist auch die Angabe des symbolischen Datentyps VOID möglich.
  • Seite 187: Objektorientierte Funktionsbausteine Mit Methoden Definieren

    Funktionen, Funktionsbausteine, Programme 5.1 Erstellung und Aufruf von Funktionen und Funktionsbausteinen Bild 5-2 Syntax: Funktionsbaustein (FB) Geben Sie in folgender Reihenfolge ein, siehe Beispiel in Quelldatei mit Kommentaren (Seite 214): ● das Schlüsselwort FUNCTION_BLOCK ● einen Bezeichner als FB-Namen Danach folgen: ●...
  • Seite 188: Methoden In Objektorientierten Fb Definieren

    Funktionen, Funktionsbausteine, Programme 5.1 Erstellung und Aufruf von Funktionen und Funktionsbausteinen Bild 5-3 Syntax: Funktionsbaustein (FB) mit Methoden Geben Sie in folgender Reihenfolge ein: ● das Schlüsselwort FUNCTION_BLOCK ● einen Bezeichner als FB-Namen Danach folgen: ● der optionale Deklarationsabschnitt (Seite 193) ●...
  • Seite 189 Funktionen, Funktionsbausteine, Programme 5.1 Erstellung und Aufruf von Funktionen und Funktionsbausteinen Bild 5-4 Syntax: Methode im Funktionsbaustein Geben Sie in folgende Reihenfolge ein: ● das Schlüsselwort METHOD. ● den optionalen Zugriffsbezeichner FB (PUBLIC. PRIVATE oder INTERNAL), Voreinstellung PRIVATE. Zum Zugriffsbezeichner siehe Abschnitt "Zugriffsbezeichner innerhalb von objektorientierten FB"...
  • Seite 190: Zugriffsbezeichner Innerhalb Von Objektorientierten Fb

    Funktionen, Funktionsbausteine, Programme 5.1 Erstellung und Aufruf von Funktionen und Funktionsbausteinen 5.1.2.4 Zugriffsbezeichner innerhalb von objektorientierten FB Innerhalb von objektorientierten Funktionsbausteinen ist bei Deklarationsblöcken oder Methoden die Angabe eines Zugriffsbezeichners möglich: ● Bei Deklarationsblöcken: Unmittelbar nach dem Schlüsselwort für den jeweiligen Block (z. B. TYPE, VAR). Der Zugriffsbezeichner ist gültig für alle Bezeichner innerhalb dieses Deklarationsblocks.
  • Seite 191: Deklarationsabschnitt Von Fb Und Fc

    Funktionen, Funktionsbausteine, Programme 5.1 Erstellung und Aufruf von Funktionen und Funktionsbausteinen Tabelle 5-1 Mögliche Zugriffsbezeichner innerhalb eines objektorientierten Funktionsbausteins Zugriffsbezeichner Bedeutung PRIVATE Die Bezeichner des jeweiligen Deklarationsblocks (Variablen, Datentypen usw.) bzw. die Methode sind nur innerhalb dieses Funktionsbausteins nutzbar. In abgeleiteten Klassen sind diese Bezeichner bzw. die Methode nicht nutzbar. INTERNAL Nur wenn der Bezeichner innerhalb eines objektorientierten Namensraums (Sei‐...
  • Seite 192 Funktionen, Funktionsbausteine, Programme 5.1 Erstellung und Aufruf von Funktionen und Funktionsbausteinen Daten Syntax Methode in FB Eingangsparameter VAR_INPUT Vereinbarungsliste END_VAR Durchgangsparameter VAR_IN_OUT Vereinbarungsliste END_VAR Ausgangsparameter VAR_OUTPUT Vereinbarungsliste END_VAR Lokale statuische Vari‐ – – able Vereinbarungsliste END_VAR Lokale temporäre Vari‐ – able Vereinbarungsliste END_VAR...
  • Seite 193 Funktionen, Funktionsbausteine, Programme 5.1 Erstellung und Aufruf von Funktionen und Funktionsbausteinen Die folgenden Bilder zeigen die Syntax für die Parameterdeklaration eines FB, einer FC bzw. einer Methode im FB. Bild 5-6 Syntax: Parameterblock FB SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 194 Funktionen, Funktionsbausteine, Programme 5.1 Erstellung und Aufruf von Funktionen und Funktionsbausteinen Bild 5-7 Syntax: Parameterblock FC SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 195 Funktionen, Funktionsbausteine, Programme 5.1 Erstellung und Aufruf von Funktionen und Funktionsbausteinen Bild 5-8 Syntax: Parameterblock Methode Außer Variablen können Sie in den Parameterblöcken auch deklarieren: ● im Parameterblock für Durchgangsparameter: – Instanzen von Funktionsbausteinen (Seite 207), – Felder (ARRAY) mit dynamischer Länge (Seite 200), ab Version V4.2 der SIMOTION Kernels.
  • Seite 196: Anweisungsabschnitt Von Fb Und Fc

    Hinweis Bei Speichern des Projekts im alten Projektformat: Die Deklaration von Ausgangsparameters bei einer Funktion verhindert das fehlerfreie Übersetzen des Projekts in Versionen des SIMOTION SCOUT kleiner als V4.5. 5.1.4 Anweisungsabschnitt von FB und FC Der Anweisungsabschnitt der FC oder des FB beinhaltet Anweisungen, die mit dem Aufruf zur Ausführung kommen.
  • Seite 197 Funktionen, Funktionsbausteine, Programme 5.1 Erstellung und Aufruf von Funktionen und Funktionsbausteinen Tabelle 5-3 Verwendung von Parametern und Variablen in FC und FB Parameter/Variable Verwendung Eingangsparameter Beim Aufruf einer FC oder eines FB weisen Sie den Eingangsparametern aktuelle Werte zu. Diese Werte werden innerhalb der FC bzw. des FB für die Bearbeitung von Daten verwendet, beispielsweise für Berechnungen, kön‐...
  • Seite 198: Array Mit Dynamischer Länge (Ab Kernel V4.2)

    Bei Speichern des Projekts im alten Projektformat: Das Verwenden [*] zur Kennzeichnung eines dynamischen Arrays verhindert das fehlerfreie Übersetzen des Projekts in Versionen des SIMOTION SCOUT kleiner als V4.5. Verwendung eines ARRAYs mit dynamischer Länge Beim Aufruf der Funktion bzw. einer Instanz des Funktionsbausteins können Felder beliebiger Länge des deklarierten Datentyps übergeben werden.
  • Seite 199 Funktionen, Funktionsbausteine, Programme 5.1 Erstellung und Aufruf von Funktionen und Funktionsbausteinen array-name ) liefert die Anzahl der Indexgrenze bestimmen. Die Funktion _lengthIndexOf (in := Elemente des ARRAYs. Es gilt: _lengthIndexOf (x) := _lastIndexOf (x) - _firstIndexOf (x) + 1. Hinweis Bei aktivierter Compileroption (Seite 62) "Spracherweiterungen IEC61131-3rd Edition array-name ) zulassen"...
  • Seite 200: Aufruf Von Funktionen Und Funktionsbausteinen

    Funktionen, Funktionsbausteine, Programme 5.1 Erstellung und Aufruf von Funktionen und Funktionsbausteinen Beispiel Tabelle 5-4 Beispiel für Verwendung eines ARRAYs mit dynamischer Länge FUNCTION_BLOCK example_dyn_array VAR_IN_OUT flexarray : ARRAY [..] OF DINT; END_VAR VAR_TEMP i : DINT := 0; END_VAR i := _firstIndexOf (in := flexarray); WHILE i <= _lastIndexOf (in := flexArray) DO flexArray[i] := i;...
  • Seite 201: Prinzip Der Parameterübergabe

    Funktionen, Funktionsbausteine, Programme 5.1 Erstellung und Aufruf von Funktionen und Funktionsbausteinen 5.1.6.1 Prinzip der Parameterübergabe Beim Aufruf von FC und FB findet ein Datenaustausch zwischen dem aufrufenden und dem aufgerufenen Baustein statt. Die Parameter, die übergeben werden sollen, müssen im Aufruf als Parameterliste angegeben werden.
  • Seite 202: Parameterübergabe Zu Durchgangsparametern

    Funktionen, Funktionsbausteine, Programme 5.1 Erstellung und Aufruf von Funktionen und Funktionsbausteinen Bei einem FB ist die Zuweisung von Aktualparametern optional. Wenn keine Eingangszuweisung angegeben wird, dann bleiben die Werte des letzten Aufrufs erhalten, da der FB ein Quelldatei-Abschnitt mit Gedächtnis ist. Bei einer FC ist die Zuweisung eines Aktualparameters optional, wenn bei der Deklaration des Formalparameters ein Initialisierungsausdruck angegeben wurde.
  • Seite 203: Parameterübergabe Zu Ausgangsparametern

    Funktionen, Funktionsbausteine, Programme 5.1 Erstellung und Aufruf von Funktionen und Funktionsbausteinen Bei Verwendung des Datentyps STRING in Durchgangszuweisungen muss die deklarierte Länge des Aktualparameters größer oder gleich der Länge des formalen Durchgangsparameters sein (siehe nachfolgendes Beispiel). Tabelle 5-5 Beispiel für die Verwendung des Datentyps STRING in Durchgangszuweisungen FUNCTION_BLOCK REF_STRING VAR_IN_OUT io : STRING[80];...
  • Seite 204: Zugriffszeiten Auf Parameter

    Funktionen, Funktionsbausteine, Programme 5.1 Erstellung und Aufruf von Funktionen und Funktionsbausteinen Ausgangszuweisungen sind bei der Parameterübergabe optional. Wenn keine Ausgangszuweisung für einen Ausgangsparameter existiert, gilt: ● Bei Funktionen (FC): Nach Beenden der FC sind die Werte der Ausgangsparameter verloren. ● Bei Funktionsbausteinen (FB): Sie können auch außerhalb eines FB jederzeit auf dessen Ausgangsparameter lesend zugreifen.
  • Seite 205: Funktionsbausteine Aufrufen (Instanzen Deklarieren Und Aufrufen)

    Funktionen, Funktionsbausteine, Programme 5.1 Erstellung und Aufruf von Funktionen und Funktionsbausteinen Beispiele: y := sin(x); y := sin(in := x); y := sqrt (1 - cos(x) * cos(x)); Hinweis In der Funktion selbst wird das Ergebnis (Rückgabewert) dem Funktionsnamen zugewiesen. Funktion ohne Rückgabewert (kein Datentyp oder Datentyp VOID) Die Anweisung besteht nur aus dem Funktionsaufruf.
  • Seite 206 Funktionen, Funktionsbausteine, Programme 5.1 Erstellung und Aufruf von Funktionen und Funktionsbausteinen Grundsätzlich gilt: Der Funktionsbaustein muss in der ST‑Quelle deklariert sein, bevor eine Instanz deklariert werden kann. Ausnahme: Ohne Initialisierung und mit Compileroption (Seite 62) "Vorwärtsdeklaration erlauben" ist die vorherige Definition eines POE‑Prototypen (Seite 396) ausreichend. Bild 5-14 Syntax: Instanzdeklaration FB Bespiel für die Instanzdeklaration eines FB mit Initialisierung:...
  • Seite 207: Instanz Eines Funktionsbausteins Aufrufen

    Funktionen, Funktionsbausteine, Programme 5.1 Erstellung und Aufruf von Funktionen und Funktionsbausteinen Instanz eines Funktionsbausteins aufrufen Im Anweisungsabschnitt einer POE rufen Sie die Instanz des Funktionsbausteins auf (Syntax siehe Bild). FB-Parameter sind die durch Kommata getrennten Eingangs-, Durchgangs- und Ausgangszuweisungen. Bild 5-15 Syntax FB-Aufruf Das Beispiel der folgenden Tabelle ist gültig unter der Voraussetzung, dass die Funktionsbausteine...
  • Seite 208: Außerhalb Des Fb Auf Dessen Ausgangsparameter Zugreifen

    Funktionen, Funktionsbausteine, Programme 5.1 Erstellung und Aufruf von Funktionen und Funktionsbausteinen Tabelle 5-6 Beispiel für Instanzdeklaration, FB-Aufruf und Zugriff auf Ausgangsparameter Supply1, Supply2: Supply; Motor1 : Motor; END_VAR // Parameterübergabe (Ausgangszuweisung) beim Aufruf der Instanz eines FB Supply1 (in1 := var11, in2 := expr12, inout := var13, out => var14) ; Supply2 (in1 := var21, in2 := expr22, inout := var23, out =>...
  • Seite 209: Außerhalb Eines Fb Auf Dessen Öffentliche Variablen Zugreifen

    Funktionen, Funktionsbausteine, Programme 5.1 Erstellung und Aufruf von Funktionen und Funktionsbausteinen Der Instanzname des FB selbst darf in einer Wertzuweisung nicht verwendet werden! Tabelle 5-7 Beispiel für Zuweisung an Eingangsparameter // Nur mit aktivierter Compileroption "Spracherweiterungen zulassen" var_fb : _WORD_TO_2BYTE; var_word : WORD;...
  • Seite 210: Fehlerquellen Beim Aufruf Eines Fb

    Funktionen, Funktionsbausteine, Programme 5.2 Funktionen und Funktionsbausteine im Vergleich 5.1.6.12 Fehlerquellen beim Aufruf eines FB Beachten Sie beim Aufruf einer Instanz eines FB: ● Weisen Sie Durchgangsparametern nur Variablen zu, die direkt im Speicher hinterlegt sind! Erlaubt sind als Aktualparameter nur: –...
  • Seite 211 Funktionen, Funktionsbausteine, Programme 5.2 Funktionen und Funktionsbausteine im Vergleich ● Für die Fläche des Kreises stehen beim FB und bei der FC unterschiedliche Möglichkeiten zur Verfügung: – Beim FB wird ein Ausgangsparameter definiert. – Bei der FC wird der Rückgabewert der FC verwendet; der Datentyp des Rückgabewerts wird entsprechend definiert.
  • Seite 212: Quelldatei Mit Kommentaren

    Funktionen, Funktionsbausteine, Programme 5.2 Funktionen und Funktionsbausteine im Vergleich 5.2.2 Quelldatei mit Kommentaren Tabelle 5-8 Beispiel für die Unterschiede zwischen FB und FC Funktionsbaustein (FB) Funktion (FC) INTERFACE INTERFACE PROGRAM CircleCalc1; PROGRAM CircleCalc2; END_INTERFACE END_INTERFACE IMPLEMENTATION IMPLEMENTATION FUNCTION_BLOCK Circle1 FUNCTION Circle2 : LREAL // Konstantendeklaration // Konstantendeklaration VAR CONSTANT...
  • Seite 213 Funktionen, Funktionsbausteine, Programme 5.2 Funktionen und Funktionsbausteine im Vergleich Tabelle 5-9 Erläuterungen zum vorstehenden Beispiel für die Unterschiede zwischen FB und FC Funktionsbaustein (FB) Funktion (FC) Kommentare Reservierte Wörter für die Definition: Reservierte Wörter für die Definition: FUNCTION_BLOCK und END_FUNCTION_BLOCK FUNCTION und END_FUNCTION Kein Rückgabewert erlaubt.
  • Seite 214: Programme

    Funktionen, Funktionsbausteine, Programme 5.3 Programme Funktionsbaustein (FB) Funktion (FC) Kommentare ● Den Durchgangsparametern weisen Sie beim Aufruf der ● Den Durchgangsparametern weisen Sie beim Aufruf der Instanz des FB eine Variable zu. Instanz des FB eine Variable zu. ● Die Ausgangsparameter können Sie beim Aufruf einer ●...
  • Seite 215: Zuordnung Eines Programms Im Ablaufsystem

    Funktionen, Funktionsbausteine, Programme 5.3 Programme 5.3.1 Zuordnung eines Programms im Ablaufsystem Standardmäßig werden Programme im Ablaufsystem einer Task zugeordnet. Das Ablaufverhalten der Programme, z. B. Initialisierung der Variablen, wird von der jeweiligen Task bestimmt. Näheres zum Ablaufsystem und zu den Tasks siehe Funktionshandbuch SIMOTION Basisfunktionen .
  • Seite 216: Expressions

    Funktionen, Funktionsbausteine, Programme 5.4 Expressions Expressions Die Expression ist ein Spezialfall einer Funktionsvereinbarung: ● Der Datentyp des Rückgabewerts ist als BOOL festgelegt und wird nicht explizit angegeben. Sie wird im Zusammenhang mit der WAITFORCONDITION-Anweisung (Seite 177) verwendet. Eine Expression kann ausschließlich im Implementationsabschnitt der ST-Quelle vereinbart werden.
  • Seite 217 Im folgenden Beispiel wird unterstellt, dass das Programm feeder in einer MotionTask abläuft. Für diese MotionTask ist die Option Aktivierung nach StartupTask ausgewählt. Die Zuordnung von Programmen zu Tasks nehmen Sie im SIMOTION SCOUT vor (siehe Funktionsbeschreibung SIMOTION Motion Control Basisfunktionen).
  • Seite 218 Funktionen, Funktionsbausteine, Programme 5.4 Expressions eine EXPRESSION mit Parametern verwenden und z. B. eine Zeitüberwachung in einer WAITFORCONDITION-Anweisung programmieren. SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 219: Objektorientierte Programmierung - Oop (Ab Kernel V4.5)

    Objektorientierte Programmierung - OOP (ab Kernel V4.5) Wichtiger Hinweis zur objektorientierten Programmierung Ab Version V4.5 stellt die Programmiersprache Structured Text Möglichkeiten zur objektorientierten Programmierung bereit. Sie können die objektorientierte Programmierung in einzelnen oder allen ST‑Quellen unter den nachstehenden Voraussetzungen nutzen. Voraussetzungen zur objektorientierten Programmierung Zur Nutzung der objektorientierten Programmierung in einer ST‑Quelle sind folgende Voraussetzungen zwingend erforderlich:...
  • Seite 220: Klassen Und Methoden

    Objektorientierte Programmierung - OOP (ab Kernel V4.5) 6.2 Klassen und Methoden Klassen und Methoden 6.2.1 Erstellung von Klassen (Basisklassen) 6.2.1.1 Klassen (Basisklassen) definieren Eine Klasse definieren Sie im Vereinbarungsteil des Implementationsabschnitts möglichst vor dem Abschnitt der Quelldatei (Programm, FB, FC oder Klasse), in dem sie aufgerufen wird. Dabei verwenden Sie folgende Syntax: Bild 6-1 Syntax: Basisklasse...
  • Seite 221: Zugriffsbezeichner Innerhalb Von Klassen

    Objektorientierte Programmierung - OOP (ab Kernel V4.5) 6.2 Klassen und Methoden Erlaubte Deklarationsböcke Tabelle 6-1 Deklarationsblöcke einer Klasse: Möglichkeiten Daten Syntax Zugriffsbezeichner_Klasse (optional) Datentyp TYPE Vereinbarungsliste END_TYPE Zugriffsbezeichner_Klasse (optional) Konstante VAR CONSTANT Vereinbarungsliste END_VAR Zugriffsbezeichner_Klasse (optional) OVERRIDE (optional) Lokale Variable (statisch) Vereinbarungsliste END_VAR Zugriffsbezeichner (optional) OVERRIDE (optional)
  • Seite 222: Klassen Und Methoden

    Objektorientierte Programmierung - OOP (ab Kernel V4.5) 6.2 Klassen und Methoden Bild 6-2 Syntax: Zugriffsbezeichner Klasse Tabelle 6-2 Mögliche Zugriffsbezeichner innerhalb einer Klasse Zugriffsbezeichner Bedeutung PRIVATE Die Bezeichner des jeweiligen Deklarationsblocks (Variablen, Datentypen usw.) bzw. die Methode sind nur innerhalb dieser Klasse nutzbar. In abgeleiteten Klassen sind diese Bezeichner bzw.
  • Seite 223: Zugriffsbezeichner Innerhalb Von Klassen

    Objektorientierte Programmierung - OOP (ab Kernel V4.5) 6.2 Klassen und Methoden 6.2.2 Erstellung von Methoden 6.2.2.1 Methoden definieren Die ausführbaren Anweisungen einer Klasse sind in Methoden zusammengefasst. Innerhalb einer Klasse werden die Methoden nach dem Deklarationsabschnitt der Klasse definiert. Eine Methode entspricht in etwa einer Funktion (Seite 185). Die Angabe eines Zugriffsbezeichner legt das Umfeld fest, aus dem die Methode aufgerufen werden kann.
  • Seite 224: Deklarationsabschnitt Von Methoden

    Objektorientierte Programmierung - OOP (ab Kernel V4.5) 6.2 Klassen und Methoden ● Die Schlüsselwörter FINAL, ABSTRACT und OVERRIDE sind nur für Methoden in abzuleitenden bzw. abgeleiteten Klassen relevant: – FINAL: Methode kann in einer abgeleiteten Klasse nicht überschrieben werden. – ABSTRACT: Methode kann nicht aufgerufen werden, sie muss in einer abzuleitenden Klasse überschrieben werden.
  • Seite 225 Objektorientierte Programmierung - OOP (ab Kernel V4.5) 6.2 Klassen und Methoden Daten Syntax Ausgangsparameter VAR_OUTPUT Vereinbarungsliste END_VAR Lokale Variable VAR oder VAR_TEMP (temporär) Vereinbarungsliste END_VAR Vereinbarungsliste : die Liste der Bezeichner des Typs, der deklariert werden soll. Parameterblöcke Parameter gehören zu den Lokaldaten und sind Formalparameter einer Methode. Wenn die Methode aufgerufen wird, ersetzen die Aktualparameter die Formalparameter und bilden somit einen Mechanismus zum Informationsaustausch zwischen den aufgerufenen und aufrufenden Quelldatei-Abschnitten.
  • Seite 226 Objektorientierte Programmierung - OOP (ab Kernel V4.5) 6.2 Klassen und Methoden Bild 6-4 Syntax: Parameterblock Methode Außer Variablen können Sie in den Parameterblöcken auch deklarieren: ● im Parameterblock für Durchgangsparameter: – Instanzen von Funktionsbausteinen (Seite 205), – Instanzen von Klassen (Seite 235), –...
  • Seite 227: Anweisungsabschnitt Von Methoden

    Objektorientierte Programmierung - OOP (ab Kernel V4.5) 6.2 Klassen und Methoden 6.2.2.3 Anweisungsabschnitt von Methoden Der Anweisungsabschnitt einer Methode beinhaltet Anweisungen, die mit dem Aufruf zur Ausführung kommen. Es gibt keine Unterschiede zu den formalen Regeln zur Bildung eines Anweisungsabschnitts, inhaltlich sollten Sie jedoch die Hinweise in der folgenden Tabelle beachten.
  • Seite 228: Methoden Innerhalb Der Klasse Aufrufen

    Objektorientierte Programmierung - OOP (ab Kernel V4.5) 6.2 Klassen und Methoden 6.2.3 Methoden innerhalb der Klasse aufrufen 6.2.3.1 Methode aufrufen Innerhalb einer Klasse können Methoden in anderen Methoden aufgerufen werden. Der Aufruf erfolgt ähnlich wie bei Funktionen durch Angabe der Methodenbezeichnung und der Parameter liste (FC-Parameter).
  • Seite 229: Parameterübergabe Zu Eingangsparametern

    Objektorientierte Programmierung - OOP (ab Kernel V4.5) 6.2 Klassen und Methoden Methodenspezifikation Beschreibung SUPER. Bei abgeleiteten Klassen: Expliziter Aufruf einer Methode der Basisklasse (statische Bindung). Klassenbezeichnung. Expliziter Aufruf einer Methode der angegebenen Klasse (statische Bindung). Erlaubte Klassenbezeichnungen: Eigene Klasse und alle Basisklassen innerhalb einer Methodenimplementierung Instanzbezeichnung.
  • Seite 230: Zulässiger Aufruf

    Objektorientierte Programmierung - OOP (ab Kernel V4.5) 6.2 Klassen und Methoden Durchgangsparameter nur eine typgleiche Variable zuweisen, Datentypkonvertierungen sind nicht möglich. Die formalen Durchgangsparameter können Sie in Anweisungen innerhalb der Methode verwenden und verändern. Die Methode greift direkt auf die Variable des Aktualparameters zu und kann diese unmittelbar verändern.
  • Seite 231: Beispiele Für Klassen Und Methoden

    Objektorientierte Programmierung - OOP (ab Kernel V4.5) 6.2 Klassen und Methoden Die formalen Ausgangsparameter können Sie in Anweisungen innerhalb der Methode verwenden und verändern. Siehe auch Beispiel: Tabelle 6-8 Beispiel: Aufruf der Methoden der Klasse COUNTER (Seite 238) Ausgangszuweisungen sind bei der Parameterübergabe optional. Wenn keine Ausgangszuweisung für einen Ausgangsparameter existiert, sind nach Beenden der Methode die Werte der Ausgangsparameter verloren.
  • Seite 232 Objektorientierte Programmierung - OOP (ab Kernel V4.5) 6.2 Klassen und Methoden Der Rückgabewert beider Methoden enthält den aktuellen Wert der Zählvariablen CV. Der Ausgangsparameter QU signalisiert jeweils, ob die obere Grenze MAX_Val erreicht bzw. die untere Grenze MIN_Val nicht erreicht ist. Tabelle 6-7 Beispiel: Auf- und Abwärtszähler als Klasse CLASS COUNTER...
  • Seite 233: Instanzen Von Klassen Anlegen Und Nutzen

    Objektorientierte Programmierung - OOP (ab Kernel V4.5) 6.2 Klassen und Methoden 6.2.5 Instanzen von Klassen anlegen und nutzen 6.2.5.1 Instanz einer Klasse deklarieren Instanz einer Klasse deklarieren Bevor Sie Methoden oder Variablen einer Klasse nutzen, müssen Sie eine Instanz der Klasse deklarieren.
  • Seite 234: Öffentliche Methoden Einer Klasse Außerhalb Dieser Klasse Aufrufen

    Objektorientierte Programmierung - OOP (ab Kernel V4.5) 6.2 Klassen und Methoden Bild 6-9 Syntax: Instanzdeklaration Klasse Beispiel für die Instanzdeklaration einer Klasse: Class_inst : Class_name := (Var_publ1 := 12, Var_publ2 := 123.456); Die Instanzdeklaration ist auch als Feld möglich, z. B.: Class_inst : ARRAY [1..2] OF Class_name;...
  • Seite 235: Außerhalb Der Klasse Auf Deren Öffentliche Variablen Zugreifen

    Objektorientierte Programmierung - OOP (ab Kernel V4.5) 6.2 Klassen und Methoden 6.2.5.3 Außerhalb der Klasse auf deren öffentliche Variablen zugreifen So greifen Sie auf eine öffentliche lokale Variable einer Klasse (d. h. Variable mit Zugriffsbezeichner PUBLIC) zu: 1. Deklarieren Sie eine Instanz der Klasse (sofern noch nicht geschehen). Siehe hierzu Instanz einer Klasse deklarieren (Seite 233).
  • Seite 236: Vererbung Von Klassen Und Methoden

    Objektorientierte Programmierung - OOP (ab Kernel V4.5) 6.3 Vererbung von Klassen und Methoden Die vollständige ST‑Quelle enthält vor dem Programm CallCounter noch die Klasse COUNTER aus Tabelle 6-7 Beispiel: Auf- und Abwärtszähler als Klasse (Seite 232). Tabelle 6-8 Beispiel: Aufruf der Methoden der Klasse COUNTER PROGRAM CallCounter_ST C1 : COUNTER := (MAX_Val := 1000, MIN_Val := 0);...
  • Seite 237 Objektorientierte Programmierung - OOP (ab Kernel V4.5) 6.3 Vererbung von Klassen und Methoden Bild 6-10 Syntax: Klasse Zur Ableitung einer Klasse verwenden Sie das Schlüsselwort EXTENDS mit Angabe des Bezeichners der Basisklasse. Die Eigenschaften der abgeleiteten Klasse können nun den neuen Gegebenheiten angepasst werden: ●...
  • Seite 238: Überschreiben Von Methoden

    Objektorientierte Programmierung - OOP (ab Kernel V4.5) 6.3 Vererbung von Klassen und Methoden ● Zusätzliche Methoden können definiert werden. ● Bestehende Methoden können überschrieben werden. Hinweis Auf Datentypen, Variablen und Konstanten, die in der Basisklasse mit dem Zugriffsbezeichner PRIVATE deklariert wurden, kann in der abgeleiteten Klasse nicht zugegriffen werden. Ein Zugriff ist nur über Methoden möglich, die von der Basisklasse geerbt wurden.
  • Seite 239: Beispiel: Zähler In 5Er-Schritten Durch Vererbung

    Objektorientierte Programmierung - OOP (ab Kernel V4.5) 6.3 Vererbung von Klassen und Methoden eine Klasse abstrakt ist, wenn sie mindestens eine abstrakte Methode enthält. Von abstrakten Klassen können keine Instanzen deklariert werden. 6.3.3 Beispiel: Zähler in 5er-Schritten durch Vererbung Das nachfolgende Beispiel basiert auf der Klasse COUNTER aus dem Beispiel Tabelle 6-7 Beispiel: Auf- und Abwärtszähler als Klasse (Seite 232).
  • Seite 240: Beispiel: Aufruf Der Methoden Beider Zähler

    Objektorientierte Programmierung - OOP (ab Kernel V4.5) 6.3 Vererbung von Klassen und Methoden der Basisklasse, auf der rechten Seite stehen als Aktualparameter die Formalparameter der überschreibenden Klasse. Tabelle 6-9 Auf- und Abwärtszähler in 5er-Schritten CLASS COUNTER_5STEP EXTENDS COUNTER METHOD PUBLIC OVERRIDE UP: INT // Method override VAR_INPUT INC : INT := 1;...
  • Seite 241 Objektorientierte Programmierung - OOP (ab Kernel V4.5) 6.3 Vererbung von Klassen und Methoden Die vollständige ST‑Quelle enthält vor dem Programm CallCounter_ST2 noch die Klassen COUNTER und COUNTER_5_STEP aus Tabelle 6-7 Beispiel: Auf- und Abwärtszähler als Klasse (Seite 232) bzw. Tabelle 6-9 Auf- und Abwärtszähler in 5er-Schritten (Seite 240). Tabelle 6-10 Sukzessiver Aufruf der Methoden des Klassen COUNTER und COUNTER_5STEP PROGRAM CallCounter_ST2 C1 : COUNTER;...
  • Seite 242: Aufruf Über Funktion

    Objektorientierte Programmierung - OOP (ab Kernel V4.5) 6.3 Vererbung von Klassen und Methoden Aufruf über Funktion Das nachfolgende Beispiel verlagert die gleichartigen Anweisungen, die im obigen Beispiel die Methoden der beiden Klassen aufrufen, in die Funktion CallSingleCounter. Die Übergabe der Klasse und weiterer Variablen an die Funktion erfolgt über Durchgangsparameter. Die Programmpflege wird dadurch wesentlich vereinfacht, weil die einzelnen Anweisungen zum Aufruf der Methoden UP und DOWN nicht doppelt gepflegt werden müssen.
  • Seite 243: Initialisierung Von Abgeleiteten Klassen Und Deren Instanzen

    Objektorientierte Programmierung - OOP (ab Kernel V4.5) 6.3 Vererbung von Klassen und Methoden PROGRAM CallCounter_ST3 C1 : COUNTER; C2 : COUNTER_5STEP; CountOut : INT; CountOut2 : INT; Locking : BOOL; Locking2 : BOOL; UpValreached : BOOL; UpValreached2 : BOOL; END_VAR // Call COUNTER (C1) for increment/decrement CallSingleCounter ( C := C1,...
  • Seite 244: Initialisierung Von Instanzen Abgeleiteter Klassen

    Objektorientierte Programmierung - OOP (ab Kernel V4.5) 6.3 Vererbung von Klassen und Methoden So ändern Sie die Initialisierungswerte der Variablen einer abgeleiteten Klasse: 1. Geben Sie hinter dem Namen der Basisklasse den Zuweisungsoperator := ein. 2. Anschließend geben Sie in Klammern die zu ändernden Variablen und deren Initialisierungswerte in Form einer Strukturinitialisierungsliste (Seite 144) an (ähnlich zur Initialisierung beim anwenderdefinierten Datentyp Struktur).
  • Seite 245 Objektorientierte Programmierung - OOP (ab Kernel V4.5) 6.3 Vererbung von Klassen und Methoden So ändern Sie die Initialisierungswerte der Variablen einer Instanz: 1. Geben Sie hinter dem Namen der Klasse den Zuweisungsoperator := ein. 2. Anschließend geben Sie in Klammern die zu ändernden Variablen und deren Initialisierungswerte in Form einer Strukturinitialisierungsliste (Seite 144) an (ähnlich zur Initialisierung beim anwenderdefinierten Datentyp Struktur).
  • Seite 246: Abstrakte Klassen

    Objektorientierte Programmierung - OOP (ab Kernel V4.5) 6.4 Abstrakte Klassen Abstrakte Klassen Definition Eine Klasse wird als abstrakt bezeichnet, wenn eine der beiden folgenden Bedingungen erfüllt ist: ● Die Klasse ist mit dem Schlüsselwort ABSTRACT gekennzeichnet, siehe Syntaxdiagramm Klasse (Seite 237). ●...
  • Seite 247 Objektorientierte Programmierung - OOP (ab Kernel V4.5) 6.5 Objektorientiertes Interface Sie müssen immer vollständig deklariert sein, bevor sie bei der Deklaration einer implementierenden Klasse oder bei der Deklaration einer Interface-Variablen verwendet werden. Dieses Verhalten ist unabhängig von der Compileroption (Seite 62) "Vorwärtsdeklarationen erlauben".
  • Seite 248: Ableitung Eines Objektorientierten Interfaces

    Objektorientierte Programmierung - OOP (ab Kernel V4.5) 6.5 Objektorientiertes Interface Methodenprototyp Ein Methodenprototyp legt die Aufrufschnittstelle einer Methode fest. Diese Aufrufschnittstelle umfasst: ● die Methodenbezeichnung (Name), ● optional den Datentyp des Rückgabewerts ● die Eimgangs- Durchgangs- und Ausgangsparameter der Methode Bild 6-12 Syntax: Methodenprototyp Diese Methodenprototypen müssen in den Klassen, die das Interface implementieren, als...
  • Seite 249: Implementierung Objektorientierter Interfaces In Klassen

    Objektorientierte Programmierung - OOP (ab Kernel V4.5) 6.5 Objektorientiertes Interface 6.5.2 Implementierung objektorientierter Interfaces in Klassen Die Implementierung objektorientierter Interfaces erfolgt in Klassen. Die zu implementierenden Interfaces müssen in der ST‑Quelle zwingend vor der implementierenden Klasse deklariert sein. Das nachfolgende Bild wiederholt das Syntaxdiagramm für die Klasse aus dem Abschnitt "Vererbung von Klassen"...
  • Seite 250: Abgeleitete Klassen Und Abgeleitete Objektorientierte Interfaces

    Objektorientierte Programmierung - OOP (ab Kernel V4.5) 6.5 Objektorientiertes Interface ● Optional: das Schlüsselwort EXTENDS mit der Bezeichnung einer abzuleitenden Basisklasse und ggf. der Initialisierung ● Optional: der Deklarationsabschnitt mit den lokalen Variablen und Datentypen der Klasse ● Zwingend: alle Methoden, die in den zu implementierenden Interfaces als Prototypen definiert wurden.
  • Seite 251: Nutzen Der Interface-Variablen

    Objektorientierte Programmierung - OOP (ab Kernel V4.5) 6.5 Objektorientiertes Interface Es sind alle Variablenarten der jeweiligen Programmorganisationseinheit möglich mit Ausnahme von: ● VAR_IN_OUT ist nicht erlaubt. Jedoch dürfen Felder, Strukturen, Funktionsbausteine oder Klassen, die Interface- Variablen enthalten, als VAR_IN_OUT übergeben werden. ●...
  • Seite 252 Objektorientierte Programmierung - OOP (ab Kernel V4.5) 6.5 Objektorientiertes Interface Diese instanzspezifische Initialisierung kann für Variablen von objektorientierten Interfaces erzwungen werden. Geben Sie hierzu bei der Deklaration dieser Variablen in Klassen oder Funktionsbausteinen " := * " hinter dem Bezeichner des objektorientierten Interfaces an. Der entsprechende statische Variablenblock muss durch die Kennzeichnung mit OVERRIDE oder PUBLIC von außerhalb initialisierbar sein.
  • Seite 253: Beispiel Zu Interface-Variablen

    Objektorientierte Programmierung - OOP (ab Kernel V4.5) 6.5 Objektorientiertes Interface 6.5.4 Beispiel zu Interface-Variablen Das nachfolgende Beispiel erläutert die Verwendung von Interface-Variablen. INTERFACE ITF1 METHOD m1 END_METHOD END_INTERFACE INTERFACE ITF2 METHOD m2 END_METHOD END_INTERFACE CLASS A IMPLEMENTS ITF1 METHOD PUBLIC m1 (* ... *) ; END_METHOD // ...
  • Seite 254 Objektorientierte Programmierung - OOP (ab Kernel V4.5) 6.5 Objektorientiertes Interface PROGRAM P inst_a : A; // Instanz der Klasse A inst_b : B; // Instanz der Klasse B inst_c : C; // Instanz der Klasse C interf1: ITF1; // interf1 hat Wert NULL interf2: ITF2;...
  • Seite 255 Objektorientierte Programmierung - OOP (ab Kernel V4.5) 6.5 Objektorientiertes Interface Zu den beiden Funktionen func_if1 und func_if2: ● Über eine Eingangsvariable i mit dem jeweiligen Typ des Interfaces erhalten sie die Möglichkeit, eine Interface-Variable zu übernehmen. ● Über die Abfrage " i<> NULL“ prüfen sie, ob i eine gültige Referenz enthält. IWenn die Referenz gültig ist, rufen die Funktionen die Methoden des jeweiligen Interfaces auf.
  • Seite 256: Vergleich Abstrakte Klasse Und Objektorientiertes Interface

    Objektorientierte Programmierung - OOP (ab Kernel V4.5) 6.6 Vergleich abstrakte Klasse und objektorientiertes Interface Interfaces beschreiben die gemeinsamen Schnittstellen für entsprechende Programmmodule mit den zu implementierenden Methoden. Diese Datenbeschreibung kann dann zum Beispiel für einen Test in einem Programmbereich mit Dummy-Methoden und Daten durch die Referenzübergabe verwendet werden.
  • Seite 257 Objektorientierte Programmierung - OOP (ab Kernel V4.5) 6.6 Vergleich abstrakte Klasse und objektorientiertes Interface Grundsätzlich lässt sich der Unterschied zwischen den beiden Konstrukten zusammenfassen: ● Eine abstrakte Klasse stellt einen Vertrag für die Nutzung in der Ableitungskette, also innerhalb der Klassenhierarchie, dar. ●...
  • Seite 258: Allgemeine Referenzen

    Objektorientierte Programmierung - OOP (ab Kernel V4.5) 6.7 Allgemeine Referenzen Allgemeine Referenzen 6.7.1 Allgemeine Referenzen definieren AllgemeineReferenzen enthalten die Adresszuordnung zu einer Variablen oder zu einer Instanz eines Funktionsbaustei bzw. einer Klasse. Hierzu wird mit dem Schlüsselwort REF_TO ein Datentyp erzeugt, der die Adresse zu einem bereits bekannten Datentyp (Referenz- Datentyp) enthalten kann: ●...
  • Seite 259: Allgemeine Referenzen Bilden

    Objektorientierte Programmierung - OOP (ab Kernel V4.5) 6.7 Allgemeine Referenzen Es sind alle Variablenarten der jeweiligen Programmorganisationseinheit möglich mit Ausnahme von: ● VAR_IN_OUT ist nicht erlaubt. Jedoch dürfen Felder, Strukturen, Funktionsbausteine oder Klassen, die allgemeine Referenzen enthalten, als VAR_IN_OUT übergeben werden. ●...
  • Seite 260: Operationen Mit Allgemeinen Referenzen

    Objektorientierte Programmierung - OOP (ab Kernel V4.5) 6.7 Allgemeine Referenzen Der Rückgabewert hat den Datentyp "Referenz auf den Datentyp des Eingangsparameters in ". Bit dem Zuweisungsoperator ":=" kann er einer Variablen zugewiesen werdem, die exakt type ). Eine Datentypkonvertierung ist nicht möglich. diesem Datentyp entspricht (REF_TO Hinweis Beachten Sie bei Instanzen von Funktionsbausteinen, die als Durchgangsparameter...
  • Seite 261 Objektorientierte Programmierung - OOP (ab Kernel V4.5) 6.7 Allgemeine Referenzen Dynamische Typkonvertierung mit dem Operator "?=" Der Operator "?=" kann nur mit Referenzen auf Klassen und mit Interface-Variablen (Variablen von objektorientierten Interfaces) zur dynamischen Datentypkonvertiertung genutzt werden. Er unterstützt folgende Varianten: ●...
  • Seite 262: I/O-Referenzen (Ab Kernel V5.1)

    Objektorientierte Programmierung - OOP (ab Kernel V4.5) 6.8 I/O-Referenzen (ab Kernel V5.1) I/O-Referenzen (ab Kernel V5.1) 6.8.1 I/O-Referenzen bilden I/O‑Referenzen deklarieren I/O‑Referenzen ermöglichen es, innerhalb Klassen und Funktionsbausteinen symbolisch auf I/O‑Variablen zuzugreiifen. Die Klassen und Funktionsbausteine sind somit auch in Bibliotheken verwendbar.
  • Seite 263: I/O_Referenzen Mit I/O-Variablen Verbinden

    Objektorientierte Programmierung - OOP (ab Kernel V4.5) 6.8 I/O-Referenzen (ab Kernel V5.1) Eine in der Initialisierung mit NULL gekennzeichnete I/O‑Referenz muss vor der Verwendung auf Gültigkeit überprüft werden, wie dies auch bei allen anderen Referenzarten üblich ist. Hierzu kann der Vergleich mit NULL herangezogen werden. FUNCTION_BLOCK myFB VAR OVERRIDE myInput AT %I* : INT := NULL;...
  • Seite 264 Objektorientierte Programmierung - OOP (ab Kernel V4.5) 6.8 I/O-Referenzen (ab Kernel V5.1) O‑Referenz können auch mit einzelnen Elementen einer I/O‑ARRAY-Variablen durch Angabe eines konstanten Indexwerts verbunden werden. VAR_GLOBAL myFbInst1 : myFB := (myInput := InputVarW3, myOutput := OutputVarW10); myFbInst2 : myFB := (myInput := InputVarW4, myOutput := OutputVarW14);...
  • Seite 265: Einbindung Von St In Simotion

    Einbindung von ST in SIMOTION Sie erfahren in diesem Kapitel, welches Zusammenspiel zwischen ST-Programmen und dem SIMOTION SCOUT besteht. Quelldatei-Abschnitte Einen Überblick über die Bedeutung der Quelldatei-Abschnitte haben Sie bereits in Gliederung der ST-Quelle (Seite 112) bekommen. Hier erfahren Sie Einzelheiten, z. B.: ●...
  • Seite 266: Interfaceabschnitt

    Einbindung von ST in SIMOTION 7.1 Quelldatei-Abschnitte 7.1.1.1 Interfaceabschnitt Der Interfaceabschnitt enthält Anweisungen für die Veröffentlichungund Verwendung von Daten (Datentypen, Variablen, Funktionsbausteinen, Funktionen, Programmen). Außerdem können Technologiepakete und Bibliotheken geladen werden. Der Interfaceabschnitt hat folgende Syntax: Syntax INTERFACE // Interfaceanweisungen (optional) END_INTERFACE Ein individueller Bezeichner des Abschnitts kann nicht angegeben werden.
  • Seite 267 Einbindung von ST in SIMOTION 7.1 Quelldatei-Abschnitte 3. Verweis auf andere Units, um deren veröffentlichte Bestandteile zu verwenden. Die Syntax lautet USES unit_name-list; Näheres dazu siehe "USES-Anweisung in einer verwendenden Unit (Seite 290)". 4. Deklarationen und Angaben zur Veröffentlichung an andere Programmquellen: –...
  • Seite 268: Implementationsabschnitt

    Einbindung von ST in SIMOTION 7.1 Quelldatei-Abschnitte Reihenfolge Der Interfaceabschnitt ist der 1. Abschnitt einer ST-Quelle. Hinweis Optional kann dem Interfaceabschnitt die Unit-Anweisung vorangestellt werden, siehe "Bezeichnung der Unit (Seite 288)". Die Reihenfolge der Interfaceanweisungen 1 bis 4 ist verbindlich. Innerhalb der Nr.
  • Seite 269 Einbindung von ST in SIMOTION 7.1 Quelldatei-Abschnitte Zwischen den reservierten Wörtern IMPLEMENTATION und END_IMPLEMENTATION stehen optional die Implementationsanweisungen (der Hauptteil der ST-Quelldatei) in folgender Reihenfolge: 1. Verweis auf andere Units, um deren veröffentlichte Bestandteile zu verwenden. Die Syntax lautet: USES unit_name-list; Näheres dazu siehe "USES-Anweisung in einer verwendenden Unit (Seite 290)".
  • Seite 270: Häufigkeit

    Einbindung von ST in SIMOTION 7.1 Quelldatei-Abschnitte Bei aktivierter Compileroption (Seite 62) "Vorwärtsdeklarationen erlauben" gilt: ● Für die Reihenfolge der o. a. Implementationsanweisungen gilt: Die strikte Trennung zischen den Nummern 2 und 3 ist aufgehoben. Deklarationen dürfen beliebig zwischen Programmorganisationseinheiten erfolgen. Ausnahme: POE-Prototypen müssen deklariert werden, bevor die entsprechende Programmorganisationseinheit definiert oder verwendet wird.
  • Seite 271 Einbindung von ST in SIMOTION 7.1 Quelldatei-Abschnitte Für die Reihenfolge der POE in einer ST-Quelle gilt: ● Standardmäßig müssen in der Quelldatei die aufgerufenen POE vor den aufrufenden POE stehen, damit sie den letzteren bekannt sind. ● Ausnahme: Nur bei aktivierter Compileroption (Seite 62) "Vorwärtsdeklarationen erlauben". Die Reihenfolge ist beliebig.
  • Seite 272: Funktionsbausteine (Fb)

    Einbindung von ST in SIMOTION 7.1 Quelldatei-Abschnitte Häufigkeit Beliebig oft pro ST-Quelle. Pflichtteil Nein Weitere Informationen zu Funktionen (FC) Siehe Abschnitt "Erstellung und Aufruf von Funktionen und Funktionsbausteinen" (Seite 185). 7.1.1.5 Funktionsbausteine (FB) Funktionsbausteine (FB) gehören zu den Programmorganisationseinheiten (POE). Sie sind aus Programmen aufrufbare und parametrierbare Quelldatei-Abschnitte mit statischen Daten (interne Variablen behalten ihren Wert zwischen mehreren Aufrufen).
  • Seite 273 Einbindung von ST in SIMOTION 7.1 Quelldatei-Abschnitte Sie können die Instanzdeklaration auch global (innerhalb VAR_GLOBAL / END_VAR im Interface- oder Implementationsabschnitt) durchführen. ● Bei nicht aktivierter Compileroption (Seite 62) "Vorwärtsdeklarationen erlauben" gilt: Dies ist nur mit FB möglich, die verwendete Programmquellen und Bibliotheken zur Verfügung stellen, jedoch nicht mit FB, die in derselben ST‑Quelle definiert werden.
  • Seite 274: Programme

    Einbindung von ST in SIMOTION 7.1 Quelldatei-Abschnitte Weitere Informationen zu Funktionsbausteinen (FB) Siehe Abschnitt "Erstellung und Aufruf von Funktionen und Funktionsbausteinen" (Seite 185). 7.1.1.6 Programme Programme gehören zu den Programmorganisationseinheiten (POE). Sie werden auf dem Ablaufsystem konfigurieren im Zielgerät gemäß ihrer Taskzuordnung aufgerufen (siehe SIMOTION Basisfunktionen ) und können Funktionen (FC) und Funktionshandbuch Funktionsbausteine (FB) sowie Methoden in Klassen und FB aufrufen.
  • Seite 275: Expressions

    Einbindung von ST in SIMOTION 7.1 Quelldatei-Abschnitte 7.1.1.7 Expressions Expressions sind ein Spezialfall einer Funktionsvereinbarung mit dem festgelegten Datentyp BOOL des Rückgabewerts. Es wird der Ausdruck innerhalb der reservierten Wörter EXPRESSION <Expression-Bezeichner> … END_EXPRESSION ausgewertet, der dem Funktionsnamen zugewiesen wird. Mit dem Konstrukt WAITFORCONDITION (Seite 177) können Sie in einer MotionTask direkt auf ein programmierbares Ereignis bzw.
  • Seite 276: Klassen (Ab Kernel V4.5)

    Einbindung von ST in SIMOTION 7.1 Quelldatei-Abschnitte Weitere Informationen zu Expressions Siehe Abschnitt "Expressions" (Seite 216). Beispiele n Zusammenhang mit der WAITFORCONDITION-Anweisung: siehe Funktionshandbuch SIMOTION Basisfunktionen. 7.1.1.8 Klassen (ab Kernel V4.5) Klassen gehören zu den Programmorganisationseinheiten (POE). Sie bilden eine Kapsel für Variablen und Methoden (Seite 280).
  • Seite 277 Einbindung von ST in SIMOTION 7.1 Quelldatei-Abschnitte Sie können die Instanzdeklaration auch global (innerhalb VAR_GLOBAL / END_VAR im Interface- oder Implementationsabschnitt) durchführen. ● Bei nicht aktivierter Compileroption (Seite 62) "Vorwärtsdeklarationen erlauben" gilt: Dies ist nur mit Klassen möglich, die verwendete Programmquellen und Bibliotheken zur Verfügung stellen, jedoch nicht mit Klassen, die in derselben ST‑Quelle definiert werden.
  • Seite 278: Methoden

    Einbindung von ST in SIMOTION 7.1 Quelldatei-Abschnitte 7.1.1.9 Methoden Methoden gehören zu den Programmorganisationseinheiten (POE). Sie sind aufrufbare und parametrierbare Quelldatei-Abschnitte mit temporären Daten innerhalb von Klassen (Seite 276) oder Funktionsbausteinen (Seite 272). Alle internen Variablen verlieren nach Verlassen der Methode ihren Wert; beim nächsten Aufruf werden sie neu initialisiert. Methoden können nur bei aktivierter Compileroption (Seite 62) "Objektorientierte Programmierung zulassen"...
  • Seite 279: Objektorientiertes Interface (Ab Kernel V4.5)

    Einbindung von ST in SIMOTION 7.1 Quelldatei-Abschnitte Häufigkeit Beliebig oft pro Klasse oder Funktionsbaustein. Pflichtteil Nein Weitere Informationen zu Methoden Siehe Abschnitt "Objektorientierte Programmierung - OOP (ab Kernel V4.5)" (Seite 219). 7.1.1.10 Objektorientiertes Interface (ab Kernel V4.5) Objektorientierte Interfaces definieren die Aufrufschnittstelle von öffentlichen Methoden (Seite 278) (Zugriffsbezeichner PUBLIC).
  • Seite 280: Deklarationsabschnitt

    Einbindung von ST in SIMOTION 7.1 Quelldatei-Abschnitte Besonderheiten In Klassen (Seite 276), die objektorientierte Interfaces implementieren, müssen alle Methoden (Seite 278), die in den Interfaces als Prototypen definiert sind, ausformuliert werden. Diese Methoden müssen immer als öffentlich (Zugriffsbezeichner PUBLIC) deklariert werden. Die im Interface vorgegebene Aufrufschnittstelle (Eingangs-, Ausgangs- und Durchgangsparameter) muss unverändert übernommen werden.
  • Seite 281 Einbindung von ST in SIMOTION 7.1 Quelldatei-Abschnitte Reihenfolge Der Deklarationsabschnitt hat keine expliziten Schlüsselwörter am Anfang oder Ende. Er beginnt nach dem Schlüsselwort der jeweiligen Programmorganisationseinheit (POE) und endet mit der 1. ausführbaren Anweisung des Anweisungsteils. Er enthält in beliebiger Reihenfolge: ●...
  • Seite 282 Einbindung von ST in SIMOTION 7.1 Quelldatei-Abschnitte Weitere Informationen zu Anweisungen Siehe folgende Abschnitte: ● Wertzuweisungen und Ausdrücke (Seite 148) ● Kontrollanweisungen (Seite 166) ● Aufruf von Funktionen und Funktionsbausteinen (Seite 200) ● Methode aufrufen (Seite 228) 7.1.1.13 Datentypdefinition Bei der Datentypdefinition legen Sie anwenderdefinierte Datentypen (UDT) fest. Sie können diese für Variablendeklarationen verwenden.
  • Seite 283 Einbindung von ST in SIMOTION 7.1 Quelldatei-Abschnitte Häufigkeit Der Deklarationsblock TYPE / END_TYPE darf mehrfach in einem Quelldatei-Abschnitt auftreten; in einem Deklarationsblock sind beliebig viele UDT möglich. Pflichtteil Nein Weitere Informationen zu anwenderdefinierten Datentypen (UDT) Siehe Abschnitt "Anwenderdefinierte Datentypen" (Seite 120). 7.1.1.14 Variablendeklaration Ein Deklarationsabschnitt enthält Variablendeklarationen und kann in FC, FB und...
  • Seite 284 Einbindung von ST in SIMOTION 7.1 Quelldatei-Abschnitte ● Im Deklarationsabschnitt eines Programms: VAR: Lokale Variable VAR CONSTANT: Lokale Konstante VAR_TEMP: Temporäre Variable ● Im Deklarationsabschnitt einer Expression: VAR: Lokale Variable VAR CONSTANT: Lokale Konstante VAR_INPUT: Eingangsparameter (ab Version 4.1 des SIMOTION Kernels) VAR_IN_OUT: Durchgangsparameter (ab Version 4.1 des SIMOTION Kernels) ●...
  • Seite 285: Weitere Informationen Zur Variablendeklaration

    Einbindung von ST in SIMOTION 7.1 Quelldatei-Abschnitte ● Im Deklarationsabschnitt einer POE (FC, FB, Programm, Expression): Syntax . Zulässige Schlüsselwörter in Abhängigkeit von der Art der POE: siehe oben unter Die Variablen sind nur lokal innerhalb der POE bekannt. Ausnahmen: –...
  • Seite 286: Veröffentlichung Und Verwendung Von St-Quellen

    Interfaceabschnitt) setzen. Die Syntax lautet: UNIT name; name entspricht dem Namen der ST-Quelle, wie in SIMOTION SCOUT definiert, siehe ST- Quelle einfügen (Seite 27) oder Eigenschaften einer ST-Quelle ändern (Seite 29). Die Unit-Anweisung wird ignoriert, wenn der dort angegebene Name vom Namen der ST- Quelle abweicht.
  • Seite 287 Einbindung von ST in SIMOTION 7.1 Quelldatei-Abschnitte ● Die zu veröffentlichenden POE (Funktionen, Funktionsbausteine, Programme und Klassen) Geben Sie jeweils die zu veröffentlichende POE (Funktion, Funktionsbaustein, Programm oder Klasse) mit dem entsprechenden Schlüsselwort an (optional innerhalb des Konstrukts TYPE / END_TYPE). Schließen Sie jeden Eintrag mit einem Strichpunkt ab. fb_name ;...
  • Seite 288: Beispiel Für Veröffentlichende Unit

    Einbindung von ST in SIMOTION 7.1 Quelldatei-Abschnitte 7.1.2.3 Beispiel für veröffentlichende Unit myUnit_A ). Diese wird von Nachfolgend sehen Sie ein Beispiel für eine veröffentlichende Unit ( myUnit_B (siehe Beispiel für eine verwendende Unit (Seite 292)) importiert. Tabelle 7-1 Beispiel für veröffentlichende Unit UNIT myUnit_A;...
  • Seite 289 Einbindung von ST in SIMOTION 7.1 Quelldatei-Abschnitte unit_name-list ist eine durch Kommata getrennte Aufzählung der Units, die verwendet werden sollen. Beispiel: USES unit_1, unit_2, unit_3; Sie habe damit Zugriff auf folgende Elemente, die im Interfaceabschnitt der verwendeten Units (z. B. ST-Quelle, MCC-Quelle) veröffentlicht sind: ●...
  • Seite 290: Beispiel Für Eine Verwendende Unit

    Einbindung von ST in SIMOTION 7.2 Variablen in SIMOTION Hinweis Tipps zur Verwendung von Unit-Variablen erhalten Sie im Funktionshandbuch SIMOTION Basisfunktionen. 7.1.2.5 Beispiel für eine verwendende Unit myUnit_B ). Diese verwendet Nachfolgend sehen Sie ein Beispiel für eine verwendende Unit ( myUnit_A aus dem Beispiel für veröffentlichende Unit (Seite 288).
  • Seite 291: Variablenmodell

    Einbindung von ST in SIMOTION 7.2 Variablen in SIMOTION 7.2.1 Variablenmodell Die folgenden Tabellen zeigen alle Variablentypen, die Ihnen bei der Programmierung zur Verfügung stehen. ● Systemvariablen des SIMOTION Geräts und der Technologieobjekte ● Globale Anwendervariablen (I/O-Variablen, Geräteglobale Variablen, Unit-Variablen) ●...
  • Seite 292 Einbindung von ST in SIMOTION 7.2 Variablen in SIMOTION Globale Anwendervariablen Variablentyp Bedeutung I/O-Variablen Sie können den I/O-Adressen des SIMOTION Geräts oder der Peripherie symbolische Vari‐ ablennamen zuordnen. Dies ermöglicht Ihnen folgende Direktzugriffe und Prozessabbildzu‐ griffe auf die Peripherie: ● innerhalb des SIMOTION Geräts von allen Programmen ●...
  • Seite 293 Einbindung von ST in SIMOTION 7.2 Variablen in SIMOTION Lokale Anwendervariablen Variablentyp Bedeutung Anwenderdefinierte Variablen, auf die nur innerhalb des Programms (bzw. Funktion, Funkti‐ onsbaustein) zugegriffen werden kann, in dem sie definiert wurden. Variable eines Programms Variable wird in einem Programm deklariert. Nur innerhalb dieses Programms kann auf sie (Programmvariable) zugegriffen werden.
  • Seite 294 Einbindung von ST in SIMOTION 7.2 Variablen in SIMOTION Variablentyp Bedeutung Variable eines Funktions‐ Variable wird in einem Funktionsbaustein (FB) deklariert. Nur innerhalb dieses FB kann auf bausteins sie zugegriffen werden. Es wird zwischen statischen, temporären und remanenten Variablen unterschieden: ●...
  • Seite 295: Unit-Variablen

    Einbindung von ST in SIMOTION 7.2 Variablen in SIMOTION Hinweis Beachten Sie, dass der Download der ST-Quelle ins Zielsystem und ausführende Tasks die Initialisierung von Variablen und damit deren Inhalt beeinflussen, siehe Zeitpunkt der Variableninitialisierung (Seite 314). 7.2.1.1 Unit-Variablen Unit-Variablen sind in der gesamten ST-Quelle gültig, d. h. Sie können in jedem Quelldatei- Abschnitt auf diese Variablen zugreifen.
  • Seite 296: Nicht Remanente Unit-Variablen

    Einbindung von ST in SIMOTION 7.2 Variablen in SIMOTION 7.2.1.2 Nicht remanente Unit-Variablen Nicht remanente Unit-Variablen verlieren bei einem Spannungsausfall ihren Wert. Bild 7-1 Syntax: Unit-Variablen Dieser Deklarationsblock darf innerhalb eines Interface- oder Implementationsabschnitts mehrfach auftreten. Dabei geben Sie bei der Variablendeklaration Variablenname und Datentyp an (siehe Übersicht aller Variablendeklarationen (Seite 140) und Initialisierung von Variablen oder Datentypen (Seite 141)).
  • Seite 297: Remanente Unit-Variablen

    Einbindung von ST in SIMOTION 7.2 Variablen in SIMOTION Tabelle 7-4 Beispiele für nicht remanente Unit-Variablen INTERFACE VAR_GLOBAL // Diese Variablen werden veröffentlicht. rotation1 : INT; field1 : ARRAY [1..10] OF REAL; flag1 : BOOL; motor1 : motor; // Instanzdeklaration END_VAR END_INTERFACE IMPLEMENTATION...
  • Seite 298: Lokale Variablen (Statische Und Temporäre Variablen)

    Quelldatei beanspruchen und die Variablen nach absteigender Größe des Datentyps sortieren! ● Überprüfen Sie im SIMOTION SCOUT den Füllstand des remanenten Speichers. Rufen Sie im Online-Modus die Gerätediagnose des zu überprüfenden SIMOTION Geräts auf (siehe Online-Hilfe). Im Register Systemauslastung. sehen Sie unter Remanente Daten den zur Verfügung stehenden Speicherplatz.
  • Seite 299 Einbindung von ST in SIMOTION 7.2 Variablen in SIMOTION Siehe auch: Initialisierung lokaler Variablen (Seite 319). Hinweis Auf lokale Variablen kann außerhalb des Quelldatei-Abschnitts, in dem sie deklariert wurden, nicht zugegriffen werden. Die folgende Tabelle gibt einen Überblick über die Deklaration remanenter, statischer und temporärer Variablen.
  • Seite 300 Einbindung von ST in SIMOTION 7.2 Variablen in SIMOTION Quelldatei-Ab‐ Schlüsselwörter zur Deklaration schnitt Statische Variablen Temporäre Variablen Remanente lokale Variablen (ab Kernel V4.5) Klasse VAR / END_VAR – VAR RETAIN / END_VAR Die Initialisierung der Variablen ist abhängig von der Initialisierung der deklarierten Instanz. Siehe Initialisierung von In‐ stanzen von Funktionsbausteinen (FB) oder Klassen (Seite 322).
  • Seite 301: Statische Variablen

    Einbindung von ST in SIMOTION 7.2 Variablen in SIMOTION Tabelle 7-7 Beispiele für statische und temporäre Variablen IMPLEMENTATION FUNCTION testFkt // Deklaration temporärer Variablen flag : BOOL; END_VAR END_FUNCTION FUNCTION_BLOCK testFbst VAR RETAIN // Deklaration remanenter Variablen position1 : LREAL END_VAR // Deklaration statischer Variablen rotation1 : INT;...
  • Seite 302 Einbindung von ST in SIMOTION 7.2 Variablen in SIMOTION Statische Variablen gibt es in folgenden Quelldatei-Abschnitten: ● Programme ● Funktionsbausteine ● Klassen (ab Version V4.5 des SIMOTION Kernels und mit Compileroption "Objektorientierte Programmierung zulassen") Sie werden im statischen Variablenblock deklariert. Bild 7-3 Syntax: Statischer Variablenblock Im statischen Variablenblock können Sie laut Syntax aus dem Bild:...
  • Seite 303: Temporäre Variablen

    Einbindung von ST in SIMOTION 7.2 Variablen in SIMOTION 7.2.1.6 Temporäre Variablen Temporäre Variablen werden bei jedem Aufruf des Quelldatei-Abschnitts initialisiert. Ihr Wert bleibt nur während eines Ablaufs des Quelldatei-Abschnitts erhalten. Temporäre Variablen gibt es in folgenden Quelldatei-Abschnitten: ● Programme ●...
  • Seite 304 Einbindung von ST in SIMOTION 7.2 Variablen in SIMOTION Sie werden im remanenten lokalen Variablenblock deklariert. Bild 7-6 Syntax: Remanenter lokaler Variablenblock Im remanenten lokalen Variablenblock können Sie laut Syntax aus dem Bild: ● Variablen deklarieren (Namen und Datentyp), optional mit Initialisierung Ausnahme.
  • Seite 305: Verwendung Von Geräteglobalen Variablen

    Offline-Modus befinden. Hier in Kurzform die Vorgehensweise: 1. Markieren Sie im Projektnavigator des SIMOTION SCOUT das Element GERÄTEGLOBALE VARIABLEN im Teilbaum des SIMOTION Geräts. 2. Wählen Sie in der Detailanzeige das Register Symbolbrowser und scrollen Sie bis zum Ende der Variablentabelle (leere Zeile).
  • Seite 306: Speicherbereiche Der Variablentypen

    Einbindung von ST in SIMOTION 7.2 Variablen in SIMOTION In ST-Quellen können Sie eine geräteglobale Variable wie jede andere Variable verwenden. Hinweis var-name ) deklariert Wenn Sie Unit-Variablen oder lokale Variablen gleichen Namens (z. B. _device.var-name . haben, spezifizieren Sie die geräteglobale Variable mit Eine Alternative zu geräteglobalen Variablen ist die Deklaration von Unit-Variablen in einer eigenen Unit, die in andere Units importiert wird.
  • Seite 307 Einbindung von ST in SIMOTION 7.2 Variablen in SIMOTION Eine Erläuterung anhand eines Beispiels finden Sie im Abschnitt Beispiel für Speicherbereiche (Seite 311). Tabelle 7-8 Durch verschiedene Variablentypen belegte Speicherbereiche und deren Initialisierung Speicherbereich Zugeordnete Variablentypen Initialisierung Remanenter Speicher Beim Download gemäß den Einstellungen für ●...
  • Seite 308 Einbindung von ST in SIMOTION 7.2 Variablen in SIMOTION Speicherbereich Zugeordnete Variablentypen Initialisierung Lokaldatenstack der ● Referenz (Zeiger) zu dem in der Task Bei jedem Aufruf des Programms in der Task Task gerufenen Programm ● Mit VAR_TEMP deklarierte lokale Variablen des in der Task gerufenen Programms Bei jedem Aufruf der Instanz des Funktions‐...
  • Seite 309: Beispiel Für Speicherbereiche

    Einbindung von ST in SIMOTION 7.2 Variablen in SIMOTION 7.2.3.1 Beispiel für Speicherbereiche Tabelle 7-9 Beispiel für Speicherbereiche der Variablentypen - Teil 1 INTERFACE // Die Anweisungen im Interfaceabschnitt legen fest, // welche Quellinhalte veröffentlicht werden. FUNCTION FC1; FUNCTION_BLOCK FB1; PROGRAM p1;...
  • Seite 310 Einbindung von ST in SIMOTION 7.2 Variablen in SIMOTION Tabelle 7-10 Beispiel für Speicherbereiche der Variablentypen - Teil 2 // Fortsetzung //---------------------------------------------------------------------- FUNCTION_BLOCK FB1 // Die Deklaration einer Instanz // eines Funktionsbausteins bestimmt, wo deren Daten liegen: // - als VAR_GLOBAL in einer Unit: im Anwenderspeicher der Unit // - als VAR in einem Programm: standardmäßig im Anwenderspeicher der Task...
  • Seite 311: Speicherbedarf Der Variablen Auf Dem Lokaldatenstack

    Einbindung von ST in SIMOTION 7.2 Variablen in SIMOTION Tabelle 7-11 Beispiel für Speicherbereiche der Variablentypen - Teil 3 // Fortsetzung //---------------------------------------------------------------------- FUNCTION FC1 : INT // Die Daten der Funktion liegen auf dem // Stack der aufrufenden Task; sie werden bei jedem Aufruf // der Funktion initialisiert.
  • Seite 312: Zeitpunkt Der Variableninitialisierung

    1. Speichern Sie mit der Funktion Unit-Variablen oder geräteglobalen Variablen als Datensatz. 2. Wenden Sie in SIMOTION SCOUT die Funktion Variablen sichern an. Mit der Umkehrfunktion Variablen wiederherstellen können Sie diese Datensätze und Variablen wieder in das SIMOTION-Gerät laden (Download).
  • Seite 313: Initialisierung Remanenter Globaler Variablen

    Einbindung von ST in SIMOTION 7.2 Variablen in SIMOTION 7.2.4.1 Initialisierung remanenter globaler Variablen Remanente Variablen behalten bei Spannungsausfall ihren letzten Wert. Alle anderen Daten werden beim Wiedereinschalten neu initialisiert. Remanente globale Variablen werden initialisiert: ● Bei Ausfall der Stützung bzw. Pufferung der remanenten Daten. ●...
  • Seite 314 Einbindung von ST in SIMOTION 7.2 Variablen in SIMOTION Verhalten beim Download Tabelle 7-12 Initialisierung remanenter globaler Variablen beim Download Variablentyp Zeitpunkt der Variableninitialisierung Initialisierung der remanenten Pro‐ Remanente geräteglo‐ Das Verhalten beim Download ist abhängig von der Einstellung grammdaten und der remanenten geräteglobalen Variablen bale Variablen ●...
  • Seite 315: Verhalten Beim Hochrüsten Oder Konfigurationswechsel

    Einbindung von ST in SIMOTION 7.2 Variablen in SIMOTION Verhalten beim Hochrüsten oder Konfigurationswechsel Beim Hochrüsten des SIMOTION-Geräts auf eine neue Version SIMOTION Kernels oder beim Konfigurationswechsel werden die remanenten Variablen Variablen wie folgt initialisiert: Tabelle 7-13 Initialisierung remanenter globaler Variablen beim Hochrüsten oder Konfigurationswechsel Variablentyp Zeitpunkt der Variableninitialisierung Remanente geräteglo‐...
  • Seite 316: Verhalten Beim Stop-Run-Übergang

    Einbindung von ST in SIMOTION 7.2 Variablen in SIMOTION Verhalten beim Download Tabelle 7-14 Initialisierung nicht remanenter globaler Variablen beim Download Variablentyp Zeitpunkt der Variableninitialisierung Initialisierung der nicht remanenten Nicht remanente gerä‐ Das Verhalten beim Download ist abhängig von der Einstellung Programmdaten und der nicht remanenten geräteglobalen Variablen teglobale Variablen ●...
  • Seite 317: Initialisierung Lokaler Variablen

    Einbindung von ST in SIMOTION 7.2 Variablen in SIMOTION Sie können jedoch einstellen, dass die nicht remanenten globalen Variablen beim STOP-RUN- Übergang initialisiert werden: ● Ab Version V4.2 des SIMOTION Kernels durch Einstellung am SIMOTION Gerät (Seite 396), Checkbox Initialisierung der nicht remanenten globalen Variablen und Programmdaten beim STOP-RUN-Übergang.
  • Seite 318: Initialisierung Statischer Variablen Von Programmen

    Einbindung von ST in SIMOTION 7.2 Variablen in SIMOTION Tabelle 7-15 Initialisierung lokaler Variablen Variablentyp Zeitpunkt der Variableninitialisierung Lokale Variablen von Lokale Variablen von Programmen werden unterschiedlich initialisiert: Programmen ● Statische Variablen (VAR) werden gemäß dem Speicherbereich initialisiert, in dem sie abgelegt werden.
  • Seite 319 Einbindung von ST in SIMOTION 7.2 Variablen in SIMOTION Das Initialisierungsverhalten wird bestimmt vom Speicherbereich, in der die statischen Variablen abgelegt werden. Dies wird über die Compileroption (Seite 62) "Programminstanzdaten nur einmal anlegen" bestimmt. ● Bei nicht aktivierter Compileroption "Programminstanzdaten nur einmal anlegen" (Standard): Die statischen Variablen werden im Anwenderspeicher jeder Task abgelegt, der das Programm zugeordnet ist.
  • Seite 320: Initialisierung Remanenter Lokaler Variablen Von Programmen

    Einbindung von ST in SIMOTION 7.2 Variablen in SIMOTION 7.2.4.5 Initialisierung remanenter lokaler Variablen von Programmen Die folgenden Ausführungen betreffen folgende remanente Variablen: ● mit VAR RETAIN deklarierte lokale Variablen der Programme einer Unit, ● mit VAR RETAIN innerhalb der Programme einer Unit deklarierte Instanzen von Funktionsbausteinen oder Klassen einschließlich der zugehörigen statischen Variablen (VAR, VAR_INPUT, VAR_OUTPUT).
  • Seite 321: Initialisierung Remanenter Lokaler Variablen Von Funktionsbausteinen (Fb) Und Klassen

    Einbindung von ST in SIMOTION 7.2 Variablen in SIMOTION ● Lokale Deklaration in einem Funktionsbaustein (innerhalb VAR / END_VAR): Initialisierung wie eine Instanz dieses Funktionsbausteins. ● Deklaration als Durchgangsparameter in einem Funktionsbaustein oder einer Funktion (innerhalb VAR_IN_OUT / END_VAR): Bei der Initialisierung der POE wird nur die Referenz (Zeiger) initialisiert, die Instanz des Funktionsbausteins bleibt unverändert.
  • Seite 322: Initialisierung Von Systemvariablen Der Technologieobjekte

    Wenn an einem nicht zu initialisierenden Technologieobjekt ein Alarm ansteht, der nur mit Power On quittiert werden kann, wird der Download abgebrochen. Remanente Systemva‐ Nur wenn ein Technologieobjekt in SIMOTION SCOUT verändert wurde, werden dessen remanen‐ riablen te Systemvariablen initialisiert.
  • Seite 323: Versionskennung Globaler Variablen Und Deren Initialisierung Beim Download

    Einbindung von ST in SIMOTION 7.2 Variablen in SIMOTION 7.2.4.9 Versionskennung globaler Variablen und deren Initialisierung beim Download Tabelle 7-17 Versionskennung globaler Variablen und deren Initialisierung beim Download Datensegment Beschreibung der Versionskennung Geräteglobale Variablen Remanente geräteglo‐ ● Eigene Versionskennung für jedes Datensegment der geräteglobalen Variablen. bale Variablen ●...
  • Seite 324: Variablen Und Hmi-Geräte

    Einbindung von ST in SIMOTION 7.2 Variablen in SIMOTION Datensegment Beschreibung der Versionskennung Nicht remanente Unit- Nur ab Version V4.5 des SIMOTION Kernels. Variablen im Interface‐ ● Die remanenten Variablen aller Instanzen innerhalb eines Deklarationsblocks abschnitt (VAR_GLOBAL / END_VAR) werden zu einem eigenen remanenten Datenblock Nicht remanente Unit- zusammengefasst.
  • Seite 325 Einbindung von ST in SIMOTION 7.2 Variablen in SIMOTION ● I/O-Variablen ● Geräteglobale Variablen ● Remanente und nicht remanente Unit-Variablen des Interfaceabschnitts (Voreinstellung). Diese Voreinstellung ändern Sie folgendermaßen: – In der Programmiersprache SIMOTION ST: Für jeden Deklarationsblock mit nachstehendem Pragma: { HMI_Export := FALSE;...
  • Seite 326: Die Wirkung Des Pragmas { Hmi_Export := False

    Einbindung von ST in SIMOTION 7.2 Variablen in SIMOTION Hinweis Die Gesamtgröße der Unit-Variablen, die an HMI-Geräte exportiert werden kann, ist auf 64 kByte pro Unit beschränkt. Die Wirkung des Pragmas { HMI_Export := FALSE; } / VAR_GLOBAL für HMI‑Geräte oder { HMI_Export := TRUE;...
  • Seite 327: Nicht Exportierte Variablen

    Einbindung von ST in SIMOTION 7.2 Variablen in SIMOTION Nicht exportierte Variablen Folgende Variablen werden nicht an HMI-Geräte exportiert und stehen dort nicht zur Verfügung: ● Remanente und nicht remanente Unit-Variablen des Implementationsabschnitts (Voreinstellung) Diese Voreinstellung ändern Sie folgendermaßen: – In der Programmiersprache SIMOTION ST: Für jeden Deklarationsblock mit nachstehendem Pragma: { HMI_Export := TRUE;...
  • Seite 328 Einbindung von ST in SIMOTION 7.2 Variablen in SIMOTION ● Nicht remanente statische Variablen (VAR) von Programmen, sofern die Compileroption (Seite 62) "Programminstanzdaten nur einmal anlegen" nicht aktiviert ist ● Nicht remanente geschützte oder private Variablen (VAR, VAR PROTECTED, VAR PRIVATE) von Klassen (Voreinstellung, ab Version V4.5 des SIMOTION Kernels) Diese Voreinstellung ändern Sie folgendermaßen: –...
  • Seite 329: Zugriff Auf Ein- Und Ausgänge (Prozessabbild, I/O-Variablen)

    Einbindung von ST in SIMOTION 7.3 Zugriff auf Ein- und Ausgänge (Prozessabbild, I/O-Variablen) Zugriff auf Ein- und Ausgänge (Prozessabbild, I/O-Variablen) 7.3.1 Überblick Zugriff auf Ein- und Ausgänge SIMOTION bietet mehrere Möglichkeiten, auf die Ein- und Ausgänge des SIMOTION Geräts sowie auf die zentrale und dezentrale Peripherie zuzugreifen: ●...
  • Seite 330: Wichtige Eigenschaften Von Direktzugriff Und Prozessabbild

    Einbindung von ST in SIMOTION 7.3 Zugriff auf Ein- und Ausgänge (Prozessabbild, I/O-Variablen) 7.3.2 Wichtige Eigenschaften von Direktzugriff und Prozessabbild Tabelle 7-19 Wichtige Eigenschaften von Direktzugriff und Prozessabbild Direktzugriff Zugriff auf Prozessabbild der Zugriff auf festes Prozessab‐ zyklischen Tasks bild der BackgroundTask Zulässiger Adressbe‐...
  • Seite 331 Einbindung von ST in SIMOTION 7.3 Zugriff auf Ein- und Ausgänge (Prozessabbild, I/O-Variablen) Direktzugriff Zugriff auf Prozessabbild der Zugriff auf festes Prozessab‐ zyklischen Tasks bild der BackgroundTask Aktualisierung Die Aktualisierung erfolgt mit Die Aktualisierung erfolgt mit ● Bei der Onboard-Peripherie BackgroundTask : der zugeordneten Task: der SIMOTION-Geräte...
  • Seite 332 Einbindung von ST in SIMOTION 7.3 Zugriff auf Ein- und Ausgänge (Prozessabbild, I/O-Variablen) Direktzugriff Zugriff auf Prozessabbild der Zugriff auf festes Prozessab‐ zyklischen Tasks bild der BackgroundTask Download neuer oder Nur im Betriebszustand STOP möglich. geänderter I/O‑Variab‐ Verwenden der absolu‐ Nicht möglich.
  • Seite 333: Direktzugriff Und Prozessabbild Der Zyklischen Tasks

    Einbindung von ST in SIMOTION 7.3 Zugriff auf Ein- und Ausgänge (Prozessabbild, I/O-Variablen) Direktzugriff Zugriff auf Prozessabbild der Zugriff auf festes Prozessab‐ zyklischen Tasks bild der BackgroundTask Eingeschränkt möglich: Eingeschränkt möglich: Eingeschränkt möglich: ● Während der StartupTask ● Eingänge können gelesen ●...
  • Seite 334: Direktzugriff

    Einbindung von ST in SIMOTION 7.3 Zugriff auf Ein- und Ausgänge (Prozessabbild, I/O-Variablen) Direktzugriff Mit dem Direktzugriff greifen Sie direkt auf die entsprechende I/O‑Adresse zu. Den Direktzugriff verwenden Sie bevorzugt bei sequenzieller Programmierung (in MotionTasks). Hier ist der Zugriff auf den aktuellen Wert der Ein- und Ausgänge zu einem bestimmten Zeitpunkt besonders wichtig.
  • Seite 335: Speicherbereich Mit Dem Festen Prozessabbild Der Backgroundtask

    Einbindung von ST in SIMOTION 7.3 Zugriff auf Ein- und Ausgänge (Prozessabbild, I/O-Variablen) Speicherbereich mit dem festen Prozessabbild der BackgroundTask ● Ab Version V4.2 des SIMOTION Kernels kann durch eine Einstellung am Gerät (Seite 396) "Gemeinsames Prozessabbild" gewählt werden, dass der Speicherbereich für das feste Prozessabbild der BackgroundTask eine Untermenge des Speicherbereichs für das Prozessabbilds der zyklischen Tasks ist.
  • Seite 336: Adressbereich Der Simotion Geräte

    Einbindung von ST in SIMOTION 7.3 Zugriff auf Ein- und Ausgänge (Prozessabbild, I/O-Variablen) 7.3.3.1 Adressbereich der SIMOTION Geräte Nachfolgend ist der Adressbereich der SIMOTION-Geräte in Abhängigkeit von der Version des SIMOTION Kernels angegeben. Bei Direktzugriff und Prozessabbild der zyklischen Tasks ist der gesamte Adressbereich nutzbar.
  • Seite 337: Regeln Für I/O-Adressen Für Direktzugriff Und Das Prozessabbild Der Zyklischen Tasks

    Einbindung von ST in SIMOTION 7.3 Zugriff auf Ein- und Ausgänge (Prozessabbild, I/O-Variablen) 7.3.3.2 Regeln für I/O-Adressen für Direktzugriff und das Prozessabbild der zyklischen Tasks Hinweis Bei den Adressen für I/O‑Variablen für Direktzugriff und das Prozessabbild der zyklischen Task (Seite 333) müssen Sie folgende Regeln beachten. Die Einhaltung der Regeln wird bei der Konsistenzprüfung des SIMOTION Projekts (z.
  • Seite 338 1. Wählen Sie in der Detailanzeige das Register "Adressliste" und wählen Sie das SIMOTION Gerät aus. oder Doppelklicken Sie im Projektnavigator des SIMOTION SCOUT auf das Element "ADRESSLISTE" im Teilbaum des SIMOTION Geräts. 2. Markieren Sie die Zeile, vor der Sie die I/O-Variable einfügen wollen, und wählen Sie im Kontextmenü...
  • Seite 339 Einbindung von ST in SIMOTION 7.3 Zugriff auf Ein- und Ausgänge (Prozessabbild, I/O-Variablen) 4. Optional können Sie noch eingeben oder wählen (nicht bei Datentyp BOOL): – Feldlänge (Größe des Arrays) – Prozessabbild oder Direktzugriff: Die Zuordnung ist nur möglich, wenn die Checkbox Nur lesen deaktiviert ist. Für Prozessabbild wählen Sie die zyklische Task, der Sie die I/O-Variable zuordnen wollen.
  • Seite 340: Syntax Für Eingabe Der I/O-Adressen

    Einbindung von ST in SIMOTION 7.3 Zugriff auf Ein- und Ausgänge (Prozessabbild, I/O-Variablen) Hinweis I/O-Variablen können Sie nur im Offline-Modus anlegen. Sie legen sie im SIMOTION SCOUT an und verwenden sie in Ihren Programmquellen (z. B. ST-Quellen, MCC‑Quellen, KOP/ FUP‑Quellen).
  • Seite 341: Mögliche Datentypen Der I/O-Variablen

    Einbindung von ST in SIMOTION 7.3 Zugriff auf Ein- und Ausgänge (Prozessabbild, I/O-Variablen) Ausgang an logischer Adresse 63, Bit 3, Datentyp BOOL: PQ63.3. Hinweis Beachten Sie die Regeln für I/O-Adressen für Direktzugriff und das Prozessabbild der zyklischen Tasks (Seite 337). 7.3.3.5 Mögliche Datentypen der I/O-Variablen Den I/O-Variablen für Direktzugriff und Prozessabbild der zyklischen Tasks (Seite 333) können...
  • Seite 342 Einbindung von ST in SIMOTION 7.3 Zugriff auf Ein- und Ausgänge (Prozessabbild, I/O-Variablen) Wert (DWORD) Bit x = 1 Bedeutung 16#0000_0004 Anstehende Warnung (Antriebswarnung, TM17-Warnung, …) Die angeschlossene Baugruppe hat eine Warnung gemeldet. Dies wurde im Diagnosepuffer eingetragen. Die genaue Ursache ist der Dokumentation der betreffenden Baugruppe zu entnehmen.
  • Seite 343: Zugriffe Auf Festes Prozessabbild Der Backgroundtask

    Einbindung von ST in SIMOTION 7.3 Zugriff auf Ein- und Ausgänge (Prozessabbild, I/O-Variablen) Wert (DWORD) Bit x = 1 Bedeutung 16#0000_1000 PROFINET: Ausfall durch Modul erkannt (z. B. Submodul ausgefallen, gezogen, …) Die Verbindung zu dem angeschlossenen Gerät ist in Ordnung. Der Fehler ist in dem ange‐ schlossenen Gerät zu suchen.
  • Seite 344: Speicherbereich

    Einbindung von ST in SIMOTION 7.3 Zugriff auf Ein- und Ausgänge (Prozessabbild, I/O-Variablen) Die Größe des festen Prozessabbilds der BackgroundTask beträgt für alle SIMOTION-Geräte 64 Byte (Adressbereich 0 .. 63). Hinweis Mit dem festen Prozessabbild der BackgroundTask kann auf Adressen zugegriffen werden, die in der Peripherie nicht vorhanden oder in HW‑Konfig nicht projektiert sind.
  • Seite 345: Gemeinsames Prozessabbild (Ab Kernel V4.2)

    Einbindung von ST in SIMOTION 7.3 Zugriff auf Ein- und Ausgänge (Prozessabbild, I/O-Variablen) Gemeinsames Prozessabbild Separates Prozessabbild Zugriff auf Peripherie, die in der Byte- Gleiches Ergebnis wie beim Direktzu‐ Abhängig von angelegten I/O‑Variablen Anordnung Little Endian arbeit griff oder beim Prozessabbild der zykli‐ für Direktzugriff sind die Ergebnisse un‐...
  • Seite 346: Eigenschaft Des Gemeinsamen Prozessabbilds

    Einbindung von ST in SIMOTION 7.3 Zugriff auf Ein- und Ausgänge (Prozessabbild, I/O-Variablen) Eigenschaft des gemeinsamen Prozessabbilds 1. Der Speicherbereich für das feste Prozessabbild der BackgroundTask (Seite 343) ist eine Untermenge des Speicherbereichs für das Prozessabbild der zyklischen Tasks (Seite 333). 2.
  • Seite 347 Einbindung von ST in SIMOTION 7.3 Zugriff auf Ein- und Ausgänge (Prozessabbild, I/O-Variablen) Es werden folgende drei Fälle betrachtet, die die unterscheiden, ob und welche I/O‑Variablen für Direktzugriff oder das Prozessabbild der zyklischen Tasks angelegt sind: 1. Fall A: Für die Adressen 60 und 61 sind keine I/O‑Variablen angelegt 2.
  • Seite 348: Eigenschaft Des Separaten Prozessabbilds

    Einbindung von ST in SIMOTION 7.3 Zugriff auf Ein- und Ausgänge (Prozessabbild, I/O-Variablen) Zugriff mit Fall A Fall B Fall C Zugriff auf das feste %IB60 16#08 16#08 16#08 Prozessabbild der %IB61 16#00 16#00 16#00 BackgroundTask %IW60 16#0800 16#0800 16#0800 %I60.3 TRUE TRUE...
  • Seite 349 Einbindung von ST in SIMOTION 7.3 Zugriff auf Ein- und Ausgänge (Prozessabbild, I/O-Variablen) 4. Auf das feste Prozessabbild der BackgroundTask wird immer mit der Byte-Anordnung Big Endian zugegriffen. 5. Diese beiden letzten Eigenschaften (Nr. 3 und 4) wirken sich aus beim Zugriff auf Ein- und Ausgänge, die mit der Byte-Anordnung Little Endian arbeiten (z.
  • Seite 350: Absoluter Zugriff Auf Das Feste Prozessabbild Der Backgroundtask (Absoluter Pa-Zugriff)

    Einbindung von ST in SIMOTION 7.3 Zugriff auf Ein- und Ausgänge (Prozessabbild, I/O-Variablen) In der folgenden Tabelle ist aufgelistet, welche Werte sich bei den nachfolgenden Zugriffen ergeben: ● Direktzugriffe: – Zugriff auf die einzelnen Bytes oder das Wort mit der jeweiligen I/O‑Variablen. –...
  • Seite 351: Syntax Für Den Bezeichner Für Einen Absoluten Pa-Zugriff

    Einbindung von ST in SIMOTION 7.3 Zugriff auf Ein- und Ausgänge (Prozessabbild, I/O-Variablen) Sie können den Bezeichner für den absoluten PA‑Zugriff wie eine normale Variable verwenden (Seite 353). Hinweis Ausgänge können Sie lesen und beschreiben, Eingänge nur lesen. 7.3.4.4 Syntax für den Bezeichner für einen absoluten PA-Zugriff Für den absoluten Zugriff auf das feste Prozessabbild der BackgroundTask (Seite 350) verwenden Sie nachstehende Syntax.
  • Seite 352: Symbolischer Zugriff Auf Das Feste Prozessabbild Der Backgroundtask (Symbolischer Pa-Zugriff)

    Einbindung von ST in SIMOTION 7.3 Zugriff auf Ein- und Ausgänge (Prozessabbild, I/O-Variablen) Ausgang an logischer Adresse 63, Bit 3, Datentyp BOOL: %Q63.3. Hinweis Bis Version V4.1 des SIMOTION Kernels bzw. bei der Einstellung am Gerät "Separates Prozessabbild" (Seite 348) (ab Version V4.2 des SIMOTION Kernels) gilt: ●...
  • Seite 353: Mögliche Datentypen Des Symbolischen Pa-Zugriffs

    Einbindung von ST in SIMOTION 7.3 Zugriff auf Ein- und Ausgänge (Prozessabbild, I/O-Variablen) Bild 7-7 Deklaration eines symbolischen Zugriffs auf das Prozessabbild Zum absoluten PA‑Zugriff siehe "Syntax für den Bezeichner für einen absoluten PA‑Zugriff (Seite 351)". Die Breite des deklarierten Ganzzahlen oder Bitdatentyps muss der Breite des absoluten PA‑Zugriffs entsprechen, siehe "Mögliche Datentypen des symbolischen PA-Zugriffs (Seite 355)".
  • Seite 354: Beispiel Für Symbolischen Pa-Zugriff

    1. Wählen Sie in der Detailanzeige das Register "Adressliste" und wählen Sie das SIMOTION Gerät aus. oder Doppelklicken Sie im Projektnavigator des SIMOTION SCOUT auf das Element "ADRESSLISTE" im Teilbaum des SIMOTION Geräts. 2. Markieren Sie die Zeile, vor der Sie die I/O-Variable einfügen wollen, und wählen Sie im Kontextmenü...
  • Seite 355: Auf I/O-Variablen Zugreifen

    Sie können nun mit der Adressliste oder jedem Programm des SIMOTION Geräts auf diese Variable zugreifen. Hinweis I/O-Variablen können Sie nur im Offline-Modus anlegen. Sie legen sie im SIMOTION SCOUT an und verwenden sie in Ihren Programmquellen. Beachten Sie, dass Sie Ausgänge lesen und beschreiben, Eingänge jedoch nur lesen dürfen.
  • Seite 356: Bibliotheken Verwenden

    Einbindung von ST in SIMOTION 7.4 Bibliotheken verwenden Bibliotheken verwenden Bibliotheken stellen Ihnen anwenderdefinierte Datentypen, Funktionen und Funktionsbausteine zur Verfügung, die Sie von allen SIMOTION Geräten aus nutzen können. Bibliotheken können in allen Programmiersprachen geschrieben werden; sie können in allen Programmquellen (z.
  • Seite 357: Bibliothek Übersetzen

    Einbindung von ST in SIMOTION 7.4 Bibliotheken verwenden 7.4.1 Bibliothek übersetzen In Bibliotheken können alle ST-Befehle, mit Ausnahme der in der Tabelle angegebenen, verwendet werden. Darüber hinaus sind auch einige Variablenzugriffe nicht erlaubt, auch diese sind in der Tabelle vermerkt. Tabelle 7-31 In Bibliotheken nicht erlaubte ST-Befehle und Variablenzugriffe Nicht erlaubte Befehle: _getTaskId (siehe Funktionshandbuch SIMOTION Basisfunktionen )
  • Seite 358: Übersetzen Einer Bibliothek Im Rahmen Einer Projektweiten Übersetzung

    Einbindung von ST in SIMOTION 7.4 Bibliotheken verwenden 4. Wählen Sie die SIMOTION Geräte (mit Version des SIMOTION Kernels) und die Technologiepakete aus, bezüglich derer die Bibliothek übersetzt werden soll, siehe SIMOTION Basisfunktionen . Funktionshandbuch 5. Wählen Sie das Kontextmenü Übernehmen und Übersetzen. Die Bibliothek wird bezüglich aller ausgewählten SIMOTION Geräte, Versionen des SIMOTION Kernels und Technologiepakete (bzw.
  • Seite 359: Datentypen, Funktionen Und Funktionsbausteine Aus Bibliotheken Verwenden

    Einbindung von ST in SIMOTION 7.4 Bibliotheken verwenden Sie können: ● Die einzelnen Quellen einer Bibliothek mit Know‑how-Schutz versehen: Es sind nur die Quellen vor unbefugtem Zugriff geschützt. Die Einstellung der SIMOTION Geräte einschließlich der Versionen des SIMOTION Kernels und der Technologiepakete, für welche die Bibliothek übersetzt werden soll, kann weiterhin vom Anwender geändert und angepasst werden.
  • Seite 360: Verwendung Von Gleichen Bezeichnern, Namensräume

    Einbindung von ST in SIMOTION 7.5 Verwendung von gleichen Bezeichnern, Namensräume AS namespace können Sie einen Namensraum (Seite 367) Mit dem optionalen Zusatz definieren. ● Sie können dann auch auf Datentypen, Funktionen und Funktionsbausteine der Bibliothek zugreifen, die namensgleich mit einer solchen ST-Quelle des SIMOTION Geräts (im Ordner PROGRAMME) sind.
  • Seite 361: Bezeichner In Einer Programmorganisationseinheit (Poe)

    Einbindung von ST in SIMOTION 7.5 Verwendung von gleichen Bezeichnern, Namensräume Unit oder POE ein übergeordneter Bezeichner verdeckt wird, gibt der Compiler eine Warnung aus. Hinweis Der Compiler kann unter bestimmten Umständen keine Warnung absetzen, wenn z. B. das zugehörige Technologiepaket nicht importiert ist. Bezeichner in einer Programmorganisationseinheit (POE) Alle folgenden Bezeichner in einer POE müssen eindeutig sein: ●...
  • Seite 362: 7.5 Verwendung Von Gleichen Bezeichnern, Namensräume

    Einbindung von ST in SIMOTION 7.5 Verwendung von gleichen Bezeichnern, Namensräume Sie dürfen auch nicht mit nachstehenden Bezeichnern identisch sein: ● Reservierte Bezeichner. ● Unit-Variablen, Datentypen und POE importierter Units. ● Standardsystemfunktionen, Standardsystemfunktionsbausteine und zugehörige Datentypen. ● Systemfunktionen und Systemdatentypen des SIMOTION Geräts. ●...
  • Seite 363: Verwendung Von Gleichen Bezeichnern

    Einbindung von ST in SIMOTION 7.5 Verwendung von gleichen Bezeichnern, Namensräume Beispiel Das nachstehende Beispiel veranschaulicht diesen Sachverhalt. Es zeigt, dass bei gleicher Bezeichnung von Unit-Variablen (großer Gültigkeitsbereich) und FC-Variablen (kleiner Gültigkeitsbereich) die in der Funktion deklarierten Variablen nur in diesem Quelldatei- Abschnitt gültig sind.
  • Seite 364: Namensräume Für Bibliotheken Und Technologiepakete

    Einbindung von ST in SIMOTION 7.5 Verwendung von gleichen Bezeichnern, Namensräume (Seite 360). Um dennoch diese Bezeichner zu erreichen, können Sie in bestimmten Fällen Namensräume verwenden. 7.5.2.1 Namensräume für Bibliotheken und Technologiepakete Sie können in der Importanweisung für Bibliotheken und Technologiepakete Namensräume definieren, um Datentypen, Funktionen oder Funktionsbausteine dieser Bibliotheken und Technologiepaketen erreichen zu können.
  • Seite 365: Vordefinierte Namensräume

    Einbindung von ST in SIMOTION 7.5 Verwendung von gleichen Bezeichnern, Namensräume Hinweis Falls ein Namensraum für eine importierte Bibliothek oder Technologiepaket definiert ist, muss dieser immer angegeben werden, wenn eine Funktion, Funktionsbaustein oder Datentyp aus dieser Bibliothek oder diesem Technologiepaket verwendet wird. Siehe in obigem Beispiel: Cam1._enableAxis, Cam1.WHEN_COMMAND_DONE.
  • Seite 366 Einbindung von ST in SIMOTION 7.5 Verwendung von gleichen Bezeichnern, Namensräume Bild 7-8 Namensräume und Hierarchie der Bezeichner SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 367: Objektorientierter Namensraum

    Einbindung von ST in SIMOTION 7.5 Verwendung von gleichen Bezeichnern, Namensräume 7.5.2.3 Objektorientierter Namensraum Deklaration objektorientierter Namensräume Objektorientierte Namensräume deklarieren Sie im Interface- oder Implementationsabschnitt einer ST‑Quelle bzw. innerhalb eines anderen objektorientierten Namensraums. Dabei verwenden Sie folgende Syntax: Bild 7-9 Syntax: Objektorientierter Namensraum Geben Sie nach dem Schlüsselwort NAMESPACE und optional INTERNAL einen Bezeichner für den Namen des Namensraums ein.
  • Seite 368 Einbindung von ST in SIMOTION 7.5 Verwendung von gleichen Bezeichnern, Namensräume Danach folgen: ● die im Namensraum erlaubten Anweisungen, z. B.: – Deklarationen anwenderdefinierter Datentypen – Globale Variablendeklarationen – Objektorientierte Interfaces – Programmorganisationseinheiten wie Klassen, Funktionen, Funktionsbausteine, Programme bzw. deren Prototypen –...
  • Seite 369: Zugriff Auf Namensräume Und Deren Elemente

    Einbindung von ST in SIMOTION 7.5 Verwendung von gleichen Bezeichnern, Namensräume Die Definition eines Namespaces muss nicht geschlossen erfolgen. Wird ein bereits definierter Namensraum mit gleichem Namen gefunden, wird der Inhalt der Deklaration in diesen integriert. Dies gilt auch, wenn die Namensraumangabe an der USES-Anweisung erfolgt. Vordefinierte Namensräume (Seite 365) (z.
  • Seite 370 Einbindung von ST in SIMOTION 7.5 Verwendung von gleichen Bezeichnern, Namensräume namespace_1 . namespace_11 . element . Da es sich typischerweise um einen Außenzugriff handelt, kann auf Elemente, die als INTERNAL dekklariert sind, nicht zugegriffen werden. Tabelle 7-34 Beispiel: Zugriff auf Elemente einer als INTERNAL deklarierten Klasse NAMESPACE ns1 CLASS INTERNAL cl_int METHOD PUBLIC m_public...
  • Seite 371 Einbindung von ST in SIMOTION 7.5 Verwendung von gleichen Bezeichnern, Namensräume FUNCTION_BLOCK fb_test1 v_cl : ns1.ns_int.cl; // Instanz nicht anlegbar. // ns_int ist INTERNAL in ns1. END_VAR ns1.vg_cl.m_public(); // Zugriff auf Methode m_public möglich. ns1.vg_cl.m_internal(); // Zugriff auf Methode m_internal nicht möglich. END_FUNCTION_BLOCK USING-Direktive Die USING-Direltive hat folfgende Syntax:...
  • Seite 372 Einbindung von ST in SIMOTION 7.5 Verwendung von gleichen Bezeichnern, Namensräume Die USING-Direktive kann an folgenden Stellen ggf. mehrfach hintereinander angegeben werden: ● Im Interfaceabschnitt der Quelle: Unmittelbar nach den Anweisungen zum Import von Technologiepaketen, Bibliotheken und anderen Quellen (USEPACKAGE, USELIB, USES). Damit können beispielsweise in Namensräumen von Bibliotheken vereinbarte Elemente in den globalen Namensraum eingeblendet werden.
  • Seite 373: Referenzdaten

    Einbindung von ST in SIMOTION 7.6 Referenzdaten Hinweis Die USING Direktive kann nicht auf Namensräume angewendet werden, die Bestandteil des Namensraum-Pfads des aktuellen Quelldateiabschnitts sind. Tabelle 7-39 Beispiel: USING-Direktive auf übergeordneten Namensraum nicht möglich NAMESPACE ns1.ns11.ns111 CLASS cltest USING ns11; // Fehler: ns11 ist Bestandteil des eigenen Deklarationspfades // ...
  • Seite 374: Querverweisliste

    Einbindung von ST in SIMOTION 7.6 Referenzdaten 7.6.1 Querverweisliste In der Querverweisliste sehen Sie alle Bezeichner in Programmquellen (z. B. ST-Quellen, MCC-Quellen): ● die als Variablen, als Datentypen oder als Programmorganisationseinheiten (Programm, Funktion, Funktionsbaustein) deklariert sind, ● die als vorher definierte Datentypen in Deklarationen verwendet werden, ●...
  • Seite 375 Einbindung von ST in SIMOTION 7.6 Referenzdaten Die Handhabung der Querverweisliste ist im Abschnitt "Mit der Querverweisliste umgehen (Seite 379)" beschrieben. Tabelle 7-41 Bedeutung der Spalten und ausgewählter Einträge in der Querverweisliste Spalte Eintrag in Spalte Bedeutung Name Name des Bezeichners Typ des Bezeichners Name ●...
  • Seite 376 Einbindung von ST in SIMOTION 7.6 Referenzdaten Spalte Eintrag in Spalte Bedeutung Name / taskbind.hid Name Ablaufsystem des SIMOTION Geräts Bereich Bereich innerhalb des SIMOTION Geräts oder der Programmquelle INTERFACE Inferfaceabschnitt der Programmquelle POE-Typ Name (d. h. Name innerhalb der Programmquelle. Programmorganisationseinheit (POE) Name , CLASS...
  • Seite 377: Mit Der Querverweisliste Umgehen

    Einbindung von ST in SIMOTION 7.6 Referenzdaten 7.6.1.3 Mit der Querverweisliste umgehen Sie können in der Querverweisliste: ● Innerhalb der Spalten alphabetisch sortieren: – Klicken Sie hierzu in den Kopf der jeweiligen Spalte. ● Nach einem Bezeichner oder Eintrag suchen: –...
  • Seite 378: Programmstruktur

    Einbindung von ST in SIMOTION 7.6 Referenzdaten Die Querverweisliste wird gemäß den ausgewählten Filtereinstellungen angezeigt. Hinweis Nach Erzeugen der Querverweisliste ist ein Filter standardmäßig aktiviert. 7.6.2 Programmstruktur In der Programmstruktur sehen Sie alle Funktionsaufrufe und deren Schachtelung innerhalb eines ausgewählten Elements. Sie können die Programmstruktur selektiv anzeigen für: ●...
  • Seite 379: Codeattribute

    Einbindung von ST in SIMOTION 7.6 Referenzdaten Zur Struktur der Einträge siehe Tabelle: Tabelle 7-42 Elemente der Anzeige für die Programmstruktur Element Beschreibung Wurzel Durch Komma getrennte Liste (deklarierte POE ● Bezeichner der Programmorganisationseinheit (POE) bzw. der Task bzw. verwendete Name_1::Name_2 bedeutet: Methode Name_2 innerhalb der Die Angabe Task))
  • Seite 380: Inhalt Der Codeattribute

    Einbindung von ST in SIMOTION 7.6 Referenzdaten So gehen Sie vor: 1. Markieren Sie im Projektnavigator das entsprechende Element, dessen Codeattribute Sie anzeigen lassen wollen. 2. Wählen Sie Menü Bearbeiten > Referenzdaten anzeigen > Codeattribute. An Stelle des Registers Querverweise wird nun das Register Codeattribute in der Detailanzeige eingeblendet.
  • Seite 381: Präprozessor Und Compiler Durch Pragmas Steuern

    Einbindung von ST in SIMOTION 7.7 Präprozessor und Compiler durch Pragmas steuern Unter folgenden Voarussetzungen wird ein Bezeichner als Variable erkannt: 1. Der Bezeichner ist als Variable deklariert. Der Gültigkeitsbereich der Variablen schließt das jeweilige Fenster (ST‑Quelle, MCC‑Chart, KOP/FUP‑Programm) ein. 2.
  • Seite 382: Präprozessor Steuern

    Einbindung von ST in SIMOTION 7.7 Präprozessor und Compiler durch Pragmas steuern Pragmas sind in geschweiften Klammern { und } eingeschlossen und können enthalten (siehe Bild): ● Präprozessor-Anweisungen zum Steuern des Präprozessors, siehe Präprozessor steuern (Seite 384). Die in einer ST‑Quelle enthaltenen Pragmas mit Präprozessor-Anweisungen werden vom Präprozessor ausgewertet und als Steuerungsanweisungen interpretiert.
  • Seite 383: Präprozessor-Anweisung

    Einbindung von ST in SIMOTION 7.7 Präprozessor und Compiler durch Pragmas steuern Während des Übersetzens einer Programmquelle werden Sie über die Arbeit des Präprozessors informiert. Hierzu muss die Anzeige von Warnungen der Warnungsklasse 7 aktiviert sein, siehe Bedeutung der Warnungsklassen (Seite 73). Den Umfang der ausgegebenen Warnungen und Informationen legen Sie fest: ●...
  • Seite 384 Einbindung von ST in SIMOTION 7.7 Präprozessor und Compiler durch Pragmas steuern Bild 7-11 Syntax: Präprozessor-Anweisung Tabelle 7-43 Präprozessor-Anweisungen Anweisung Bedeutung #define Der angegebene Bezeichner wird im Folgenden durch den angegebenen Text ersetzt. Erlaubte Zeichen: Siehe Fußteil der Tabelle. #undef Die Ersetzungsvorschrift für den Bezeichner wird aufgehoben.
  • Seite 385 Einbindung von ST in SIMOTION 7.7 Präprozessor und Compiler durch Pragmas steuern Anweisung Bedeutung #endif Schließt Variantenbildung mit #ifdef oder #ifndef ab. Erlaubte Zeichen: ● Für Bezeichner: Entsprechend den Regeln für Bezeichner (Seite 99). ● Für Text: Folge beliebiger Zeichen außer \ (Backslash), ' (einfaches Hochkomma - single quote), "...
  • Seite 386: Beispiel Für Präprozessor-Anweisungen

    Einbindung von ST in SIMOTION 7.7 Präprozessor und Compiler durch Pragmas steuern 7.7.1.2 Beispiel für Präprozessor-Anweisungen Tabelle 7-44 Beispiel für Präprozessor-Anweisungen ST-Quelle Ausgabe des Präprozessors mit Präprozessoranweisungen INTERFACE INTERFACE FUNCTION_BLOCK fb1; FUNCTION_BLOCK fb1; VAR_GLOBAL VAR_GLOBAL g_var : INT; g_var : INT; END_VAR END_VAR // Präprozessor-Definitionen...
  • Seite 387: Compiler Mit Attributen Steuern

    Einbindung von ST in SIMOTION 7.7 Präprozessor und Compiler durch Pragmas steuern 7.7.2 Compiler mit Attributen steuern Mit Attributen innerhalb eines Pragmas können Sie den Compiler steuern. Bild 7-12 Syntax: Attribut für Compileroptionen Tabelle 7-45 Zulässige Attribute für Compileroptionen Attributbezeichnung Attributwert Bedeutung _U7_PoeBld_CompilerOption...
  • Seite 388 Einbindung von ST in SIMOTION 7.7 Präprozessor und Compiler durch Pragmas steuern Attributbezeichnung Attributwert Bedeutung HMI_Export Das Attribut ändert die Standardvorgabe, welche Variablen auf HMI-Geräten zur Ver‐ fügung stehen. Es muss direkt nach dem jeweiligen Schlüsselwort folgender Deklara‐ tionsblöcke stehen: ●...
  • Seite 389 Einbindung von ST in SIMOTION 7.7 Präprozessor und Compiler durch Pragmas steuern Attributbezeichnung Attributwert Bedeutung BlockInit_OnChange Das Attribut ändert die Standardvorgabe, ob ein Download im RUN bei einer Änderung der Versionskennung des jeweiligen Deklarationsblocks möglich ist. Es muss direkt nach dem jeweiligen Schlüsselwort folgender Deklarationsblöcke stehen: ●...
  • Seite 390 Einbindung von ST in SIMOTION 7.7 Präprozessor und Compiler durch Pragmas steuern Tabelle 7-46 Beispiel für Attribute für Compileroptionen INTERFACE VAR_GLOBAL { HMI_Export := FALSE; BlockInit_OnChange := TRUE; } // Kein HMI-Export, Download im RUN möglich x : DINT; END_VAR FUNCTION_BLOCK fb1;...
  • Seite 391: Freie Compilermeldung Ausgeben

    Einbindung von ST in SIMOTION 7.7 Präprozessor und Compiler durch Pragmas steuern 7.7.3 Freie Compilermeldung ausgeben Sie können innerhalb eines Pragmas (Seite 381) den Compiler veranlassen, freie Compilermeldungen in das Register "Ausgabe übersetzen / prüfen" der Detailanzeige zu schreiben. Bild 7-13 Syntax: Freie Compilermeldung Die Schlüsselwörter haben folgende Bedeutung: Schlüsselwort...
  • Seite 392: Simotion Geräte

    ● ? (Fragezeichen, ASCII-Code $3F), ● \ (Backslash, ASCII-Code $5C), ● | (Vertikale Linie, ASCII-Code $7C). Bezeichner für SIMOTION Geräte können nur in SIMOTION SCOUT bzw. HW Konfig festgelegt werden, in den Programmiersprachen können sie ausschließlich verwendet werden. Beispiele für gültige Gerätebezeichner ●...
  • Seite 393: Gerätebezeichner Für Profinet Io (Name Of Station)

    – Bezeichner der Form n.n.n.n (n = 0 … 999). Verwendung von Gerätebezeichnern in SIMOTION SCOUT Bezeichner für SIMOTION Geräte, die nicht den allgemeinen Regeln für Bezeichner genügen, müssen bei Verwendung in SIMOTION SCOUT (z. B in den Programmiersprachen) in doppelte Hochkommata (", ASCII-Code $22) eingeschlossen werden. Beispiel: ●...
  • Seite 394: Einstellungen Am Gerät Vornehmen (Ab Kernel V4.2)

    Einbindung von ST in SIMOTION 7.9 Vorwärtsdeklarationen 7.8.2 Einstellungen am Gerät vornehmen (ab Kernel V4.2) Ab Version V4.2 des SIMOTION Kernels können Sie unter Anderem folgende Einstellungen am SIMOTION Gerät vornehmen: ● Speicherbereich für das Prozessabbild der zyklischen Tasks und das feste Prozessabbild der BackgroundTaks: –...
  • Seite 395 Einbindung von ST in SIMOTION 7.9 Vorwärtsdeklarationen Vorwärtsdeklaration für Programmorganisationseinheiten (POE) Die Compileroption (Seite 62) Vorwärtsdeklarationen erlauben bewirkt Folgendes: ● Im Implementationsabschnitt einer ST‑Quelle dürfen Deklarationen (z. B. globale Variablendeklarationen) beliebig zwischen Programmorganisationseinheiten (POE) erfolgen. ● Folgende Anweisungen innerhalb des Konstrukts TYPE / END_TYPE im Interfaceabschnitt (Seite 266) oder Implementationsabschnitt (Seite 268) einer ST‑Quelle werden als Prototypen der der jeweiligen POE interpretiert: fb-name ;...
  • Seite 396 Einbindung von ST in SIMOTION 7.9 Vorwärtsdeklarationen ● Nach Deklaration des entsprechenden POE-Prototyps für eine Klasse oder einen Funktionsbaustein sind folgende Deklarationen möglich, bevor die entsprechende POE definiert ist: – Instanzdeklaration des Funktionsbausteins (Seite 205) als globale Variable oder als lokale Variable in einem Programm, einem anderen Funktionsbaustein oder in einer Klasse –...
  • Seite 397 Einbindung von ST in SIMOTION 7.9 Vorwärtsdeklarationen POE-Prototypen Bild 7-14 Syntax: POE-Prototypen Hinweis Wenn die POE-Prototypen innerhalb des Interfaceabschnitts deklariert sind, werden die entsprechenden POE veröffentlicht. Veröffentlichungsanweisungen für POE innerhalb des Interfaceabschnitts (z. B. fb‑name ;) werden ebenfalls als Prototypen interpretiert. FUNCTION_BLOCK Bei nicht aktivierter Compileroption (Seite 62) "Vorwärtsdeklarationen erlauben"...
  • Seite 398: 7.9 Vorwärtsdeklarationen

    Einbindung von ST in SIMOTION 7.9 Vorwärtsdeklarationen Beispiel Tabelle 7-47 Beispielprogramm mit Vorwärtsdeklaration Nur mit aktivierter Compileroption "Vorwärtsdeklaration erlauben". Wegen Aufruf eines Programms im Programm ist auch die Aktivierung folgender Compileroptionen nötig: "Spracherweiterungen zulassen" und "Programminstanzdaten nur einmal anlegen". INTERFACE PROGRAM prog_main;...
  • Seite 399: Sprunganweisung Und -Markierung

    Einbindung von ST in SIMOTION 7.10 Sprunganweisung und -markierung FUNCTION fc_1: DINT VAR_INPUT x_in : DINT; END_VAR fc_1 := x_in; END_FUNCTION PROGRAM prog_1 var_int1, var_int2 : INT; END_VAR var_int1 := var_int2; END_PROGRAM END_IMPLEMENTATION 7.10 Sprunganweisung und -markierung Als zusätzliche Kontrollanweisung (Seite 166) steht eine Sprunganweisung zur Verfügung. Eine Sprunganweisung (Seite 179) programmieren Sie mit dem Befehl GOTO unter Angabe der Sprungmarke, zu der Sie springen wollen.
  • Seite 400 Einbindung von ST in SIMOTION 7.10 Sprunganweisung und -markierung Hinweis Die GOTO-Anweisung sollte nur in Sonderfällen (z. B. Fehlerbearbeitung) verwendet werden. Nach den Regeln der strukturierten Programmierung sollte sie nicht verwendet werden. Sprünge sind nur innerhalb einer POE zulässig. Folgende Sprünge sind nicht zulässig: ●...
  • Seite 401: Fehlerquellen Und Programmtest

    Fehlerquellen und Programmtest Dieses Kapitel beschreibt mögliche Fehlerquellen beim Programmieren und zeigt Ihnen, wie Sie effizient programmieren können. Sie erfahren auch, welche Möglichkeiten Sie für den Programmtest haben. Alle möglichen Fehlermeldungen bei der Übersetzung, d. h. Compilerfehler siehe Fehlermeldungen des Compilers und deren Behebung (Seite 515). Zu jedem Fehler erhalten Sie Möglichkeiten der Behebung bzw.
  • Seite 402: Betriebsmodi Für Programmtest

    Fehlerquellen und Programmtest 8.2 Programmtest 8.2.1 Betriebsmodi für Programmtest 8.2.1.1 Betriebsmodi der SIMOTION-Geräte Für den Programmtest stehen verschiedene Betriebsmodi der SIMOTION-Geräte zur Verfügung. Tabelle 8-1 Betriebsmodi eines SIMOTION Geräts Betriebsmodus Bedeutung Prozessbetrieb Der Programmablauf im SIMOTION-Gerät ist optimiert für maximale System-Performance. Folgende Diagnosefunktionen stehen zur Verfügung, sie sind aber teilweise wegen der Optimie‐...
  • Seite 403: Betriebsmodus Wählen

    Besonderheiten beim Debug-Modus Nur für ein SIMOTION-Gerät kann der Debug-Modus ausgewählt werden. Wenn Sie den Debug-Modus ausgewählt haben, wechselt nur SIMOTION SCOUT in den Debug-Modus, das SIMOTION-Gerät befindet sich im Testbetrieb. ● Der aktivierte Debug-Modus des SIMOTION SCOUT wird im Projektnavigator durch ein Symbol vor dem SIMOTION-Gerät angezeigt.
  • Seite 404: Wichtige Hinweise Zur Lebenszeichenüberwachung

    Deshalb ist auf eine hardwaremäßige Ausführung des NOT-AUS-Kreises zu achten. Hierzu sind vom Anwender die erforderlichen Maßnahmen zu treffen. In folgenden Fällen tauschen das SIMOTION-Gerät und SIMOTION SCOUT regelmäßig Lebenszeichen aus, um eine ordnungsgemäße Verbindung sicherzustellen: ● Im Debug-Modus bei aktivierten Haltepunkten.
  • Seite 405: Lebenszeichenüberwachung Parametrieren

    Die Lebenszeichenüberwachung spricht unter anderem in folgenden Fällen an: ● Drücken der Leertaste. ● Wechsel in eine andere Windows-Anwendung. ● Zu hohe Kommunikationslast zwischen SIMOTION-Gerät und SIMOTION SCOUT (z. B. durch Hochladen von Tasktrace-Daten). Es werden folgende Reaktionen ausgelöst: ● Im Debug-Modus bei aktivierten Haltepunkten: –...
  • Seite 406: Parameter Lebenszeichenüberwachung

    Editieren der Programmquellen im Online-Modus Online-Editieren im Prozess- oder Testbetrieb Wenn SIMOTION SCOUT mit dem Zielsystem verbunden ist, das sich im Betriebsmodus "Prozessbetrieb" bzw. "Testbetrieb" befindet, können Programmquellen (z. B. ST‑Quellen, MCC‑Quellen mit den MCC‑Charts) grundsätzlich editiert , übersetzt und im Betriebszustand STOP ins Zielsystem geladen werden.
  • Seite 407: Online-Editieren Im Debug-Modus

    "Beobachten des Programmablaufs" oder Leuchtspur aktiv sind, werden die Testfunktionen abgebrochen. Online-Editieren im Debug-Modus Wenn SIMOTION SCOUT sich im Betriebsmodus Debug-Modus befindet, ist das Editieren möglich, solange sich das SIMOTION-Gerät nicht im Debug-Modus befindet, also keine Haltepunkte aktiviert sind. Haltepunkte können Sie nur aktivieren und dadurch das SIMOTION-Gerät in den Debug- Modus schalten, wenn die entsprechende Programmquelle und alle ihrer POE gespeichert, aktuell übersetzt und konsistent mit dem Zielsystem sind.
  • Seite 408: Symbol-Browser

    Fehlerquellen und Programmtest 8.2 Programmtest 8.2.3 Symbol-Browser 8.2.3.1 Eigenschaften des Symbol-Browsers Im Symbol-Browser können Sie Name, Datentyp und Werte von Variablen betrachten und gegebenenfalls die Werte ändern. Im Einzelnen können Sie: folgende Variablen sehen: ● Unit-Variablen sowie statische Variablen eines Programms oder Funktionsbausteins ●...
  • Seite 409 Fehlerquellen und Programmtest 8.2 Programmtest Tabelle 8-3 Elemente im Projektnavigator und im Symbolbrowser zu beobachtende Variablen Im Symbolbrowser zu beobachtende Variablen Zu markierendes Element im Pro‐ jektnavigator Variablen im Anwenderspeicher der Unit oder im remanenten Speicher, siehe Spei‐ Programmquelle (Unit) cherbereiche der Variablentypen (Seite 306): ●...
  • Seite 410: Status Und Steuern Von Variablen

    Fehlerquellen und Programmtest 8.2 Programmtest Bild 8-1 Beobachten von Variablen im Symbol-Browser Status und Steuern von Variablen In der Spalte Statuswert wird der aktuelle Wert der Variablen angezeigt und periodisch aktualisiert. Sie können den Wert einer oder mehrerer Variablen ändern. Gehen Sie bei den zu ändernden Variablen wie folgt vor: 1.
  • Seite 411: Umgang Mit Dem Symbolbrowser

    Fehlerquellen und Programmtest 8.2 Programmtest Die von Ihnen eingegebenen Werte werden in die ausgewählten Variablen geschrieben. WARNUNG Gefährliche Anlagenzustände möglich Beim Steuern weisen Sie den Variablen die eingetragenen Werte sofort zu. Damit können gefährliche Anlagenzustände ausgelöst werden z. B. unvorhersehbare Achsbewegungen. Hinweis Beachten Sie, wenn Sie die Werte mehrerer Variablen ändern: Die Werte werden sequentiell in die Variablen geschrieben.
  • Seite 412: Watchtabelle Einsetzen

    Fehlerquellen und Programmtest 8.2 Programmtest Im Offline-Modus können Sie den Datentyp der Variablen sehen. Im Online-Modus sehen Sie den Wert der Variablen und können ihn auch steuern. 8.2.4.2 Watchtabelle einsetzen Sie können Variablen verschiedener Programmquellen, Technologieobjekte, SIMOTION Geräte usw. (auch auf unterschiedlichen Geräten) in einer Watchtabelle zusammenfassen, gemeinsam beobachten und gegebenenfalls ändern.
  • Seite 413: Umgang Mit Der Watchtabelle

    Fehlerquellen und Programmtest 8.2 Programmtest Die von Ihnen eingegebenen Werte werden in die ausgewählten Variablen geschrieben. WARNUNG Gefährliche Anlagenzustände möglich Beim Steuern weisen Sie den Variablen die eingetragenen Werte sofort zu. Damit können gefährliche Anlagenzustände ausgelöst werden z. B. unvorhersehbare Achsbewegungen. Hinweis Beachten Sie, wenn Sie die Werte mehrerer Variablen ändern: Die Werte werden sequentiell in die Variablen geschrieben.
  • Seite 414 Fehlerquellen und Programmtest 8.2 Programmtest Voraussetzungen ● Stellen Sie sicher, dass eine Verbindung mit dem Zielsystem besteht und dass ein Projekt ins Zielsystem geladen ist. Zum Laden eines Projekts siehe "Beispielprogramm ausführen (Seite 91)". ● Die Programmquelle, in der sich Programmorganisationseinheit (POE) befindet, deren Variablen Sie beobachten wollen, ist mit dem Zielsystem konsistent.
  • Seite 415: Programm-Durchlauf

    Fehlerquellen und Programmtest 8.2 Programmtest ● Statische Variablen von Funktionsbausteinen, deren Instanzen als statische Variablen von Programmen deklariert sind ● I/O-Variablen 8.2.6 Programm-Durchlauf 8.2.6.1 Programm-Durchlauf: Anzeige von Codestelle und Aufrufpfad Sie können sich die Codestelle (z. B. Zeile einer ST-Quelle), die eine MotionTask aktuell durchläuft, sowie deren Aufrufpfad anzeigen lassen.
  • Seite 416: Funktionsleiste Programm-Durchlauf

    Fehlerquellen und Programmtest 8.2 Programmtest Tabelle 8-7 Parameterbeschreibung Programm-Durchlauf Feld Beschreibung Selektierte CPU Das ausgewählte SIMOTION-Gerät wird angezeigt. Aktualisieren Durch Klicken auf die Schaltfläche werden die aktuellen Codestellen aus dem SIMOTION-Gerät gelesen und im geöffneten Fenster ange‐ zeigt. Aufrufende Task Wählen Sie die Task aus, für die Sie die aktuell durchlaufene Code‐...
  • Seite 417: Funktionsweise Von Status Programm

    ● Erst nach Verlassen des markierten Beobachtungsbereichs bzw. nach Abbruch der Aufzeichnung wird der Puffer zur Anzeige im SIMOTION SCOUT bereitgestellt. SIMOTION SCOUT ruft die bereitgestellten Werte in regelmäßigen Abständen ab und zeigt sie in dem Format an, das Sie bei den Einstellungen des ST-Editors (Seite 33) als "Format für Statusanzeige"...
  • Seite 418 Fehlerquellen und Programmtest 8.2 Programmtest Bei Funktionen und Funktionsbausteinen können Sie eine Stelle in einer ST-Quelle wählen, an der die Funktion bzw. die Instanz eines Funktionsbausteins gerufen wird (Aufrufpfad). Sie können damit die Variablenwerte gezielt für diesen Aufruf betrachten. Tabelle 8-9 Unterschiede zwischen Prozessbetrieb und Testbetrieb bei Status Programm Prozessbetrieb Testbetrieb...
  • Seite 419: Status Programm Einsetzen

    Fehlerquellen und Programmtest 8.2 Programmtest 8.2.7.2 Status Programm einsetzen Bevor Sie mit Status Programm arbeiten können, müssen Sie dem System mitteilen, dass es in einem besonderen Modus ablaufen soll: 1. Stellen Sie sicher, dass beim Compilieren der ST-Quelle der zusätzliche Debugcode erzeugt wird: –...
  • Seite 420 Fehlerquellen und Programmtest 8.2 Programmtest Bild 8-2 Teil eines ST-Programms im Testmodus Status Programm So testen Sie mit Status Programm: 1. Markieren Sie in der linken Fensterhälfte den Abschnitt der ST-Quelle, den Sie testen wollen. 2. Wenn Sie einen Abschnitt einer POE markiert haben, der von mehreren Stellen einer Programmquelle oder in mehreren Tasks aufgerufen wird: Geben Sie den Aufrufpfad für Status Programm (Seite 423) an.
  • Seite 421: Aufrufpfad Für Status Programm

    Fehlerquellen und Programmtest 8.2 Programmtest Wenn Ihnen die Anzeige der Variablenwerte zu schnell wechselt: ● Klicken Sie in der Funktionsleiste ST‑Editor (Seite 53) auf die Schaltfläche für Beobachten der Programmvariablen anhalten, um die Anzeige zu stoppen. ● Klicken Sie in der Funktionsleiste ST‑Editor (Seite 53) auf die Schaltfläche für Beobachten der Programmvariablen fortfahren, um die Anzeige weiterlaufen zu lassen.
  • Seite 422: Parameter Aufrufpfad Status Programm

    Fehlerquellen und Programmtest 8.2 Programmtest 8.2.7.4 Parameter Aufrufpfad Status Programm Tabelle 8-10 Parameterbeschreibung Aufrufpfad Status Programm Feld Beschreibung Aufrufende Task Wählen Sie die Task aus. Zur Auswahl stehen alle Tasks, in denen die markierte Codestelle aufgerufen wird. Aktuelle Codestelle Der markierte Abschnitt der POE (Codestelle) wird angezeigt (mit Name der ST-Quelle, Zeilennummer, Name der POE) wird aufgerufen von Wählen Sie die aufrufende Codestelle aus.
  • Seite 423: Debug-Modus Einstellen

    Fehlerquellen und Programmtest 8.2 Programmtest Vorgehensweise So gehen Sie vor: 1. Wählen Sie für das betreffende SIMOTION-Gerät den Betriebsmodus "Debug-Modus", siehe Debug-Modus einstellen (Seite 425). 2. Legen Sie die anzuhaltenden Tasks fest, siehe Debug-Taskgruppe festlegen (Seite 426). 3. Setzen Sie Haltepunkte, siehe Haltepunkte setzen (Seite 430). 4.
  • Seite 424: Debug-Taskgruppe Festlegen

    Beachten Sie den Abschnitt: Wichtige Hinweise zur Lebenszeichenüberwachung (Seite 404). 6. Bestätigen Sie mit OK. SIMOTION SCOUT wechselt für dieses Gerät in den Debug-Modus; das SIMOTION-Gerät selbst verbleibt im Betriebsmodus "Testbetrieb", solange bis mindestens ein Haltepunkt aktiviert wird: Der aktivierte Debug-Modus des SIMOTION SCOUT wird Projektnavigator durch ein Symbol vor dem SIMOTION-Gerät angezeigt.
  • Seite 425 Fehlerquellen und Programmtest 8.2 Programmtest Vorgehensweise So ordnen Sie eine Task der Debug-Taskgruppe zu: 1. Markieren Sie im Projektnavigator das betreffende SIMOTION-Gerät. 2. Wählen Sie Kontextmenü Debug-Taskgruppe. Das Fenster Debug-Taskgruppe öffnet. 3. Wählen Sie die Tasks aus, die bei Erreichen eines Haltepunktes angehalten werden sollen: –...
  • Seite 426: Weiteres Vorgehen

    Fehlerquellen und Programmtest 8.2 Programmtest Eigenschaft Anzuhaltende Tasks Einzelne ausgewählte Tasks Alle Tasks (Debug-Taskgruppe) Ausgänge Aktiv Das Verhalten der Ausgänge und Techno‐ logieobjekte ist abhängig von der Check‐ Technologie Regelung aktiv box Mit ’Fortsetzen’ werden die Ausgänge aktiviert (ODIS deaktiviert). ●...
  • Seite 427: Parameter Debug-Tabelle

    Fehlerquellen und Programmtest 8.2 Programmtest Voraussetzung ist, dass sich das betreffende SIMOTION Gerät im Debug-Modus befindet, siehe Betriebsmodi der SIMOTION-Geräte (Seite 402). Tabelle 8-12 Parameterbeschreibung Debug-Einstellungen Feld Beschreibung Debug-Taskgruppe Wählen Sie diese Auswahlmöglichkeit, wenn Sie nur einzelne Tasks anhalten wollen. Das SIMOTION Gerät bleibt nach Erreichen eines aktivierten Haltepunktes im Betriebszustand RUN.
  • Seite 428: Haltepunkte Setzen

    1. Die Programmquelle mit der POE (z. B. ST‑Quelle, MCC‑Chart, KOP/FUP‑Programm) ist geöffnet. 2. Eine Verbindung mit dem Zielsystem muss bestehen (Online-Modus). 3. SIMOTION SCOUT befindet sich für das betreffende SIMOTION-Gerät im Debug-Modus, siehe Debug-Modus einstellen (Seite 423). 4. Die anzuhaltenden Tasks sind festgelegt, siehe Debug-Taskgruppe festlegen (Seite 424).
  • Seite 429 Fehlerquellen und Programmtest 8.2 Programmtest So entfernen Sie einen Haltepunkt: 1. Wählen Sie die Codestelle mit dem Haltepunkt aus. 2. Führen Sie folgende Aktion aus (Alternativen): – Wählen Sie Menü Debug > Haltepunkt setzen / entfernen (Tastenkürzel F9). – Klicken Sie in der Funktionsleiste Haltepunkte auf die Schaltfläche So entfernen Sie alle Haltepunkte (in allen Programmquellen) des SIMOTION-Geräts: ●...
  • Seite 430: Funktionsleiste Haltepunkte

    Fehlerquellen und Programmtest 8.2 Programmtest 8.2.8.7 Funktionsleiste Haltepunkte Diese Funktionsleiste enthält wichtige Bedienhandlungen zum Setzen und Aktivieren von Haltepunkten: Tabelle 8-14 Funktionsleiste Haltepunkte Symbol Bedeutung Haltepunkt setzen / entfernen Klicken Sie auf dieses Symbol, um an der ausgewählten Codestelle einen Haltepunkt zu setzen bzw.
  • Seite 431: Aufrufpfad Für Einen Einzelnen Haltepunkt Festlegen

    1. Die Programmquelle mit der POE (z. B. ST‑Quelle, MCC‑Chart, KOP/FUP‑Programm) ist geöffnet. 2. Eine Verbindung mit dem Zielsystem muss bestehen (Online-Modus). 3. SIMOTION SCOUT befindet sich für das betreffende SIMOTION-Gerät im Debug-Modus, siehe Debug-Modus einstellen (Seite 423). 4. Die anzuhaltenden Tasks sind festgelegt, siehe Debug-Taskgruppe festlegen (Seite 424).
  • Seite 432 Fehlerquellen und Programmtest 8.2 Programmtest 3. Wählen Sie die Task aus, in der das Anwenderprogramm (d. h. alle Tasks in der Debug- Taskgruppe) angehalten wird, wenn der ausgewählte Haltepunkt erreicht wird. Zur Auswahl stehen: – alle Aufrufstellen ab dieser Aufrufebene Das Anwenderprogramm wird immer angehalten, wenn der aktivierte Haltepunkt in einer beliebigen Task der Debug-Taskgruppe erreicht wird.
  • Seite 433: Siehe Auch

    Fehlerquellen und Programmtest 8.2 Programmtest Hinweis Den Aufrufpfad an einem aktuellen Haltepunkt sowie die Codestellen, an denen die anderen Tasks der Debug-Taskgruppe angehalten wurden, können Sie mit der Funktion "Call Stack anzeigen (Seite 442)" einsehen. Siehe auch Aufrufpfad für alle Haltepunkte festlegen (Seite 436) 8.2.8.9 Parameter Aufrufpfad/Taskauswahl Haltepunkt Tabelle 8-15 Parameterbeschreibung Aufrufpfad/Taskauswahl Haltepunkt...
  • Seite 434: Aufrufpfad Für Alle Haltepunkte Festlegen

    1. Die Programmquelle mit der POE (z. B. ST‑Quelle, MCC‑Chart, KOP/FUP‑Programm) ist geöffnet. 2. Eine Verbindung mit dem Zielsystem muss bestehen (Online-Modus). 3. SIMOTION SCOUT befindet sich für das betreffende SIMOTION-Gerät im Debug-Modus, siehe Debug-Modus einstellen (Seite 423). 4. Die anzuhaltenden Tasks sind festgelegt, siehe Debug-Taskgruppe festlegen (Seite 424).
  • Seite 435 Fehlerquellen und Programmtest 8.2 Programmtest Vorgehensweise So legen Sie den Aufrufpfad für alle zukünftigen Haltepunkte in einer POE fest: 1. Wählen Sie eine Codestelle aus, an der kein Haltepunkt gesetzt ist: – SIMOTION ST: Setzen Sie den Cursor in eine entsprechende Zeile der ST-Quelle. –...
  • Seite 436: Parameter Aufrufpfad/Taskauswahl Alle Haltepunkte Je Poe

    Fehlerquellen und Programmtest 8.2 Programmtest Weiteres Vorgehen: ● Aktivieren Sie die Haltepunkte, siehe Haltepunkte aktivieren (Seite 439). Hinweis Den Aufrufpfad an einem aktuellen Haltepunkt sowie die Codestellen, an denen die anderen Tasks der Debug-Taskgruppe angehalten wurden, können Sie mit der Funktion "Call Stack anzeigen (Seite 442)"...
  • Seite 437: Haltepunkte Aktivieren

    1. Die Programmquelle mit der POE (z. B. ST‑Quelle, MCC‑Chart, KOP/FUP‑Programm) ist geöffnet. 2. Eine Verbindung mit dem Zielsystem muss bestehen (Online-Modus). 3. SIMOTION SCOUT befindet sich für das betreffende SIMOTION-Gerät im Debug-Modus, siehe Debug-Modus einstellen (Seite 423). 4. Die anzuhaltenden Tasks sind festgelegt, siehe Debug-Taskgruppe festlegen (Seite 424).
  • Seite 438 Fehlerquellen und Programmtest 8.2 Programmtest Haltepunkte aktivieren So aktivieren Sie einen einzelnen Haltepunkt: 1. Wählen Sie eine Codestelle aus, an der bereits ein Haltepunkt gesetzt ist: – SIMOTION ST: Setzen Sie den Cursor in eine entsprechende Zeile der ST-Quelle. – SIMOTION MCC: Markieren Sie einen entsprechenden Befehl im MCC-Chart. –...
  • Seite 439: Verhalten Am Aktivierten Haltepunkt

    – Wählen Sie Menü Debug > Alle Haltepunkte deaktivieren. – Klicken Sie in der Funktionsleiste Haltepunkte auf die Schaltfläche Nach dem Deaktivieren des letzten Haltepunkts schaltet das SIMOTION-Gerät in den Betriebsmodus "Testbetrieb"; SIMOTION SCOUT bleibt weiter im Debug-Modus. SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 440: Call-Stack Anzeigen

    Fehlerquellen und Programmtest 8.2 Programmtest 8.2.8.13 Call-Stack anzeigen Mit der Funktion "Call‑Stack anzeigen" können Sie: ● den Aufrufpfad am aktuellen Haltepunkt ansehen, ● die Codestellen mit Aufrufpfad ansehen, an denen die anderen Tasks der Debug- Taskgruppe angehalten wurden. Voraussetzung Das Anwenderprogramm steht an einem aktivierten Haltepunkt, d. h., die Tasks der Debug- Taskgruppe (Seite 424) sind angehalten.
  • Seite 441: Parameter Callstack Haltepunkte

    Fehlerquellen und Programmtest 8.2 Programmtest 8.2.8.14 Parameter Callstack Haltepunkte Wenn ein aktivierter Haltepunkt (Seite 437) erreicht ist, können Sie sich für jede Task in der Debug-Taskgruppe (Seite 424) anzeigen lassen: ● die Stelle im Programmcode (z. B. Zeile einer ST-Quelle) an der die Task angehalten wurde, ●...
  • Seite 442 Fehlerquellen und Programmtest 8.2 Programmtest Sie wird unter folgenden Bedingungen angezeigt: 1. SIMOTION SCOUT ist im Online-Modus. 2. Das betreffende SIMOTION Geräts ist aktiv, z. B. – Im Projektnavigator ist das SIMOTION Gerät oder ein Element in dessen Teilbaum (z. B.
  • Seite 443: Trace

    Das Trace-Tool ist ausführlich in der Online-Hilfe beschrieben. 8.2.11 Projektvergleich Für SIMOTION SCOUT steht die Funktionalität Projektvergleich (Start über den Button Starte Objektvergleich ) zur Verfügung, um Objekte innerhalb desselben Projektes bzw. mit Objekten aus anderen Projekten (online oder offline) miteinander zu vergleichen.
  • Seite 444 Fehlerquellen und Programmtest 8.2 Programmtest SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 445: Anhang

    Anhang Formale Sprachbeschreibung In diesem Kapitel finden Sie Übersichten zu den Grundelementen von ST und eine vollständige Zusammenstellung aller Syntaxdiagramme mit den Sprachelementen. Dieser Anhang stellt eine Kurzfassung der Grundlagen der Sprache ST dar. A.1.1 Hilfen für die Sprachbeschreibung Basis für die Sprachbeschreibung in den einzelnen Kapiteln sind Syntaxdiagramme. Sie geben Ihnen einen guten Einblick in den syntaktischen (d.
  • Seite 446: A.1.1.2 Formatfreie Regeln (Syntaktische Regeln)

    Anhang A.1 Formale Sprachbeschreibung Gültige Beispiele nach dieser dargestellten Regel wären: R_REGLER3 _A_FELD _100_3_3_10 A.1.1.2 Formatfreie Regeln (syntaktische Regeln) Aufbauend auf den lexikalischen Regeln wird in den syntaktischen Regeln die Struktur von ST beschrieben. Im Rahmen dieser Regeln können Sie Ihr ST-Programm formatfrei erstellen. Die Eigenschaft formatfrei bedeutet für Sie: ●...
  • Seite 447: Dies Ist Ein Kommentar

    Anhang A.1 Formale Sprachbeschreibung Gültige Beispiele nach dieser dargestellten Regel wären: VARIABLE_1 := 100; SWITCH := FALSE; //Dies ist ein Kommentar VARIABLE_2 := 3.2 + VARIABLE_1; A.1.2 Grundelemente (Terminale) Ein Terminal ist ein Grundelement, das nicht durch eine weitere Regel, sondern verbal erklärt wird.
  • Seite 448 Anhang A.1 Formale Sprachbeschreibung In folgenden Tabellen finden Sie die Formatierungs- und Trennzeichen der lexikalischen und syntaktischen Regeln. Dazu erhalten Sie eine Beschreibung sowie alle Regeln, in denen die Formatierungs- und Trennzeichen als Terminale verwendet werden (siehe Regeln (Seite 462)). Tabelle A-2 Formatierungs- und Trennzeichen in den lexikalischen Regeln Zeichen...
  • Seite 449: A.1.2.3 Formatierungs- Und Trennzeichen Für Konstanten

    Anhang A.1 Formale Sprachbeschreibung A.1.2.3 Formatierungs- und Trennzeichen für Konstanten Nachfolgend sehen Sie alle Formatierungs- und Trennzeichen für Konstanten mit Angabe der lexikalischen Regel, in denen sie benutzt werden. Tabelle A-4 Formatierungs- und Trennzeichen für Konstanten Zeichen Kennzeichen für Lexikalische Regel Ganzzahl-Konstante Binärziffernfolge Ganzzahl-Konstante...
  • Seite 450: A.1.2.5 Operatoren

    Anhang A.1 Formale Sprachbeschreibung Bezeichner Beschreibung Lexikalische Regel %IWn CPU-Eingangsbereich mit Wort‐ absoluter PA-Zugriff adresse %IDn CPU-Eingangsbereich mit Dop‐ absoluter PA-Zugriff pelwortadresse %Qn.x CPU-Ausgangsbereich mit Byte absoluter PA-Zugriff und Bitadresse oder %QXn.x %QBn CPU-Ausgangsbereich mit Byte‐ absoluter PA-Zugriff adresse %QWn CPU-Ausgangsbereich mit Wort‐...
  • Seite 451: Reservierte Wörter

    Anhang A.1 Formale Sprachbeschreibung A.1.2.6 Reservierte Wörter Nachfolgend finden Sie Schlüsselwörter, vordefinierte Bezeichner und Standardfunktionen des ST-Grundsystems alphabetisch aufgelistet. Dazu erhalten Sie eine Beschreibung sowie Regeln , in der sie als Terminale verwendet werden. Eine die syntaktische Regel aus Ausnahme stellen Standardfunktionen dar, die nur implizit in der syntaktischen Regel Funktionsaufruf als Standardfunktionsname enthalten sind.
  • Seite 452 Anhang A.1 Formale Sprachbeschreibung Schlüsselwörter / Bezeichner Beschreibung Regel BOOL_VALUE_TO_UDINT Standardfunktion für Typkonvertierung Funktionsaufruf BOOL_VALUE_TO_UINT Standardfunktion für Typkonvertierung Funktionsaufruf BOOL_VALUE_TO_USINT Standardfunktion für Typkonvertierung Funktionsaufruf Einleitung der Schrittweite FOR-Anweisung (Seite 511) BYTE Elementarer Datentyp Bitdatentyp BYTE_TO_BOOL Standardfunktion für Typkonvertierung Funktionsaufruf BYTE_TO_DINT Standardfunktion für Typkonvertierung Funktionsaufruf BYTE_TO_DWORD...
  • Seite 453 Anhang A.1 Formale Sprachbeschreibung Schlüsselwörter / Bezeichner Beschreibung Regel DINT_TO_LREAL Standardfunktion für Typkonvertierung Funktionsaufruf DINT_TO_REAL Standardfunktion für Typkonvertierung Funktionsaufruf DINT_TO_SINT Standardfunktion für Typkonvertierung Funktionsaufruf DINT_TO_STRING Standardfunktion für Typkonvertierung Funktionsaufruf DINT_TO_UDINT Standardfunktion für Typkonvertierung Funktionsaufruf DINT_TO_UINT Standardfunktion für Typkonvertierung Funktionsaufruf DINT_TO_USINT Standardfunktion für Typkonvertierung Funktionsaufruf DINT_TO_WORD...
  • Seite 454 Anhang A.1 Formale Sprachbeschreibung Schlüsselwörter / Bezeichner Beschreibung Regel END_LABEL Abschluss der LABEL-Anweisung Sprungmarkendeklaration (Seite 490) END_METHOD Abschluss der Methode Methode in Klasse (Sei‐ te 478), Methode in FB (Sei‐ te 480), Methodenprototyp (Seite 479) END_NAMESPACE Abschluss des Namensraums Namensraum END_PROGRAM Abschluss des Programms Programm (Seite 476)
  • Seite 455 Anhang A.1 Formale Sprachbeschreibung Schlüsselwörter / Bezeichner Beschreibung Regel INSERT Standardfunktion für Stringbearbeitung Funktionsaufruf Elementarer Datentyp für Ganzzahl einfacher Numerischer Datentyp Genauigkeit (integer) im Wertebereich -2**15 .. 2**15‑1 INT_TO_BYTE Standardfunktion für Typkonvertierung Funktionsaufruf INT_TO_DINT Standardfunktion für Typkonvertierung Funktionsaufruf INT_TO_DWORD Standardfunktion für Typkonvertierung Funktionsaufruf INT_TO_LREAL Standardfunktion für Typkonvertierung...
  • Seite 456 Anhang A.1 Formale Sprachbeschreibung Schlüsselwörter / Bezeichner Beschreibung Regel Standardfunktion für Auswahl Funktionsaufruf METHOD Einleitung der Methode Methode in Klasse (Sei‐ te 478), Methode in FB (Sei‐ te 480), Methodenprototyp (Seite 479) Standardfunktion für Stringbearbeitung Funktionsaufruf Standardfunktion für Auswahl Funktionsaufruf Arithmetischer Operator für Divisionsrest Arithmetischer Basisoperator Standardfunktion für Auswahl...
  • Seite 457 Anhang A.1 Formale Sprachbeschreibung Schlüsselwörter / Bezeichner Beschreibung Regel REAL_VALUE_TO_DWORD Standardfunktion für Typkonvertierung Funktionsaufruf REAL_VALUE_TO_WORD Standardfunktion für Typkonvertierung Funktionsaufruf Bildung allgemeiner Referenzen Allgemeine Referenz REF_TO Deklaration allgemeiner Referenzen Allgemeine Referenz REPEAT Einleitung der Kontrollanweisung zur Schleifen‐ REPEAT-Anweisung (Sei‐ bearbeitung te 512) REPLACE Standardfunktion für Stringbearbeitung Funktionsaufruf...
  • Seite 458 Anhang A.1 Formale Sprachbeschreibung Schlüsselwörter / Bezeichner Beschreibung Regel StructTaskId Datentyp für TaskId – SUPER Schlüsselwort zum Aufruf des Methode der Ba‐ Methodenaufruf Klasse sisklasse Numerische Standardfunktion Funktionsaufruf THEN Einleitung der Folgeaktionen, wenn Bedingung IF-Anweisung erfüllt THIS Schlüsselwort zum Aufruf der aktuell gültigen Methodenaufruf Klasse, Me‐...
  • Seite 459 Anhang A.1 Formale Sprachbeschreibung Schlüsselwörter / Bezeichner Beschreibung Regel UINT_TO_INT Standardfunktion für Typkonvertierung Funktionsaufruf UINT_TO_LREAL Standardfunktion für Typkonvertierung Funktionsaufruf UINT_TO_REAL Standardfunktion für Typkonvertierung Funktionsaufruf UINT_TO_SINT Standardfunktion für Typkonvertierung Funktionsaufruf UINT_TO_UDINT Standardfunktion für Typkonvertierung Funktionsaufruf UINT_TO_USINT Standardfunktion für Typkonvertierung Funktionsaufruf UINT_TO_WORD Standardfunktion für Typkonvertierung Funktionsaufruf UINT_VALUE_TO_BOOL...
  • Seite 460: A.1.3 Regeln

    Anhang A.1 Formale Sprachbeschreibung Schlüsselwörter / Bezeichner Beschreibung Regel WITH Zusatz zur Kontrollanweisung WAITFORCON‐ WAITFORCONDITION-An‐ DITION weisung (Seite 513) WORD Elementarer Datentyp Wort Bitdatentyp WORD_TO_BOOL Standardfunktion für Typkonvertierung Funktionsaufruf WORD_TO_BYTE Standardfunktion für Typkonvertierung Funktionsaufruf WORD_TO_DINT Standardfunktion für Typkonvertierung Funktionsaufruf WORD_TO_DWORD Standardfunktion für Typkonvertierung Funktionsaufruf WORD_TO_INT...
  • Seite 461: A.1.3.2 Schreibweise Von Konstanten (Literale)

    Anhang A.1 Formale Sprachbeschreibung Bild A-4 Nummer A.1.3.2 Schreibweise von Konstanten (Literale) Literale Bild A-5 Literal Bild A-6 Ganzzahl SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 462 Anhang A.1 Formale Sprachbeschreibung Bild A-7 Gleitpunktzahl Bild A-8 Exponent Bild A-9 Zeitliteral SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 463 Anhang A.1 Formale Sprachbeschreibung Bild A-10 Zeichenstring SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 464 Anhang A.1 Formale Sprachbeschreibung Bild A-11 Zeichen SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 465 Anhang A.1 Formale Sprachbeschreibung Ziffernfolgen Bild A-12 Dezimalziffernfolge Bild A-13 Binärziffernfolge Bild A-14 Oktalziffernfolge Bild A-15 Hexadezimalziffernfolge SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 466 Anhang A.1 Formale Sprachbeschreibung Datum und Zeit Bild A-16 Datum Bild A-17 Zeitdauer Bild A-18 Tageszeit SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 467 Anhang A.1 Formale Sprachbeschreibung Bild A-19 Datum und Zeit Bild A-20 Datumsangabe Bild A-21 Tageszeitangabe SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 468 Anhang A.1 Formale Sprachbeschreibung Bild A-22 Stufendarstellung Bild A-23 Dezimaldarstellung SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 469: Kommentare

    Anhang A.1 Formale Sprachbeschreibung A.1.3.3 Kommentare Bitte beachten Sie Folgendes beim Einbau von Kommentaren: ● Innerhalb des Zeilenkommentars sind die Zeichenpaare (* und *) bedeutungslos. ● Die Schachtelung von Blockkommentaren ist standardmäßig nicht erlaubt. Möglich ist jedoch die Schachtelung von Zeilenkommentaren in Blockkommentaren. Nur bei akivierter Compileroption "Spracherweiterungen IEC61131‑3rd Edition zulassen": Es ist möglich, Blockkommentare zu schachteln.
  • Seite 470: A.1.3.4 Abschnitte Der St-Quelle

    Anhang A.1 Formale Sprachbeschreibung A.1.3.4 Abschnitte der ST-Quelle Abschnitte der ST-Quelle A.1.3.5 Gliederungen von ST-Quellen Bild A-27 ST-Quelle SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 471 Anhang A.1 Formale Sprachbeschreibung Bild A-28 Unit-Definition Bild A-29 Interfaceabschnitt SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 472 Anhang A.1 Formale Sprachbeschreibung Bild A-30 Implementationsabschnitt Bild A-31 POE-Prototypen SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 473: A.1.3.6 Programmorganisationseinheiten (Poe)

    Anhang A.1 Formale Sprachbeschreibung A.1.3.6 Programmorganisationseinheiten (POE) Bild A-32 Expression Bild A-33 Funktion FC SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 474 Anhang A.1 Formale Sprachbeschreibung Bild A-34 Funktionsbaustein FB Bild A-35 Programm SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 475 Anhang A.1 Formale Sprachbeschreibung Bild A-36 Syntax: Klasse SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 476 Anhang A.1 Formale Sprachbeschreibung Bild A-37 Syntax: Methode Bild A-38 Syntax: Zugriffsbezeichner Klasse SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 477 Anhang A.1 Formale Sprachbeschreibung Bild A-39 Syntax: Objektorientiertes Interface Bild A-40 Syntax: Methodenprototyp SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 478 Anhang A.1 Formale Sprachbeschreibung Bild A-41 Syntax: Funktionsbaustein (FB) mit Methoden Bild A-42 Syntax: Methode im Funktionsbaustein SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 479: A.1.3.7 Deklarationsabschnitte

    Anhang A.1 Formale Sprachbeschreibung Bild A-43 Syntax: Zugriffsbezeichner FB A.1.3.7 Deklarationsabschnitte Bild A-44 Expression-Deklarationsabschnitt SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 480 Anhang A.1 Formale Sprachbeschreibung Bild A-45 FC-Deklarationsabschnitt Bild A-46 FB-Deklarationsabschnitt SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 481 Anhang A.1 Formale Sprachbeschreibung Bild A-47 Programm-Deklarationsabschnitt Bild A-48 Klassen-Deklarationsabschnitt SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 482: A.1.3.8 Aufbau Der Deklarationsblöcke

    Anhang A.1 Formale Sprachbeschreibung Bild A-49 Methoden-Deklarationsabschnitt A.1.3.8 Aufbau der Deklarationsblöcke Konstantenblöcke Bild A-50 Konstantenblock Bild A-51 Unit-Konstanten / Globaler Konstantenblock SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 483 Anhang A.1 Formale Sprachbeschreibung Variablenblöcke Bild A-52 Unit-Variablen / Globaler Variablenblock Bild A-53 Remanenter globaler Variablenblock Bild A-54 Temporärer Variablenblock FC/Methode Bild A-55 Temporärer Variablenblock im FB/Programm SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 484 Anhang A.1 Formale Sprachbeschreibung Bild A-56 Statischer Variablenblock Bild A-57 Syntax: Remanenter lokaler Variablenblock SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 485 Anhang A.1 Formale Sprachbeschreibung Parameterblöcke Bild A-58 Parameterblock FB SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 486 Anhang A.1 Formale Sprachbeschreibung Bild A-59 Parameterblock FC SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 487 Anhang A.1 Formale Sprachbeschreibung Bild A-60 Parameterblock Methode Bild A-61 Deklaration eines ARRAY mit dynamischer Länge SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 488 Anhang A.1 Formale Sprachbeschreibung Sprungmarken Bild A-62 Sprungmarkendeklaration Deklarationen Bild A-63 Konstantendeklaration Bild A-64 Variablendeklaration SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 489 Anhang A.1 Formale Sprachbeschreibung Bild A-65 Symbolischer PA-Zugriff Bild A-66 Instanzdeklaration FB Bild A-67 FB-ARRAY-Spezifikation SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 490 Anhang A.1 Formale Sprachbeschreibung Bild A-68 Syntax: Instanzdeklaration Klasse Initialisierung Bild A-69 Initialisierung SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 491 Anhang A.1 Formale Sprachbeschreibung Bild A-70 Konstantenausdruck Bild A-71 Feldinitialisierungsliste SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 492: A.1.3.9 Datentypen

    Anhang A.1 Formale Sprachbeschreibung Bild A-72 Strukturinitialisierungsliste A.1.3.9 Datentypen Bild A-73 Datentyp Elementare Datentypen Bild A-74 Elementarer Datentyp SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 493 Anhang A.1 Formale Sprachbeschreibung Bild A-75 Bitdatentyp Bild A-76 Numerischer Datentyp Bild A-77 Ganzzahlendatentyp SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 494 Anhang A.1 Formale Sprachbeschreibung Bild A-78 Gleitpunktzahlendatentyp Bild A-79 Zeitdatentyp Bild A-80 String-Datentyp SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 495 Anhang A.1 Formale Sprachbeschreibung Anwenderdefinierte Datentypen Bild A-81 Anwenderdefinierter Datentyp Bild A-82 ARRAY-Datentyp-Spezifikation Bild A-83 Aufzählungsdatentyp-Spezifikation SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 496 Anhang A.1 Formale Sprachbeschreibung Bild A-84 STRUCT-Datentyp-Spezifikation Bild A-85 Komponentendeklaration Bild A-86 Komponentendeklaration mit relativer Adresse SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 497: A.1.3.10 Anweisungsabschnitt

    Anhang A.1 Formale Sprachbeschreibung Bild A-87 Relative Adresse A.1.3.10 Anweisungsabschnitt Bild A-88 Anweisungsabschnitt Bild A-89 Anweisung SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 498: A.1.3.11 Wertzuweisungen Und Operationen

    Anhang A.1 Formale Sprachbeschreibung A.1.3.11 Wertzuweisungen und Operationen Wertzuweisung und Ausdruck Bild A-90 Wertzuweisung SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 499 Anhang A.1 Formale Sprachbeschreibung Bild A-91 Ausdruck SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 500 Anhang A.1 Formale Sprachbeschreibung Operanden Bild A-92 Operand Bild A-93 Strukturierte Variable SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 501 Anhang A.1 Formale Sprachbeschreibung Bild A-94 Absoluter PA-Zugriff Bild A-95 Konstante Bild A-96 Aufzählungswert SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 502 Anhang A.1 Formale Sprachbeschreibung Bild A-97 Externe Variable Bild A-98 Zugriff auf FB-Ausgangsparameter Bild A-99 Zugriff auf FB-Eingangsparameter SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 503 Anhang A.1 Formale Sprachbeschreibung Bild A-100 Bitzugriff Operatoren Bild A-101 Logischer Basisoperator Bild A-102 Arithmetischer Operator SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 504: A.1.3.12 Aufruf Von Funktionen, Funktionsbausteinen Und Methoden

    Anhang A.1 Formale Sprachbeschreibung Bild A-103 Arithmetischer Basisoperator Bild A-104 Vergleichsoperatoren A.1.3.12 Aufruf von Funktionen, Funktionsbausteinen und Methoden Bild A-105 FB-Aufruf SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 505 Anhang A.1 Formale Sprachbeschreibung Bild A-106 FC-Aufruf Bild A-107 Methodenaufruf Klasse Bild A-108 Methodenaufruf FB SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 506 Anhang A.1 Formale Sprachbeschreibung Bild A-109 FB-Parameter Bild A-110 FC-Parameter Bild A-111 Eingangszuweisung SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 507: A.1.3.13 Kontrollanweisungen

    Anhang A.1 Formale Sprachbeschreibung Bild A-112 Durchgangszuweisung Bild A-113 Ausgangszuweisung A.1.3.13 Kontrollanweisungen Verzweigungen Bild A-114 IF-Anweisung SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 508 Anhang A.1 Formale Sprachbeschreibung Bild A-115 CASE-Anweisung Bild A-116 Wertliste SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 509: Wiederholungs- Und Sprunganweisungen

    Anhang A.1 Formale Sprachbeschreibung Wiederholungs- und Sprunganweisungen Bild A-117 Wiederholungs- und Sprunganweisung Bild A-118 FOR-Anweisung SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 510 Anhang A.1 Formale Sprachbeschreibung Bild A-119 WHILE-Anweisung Bild A-120 REPEAT-Anweisung Bild A-121 EXIT-Anweisung Bild A-122 RETURN-Anweisung SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 511 Anhang A.1 Formale Sprachbeschreibung Bild A-123 WAITFORCONDITION-Anweisung Bild A-124 GOTO-Anweisung SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 512: A.1.3.14 Pragmas

    Anhang A.1 Formale Sprachbeschreibung A.1.3.14 Pragmas Bild A-125 Syntax: Pragma Bild A-126 Syntax: Präprozessor-Anweisung SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...
  • Seite 513: A.2 Fehlermeldungen Des Compilers Und Deren Behebung

    Anhang A.2 Fehlermeldungen des Compilers und deren Behebung Bild A-127 Syntax: Attribut für Compilerausgaben Bild A-128 Syntax: Freie Compilermeldung Fehlermeldungen des Compilers und deren Behebung Dieses Kapitel gibt Ihnen einen Überblick über die Fehlermeldungen des Compilers und deren Behebung. A.2.1 Dateizugriffsfehler (1000 …...
  • Seite 514: A.2.2 Scannerfehler (2001, 2002)

    Anhang A.2 Fehlermeldungen des Compilers und deren Behebung Fehler Beschreibung 1003 Ein Lese-Schreibfehler beim Öffnen der angegebenen Datei ist aufgetreten. Bitte schließen Sie die Applikation und versuchen Sie es erneut! 1100 Die Option zur Angabe einer Präprozessor-Definition enthält einen ungültigen Bezeichner als defi‐ niertes Token.
  • Seite 515 Anhang A.2 Fehlermeldungen des Compilers und deren Behebung Fehler Beschreibung 3011 Die TASK-Anweisung ist in der Unit nicht zulässig. Verwenden Sie die Taskkonfiguration in der Workbench. 3012 Der angegebene Bezeichner wurde bereits an anderer Stelle deklariert. Eine nochmalige Verwen‐ dung als Bezeichner einer Funktion ist nicht möglich. 3013 Der angegebene Bezeichner wurde bereits an anderer Stelle deklariert.
  • Seite 516 Anhang A.2 Fehlermeldungen des Compilers und deren Behebung Fehler Beschreibung 3061 Die angegeben Methodeneigenschaft kann nicht übernommen werden. Beispielsweise kann inner‐ halb eines FUNCTION_BLOCK eine Methode nicht OVERRIDE, ABSTRACT oder FINAL deklariert werden. In CLASS ist OVERRIDE für Methoden nur anwendbar, wenn es eine Basisklasse gibt und dort die Methode bereits deklariert wurde.
  • Seite 517: A.2.4 Deklarationsfehler In Datentypdeklarationen (4001

    Anhang A.2 Fehlermeldungen des Compilers und deren Behebung Fehler Beschreibung 3077 Das angegebene INTERFACE wird nicht im Interfaceabschnitt der Unit exportiert bzw. stammt aus einer im Implementationsabschnitt importierten Unit und kann daher an einer exportierten CLASS nicht genutzt werden (IMPLEMENTS). ●...
  • Seite 518 Anhang A.2 Fehlermeldungen des Compilers und deren Behebung Fehler Beschreibung 4011 Eine Konstantendeklaration erfordert zwingend die Angabe eines Initialisierungswertes. Beispiel: x : DINT := 5; 4012 Der angegebene Datentyp muss außerhalb der POE deklariert sein. Bei VAR_INPUT, VAR_OUT‐ PUT, VAR_IN_OUT dürfen die Typbezeichner nicht lokal in der POE deklariert sein, da sie zum Zweck der Parameterübergabe auch außerhalb bekannt sein müssen.
  • Seite 519: A.2.5 Deklarationsfehler In Variablendeklarationen (5001

    Anhang A.2 Fehlermeldungen des Compilers und deren Behebung A.2.5 Deklarationsfehler in Variablendeklarationen (5001 … 5509) Tabelle A-12 Deklarationsfehler in Variablendeklarationen (5001 … 5509) Fehler Beschreibung 5001 Der angegebene Konstantenwert führt zu einer Wertebereichsüberschreitung und kann nicht in den geforderten Typ konvertiert werden. 5002 Der angegebene Bezeichner wurde bereits verwendet.
  • Seite 520 Anhang A.2 Fehlermeldungen des Compilers und deren Behebung Fehler Beschreibung 5042 Der angegebene Datentyp kann nicht innerhalb einer Deklaration remanenter Variablen (VAR RE‐ TAIN, VAR_GLOBAL RETAIN)verwendet werden. Der Datentyp enthält wenigstens einen System‐ funktionsbaustein in den Instanzdaten oder ist selbst ein solcher. Da dessen Informationen nicht wiederherstellbar sind, kann dieser Datentyp nicht in remanent genutzt werden.
  • Seite 521 Anhang A.2 Fehlermeldungen des Compilers und deren Behebung Fehler Beschreibung 5072 Der angegebene Datentyp wurde per Vorwärtsdeklaration vereinbart. Die Angabe von instanzspe‐ zifischen Initialisierungswerten ist an der angebenen Stelle nicht möglich. Wenn es sich um eine Variable im Implementationsabschnitt der Quelle handelt, prüfen Sie, ob sie diese hinter die Dekla‐ ration der betreffenden CLASS oder des FUNCTION_BLOCK verschieben können.
  • Seite 522: A.2.6 Fehler Im Ausdruck (6001

    Anhang A.2 Fehlermeldungen des Compilers und deren Behebung A.2.6 Fehler im Ausdruck (6001 … 6302) Tabelle A-13 Fehler im Ausdruck (6001 … 6302) Fehler Beschreibung 6001 Syntaxfehler: Es wird eine Anweisung erwartet, die mit einem Semikolon abgeschlossen ist, z. B. a := b*c; 6002 Syntaxfehler: Es wird ein Ausdruck erwartet, z.
  • Seite 523 Anhang A.2 Fehlermeldungen des Compilers und deren Behebung Fehler Beschreibung 6020 Syntaxfehler bei der Angabe von direkt dargestellten Variablen. Inputs müssen die Syntax %Ix.y und Outputs die Syntax %Qx.y haben. Weitere gültige Adressangaben sind %IBx bzw. %QBx für Byte-Zugriffe, %IWx bzw. %QWx für Wort-Zugriffe und %IDx bzw. %QDx für Doppelwortzugriffe. 6021 Der angegebene Byteoffset der direkt dargestellten Variablen liegt außerhalb des zulässigen Ad‐...
  • Seite 524 Anhang A.2 Fehlermeldungen des Compilers und deren Behebung Fehler Beschreibung 6039 Die angegebene POE (Funktion oder Funktionsbaustein) ist nicht anwendbar. Mögliche Ursachen: ● Die Definition der POE im Implementationsabschnitt fehlt. Es wurde nur der Prototyp im Interfaceabschnitt angegeben. ● Die POE wird erst nach ihrer Verwendung (z. B. Aufruf, Instanzdeklaration) vollständig definiert. Verschieben Sie gegebenenfalls in der Programmquelle diese POE vor die POE, in der sie verwendet wird.
  • Seite 525 Anhang A.2 Fehlermeldungen des Compilers und deren Behebung Fehler Beschreibung 6080 Die angegebene Variable ist keine direkt zugreifbare Eingangs- oder Ausgangsvariable. Eine solche Variable muss am I/O-Container des betroffenen Geräts mit der Syntax PI* oder PQ* vereinbart werden. 6085 Die angegebene Variable wurde innerhalb der Quelle mit einem per Vorwärtsdeklaration verein‐ barten Datentyp angelegt.
  • Seite 526: A.2.7 Syntaxfehler, Fehler Im Ausdruck (7000

    Anhang A.2 Fehlermeldungen des Compilers und deren Behebung Fehler Beschreibung 6250 Die angegebene Methode ist nicht veröffentlicht. Sie ist nicht PUBLIC deklariert und kann daher nicht aufgerufen werden. 6251 SUPER ist im aktuellen Kontext nicht anwendbar. SUPER kann nur innerhalb von Klassen-Metho‐ den eingesetzt werden, wenn die betreffende Klasse eine Basisklasse besitzt (EXTENDS erforder‐...
  • Seite 527 Anhang A.2 Fehlermeldungen des Compilers und deren Behebung Fehler Beschreibung 7003 Bei der Intervallangabe muss der Anfangswert kleiner oder gleich dem Endwert sein. Dies gilt bei der Vereinbarung von Arrays und bei der Intervallangabe in CASE-Auswahlbedingungen. 7004 Es wird ein Initialisierungswert erwartet. Dies muss eine Konstante sein. Konstanten können vor‐ gegeben werden: ●...
  • Seite 528: A.2.8 Fehler Beim Binden Einer Quelle (8001

    Anhang A.2 Fehlermeldungen des Compilers und deren Behebung A.2.8 Fehler beim Binden einer Quelle (8001 … 8010) Tabelle A-15 Fehler beim Binden einer Quelle (8001 … 8010) Fehler Beschreibung 8001 Die angegebene POE ist im INTERFACE-Abschnitt exportiert worden, eine Implementierung im IMPLEMENTATION-Abschnitt fehlt jedoch.
  • Seite 529 Anhang A.2 Fehlermeldungen des Compilers und deren Behebung Fehler Beschreibung 10004 Die exportierten Symbole der angegebenen Unit konnten nicht geladen werden. Übersetzen Sie die angegebene Unit und versuchen Sie es erneut. Alternativ führen Sie "Speichern und Änderun‐ gen übersetzen" aus. 10005 Es liegt eine Rekursion beim Laden der Pakete vor.
  • Seite 530 Anhang A.2 Fehlermeldungen des Compilers und deren Behebung Fehler Beschreibung 10022 Das angegebene Technologiepaket wird mit unterschiedlichen Versionsständen benutzt. Korrigie‐ ren Sie die Einstellungen zur Auswahl des Technologiepakets am Gerät und ggf. an der Bibliothek. Sie können nur einen Versionsstand eines Technologiepakets auf einem Gerät verwenden. Tritt diese Meldung nach einem Hochrüsten der CPU-Version auf, wählen Sie "Speichern und alles neu übersetzen".
  • Seite 531: A.2.10 Implementationsbeschränkungen (15001

    Anhang A.2 Fehlermeldungen des Compilers und deren Behebung Fehler Beschreibung 10050 Alle durch die angegebenen Bibliotheken exportierten POEs sind identisch. Eine gleichzeitige Ver‐ wendung dieser Bibliotheken ist nicht möglich. Modifizieren Sie mindestens ein exportiertes Ele‐ ment in einer der betroffenen Bibliotheken. Hinweis: Typischerweise tritt dieser Fehler im Zusammenhang mit Know-how-geschützen Biblio‐...
  • Seite 532: A.2.11 Warnungen (16001

    Die Angabe eines Bitoffsets an einer Bitstring-Variablen ist nur unter Nutzung der Compileroption "Spracherweiterungen zulassen" (-C lang_ext) möglich. 15700 Das angegebene Konstrukt wird von der Version des SIMOTION SCOUT, in die konvertiert werden soll, nicht unterstützt. A.2.11 Warnungen (16001 … 16700) Die Ausgabe von Warnungen und Informationen können Sie steuern:...
  • Seite 533 Anhang A.2 Fehlermeldungen des Compilers und deren Behebung Tabelle A-18 Warnungen (16001 … 16700) Fehler Beschreibung 16001 (Warnungsklasse: 0) Nur in Verbindung mit Compileroption "Selektives Linken". Die angegebene Funktion, der Funkti‐ onsbaustein oder das Programm werden nicht exportiert und nicht in der eigenen Unit aufgerufen. Es wird kein Code erzeugt.
  • Seite 534 Anhang A.2 Fehlermeldungen des Compilers und deren Behebung Fehler Beschreibung 16014 (Warnungsklasse: 2) Bei der angegebenen Operation wird eine Datentypkonvertierung zwischen vorzeichenbehaftet (signed) und nicht vorzeichenbehaftet (unsigned) vorgenommen. Da hier der Bitstring übernommen wird, kann das Ergebnis im Zahlenwert vom angegebenen Wert abweichen. 16015 (Warnungsklasse: 2) Bei der Zuweisung der Zeichenkettenkonstanten zu der Variablen wird nur ein Teil der Zeichenket‐...
  • Seite 535 A.2 Fehlermeldungen des Compilers und deren Behebung Fehler Beschreibung 16026 (Warnungsklasse: 1) Der angegebene Bezeichner ist von SIEMENS für potentielle Erweiterungen reserviert. Die Ver‐ wendung dieses Bezeichners kann in späteren Ständen zu Compilerfehlermeldungen führen. Wenn Sie dies vermeiden wollen, ändern Sie diesen Bezeichner. 16027 (Warnungsklasse: 1) Der angegebene Bezeichner, der zum Zugriff auf I/O-Qualities reserviert ist, ist bereits am Gerät...
  • Seite 536 Anhang A.2 Fehlermeldungen des Compilers und deren Behebung Fehler Beschreibung 16151 (Warnungsklasse: 7) Es wurde versucht, mittels #undef die Definition des angegebenen Bezeichners zu löschen. Der Bezeichner ist jedoch nicht definiert, oder die Definition ist bereits gelöscht. Mit dieser Warnung kann die Arbeit des Präprozessors verfolgt werden. 16152 (Warnungsklasse: 7) Die angegebene Definition wird bei der Codegenerierung nicht berücksichtigt.
  • Seite 537 Anhang A.2 Fehlermeldungen des Compilers und deren Behebung Fehler Beschreibung 16260 (Warnungsklasse: 4) Die angegebene Funktion hat mit den gegebenen Werten keine Wirkung. Code wird optimiert er‐ zeugt. 16261 (Warnungsklasse: 4) Der Rückgabewert der Funktion oder Methode wurde nicht zugewiesen. Das Funktionsergebnis geht damit verloren.
  • Seite 538 Anhang A.2 Fehlermeldungen des Compilers und deren Behebung Fehler Beschreibung 16440 (Warnungsklasse: 10) Es wurde eine globale Variable im remanenten Speicherbereich angelegt, die keinerlei sicherbare Anwenderdaten enthält. Die Deklaration derartiger Variablen in RETAIN-Bereichen sollte nicht vor‐ genommen werden. Die Angabe RETAIN ist hier nicht sinnvoll und wird nur aus Kompatibilitätsa‐ spekten unterstützt Datentypen bei denen diese Meldung ausgegeben wird sind beispielsweise TO-Referenzen.
  • Seite 539: A.2.12 Freie Compilermeldungen (22000

    0 Byte. Die Instanzdeklaration in Form eines ARRAYs ist nicht sinnvoll. 16700 (Warnungsklasse: 3) Das SIMOTION Gerät kann auch mit früheren Versionen des SIMOTION SCOUT bearbeitet wer‐ den. Das angegebene Konstrukt wird nicht von allen früheren Versionen des Compilers unterstützt. Siehe auch...
  • Seite 540: A.2.13 Informationen (32010

    Anhang A.2 Fehlermeldungen des Compilers und deren Behebung A.2.13 Informationen (32010 … 32653) Die Ausgabe der Informationen steuern Sie gemeinsam mit den Warnungen (Seite 532): Tabelle A-20 Informationen (32010 … 32653) Fehler Beschreibung 32010 (Warnungsklasse: 6) Der angegebene Sprungmarkenbezeichner wurde deklariert, aber nicht verwendet. 32020 (Warnungsklasse: 10) Die angegebene Variable wurde in dieser Quelle oder in einer anderen Quelle global mit dem...
  • Seite 541 Anhang A.2 Fehlermeldungen des Compilers und deren Behebung Fehler Beschreibung 32030 (Warnungsklasse: 0) Die angegebene Feldinitialisierung ist nicht konform zu IEC 61131-3. Für portable Programme sollten sie die Feldinitialisierungswerte in eckige Klammern einschließen. Beispiel für eine norm‐ konforme Feldinitialisierung: x : ARRAY [0..1] OF INT := [ 1, 2]; 32050 (Warnungsklasse: 0) Die maximale Größe, die über HMI erreichbar ist beträgt 65536 Byte.
  • Seite 542: Template Für Beispiel-Unit

    Anhang A.3 Template für Beispiel-Unit Template für Beispiel-Unit A.3.1 Vorabinformationen In diesem Kapitel ist das ausführlich kommentierte Template abgedruckt, das Sie in der Online- Hilfe aufrufen können. Sie können es als Vorlage für eine neue ST-Quelle verwenden. //============================================================================ //(organisation) //(division / place) //(c)Copyright 2009 All Rights Reserved //-----------------------------------------------------------------------------...
  • Seite 543: A.3.2 Typdefinition Im Interface

    Anhang A.3 Template für Beispiel-Unit // USES header; // Mittels USES werden die von einer anderen Quelle (NAME hier "header") // exportierten Inhalte importiert und in "sttemp_l_de" nutzbar gemacht. // Falls die Quelle mit dem Namen "header" nicht im Projekt existiert, // wird die Fehlermeldung // "Fehler 10018 Quelle "header"...
  • Seite 544: A.3.3 Variablendeklaration Im Interface

    Anhang A.3 Template für Beispiel-Unit sCollection : STRUCT toAxisX : posaxis; aInStructDim1 : ai16Dim1; eTrafficInStruct : eTrafficLight; i16Counter : INT; b16Status : WORD; END_STRUCT; // Hier wird eine anwenderdefinierte Struktur erzeugt. Es können // elementare Datentypen (hier INT und WORD) oder bereits definierte // Anwenderdatentypen (hier "array1dim"...
  • Seite 545: A.3.4 Implementation

    Anhang A.3 Template für Beispiel-Unit gtMyTime : TIME := T#0d_1h_5m_17s_4ms; // ...wie elementare Zeittypen und abgeleitete Datentypen. geMyTraffic : eTrafficLight := RED; // Hier wird ein Enumerator vom Typ "eTrafficLight" angelegt und // mit dem Wert "RED" vorbelegt. gi16MyInt : INT := -17; // Variablen elementarer numerischer Datentypen können in // Variablendeklarationen ebenso deklariert werden...
  • Seite 546: A.3.5 Function

    Anhang A.3 Template für Beispiel-Unit TYPE END_TYPE // Die Typdefinition kann auch im IMPLEMENTATION Teil vorgenommen werden. // Allerdings ist diese Definition dann nicht in einer anderen Quelle // importierbar. Die Typdefinition kann jedoch für Variablen in allen POEs // der Quelle "sttemp_l_de" verwendet werden. Die Definition von Typen muss // vor der Deklaration der Variablen erfolgen.
  • Seite 547 Anhang A.3 Template für Beispiel-Unit TYPE END_TYPE // Die Typdeklaration kann auch in POEs vorgenommen werden. Der // grundlegende Unterschied besteht im Gültigkeitsbereich der // Typdekaration. Ein in einer POE deklarierter Typ kann nur für // Variablen innerhalb der betreffenden POE verwendet werden. VAR_INPUT // Im Stack der aufrufenden TASK, wird bei Aufruf auf // Stack gelegt, optional zu belegen.
  • Seite 548: A.3.6 Function Block

    Anhang A.3 Template für Beispiel-Unit A.3.6 Function Block // ****************************************************** // * FUNCTION_BLOCK // ****************************************************** // Die Deklaration eines FB oder FC muss vor der eigentlichen Verwendung // (dem Aufruf) in der Quelle platziert werden, damit der Code des // Bausteins an der aufrufenden Stelle bereits bekannt ist. FUNCTION_BLOCK FBmyFirst // Hier beginnt der Anweisungsteil der POE FUNCTION_BLOCK.
  • Seite 549: A.3.7 Program

    Anhang A.3 Template für Beispiel-Unit A.3.7 Program // ****************************************************** // * PROGRAM // ****************************************************** PROGRAM myPRG // Hier beginnt der Anweisungsteil der POE PROGRAM. VAR CONSTANT END_VAR TYPE END_TYPE // Die Typdefinition kann auch in POEs vorgenommen werden. Der // grundlegende Unterschied besteht im Gültigkeitsbereich der // Typdefinition.
  • Seite 550 Anhang A.3 Template für Beispiel-Unit instFBMyFirst (); // Aufruf des FB mit einer gültigen Instanz. retFCMyFirst := FCmyFirst(); // Aufruf des FC und Zuweisung des Rückgabewerts. WAITFORCONDITION xCond WITH TRUE DO // Die hier programmierten Anweisungen kommen sofort zur // Ausführung wenn die in der zugehörigen EXPRESSION definierte // Bedingung "xcond"...
  • Seite 551 Index _ControllerObjectType, 135 _device, 355, 365 _direct, 329, 334, 355, 365 _FixedGearType, 135 -, 160 _FormulaObjectType, 135 -1.#IND, 411, 413 _getSafeValue -1.#INF, 411, 413 Anwendung, 355 -1.#QNAN, 411, 413 _PathAxis, 135 _PathObjectTpye, 135 _project, 365 " _quality, 341, 365 " _SensorType, 135 Dereferenzierung, 260 _setSafeValue...
  • Seite 552 Index logisch, 166 Regeln für Bildung, 156, 166 Vergleichsausdrücke, 162, 166 Ausgangsparameter Abgeleiteter Datentyp Funktion, 197 ARRAY, 122 Funktionsbaustein, 197 Aufzählung, 125 Methode, 227 Enumerator, 125 Übergabe, 203, 230 Feld, 122 Zugriff im Funktionsbaustein, 208 STRUCT, 127 Struktur, 127 Ableitung einfacher Datentypen, 122 Abschnitte Syntax, 470 Basiselemente...
  • Seite 553: Index

    Index implizite Konvertierungen, 181 initialisieren, 141 Konvertierungen, 180 numerisch, 116 CamType, 135 STRING, 117 CASE-Anweisung STRUCT, 127 Beschreibung, 168 Struktur, 127 Codeattribute, 379 Syntax, 492 Compiler, 89 Technologieobjekt, 134 Attribut, 387 TYPE, 121 Dateizugriffsfehler, 513 Vererbung, 136 Deklarationsfehler in Datentypdeklarationen, 517 Zeit, 116 Deklarationsfehler in POE, 514 Datentyp-Spezifikation...
  • Seite 554 Index Beispiel für Programm, 88 Informationen, 540 externer, 79 Scannerfehler, 514 Funktionsleiste, 53 Syntaxfehler, Fehler im Ausdruck, 526 interner, 31 Warnungen, 532 ST-Editor, 31 Felder Einfache Datentypen Datentyp, 122 Ableitung, 122 mit definierter Länge, 122 Eingangsparameter mit dynamischer Länge, 198 Funktion, 197 Wertzuweisungen, 154 Funktionsbaustein, 197...
  • Seite 555 Index Datentypen, 116 Implementation Schreibweise, 109 Quelldatei-Abschnitt, 268 Gerät Implizite Datentyp-Konvertierungen, 181 Einstellungen, 394 Import Regeln für Bezeichner, 392 ST-Quelle, 78 Geräteglobale Anwendervariablen Initialisierung definieren, 305 Datentypen, 141 Variablenmodell, 291 Syntax, 490 Gleitpunktzahl Variablen, 141 Beschreibung, 110 Zeitpunkt der Variableninitialisierung, 312 Datentypen, 116 Instanzdeklaration FB Schreibweise, 110...
  • Seite 556 Index Konstantenblock Syntax, 503 Syntax, 482 Vergleichsoperatoren, 162 Kontrollanweisungen, 166 OutputCamType, 135 OVERLAP, 131 LABEL-Deklaration, 399 Lesezeichen, 49 Parameter Literaturhinweis, 4 Block (Syntax), 193, 225 Logischer Ausdruck; Bitfolgeausdruck; Ausdrücke Deklaration, 191, 224 logisch; Ausdrücke:Bitfolge; Deklaration, allgemein, 140 Operatoren:logisch, 164 Funktion und Funktionsbaustein, 191, 224 Lokaldatenstack, 306, 311 Übergabe (Ausgangsparameter), 203, 230 Lokale Variablen...
  • Seite 557 Index Programmorganisationseinheiten Einzelschrittverfolgung (MCC), 374 Quelldatei-Abschnitt, 270 erzeugen, 374 Syntax, 473 filtern, 377 Programmstruktur, 378 Leuchtspur (MCC), 374 Programmteil sortieren, 377 Siehe Quelldatei-Abschnitt, 265 TSI#currentTaskId, 374 Programmvariablen TSI#dwuser_1, 374 Definition, 298 TSI#dwuser_2, 374 im Datenmodell, 297 Variablenmodell, 291 Projekt öffnen, 85 REAL, 116 Projektvergleich Realzahl...
  • Seite 558 Index Speicherbedarf, 306, 311 Systemvariablen Sprachbeschreibung Variablenmodell, 291 Hilfen, 97, 445, 447 Vererbung, 136 Sprunganweisung, 399 Sprungmarke, 399 Sprungmarken Syntax, 488 T#MAX, 118 Standardfunktionen, 159 T#MIN, 118 Status Task I/O-Variable, 341 Einfluss auf Variableninitialisierung, 312 Programm (Testwerkzeug), 416 Programme zuordnen, 92 Status Variable Tastenkombination Variablen beobachten, 413...
  • Seite 559 Index UDINT, 116 initialisieren, 141 UDINT#MAX, 118 Instanzdeklaration FB, 205 UDINT#MIN, 118 Instanzdeklaration Klasse, 233 lokale, 298 Siehe anwenderdefinierter Datentyp, 120 Methode, 227 UINT, 116 Parameterdeklaration, 191, 224 UINT#MAX, 118 Prozessabbild, 329, 343 UINT#MIN, 118 remanent, 297 UNION, 131 statische, 298 Unit strukturiert, 154 Quelldatei-Abschnitt, 286...
  • Seite 560 Index Datentypen für Zahlen, 115 Schreibweise, 109 Zahlensysteme Schreibweise, 110 Zeichensatz, 99, 447 Zeilennummerierung, 52 Zeittypen Funktionen, 159 Konvertierungen, 180 Übersicht, 116 Zielvariable, 148 Zugriffszeiten Parameter, 204 Zusammengesetzte Datentypen, 122, 127 Zyklische Programmabarbeitung Einfluss auf I/O-Zugriffe, 329, 334 Einfluss auf I/O‑Zugriffe, 343 Einfluss auf Variableninitialisierung, 312 SIMOTION ST Structured Text Programmier- und Bedienhandbuch, 07/2017, A5E33437165A...

Diese Anleitung auch für:

Simotion st structured text

Inhaltsverzeichnis