Das #Variable-Objekt dient zur Darstellung oder/und Eingabe einer numerischen/alphanumerischen Variable.
Beispiel
  
Parameter
Object
Spalte A
|
M/O
|
Default
|
Beschreibung
|
#Variable
|
M
|
|
Darstellung oder/und Eingabe einer numerischen/alphanumerischen Variable
|
Text/File
Spalte B
|
M/O
|
Default
|
Beschreibung
|
[text]<format>[text]
|
M
|
|
Statischer Text kann mit einem Format kombiniert werden. Diese Formate werden weiter unten beschrieben.
|
Siehe auch Masssysteme
Formate
Um den Text, der im Variable Objekt dargestellt wird, zu formatieren können folgende Formate verwendet werden. Zur Erklärung sehen Sie hier das Grundgerüst:
Text %[Vorzeichen][Vorkommastellen].[Nachkommastellen][Typ] Text
Vorzeichen
Vorzeichen
|
Beschreibung
|
+
|
Wird dieses Zeichen vorangestellt, so wird immer ein Vorzeichen ("+" oder "-") angegeben.
|
0
|
Wird dieses Zeichen vorangestellt, so werden alle nicht verwendeten Zeichen mit "0" aufgefüllt.
|
Beispiel
Eingabe
|
Format
|
Ausgabe
|
10000
|
%+d
|
"+10000"
|
10000
|
%08d
|
"00010000"
|
Vorkommastellen
Zahl, gibt die Anzahl Stellen links des Dezimalpunkts an.
Beispiel
Eingabe
|
Format
|
Ausgabe
|
10000
|
%8d
|
" 10000"
|
Nachkommastellen
Zahl, gibt die Anzahl Stellen rechts des Dezimalpunkts an.
Beispiel
Eingabe
|
Format
|
Ausgabe
|
100.1111
|
%4.2f
|
" 100.11"
|
Typ
Typ
|
Beschreibung
|
Bits
|
b
|
Binärdarstellung
|
16
|
lb
|
Binärdarstellung
|
32
|
llb
|
Binärdarstellung
|
64
|
d oder i
|
Ganzzahldarstellung mit Vorzeichen
|
16
|
ld oder li
|
Ganzzahldarstellung mit Vorzeichen
|
32
|
lld oder lli
|
Ganzzahldarstellung mit Vorzeichen
|
64
|
u
|
Ganzzahldarstellung ohne Vorzeichen
|
16
|
lu
|
Ganzzahldarstellung ohne Vorzeichen
|
32
|
llu
|
Ganzzahldarstellung ohne Vorzeichen
|
64
|
f oder g
|
Fliesskommazahl mit Vorzeichen
|
32
|
lf oder lg
|
Fliesskommazahl mit Vorzeichen
|
64
|
c
|
Buchstabe
|
8
|
s
|
Text
|
|
x
|
Hexadezimaldarstellung
|
16
|
lx
|
Hexadezimaldarstellung
|
32
|
llx
|
Hexadezimaldarstellung
|
64
|
e
|
Exponentialdarstellung
|
64
|
Ganzzahlwerte mit Dezimalpunkt
Es ist möglich Ganzzahlwerte auf dem Bildschirm mit Dezimalpunkt darzustellen. Ein Wert 1000 Gramm kann auf dem Bildschirm in der Einheit kg 1.000 dargestellt und auch eingegeben werden. Dadurch kann in den meisten Fällen auf der Steuerung auf eine aufwendige Gleitkomma-Arithmetik verzichtet werden (Geschwindigkeit!).
Beispiel: %3.2d
Formate von Datum und Zeit
Die Datentypen DT, DATE und TIME werden folgendermassen projektiert, wobei diese Projektierung sowohl als Eingabe- wie auch Ausgabemaske verwendet wird:
DT
Format
|
Beschreibung
|
Anzahl Zeichen
|
Wertebereich
|
d
|
Tag des Monats, dargestellt durch zwei Zahlen
|
2
|
01-31
|
m
|
Monat des Jahres, dargestellt durch zwei Zahlen
|
2
|
01-12
|
y
|
Jahr, dargestellt durch zwei Zahlen
|
2
|
00-99
|
Y
|
Jahr, dargestellt durch vier Zahlen
|
4
|
0001-9999
|
H
|
Stunde, dargestellt durch zwei Zahlen
|
2
|
00-23
|
M
|
Minute, dargestellt durch zwei Zahlen
|
2
|
00-59
|
S
|
Sekunde, dargestellt durch zwei Zahlen
|
2
|
00-59
|
P
|
AM/PM - Darstellung
Die Stunden werden umgerechnet und P wird durch "AM" oder "PM" ersetzt.
Siehe auch: AM/PM Zeitsystem
|
2
|
01-12 AM und
01-12 PM
|
p
|
am/pm - Darstellung
Die Stunden werden umgerechnet und p wird durch "am" oder "pm" ersetzt.
Siehe auch: AM/PM Zeitsystem
|
2
|
01-12 am und
01-12 pm
|
a
|
Abgekürzter Wochentag, in der Sprache des Betriebsystems
|
2
|
Mo,Di,Mi,Do,Fr,Sa,So
|
A
|
Ausgeschriebener Wochentag, in der Sprache des Betriebsystems
|
|
Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag, Sonntag
|
b
|
Abgekürzter Monatsname, in der Sprache des Betriebsystems
|
3
|
Jan, Feb, Mär, Apr, Mai, Jun, Jul, Aug, Sep, Okt, Nov, Dez
|
B
|
Ausgeschriebener Monatsname, in der Sprache des Betriebsystems
|
|
Januar, Februar, März, April, Mai, Juni, Juli, August, September, Oktober, November, Dezember
|
Beispiele
Format
|
Ausgabe
|
%[d.m.Y H:M:S]DT
|
26.01.2012 14:54:36
|
%[dd.mm.YY HH:MM:SS]DT
|
26.01.2012 14:54:36
|
%[d.m.Y H:M:S P]DT
|
26.01.2012 02:54:36 PM
|
%[A, d.B Y]DT
|
Donnerstag, 26.Januar 2012
|
Time
Format
|
Beschreibung
|
Anzahl Zeichen
|
Wertebereich
|
H
|
Stunde, dargestellt durch eine Zahl
|
1
|
0-9
|
HH
|
Stunde, dargestellt durch zwei Zahlen
|
2
|
00-23
|
M
|
Minute, dargestellt durch eine Zahl
|
1
|
0-9
|
MM
|
Minute, dargestellt durch zwei Zahlen
|
2
|
00-59
|
S
|
Sekunde, dargestellt durch eine Zahl
|
1
|
0-9
|
SS
|
Sekunde, dargestellt durch zwei Zahlen
|
2
|
00-59
|
MS
|
Millisekunde, dargestellt durch eine Zahl
|
1
|
0-9
|
MSMS
|
Milisekunde, dargestellt durch zwei Zahlen
|
2
|
00-99
|
MSMSMS
|
Milisekunde, dargestellt durch drei Zahlen
|
3
|
000-999
|
Beispiele
Format
|
Ausgabe
|
%[H:M:S:MS]T
|
9:3:7:4
|
%[HH:MM:SS:MSMSMS]T
|
09:03:07:004
|
Wenn im Text ein %-Zeichen ausgegeben werden soll, müssen zwei %-Zeichen angegeben werden.
Beispiel:
Format
|
Ausgabe
|
Wert: %d %%
|
Wert: 0 %
|
Font
X, Y, DX, DY
Color
BackColor
Format
Action
Spalte K
|
M/O
|
Default
|
Beschreibung
|
|
O
|
|
Ohne Angabe einer Action wird nur der Wert dargestellt.
|
SetVar
|
O
|
|
es werden die SetVar-Aktionen unterstützt
|
#Page=<name>
|
O
|
|
Öffnet die Tastatur-Page und setzt den Eingabefocus.
Index Variablen
<name> kann zwischen %-Zeichen gesetzt Variablenamen enthalten.
Beispiel #page=kbd_%/S/SYS/Kbd_Layout%
Öffnet die Tastatur-Page in Abhängigkeit einer Systemvariable. z.B. für länderspezifische Tastatur-Layouts
|
Edit
|
|
|
Aktiviert den Editmode
|
Limit1
Spalte L
|
M/O
|
Default
|
Beschreibung
|
<constant>
<variable>
|
O
|
VarType-Min
|
unterer Grenzwert der Variable
...Numerische Konstante
...Variable vom Typ VarType
|
Limit2
ActionLimit1, ActionLimit2
VarValue
Spalte P
|
M/O
|
Default
|
Beschreibung
|
<variable>
|
O
|
|
Wert der Variable
|
VarType
Spalte Q
|
M/O
|
Default
|
Beschreibung
|
Datentyp
|
M
|
|
es werden alle Basis-Datentypen unterstützt
|
VarState
Option
Spalte S
|
M/O
|
Default
|
Beschreibung
|
Pos={Center¦Left¦Right}
|
O
|
Pos=Left
|
Horizontale Ausrichtung des Texts. Vertikale Ausrichtung ist per Default zentriert.
|
zentriert
|
|
linksbündig
|
|
rechtsbündig
|
|
VPos={Top¦Bottom}
|
O
|
|
Vertikale Ausrichtung des Texts, bzw. Bild.
|
Am oberen Rand ausgerichtet
|
|
Am unteren Rand ausgerichet
|
|
|
|
Mirror
|
O
|
|
Zeigt (spiegelt) die aktuellen Eingabe des #Variable Objekts mit dem Eingabefocus an. z.B. in der Keyboard-Page zur Darstellung der aktuell editierten Variable
|
Set_focus
|
O
|
|
Sobald das Objekt geladen wurde, erhält es den Eingabefocus
|
HelpText=<n>
|
O
|
|
Wenn das Objekt den Focus erhält, wird die Systemvariable /S/SYS/HelpText auf <n> gesetzt. Sobald es den Focus nicht mehr hat, wird die Variable auf 0 gesetzt. <n> muss eine Integerkonstante sein. z.B. zur Anzeige eines Hilfetextes in der Keyboard-Page
|
Verify
|
O
|
|
Diese Option dient zur Überprüfung der Eingabe (z.B. für Passwort-Eingabe), denn es muss zweimal der gleiche Wert eingegeben werden. Wurde der Wert beide male gleich eingegeben, wird die Aktion Close ausgeführt.
Die Systemvariable /S/SYS/VariableVerify vom Typen WORD zeigt den Status an:
• | 0 bedeutet, dass noch nichts eingegeben wurde. |
• | 1 bedeutet, dass der erste Wert eingegeben wurde. |
• | 2 bedeutet, dass der zweite Wert falsch eingegeben wurde und die Eingabe wiederholt werden muss. |
• | 3 bedeutet, dass zweimal der gleiche Wert eingegeben wurde |
Diese Option kann nicht mit set_focus kombiniert werden!
|
CloseIfOk
|
O
|
|
Wenn der eingegebene Wert innerhalb der Limits liegt wird die Aktion Close ausgeführt.
|
Type=password
|
O
|
|
Das Objekt kann zur Eingabe von Passwörtern getarnt werden, alle Zeichen werden während der Eingabe durch '*' ersetzt.
|
PWL=<level>
|
O
|
PWL=0
|
Notwendiger Passwortlevel zur Freigabe
Siehe auch #Password-Objekt
|
select
|
O
|
|
Betrifft nur (W)STRING Variablen!
Der ganze String wird selektiert, wenn das #variable Objekt den Eingabefokus erhält. Damit wird mit dem ersten eingegebenen Zeichen der bestehende String überschrieben.
|
VarStateOnOffInverted
|
O
|
|
Invertiert die On / Off Funktion der VarState Variable:
VarState = 0 -> Off
VarState = 1 -> On
|
Function
Spalten T
|
M/O
|
Default
|
Beschreibung
|
<unit>function0,..</unit>
|
O
|
|
Umrechnungsfunktionen (siehe Masssysteme)
|
Init, Exit
Spalten U, V
|
M/O
|
Default
|
Beschreibung
|
<action>
|
O
|
|
Es stehen die selben Actions zur Verfügung wie unter dem Parameter Action beschrieben
|
Edit
Um ein Variableobjekt editieren zu können muss es den Eingabefocus erhalten.
Der Eingabefocus kann über folgende Action gesetzt werden:
Action
|
Beschreibung
|
#Page=<name>
|
Mit dieser Aktion wird typischerweise eine Keyboard-Page geöffnet.
|
Edit
|
Editieren via Hard Keyboard
|
Der Eingabefocus kann über folgende Option gesetzt werden:
Option
|
Beschreibung
|
Set_focus
|
Der Focus wird automatisch gesetzt, nachdem die Seite aufgebaut wurde.
|
Editiermodus
Wenn das Variableobjekt den Eingabefocus erhält befindet es sich im Insert - Modus.
Insert - Modus
Zeichen werden an der Cursorposition eingefügt, solange noch Platz übrig ist. Wenn kein Platz mehr übrig ist, wird kein Zeichen mehr eingefügt, aber auch kein Zeichen überschrieben. Die Grösse des Eingabefelds wird durch den Formatstring bestimmt.
Der Formatstring beeinflusst das Verhalten.
Formatstring
|
Verhalten
|
%s
|
Bei einem String, wird der Cursor ans Ende des Textes gesetzt, wo alle Eingaben angefügt werden.
|
%d, usw.
|
Bei allen anderen Formaten, wird der Inhalt nicht angezeigt, sondern überschrieben.
|
Selection - Modus
Wenn ins Objekt mit aktivem Focus geklickt wird, wird der Text selektiert. Wenn der Text bereits selektiert wurde, so wird diese Selektion aufgehoben.
Keyboardeingaben wirken sich auf die ganze Selektion aus:
Taste
|
Verhalten
|
Backspace oder Delete
|
Löscht die ganze Selektion
|
Zeichen
|
Allle selektierten Zeichen werden überschrieben
|
Steuerzeichen
|
Hebt die Selektion auf
|
Zeit/Datumsfunktionen
Der Variablentyp DT ermöglicht in Verbindung mit der Systemvariable /S/SYS/DateTime eine Zeit/Datumsanzeige. Die aktuelle Uhrzeit wird dabei einmal pro Sekunde aktualisiert. Für die Eingabe von Uhrzeit und Datum stehen spezielle Systemvariablen zur Verfügung.
Siehe auch
Systemvariablen
Aktuelle Uhrzeit auf der Steuerung
Um die aktuelle Uhrzeit auf die Steuerung zu übertragen kann das Objekt #Sys2PLC in Verbindung mit den Uhrzeit-Systemvariablen verwendet werden.
Systemvariablen
Nachfolgende Systemvariablen werden beim Start der Eingabe mit den aktuellen Werten definiert und können z.B. auf der Bildschirmtastatur-Seite angezeigt werden:
/S/SYS/Edit_val …letzter Wert vor Eingabe Datentyp WSTRING
/S/SYS/Edit_val_i …letzter Wert vor Eingabe Datentyp als INT, ( ASCII to INT, z.B. "13" = 13)
/S/SYS/Limit1 ...unterer Grenzwert Datentyp WSTRING
/S/SYS/Limit2 ...oberer Grenzwert Datentyp WSTRING
/S/SYS/HelpText ...enthält die aktuelle Helptext-Nummer Datentyp WORD
Bildschirmtastatur
Wird eine Bildschrimtastatur über die Variablen-Aktion #Page=<name> aufgerufen, so muss diese als Fenster geöffnet werden! D.h. die Bildseite des Variablen-Objekts und der Tastatur müssen verschieden gross sein oder die Tastaturseite wird mit der Option Popup definiert.
Unterschied zu EPAM3
• | Option Mirror ersetzt Systemvariable s_input_val |
|