Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
41
Добавлен:
11.10.2020
Размер:
3.04 Mб
Скачать

Der Deklarationseditor...

'Extras' 'Instanz öffnen'

Dieser Befehl entspricht dem Befehl 'Projekt' 'Instanz öffnen'. Er steht im Kontextmenü oder im Menü Extras zur Verfügung, wenn der Cursor in Texteditoren auf dem Namen eines Funktionsblocks steht bzw. wenn in grafischen Editoren die Box eines Funktionsblocks markiert ist.

Die Funktion 'Komponenten auflisten'

Wenn in den Projektoptionen in der Kategorie Editor die Option Komponenten auflisten aktiviert ist, steht in allen Editoren, im Watchund Rezepturverwalter, in der Visualisierung und in der Tracekonfiguration die "Intellisense Funktion" zur Verfügung:

Wird anstelle eines Bezeichners ein Punkt "." eingegeben, öffnet sich eine Auswahlliste aller lokalen und globalen Variablen. Aus dieser Liste kann ein Element selektiert und durch Drücken der Eingabetaste hinter dem Punkt eingefügt werden. Das Einfügen funktioniert ebenfalls nach einem Doppelklick auf das Listenelement.

Wird als Bezeichner eine Funktionsblockinstanz oder eine als Struktur definierte Variable gefolgt

von einem Punkt eingegeben, öffnet sich nach Eingabe des Punktes eine Auswahlliste der Ein-

und

Ausgangsvariablen

des

Funktionsblocks

bzw.

der

Strukturkomponenten.

Beispiel:

 

 

 

 

 

Eingabe von "struvar." ->

die

Komponenten der

Struktur

struct1

werden angeboten:

5.2 Der Deklarationseditor...

5.2.1Arbeiten im Deklarationseditor

Der Deklarationseditor wird verwendet bei der Variablendeklaration von Bausteinen und globalen Variablen, zur Datentypdeklaration, und im Watchund Rezepturverwalter. Er verfügt über die Windows-üblichen Funktionalitäten und auch die der IntelliMouse kann genützt werden, wenn der entsprechende Treiber installiert ist.

Im Überschreibmodus wird in der Statusleiste 'ÜB' schwarz angezeigt, zwischen Überschreibund Einfügemodus kann mit der Taste <Einfg> gewechselt werden.

Die Variablendeklaration wird durch Syntaxcoloring unterstützt.

Die wichtigsten Befehle finden Sie im Kontextmenü (rechte Maustaste).

Deklarationsteil

Im Deklarationsteil eines Bausteins werden alle Variablen deklariert, die nur in diesem Baustein verwendet werden. Dies können Eingabevariablen, Ausgabevariablen, EinAusgabevariablen, lokale Variablen, remanente Variablen und Konstanten sein. Die Deklarationssyntax orientiert sich am Standard der IEC 61131-3.

Beachten Sie die Möglichkeit, für das initiale Füllen des Deklarationsteils beim Anlegen eines neuen Objekts vom Typ Globale Variablen', 'Dateityp', 'Funktion', 'Funktionsbaustein' oder 'Programm' Objektvorlagen zu verwenden (siehe Kapitel 4.3, 'Datei' 'Aus Vorlage öffnen'. Außerdem besteht die Möglichkeit, Pragma-Anweisungen einzufügen (siehe Kapitel 5.2.3).

5-2

CoDeSys V2.3

5 - Die Editoren

Ein Beispiel für eine korrekte Variablendeklaration im CoDeSys-Editor:

Eingabevariablen

Zwischen den Schlüsselwörtern

VAR_INPUT und END_VAR werden alle Variablen deklariert, die als Eingabevariablen eines Bausteins dienen, das heißt, an der Aufrufstelle kann der Wert der Variablen beim Aufruf mitgegeben werden.

Beispiel:

VAR_INPUT

in1:INT; (* 1. Eingabevariable*)

END_VAR

Beispiel für den Zugriff auf eine Eingabevariable eines Funktionsblocks

