Die Variablen

Im Ordner Variablen werden die globalen Variablen projektiert. Die sichtbaren Spalten der Darstellung können über Menü->Ansicht->Anpassen->Variablenansicht ein- bzw. ausgeblendet werden.

variablen.gif

Die Variablen die hier definiert werden sind im ganzen Projekt verfügbar und entsprechen der Anzahl der lizenzierten Variablen. Variablen werden hinzugefügt indem die Pfeil nach unten - Taste gedrückt wird, wenn die unterste Variablenzeile den Eingabefokus besitzt.

Der Variablenname

Variablen werden verwendet, um Verbindungen zwischen Bauelementen, dem Zyklusprogramm und der Hardware herzustellen. Eine Variable kann über ihren Namen oder ihre Variablennummer angesprochen werden. Die Variablennummer entspricht der Zeilennummer in der Variablentabelle.

Die numerische Variablenadressierung (#n) sollte vermieden werden, da sie unflexibel und anfällig für Änderungen ist. Variablennummern sind nur Zeilennummern in der Variablentabelle und können sich ändern, wenn Variablen hinzugefügt, verschoben oder gelöscht werden. Der Zugriff über Variablennummern wird in zukünftigen Versionen nicht mehr unterstützt.

Die Variablenbeschreibung

Dieses Feld dient dazu einen Kommentar zur Variable aufzunehmen. Dieser wird bei aktivem OPC UA für diese Variable als Node-Attribut Description sichtbar.

Der Datentyp

Victory unterstützt drei Datentypen.

Datentyp

Wertebereich

Beschreibung

value

max. 32 Bit
1,7 * 10+/- 308 (15 Stellen)

Der Datentyp Wert arbeitet mit Ganzzahlen und Gleitkommazahlen.
Eine Bitadressierung ist ebenfalls möglich.

string

unbegrenzte Länge

Der Datentyp Text arbeitet mit 16-Bit Unicode Zeichenfolgen und kann indiziert angesprochen werden.

array

unbegrenzte Länge

Der Datentyp Array arbeitet mit value-Werten und kann indiziert angesprochen werden.

 

Die Bits einer Variable vom Datentyp value können ganz einfach angesprochen werden. Hierzu wird nach dem Variablennamen die Bitnummer mit einem Punkt getrennt angegeben. Soll das Bit 20 der Variable Eingang angesprochen werden, so schreibt man Eingang.0.
Folgender Ausdruck zeigt den Komfort dieser Methode: Ausgang.2 = Eingang.1 & (Eingang.3 | Eingang.4).

Indizierte Adressierung bedeutet indirekter Zugriff auf Einzelelemente eines String's bzw. eines Array's. Ist ein String strText z.B. 10 Zeichen lang, so können mit den Anweisungen strText[0], strText[1] bis strText[9] die einzelnen Zeichen des String ausgelesen werden.

Ein Beispiel einer indizierten Adressierung:

value strText = "10.23.234.183"; 
//Tausche alle '.' in strText gegen '#' aus...
for (value i = 0; i < StringGetLength (strText); i ++) 
    if (strText[i] == '.') 
        strText[i] = '#';
    end 
end  
//einfachere Lösung 
StringReplace (strText, ".", "#");

Die Verbindung zu Baugruppen

In den nachfolgenden Tabellenelementen wird die Anbindung der Variablen an die gewünschte Baugruppe projektiert.

Verbindung vorhanden

Soll eine Variable mit einer Baugruppe verbunden werden, so muss das Feld Verbindung vorhanden aktiviert werden. Automatisch wird dann die erste Baugruppe der Baugruppenliste ausgewählt. Falls Victory nur mit einer Baugruppe verbunden ist, kann die Spalte Verbindung Baugruppe ausgeblendet werden (über Menü->Ansicht->Anpassen->Variablenansicht).

Verbindung Baugruppe

In diesem aufklappbaren Listenfeld sind alle projektierten Baugruppen aufgeführt. Wählen Sie den gewünschten Baugruppentreiber für diese Verbindung. Der nachfolgende Baugruppenkanal bezieht sich bei der Syntaxüberprüfung auf diesen Baugruppentreiber. Falls Victory nur mit einer Baugruppe verbunden ist, kann diese Spalte ausgeblendet werden (über Menü->Ansicht->Anpassen->Variablenansicht).

Verbindung Kanal

In diesem Eingabefeld wird die symbolische Adresse der Verbindung eingegeben. Der Syntax variiert von Baugruppe zu Baugruppe, da bei unserer Implementierung der Baugruppentreiber sehr darauf geachtet wird, sich so nahe wie mögliche an den Adressierungssyntax der Hardwarehersteller anzulehnen. Bei einigen Baugruppen existieren vordefinierte Basisadressen diese werden falls vorhanden in dem aufklappbarem Listenfeld aufgelistet.

Als Erweiterung des Orginalsyntax muss bei der Anbindung eines Strings bzw. Arrays zusätzlich noch die Anzahl der Elemente angegeben werden. Diese Angabe ist allerdings nur notwendig, wenn dies der entsprechende Baugruppentreiber verlangt.

Folgender Syntax gilt:

zusätzliche Angabe

Beschreibung

<ohne>

nur ein Element ist verbunden (Standard)

-n

Anzahl n von Elementen die ab der Startadresse mit verbunden sind.

 

Hierzu ein Beispiel:

 

Als weitere Erweiterung des Orginalsyntax muss bei vielen unserer Baugruppentreibern die Lese- und/oder Schreibfähigkeit eines Kanals explizit angegeben werden.
In der Regel gilt folgender Syntax:

zusätzliche Angabe

Beschreibung

<ohne>

nur lesefähig (read only)
Der Wert des Baugruppenkanals wird entsprechend dem projektiertem Aktualisierungsverfahren in diese Variable eingelesen.

,r

nur lesefähig (read only)
Der Wert des Baugruppenkanals wird entsprechend dem projektiertem Aktualisierungsverfahren in diese Variable eingelesen.

,rw

lese- und schreibfähig
Der Wert des Baugruppenkanals wird entsprechend dem projektiertem Aktualisierungsverfahren in diese Variable eingelesen. Wird die Variable in Victory auf einen Wert gesetzt, so wird dieser Wert entsprechend dem projektiertem Schreibverfahren zur Baugruppe übertragen.

,w

nur schreibfähig (write only)
Der Wert des Baugruppenkanals wird beim Starten von Victory einmal eingelesen, falls dies bei dieser Baugruppe möglich ist. Dann wird der Wert nur noch entsprechend dem projektiertem Schreibverfahren zur Baugruppe übertragen, falls der Wert der Variable gesetzt wird.

,w+

nur schreibfähig (write only) - nicht bei jedem Baugruppentreiber verfügbar
Der Wert des Baugruppenkanals wird niemals eingelesen. Der Wert wird entsprechend dem projektiertem Schreibverfahren zur Baugruppe übertragen, falls der Wert der Variable gesetzt wird.

Verbindung Anpassen

Wurde die symbolische Adresse des verbundenen Baugruppenkanals richtig eingegeben, so wird das aufklappbare Listenfeld zur Formatanpassung mit den möglichen Umwandlungsformen gefüllt.

Folgende Anpassungen existieren:

Formatanpassung

Beschreibung

abs

vorzeichenloser n-Bit Wert

int

vorzeichenbehafteter n-Bit Wert

BCD

BCD kodierter n-Bit Wert.

float

Gleitkommawert 32-Bit, gemäß IEEE 754

text

Text mit 8-Bit Zeichensatz

[abs]

Array von vorzeichenlosen n-Bit Werten

[int]

Array von vorzeichenbehafteten n-Bit Werten

[BCD]

Array von BCD kodierten n-Bit Werten

[float]

Array von 32-Bit Gleitkommawerten, gemäß IEEE 754

 

Wurde eine Formatanpassung gewählt, dann ist auch der Datentyp der Variable diesem Format anzupassen. D.h. ein einzelner Wert sollte nicht mit einer Variable vom Datentyp Array verbunden werden.

Startwert

Startwerte dienen beispielsweise zum Initialisieren der Hardware. Natürlich können sie ebenso verwendet werden, um definierte Einschaltzustände zu realisieren.

Ersatzwert

Bei hardwaregebundenenen Variablen können Ersatzwerte definiert werden, die bei einer Verbindungstrennung dann an Stelle des zuletzt von der Hardware gelesenen Wertes verwendet werden.

Speichern

Hier kann selektiert werden, in welcher Rezeptur eine Variable gespeichert werden soll. Die Projektierung der Rezepturen erfolgt über den Menüpunkt "Extras" --> Rezepturen.

Spiegeln

Hier selektierte Variablen werden zur Laufzeit bei jeder Änderung in die Projekt-Datenbank in die Tabelle "Vars" gespiegelt (siehe unten).

vars.gif
  
 
Netzwerkfähigkeit

Jede Variable kann für andere Victory - Anwendungen netzwerkfähig geschaltet werden. Die Verbindung zu einer solchen Variablen erfolgt dann ähnlich wie die Verbindung eines Baugruppenkanals.
  

Innerhalb jedes Bauelementes ist über den Button "Variablen..." ein direkter Wechsel zur dialogbasierten Variableneingabe (siehe unten) möglich.

vardialog1.gif

 

Durch Selektion der Buttons "Neu..." oder "Bearbeiten..." kann die Konfiguration der Variablen dialogbasierend erfolgen.

vardialog2.gif

 

vardialog3.gif