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.
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 |
Der Datentyp Wert arbeitet mit Ganzzahlen und Gleitkommazahlen. |
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) |
,r |
nur lesefähig (read only) |
,rw |
lese- und schreibfähig |
,w |
nur schreibfähig (write only) |
,w+ |
nur schreibfähig (write only) - nicht bei jedem Baugruppentreiber verfügbar |
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).
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.
Durch Selektion der Buttons "Neu..." oder "Bearbeiten..." kann die Konfiguration der Variablen dialogbasierend erfolgen.