Der Funktionsblock FUB hat eine Eingabevariable in1 vom Typ int.

Deklaration:

PROGRAM prog

VAR inst:FUB;

END_VAR

Programmteil in AWL:

LD 17

ST inst.in1

CAL inst

Programmteil in ST:

inst(in1:=17);

Ausgabevariablen

Zwischen den Schlüsselwörtern

VAR_OUTPUT und END_VAR werden alle Variablen deklariert, die als Ausgabevariablen eines Bausteins dienen, das heißt, diese Werte werden dem aufrufenden Baustein zurückgeliefert, dort können diese abgefragt und weiterverwendet werden.

Beispiel:

VAR_OUTPUT

out1:INT; (* 1. Ausgabevariable*)

END_VAR

CoDeSys V2.3

5-3

Der Deklarationseditor...

EinAusgabevariablen

Zwischen den Schlüsselwörtern

VAR_IN_OUT und END_VAR werden alle Variablen deklariert, die als Einund Ausgabevariablen eines Bausteins dienen.

Achtung: Bei dieser Variablen wird direkt der Wert der übergebenen Variablen verändert ("Übergabe als Pointer", Call-by-Reference). Deshalb kann der Eingabewert für eine solche Variable keine Konstante sein. Deshalb können auch VAR_IN_OUT Variablen eines Funktionsblocks nicht von außen direkt über <Funktionsblockinstanz>.<Ein-/Ausgabevariable> gelesen oder beschrieben werden !Beispiel:

Beispiel:

VAR_IN_OUT

inout1:INT; (* 1. EinAusgabevariable *)

END_VAR

Lokale Variablen

Zwischen den Schlüsselwörtern

VAR und END_VAR werden alle lokalen Variablen eines Bausteins deklariert. Diese haben keine Verbindung nach außen, das heißt, es kann nicht von außen auf sie geschrieben werden.

Beispiel:

VAR

loc1:INT; (* 1. Lokale Variable*)

END_VAR

Remanente Variablen

Remanente Variablen können ihren Wert über die übliche Programmlaufzeit hinaus behalten. Dazu gehören Retain-Variablen und Persistente Variablen.

Beispiel:

VAR RETAIN

rem1:INT; (* 1. Remanente Variable*) END_VAR

Retain-Variablen werden mit dem Schlüsselwort RETAIN gekennzeichnet. Diese Variablen behalten ihren Wert nach einem unkontrolliertem Beenden wie auch nach normalem Ausund Einschalten der Steuerung (bzw. beim Kommando 'Online' 'Reset'.) Bei erneutem Start des Programms wird mit den gespeicherten Werten weitergearbeitet. Ein Anwendungsbeispiel wäre ein Stückzähler in einer Fertigungsanlage, der nach einem Stromausfall weiterzählen soll.

Alle anderen Variablen werden neu initialisiert, entweder mit ihren initialisierten Werten oder mit den Standardinitialisierungen.

Im Gegensatz zu persistenten Variablen werden Retain-Variablen allerdings bei einem erneuten Programm-Download neu initialisiert.

Persistente Variablen werden mit dem Schlüsselwort PERSISTENT gekennzeichnet. Im Gegensatz zu Retain-Variablen behalten Sie ihren Wert nur nach einem erneuten Download ('Online' 'Laden'), nicht aber nach 'Online' 'Reset', 'Online' 'Reset Ursprung' oder 'Online' 'Reset Kalt' (siehe jeweils Kapitel 4.6), da sie nicht im "Retain-Bereich" gespeichert werden. Sollen auch

persistente Variablen nach einem unkontrollierten Steuerungsausfall ihre vorherigen Werte behalten, müssen sie also zusätzlich als VAR RETAINs deklariert werden. Ein Anwendungsbeispiel für "persistente Retain-Variablen" wäre ein Betriebsstundenzähler, der nach einem Stromausfall weiterzählen soll.

Achtung: - Wenn eine lokale Variable in einem Programm als RETAIN deklariert ist, wird genau diese Variable im Retain-Bereich gespeichert (wie eine globale Retain-Variable).

