Digitronic
Automationsanlagen GmbH
6.9.2.3. Indirekte Adressierung
In allen Adressvarianten kann eine indirekte Adressierung (Index) angegeben werden. Durch
Einfügen von [ ] Klammern können Datenbaustein, Datenwort, Bitposition und Gerätenummer indirekt
(indiziert) adressiert werden. Dies ist zur Erstellung von Schleifen notwendig.
Beispiel:
##000[##000256+1]b[##000257], ##[##Index]000 oder ##[##Index1][##Index2]
als S7 Adresse:
6.9.3. Operatoren
Das DigiWEB kann ein von seinem Kommunikationspartner (CamCon, S7, S5 oder eine andere
Steuerung) gelesene Variable durch "Operatoren" umrechnen bzw. durch "Bedingungen" verändern.
Es stehen verschiedene "Operatoren" bzw. "Bedingungen" zur Verfügung, die in Ausdrücken
zusammengefaßt werden.
6.9.3.1. Arithmetische Operatoren
Es gelten die normalen Punkt vor Strich Rechenvorschriften. Alle Rechenvorgänge werden in 32 Bit
Werten mit Vorzeichen ohne Kommastelle durchgeführt. Müssen mehrer Rechenvorgänge
durchgeführt werden, so können diese durch ein Semikolon voneinander getrennt werden. Das
Ergebnis des letzten Ausdrucks wird hierbei zur Anzeige gebacht (z.B. ##000256 := 5; ##000257 *
##000258 + ##000259).
Addition:
Subtraktion:
Multiplikation:
Divison:
Modulo (Teilungsrest):
Klammerebenen:
Zuweisung:
Achtung:
Die Zuweisung schreibt direkt einen Wert in den DigiWEB Kommunikationspartner,
sobald die HTML Seite geladen wird.
Konstanten:
6.9.3.1.1. Berechnungen > 32 Bit
Zur Berechnung von Werten dessen Zwischenergebnis größer als 32 Bit werden, verwenden Sie die
Funktion ##muldiv(x,y,z). Diese rechnet intern mit einem 64 Bit Wert.
Multiplikation / Division:
6.9.3.2. Boolsche Operatoren
UND bzw. AND
ODER bzw. OR
Schiebe rechts bzw. Shift right
Schiebe links bzw. Shift left
XODER bzw. XOR
Ausgabe: 14.05.2004
##DB50.DBW[##Index], ##DB[##Datenbaustein].DBW[##Datenwort] oder
##DB50.DB3F[##Index]
##000187 + ##000256
##000187 - ##000256
##000187 * ##000256
##000187 / ##000256
##000187 % ##000256
##000187 * (5 + ##000256) oder (##000187 + 0x5) * ##000256
##000187 := 5
Konstanten können dezimal (5) oder hexadezimal (0x5) eingegeben
werden.
##muldiv(Wert1,Wert2,Wert3)
Wert 1 und Wert 2 werden miteinander multipliziert und dann durch
den Wert 3 dividiert.
##000187b1 & ##000187b2
##000187b1 | ##000187b2
##000187 >> 6
##000187 << 2
##000187 ^ ##000256
Das Ethernet Modul
(z.B. Schiebe Wert 6 Bit nach rechts)
(z.B. Schiebe Wert 2 Bit nach links)
DigiWEB
Seite: 33/33