Boolsche Variablen in Wincc

TaffySD

Level-1
Beiträge
17
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi Leute

ich arbeite mit WinCC flexible 2008 SP1 und habe bezüglich der bool Variablen ein Problem, dies tritt beim Simulieren in WinCC sowohl auch bei der direkten Kommunikation zwischen Panel und SPS auf.

Und zwar besitzen Bool Variablen normalerweise die Zustände 0 und 1, bei mir kann er aber nur die Zustände -1 und 0. woran kann das liegen? kann ich in WinCC die grenzwerte selbst festlegen bzw ändern oder ist das ein Softwarefehler??

MfG
Taffy
 
Bit mit VZ-Bit

Hi Leute

ich arbeite mit WinCC flexible 2008 SP1 und habe bezüglich der bool Variablen ein Problem, dies tritt beim Simulieren in WinCC sowohl auch bei der direkten Kommunikation zwischen Panel und SPS auf.

Und zwar besitzen Bool Variablen normalerweise die Zustände 0 und 1, bei mir kann er aber nur die Zustände -1 und 0. woran kann das liegen? kann ich in WinCC die grenzwerte selbst festlegen bzw ändern oder ist das ein Softwarefehler??

MfG
Taffy

Mach mal einen Screenshot.
Das will ich sehen.
 
Screenshot des Problems

Ich habe dir mal den gewünschten Screenshot gemacht. Im Rot Eingegrenzten Rahmen siehst du das Problem mit den Variablenwerten. Wenn man die Simulation startet wechselt er also nur zwischen den eingestellten -1 und 0
 

Anhänge

  • Beispiel Bool.JPG
    Beispiel Bool.JPG
    29,9 KB · Aufrufe: 48
das ist so!

Hallo,

in vielen Programmiersprachen wird der Wert true einer boolschen Variablen nicht mit 1 übersetzt sondern mit -1, false mit 0. Zustand 1 gibt es gar nicht. Beim recht einfachen Variablensimulator von Flex ist dies genauso. Der Programmierer war zu faul die Zahlenwerte in true und false zu überstzen.
In flexible ist der Zustand true aber wieder 1. Kannst ja mal zum Test ein Ausgabefeld in Flex programmieren. Alles Gut, keine sorgen machen...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Multibit-Bool

Seit es VB(A) gibt, wo fast jeder Datentyp 10 oder 12 Byte groß ist, wird da auch BOOL mit mindestens 16 Bit
gespeichert (zumindest, wenn der Datentyp nicht explizit bei der Deklaration der Variablen festgelegt wird).
So ist dann 16 Bit alle 0 = False und 16 Bit alle 1 = True. 16 Bit alle 1 als INT betrachtet ergibt dann -1.
Daher die "faule" Anzeige im WinCCflex-Variablensimulator. Einfach nicht beachten.
Und typisch: obwohl MinWert=-1 und MaxWert=0 angegeben wird, kann man auch (+)1 für True eingeben.

Im S7-Protokoll ist es (glaube ich) ebenfalls so. Wenn z.B. eine Boolsche Variable gelesen wird, dann kommen
auch mehr als 1 bit zurück.

In C ist es implizit so, daß 0 = False und alles andere = True (egal ob 1, 8, 16, 32 oder 64 Bit).

Gruß
Harald
 
Genau die Frage hab ich mir auch schon gestellt. Meine Software ist allerdings WinCC flexible 2005.
Hab dann einfach ein Ausfabefeld mit der Variablen projektiert und bei mir hat sich dann auch rausgestellt, dass
Variable | Simulation
0 | 0
1 | -1

Warum das so ist weis ich nicht, aber die erklärung von PN/DP hört sich für mich logisch an.
Aber wenn du dir mal wieder nicht sicher bist was die Variable wirklich beinhaltet, dann einfach mit einer Ausgabe anschauen.

greets
Jan
 
Zurück
Oben