-Wenn eine lokale Variable in einem Funktionsblock als RETAIN deklariert ist, wird die komplette Instanz dieses Funktionsblocks im Retain-Bereich gespeichert (alle Daten des Bausteins), wobei jedoch nur die deklarierte Retain-Variable als solche behandelt wird.

-Wenn eine lokale Variable in einer Funktion als RETAIN deklariert ist, hat dies keine Auswirkung.

5-4

CoDeSys V2.3

5 - Die Editoren

Die Variable wird nicht im Retain-Bereich gespeichert ! Wird eine lokale Variable in einer Funktion als PERSISTENT deklariert, bleibt dies ebenfalls ohne Wirkung !

x = Wert bleibt erhalten

- = Wert wird neu initialisiert

 

 

 

 

 

 

 

 

nach Online-Befehl

 

VAR

VAR RETAIN

VAR PERSISTENT

VAR RETAIN PERSISTENT

 

 

 

 

 

VAR PERSISTENT RETAIN

 

 

 

 

 

 

Reset

 

-

x

-

x

 

 

 

 

 

 

Reset (Kalt)

 

-

-

-

-

 

 

 

 

 

 

Reset (Ursprung)

 

-

-

-

-

 

 

 

 

 

 

Laden (=Download)

 

-

-

x

x

 

 

 

 

 

 

Konstanten, Typed Literals

Konstanten werden mit dem Schlüsselwort

CONSTANT gekennzeichnet. Sie können lokal oder global deklariert werden. Syntax:

VAR CONSTANT bzw. VAR_GLOBAL CONSTANT

<Bezeichner>:<Typ>:= <Initialisierung>;

END_VAR

Beispiel:

VAR CONSTANT

con1:INT:=12; (* 1. Konstante*) END_VAR

Eine Auflistung möglicher Konstanten und Information zur Verwendung von getypten Konstanten (Typed Literals) finden Sie im Anhang C.

Externe Variablen

Globale Variablen, die in einen Baustein importiert werden sollen, werden mit dem Schlüsselwort EXTERNAL gekennzeichnet. Sie erscheinen online auch im Watch-Fenster des Deklarationseditors.

Wenn die Deklaration unter VAR_EXTERNAL nicht mit der globalen Deklaration übereinstimmt, erscheint folgende Fehlermeldung beim Übersetzen: "Deklaration von '<Name>' stimmt nicht mit globaler Deklaration überein!".

Wenn die globale Variable nicht existiert, erscheint die folgende Meldung: "Unbekannte globale Variable: '<variable>'!".

Beispiel:

VAR_EXTERNAL

var_ext1:INT:=12; (* 1st external variable *) END_VAR

Schlüsselwörter

Schlüsselwörter sind in allen Editoren in Großbuchstaben zu schreiben. Schlüsselwörter dürfen nicht als Variablennamen verwendet werden.

Variablendeklaration

Eine Variablendeklaration hat folgende Syntax: <Bezeichner> {AT <Adresse>} :<Typ> {:= <Initialisierung>}; Die Teile in geschweiften Klammern {} sind optional.

CoDeSys V2.3

5-5

Der Deklarationseditor...

Für den Bezeichner, also den Namen von Variablen ist zu beachten, dass er keine Leerstellen und Umlaute enthalten darf, er darf nicht doppelt deklariert werden und nicht identisch mit Schlüsselwörtern sein. Groß-/Kleinschreibung bei Variablen wird nicht beachtet, das heißt VAR1, Var1 und var1 sind keine unterschiedlichen Variablen. Unterstriche sind in Bezeichnern signifikant, z.B. werden "A_BCD" und "AB_CD" als unterschiedliche Bezeichner interpretiert. Mehrfach aufeinander folgende Unterstriche am Anfang eines Bezeichners oder in einem Bezeichner sind nicht erlaubt. Die Bezeichnerlänge sowie der signifikante Bereich sind unbegrenzt.

