WCC flex: kleinere Verständnisfragen

kadney

Level-1
Beiträge
5
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen! ;)
Ich bastel zurzeit meine erstes Programm mit WinCC Flex 2008 für ein OP177b an einer 315F-2 PN/DP, einige Dinge klappen auch schon, bei anderen habe ich noch ein paar Verständnisfragen. :razz:

1. Frage:
Ich habe einen Tank mit 0-300mm Füllhöhe. Ein Ultraschallsensor erfasst diese und gibt sie mir als Prozesswert an ein Balkendiagramm. Als Min- und Maxwert habe ich die 0 bzw. 300 eingetragen. In der S7 berechne ich jetzt zwei Punkte, zwischen denen der Füllstand pendelt. (z.B. 150 und 200) Diese beiden Punkte möchte ich jetzt als einfache Linien in das Balkendiagramm eintragen. Wenn ich jetzt in der Variablenliste bei dem Wert des Sensors die beiden Werte 150 und 200 als Ober- und Untergrenze eintrage, werden damit nur optisch die Grenzwertlinien in dem Balkendiagramm beeinflusst (das, was ich haben will) oder begrenze ich damit sozusagen den aus der Steuerung ausgelesenen Wert? (sprich Balken geht bei Füllhöhe von 170 nurnoch von 150-170)


2. Frage:
Ist es möglich, in ein symbolisches oder auch reguläres E/A-Feld eine Einheit einzufügen? Also in etwa so, wie bei einem Textfeld eine Variable mit dem <tag> Befehl einzufügen kann nur umgekehrt.^^


3. Frage:
Die dritte Frage betrifft Text- bzw. Grafiklisten für ein Ausgabefeld.
Ich möchte zwei Ausgabefelder erzeugen, in dem einen sollen die Werte "Hand" bzw. "Auto" stehen und in dem anderen soll "-" , "Programm 1" bzw. "Programm 2" stehen. Die Bits aus dem Programm würde ich in ein Datenwort z.B. DBW0 schreiben. Also DBX0.0 = Hand, DBX0.1 = Auto ect.

Jetzt habe ich eine Textliste mit Bereich (...-...) mit folgenden Einträgen erstellt:
1 - "Hand" (0001)
2 - "Auto" (0010)
4 - "-" (0100)
8 - "Programm 1" (1000)
16 - "Programm 2" (1 0000)

(Wäre das so überhaupt richtig? In den Unterlagen von Siemens wurde wenn ich mich recht erinnere ein INT von 0 aufwärts genommen, wobei sich das doch mit den gesetzten Bits beißen würde? 3 wäre ja z.B: 0011 :confused:)

Wenn z.B: jetzt Auto mit Programm 1 gestartet werden würde, hätte ich ja sowohl Bit 2, als auch 4 gesetzt -> 1010 = 10 sprich keines von beidem würde angezeigt werden.
Ich kann mir kaum vorstellen, dass ich für jedes EA-Feld eine eigene Textliste erstellen müsste. Dem EA-Feld kann ich ja dann eine Textliste und eine Variable zuweisen, sprich das DBW0, wie kann ich dem einen Feld dann sagen, dass es z.B. nur den Wertebereich 1-2 und das andere den Bereich 4-16 anzeigen soll? (Wobei das wahrscheinlich eh falsch ist. :icon_neutral:)

Irgendwie ist da bei mir noch der Hund begraben... :rolleyes:

Würde mich sehr über Denkanstöße freuen.^^

Schöne Grüße
 
Hallo,
gehört zwar zu HMI, habe dennoch eine kleine Hilfe zusammengebastelt,

ich hoffe ich konnte dir helfen

gruß Thomas
 

Anhänge

  • PROJECT_2.zip
    1,9 MB · Aufrufe: 37
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
gehört zwar zu HMI, habe dennoch eine kleine Hilfe zusammengebastelt,

ich hoffe ich konnte dir helfen

gruß Thomas
Ich bedanke mich sehr für die Hilfe!
Das Einbinden der Balken hat geklappt und auf die Idee mit dem Textfeld in dem EA-Feld bin ich überhaupt nicht gekommen. :-D

Nur bei dem Problem mit den Textlisten bin ich noch nicht weiter gekommen.
Da wollte ich ja in einem A-Feld drei verschiedene Werte angeben, die allerdings von einer einzigen Variable gesetzt wird. Damit wollte ich mir ersparen, massenhaft externe Variablen und A-Felder verwenden zu müssen.

Was ich ja eigentlich wollte waren zwei felder mit insgesamt 5 Texten, die angezeigt werden sollen.
Feld 1 -> Text 1 oder 2
Feld 2 -> Text 3, 4 oder 5

Erste Idee steht ja oben beschrieben, z.B. ein Byte übergeben und eine einfache Zuordnung aller ->
0.0 -> Text 1
0.1 -> Text 2
0.2 -> Text 3
ect.
Dann dachte ich man könne einfach einem Feld einen Wertebereich zuordnen (Feld1 0.0+0.1, Feld2 0.2-0.4 ect.) und gut ist. Allerdings geht solch eine Zuweisung von Bereichen wohl nicht und eine bitweise Abfrage ebenfalls nicht,da ja nur die Gesamtwertigkeit abgefragt wird.

Die einzige Idee die ich aktuell hätte:
Für jedes Feld eine eigene Textliste und eine eigene Variable erstellen. (Was ich ja ansich nicht wollte. :D)
Bei dem Feld mit 3 Einträgen ein Byte extra übergeben und im Programm jeweils 1 Bit beschreiben. Dann in der Textliste einen Bereich nach Wertigkeit des Byte ansteuern:
Bit 0.0 1 = Text 1
Bit 0.1 2 = Text 2
Bit 0.2 4 = Text 3

Oder gibt es da eine elegantere Art?

Grüße
 
Ordne doch einfach der Textmeldung einen Wert in einem Wort zu ( 1 = Hand 2 = Auto usw.) und mache die Verknüpfung in der S7?

Bitabfragen und eine Movebox..
 
Zurück
Oben