Alle Variablendeklarationen und Datentypelemente können Initialisierungen (Zuweisung eines initialen Wertes) enthalten. Sie erfolgen mit dem Zuweisungsoperator " := ". Für Variablen von elementaren Typen sind diese Initialisierungen Konstanten. Die Default-Initialisierung ist für alle Deklarationen 0.

Beispiel:

var1:INT:=12; (* Integer-Variable mit Initialwert 12*)

Wenn Sie eine Variable direkt an eine bestimmte Adresse binden wollen, dann müssen Sie die Variable mit dem Schlüsselwort AT deklarieren.

Zur schnelleren Eingabe von Deklarationen verwenden Sie den Kurzformmodus.

In Funktionsblöcken können Variablen auch mit unvollständigen Adressangaben spezifiziert werden. Um solche Variablen in einer lokalen Instanz zu nutzen, muss dafür ein Eintrag in der

Variablenkonfiguration (Ressourcen) vorgenommen werden. Beachten Sie die Möglichkeit des automatischen Deklarierens.

AT-Deklaration

Wenn Sie eine Variable direkt an eine bestimmte Adresse binden wollen, dann müssen Sie die Variable mit dem Schlüsselwort AT deklarieren. Der Vorteil einer solchen Vorgehensweise ist, dass man einer Adresse einen aussagekräftigeren Namen geben kann, und dass man eine eventuelle Veränderung eines Einoder Ausgangssignals nur an einer Stelle (nämlich in der Deklaration) zu ändern braucht.

Beachten Sie, dass man auf Variablen, die auf einen Eingang gelegt sind, nicht schreibend zugreifen kann.

Beispiele:

schalter_heizung7 AT %QX0.0: BOOL; lichtschrankenimpuls AT %IW2: WORD; ablage AT %MX2.2: BOOL;

Hinweis: Wenn boolesche Variablen auf eine Byte-, Wordoder DWORD-Adresse gelegt werden, belegen sie 1 Byte mit TRUE bzw. FALSE, nicht nur das erste Bit nach dem Offset !

'Einfügen' 'Deklarations Schlüsselworte'

Mit diesem Befehl öffnen Sie eine Liste aller Schlüsselwörter, die im Deklarationsteil eines Bausteins benutzt werden können. Nachdem ein Schlüsselwort ausgewählt, und die Wahl bestätigt wurde, wird das Wort an der aktuellen Cursorposition eingefügt.

Die Liste erhalten Sie auch, wenn Sie die Eingabehilfe (<F2>) aufrufen und die Kategorie

Deklarationen auswählen.

'Einfügen' 'Typen'

Mit diesem Befehl erhalten Sie eine Auswahl der möglichen Typen für eine Variablendeklaration. Die Liste erhalten Sie auch, wenn Sie die Eingabehilfe (<F2>) aufrufen.

Die Typen sind eingeteilt in die Kategorien:

Standard-Typen BOOL, BYTE etc.

Definierte Typen Strukturen, Aufzählungstypen etc.

Standard-Funktionsblöcke für Instanzdeklarationen

5-6

CoDeSys V2.3

5 - Die Editoren

• Definierte Funktionsblöcke für Instanzdeklarationen

CoDeSys unterstützt sämtliche Standard-Typen der Norm IEC 61131-3.

Beispiele für die Verwendung der verschiedenen Typenbefinden sich im Anhang C.

Syntaxcoloring

In allen Editoren werden Sie bei der Implementierung und der Variablendeklaration optisch unterstützt. Fehler werden vermieden bzw. schneller entdeckt, dadurch dass der Text farbig dargestellt wird.

Ein ungeschlossener Kommentar, der dadurch Anweisungen auskommentiert, wird sofort bemerkt; Schlüsselwörter werden nicht versehentlich falsch geschrieben usw.

Es gilt folgende Farbgebung:

• Blau

Schlüsselwörter

• Grün

Kommentare in den Texteditoren

• Rosa

Spezielle Konstanten (z.B. TRUE/FALSE, T#3s, %IX0.0)

• Rot

Fehlerhafte Eingabe (z.B. ungültige Zeitkonstante, Schlüsselwort kleingeschrieben,...)

• Schwarz

Variablen, Konstanten, Zuweisungsoperatoren, ...

Kurzformmodus

Der Deklarationseditor von CoDeSys bietet Ihnen die Möglichkeit des Kurzformmodus. Dieser wird aktiviert, wenn Sie eine Zeile mit <Strg><Eingabetaste> beenden.

Folgende Kurzformen werden unterstützt:

Alle Bezeichner bis auf den letzten Bezeichner einer Zeile werden zu Variablenbezeichnern der Deklaration.

Der Typ der Deklaration wird durch den letzten Bezeichner der Zeile bestimmt, hierbei gilt:

B oder BOOL ergibt BOOL

I oder INT ergibt INT

R oder REAL ergibt REAL

S oder STRING ergibt STRING

Wenn durch diese Regeln kein Typ festgelegt werden konnte, dann ist der Typ BOOL und der letzte Identifikator wird nicht als Typ benutzt (Beispiel 1.).

Jede Konstante wird, je nach Typ der Deklaration, zu einer Initialisierung oder einer Stringlänge (Beispiele 2. und 3.).

Eine Adresse (wie im %MD12) wird um das AT ... Attribut erweitert (Beispiel 4.).

Ein Text nach einem Strichpunkt (;) wird ein Kommentar (Beispiel 4.).

Alle anderen Zeichen in der Zeile werden ignoriert (wie z.B. das Ausrufezeichen im letzten Beispiel).

Beispiele:

 

 

 

 

Kurzform

Deklaration

 

A

 

A:

BOOL;

 

A B I 2

 

A, B: INT := 2;

 

ST S 2;

Ein String

ST: STRING(2); (* Ein String *)

X %MD12

R 5; Reelle Zahl

X AT %MD12: REAL := 5.0;

(* Reelle Zahl *)

B !

 

B: BOOL;

 

CoDeSys V2.3

5-7

Der Deklarationseditor...

Automatisch deklarieren

Wenn im Dialog 'Projekt' 'Optionen' in der Kategorie Editor die Option Automatisch deklarieren gewählt wurde, so erscheint in allen Editoren nach Eingabe einer noch nicht deklarierten Variablen ein Dialog, mit dessen Hilfe diese Variable deklariert werden kann.

Dialog zur Variablendeklaration

Wählen Sie mit Hilfe der Combobox Klasse, ob es sich um eine lokale Variable (VAR) Eingabevariable (VAR_INPUT), Ausgabevariable (VAR_OUTPUT), EinAusgabevariable(VAR_IN_OUT) oder eine globale Variable (VAR_GLOBAL) handelt.

Mit den Optionen CONSTANT, RETAIN, PERSISTENT können sie definieren, ob es sich um eine Konstante oder eine remanente Variable handelt.

Das Feld Name ist mit dem im Editor eingegebenen Variablennamen vorbelegt, das Feld Typ mit

BOOL. Mit der Schaltfläche erhalten Sie hier den Dialog der Eingabehilfe zur Auswahl aller möglichen Datentypen.

Deklaration von Arrays (Feldern):

Wird als Typ der Variable ARRAY (Feld) ausgewählt, so erscheint der Dialog zur Eingabe der Array-Grenzen.

Deklarationseditor für Arrays

Für jede der drei möglichen Dimensionen (Dim.) können unter Start und Ende die Arraygrenzen eingegeben werden, indem durch Mausklick auf das entsprechende Feld ein Editierrahmen

geöffnet wird. Im Feld Typ wird der Datentyp des Arrays angegeben. Über die Schaltfläche kann hierzu ein Eingabehilfedialog aufgerufen werden.

Beim Verlassen des Array-Grenzen-Dialogs über die Schaltfläche OK wird aus den Angaben das Feld 'Typ' im Dialog Variablendeklaration im IEC-Format belegt. Beispiel: ARRAY [1..5, 1..3] OF INT

Im Feld Initialwert können Sie den Initialwert der zu deklarierenden Variable eintragen. Ist diese

ein Array oder eine gültige Struktur, können Sie über die Schaltfläche oder einen speziellen Initialisierungsdialog öffnen, bzw. bei anderen Typen den Eingabehilfedialog.

5-8

CoDeSys V2.3

5 - Die Editoren

Im Initialisierungsdialog für ein Array erhalten Sie eine Auflistung der Array-Elemente und können mit Mausklick auf die Stelle hinter ":=" ein Editierfeld zum Eintragen des Initialwerts eines Elements öffnen.

Im Initialisierungsdialog für eine Struktur werden die einzelnen Komponenten in Baumstruktur dargestellt. In Klammern hinter dem Variablennamen stehen Typ und Default-Initialwert der Komponente, dahinter folgt jeweils ":=". Bei Mausklick auf das Feld hinter ":=" öffnet ein Editierfeld, in dem Sie den gewünschten Initialwert eingeben. Ist eine Komponente ein Array, können im Initialisierungsdialog durch Mausklick auf das Pluszeichen vor dem Array-Namen die einzelnen Felder des Arrays aufgeklappt und mit Initialwerten editiert werden.

Nach Verlassen des Initialisierungsdialogs mit OK erscheint im Feld Initialwert des Deklarationsdialogs die Initialisierung des Arrays bzw. der Struktur im IEC-Format.

Beispiel: x:=5,feld:=2,3,struct2:=(a:=2,b:=3)

Im Feld Adresse können Sie die zu deklarierende Variable an eine IEC-Adresse binden (ATDeklaration).

Gegebenenfalls geben Sie einen Kommentar ein. Der Kommentar kann mittels der Tastenkombination <Strg>+<Eingabetaste> mit Zeilenumbrüchen versehen werden.

Durch Drücken von OK wird der Deklarationsdialog geschlossen und die Variable gemäß IEC-Syntax in den entsprechenden Deklarationseditor eingetragen.

Hinweis: Den Dialog zur Variablendeklaration erhalten Sie ebenfalls auf Anfrage über den Befehl 'Bearbeiten' 'Variablen' Deklaration' (siehe Allgemeine Editierfunktionen). Steht der Cursor auf einer Variablen, kann im Offline Modus mit <Shift> <F2> das Autodeclare-Fenster mit den aktuellen variablenbezogenen Einstellungen geöffnet werden.

Zeilennummern im Deklarationseditor

Im Offline Modus markiert ein einfacher Klick auf eine spezielle Zeilennummer die gesamte Textzeile.

Im Online Modus lässt ein einzelner Klick auf eine bestimmte Zeilennummer die Variable in dieser Zeile aufoder zuklappen, falls es sich um eine strukturierte Variable handelt.

Deklarationen als Tabelle

Ist die Option Deklarationen als Tabelle im Optionendialog in der Kategorie Editor aktiviert, erhalten Sie den Deklarationseditor in einer tabellarischen Darstellung. Wie in einem Karteikasten können Sie einzeln die Registerkarten der jeweiligen Variablenarten auswählen und die Variablen editieren.

Für jede Variable erhalten Sie folgende Felder zum Eintrag:

Name:

Geben Sie den Bezeichner der Variablen ein.

Adresse:

Geben Sie gegebenenfalls die Adresse der Variablen ein (AT-Deklaration)

Typ:

Geben Sie den Typ der Variablen ein. (Bei der Instanzierung eines

 

Funktionsblocks, den Funktionsblock)

Initial:

Geben Sie eine eventuelle Initialisierung der Variablen ein. (entsprechend

 

dem Zuweisungsoperator " := ")

Kommentar: Geben Sie hier einen Kommentar ein.

Die beiden Darstellungsarten des Deklarationseditors können problemlos gewechselt werden. Im Online Modus gibt es für die Darstellung des Deklarationseditors keine Unterschiede.

Um eine neue Variable zu editieren, führen Sie den Befehl 'Einfügen' 'Neue Deklaration' aus.

CoDeSys V2.3

5-9

Соседние файлы в папке 759-333