WinCC flexible 2007/S7

breno

Level-1
Beiträge
46
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
WinCC flexible 2007 V1.2.0.0_1.55.0.1
Simatic Manager V5.4


Hallo miteinander,

Hab im FB1 meines Programms eine INT Variable deklariert.Im WinCC flexible hab ich diese Variable als Bitmeldung DBW104 (öffnen und schließen von 8 Ventilen)verwendet.Dieses öffnen und schließen der Ventile soll per Meldeanzeige ausgegeben werden.

Folgendes Problem: Wie kann ich die einzelnen Bits der Variable im Programmcode symbolisch ansteuern.

Würde mich über eure Hilfe freuen

mfg breno
 
Hallo,
wenn ich dich richtig verstanden habe, dann ist das DBW104 ein Teil des Instanz-DB vom FB1 ...?
Wenn ja, dann solltest du, um eine saubere Kapselung zu behalten, die Bits dieser Variablen auch im FB1 setzen/rücksetzen. Um dazu etwas mehr sagen zu können, bräuchte ich ein paar weitere Info's von dir - schreib mal etwas mehr zu dem FB1 ...

Gruß
LL
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Prinzipiell wohl mal mit DBX104.0, DBX104.1 usw.

Aber wie mein geschätzter Vorredner (-schreiber) schon bemerkte
ein paar mehr Details wären wünschenswert.

peter(R)
 
hy larry du schon wieder ich steh schon tief in deiner Schuld ;)

Aber das mit dem Instanz-DB DBW 104 hast du völlig richtig erkannt.Soweit ich das verstanden habe kann ich im WinCC flexible keine einzelnen Bits auswerten.So habe ich im FB eine INT Variable angelegt und weise dieser im WinCC flexible unter Bitmeldungen 16 unterschiedliche Zustände zu (Ventil 1 auf,Ventil 1 zu............Ventil 8 auf,Ventil 8 zu).

Folgendes:Jetzt will ich diese natürlich im Programmcode einzeln ansteuern z.B. DBX 104.0 (Ventil 1 auf) oder z.B. DBX 104.1 (Ventil 1 zu). Und da befindet sich der Haken.S7 vergibt die Adressen automatisch

mfg breno
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hy Breno,
Danke für die Blumen ... :p

Zu deinem Problem gibt es eine ganze Reihe Lösungen. Bevor ich dir hier jetzt irgend etwas mit Variablen-Inhalten hin und herkopieren und Pointern etc. erzähle zunächst noch folgenden Frage :
Warum kannst du unter Flex keine einzelnen Bits auswerten - oder beziehst du dich hier (nur) auf die Bit-Meldungen ? Muss es denn (falls ja) unbedingt eine Bit-Meldung sein ?

Gruß
LL
 
Kennst ihr die PDF WinCC flexible GettingStart Einsteiger von SIEMENS?

Dort werden anhand der Meldeanzeige Bitmeldungen projektiert.
So wollt ich das eigentlich auch machen
 
Gerade da hat man ja als "Eingang" ein DBW oder DBD und muss dann nur bei Bitmeldungen dem einzelnen Bit einen Text zuordnen.

peter(R)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Breno

Ersetze doch in der Deklarationstabelle deines FB1 das Datenwort 104 Typ <INT> durch 16 Einträge vom Typ <Bool>.
Wenn du 16 Bool´s verwendest ändert sich die Adressierung für alles was in dem DB dahinter kommt nicht, was ja wahrscheinlich vorteilhaft ist.

Auf die 16 einzelnen Bits kannst du natürlich über WinFlex zugreifen, sie über Schaltflächen setzen und rücksetzen und dir den jeweiligen Signalzustand als Text oder animierte Grafik anzeigen lassen.
 
Mal ein Beispiel:

DBW104 beinhaltet deine Meldungen zB.
DBX104.0 Ventil 1 auf, DBX105.0 Ventil 1 zu
DBX104.1 Ventil 2 auf, DBX105.1 Ventil 2 zu
usw.
so wird es in deinem SPS Programm erzeugt.
Der DBW104 sollte aber auch in deiner Symbolik Datei stehen.

Jetzt erzeugst Du bei WinCC flex ein Variable DBW104 als INT Variable.

Öffne die Bitmeldungen
Text: Dein anzuzeigender Text
Nummer: Die Meldungsnummer
Meldeklasse: Meldung
Trigger Variable: DBW104
Bitnummer: 0

Bei der nächsten Meldung genau das gleiche nur mit Bitnummer 1 usw.

Aber genau genommen ist eigentlich Textliste für solche Sachen gedacht.
dann funktionierts aber nicht mehr so. Weil dann wird die Variable tatsächlich als INT Zahl interpretiert.

peter(R)
 
Hallo Breno,

so wie Larry schon angefragt hat, will ich das nochmals vertiefen.

Was hast Du denn genau vor, ich verstehe jetzt nicht warum man dazu Bitmeldungen nimmst, oder es fehlt mir noch eine Info.

Unabhängig davon kannst du für das Datenwort 104 einen UDT mit 16 Bool erstellen, diesen kannst Du an den FB übergeben und direkt im FB darauf zugreifen. Ich will es aber auch nicht für den Anfang komplizierter machen als notwendig.
Also entweder du gib'st uns noch ein paar Info's (hab die Vermutung das dein Projekt zum üben zwar sinnvol ist, aber in der Praxis wohl anders umgesetzt würde). Oder Du stellst Dein Projekt mal Online.
Wenn Du das nicht hier einstellen willst, kannst Du es auch an jabbapoint@gmx.de senden
 
Zuviel Werbung?
-> Hier kostenlos registrieren
WinCC flexible 2007 V1.2.0.0_1.55.0.1
Simatic Manager V5.4


Hallo miteinander,

Hab im FB1 meines Programms eine INT Variable deklariert.Im WinCC flexible hab ich diese Variable als Bitmeldung DBW104 (öffnen und schließen von 8 Ventilen)verwendet.Dieses öffnen und schließen der Ventile soll per Meldeanzeige ausgegeben werden.

Folgendes Problem: Wie kann ich die einzelnen Bits der Variable im Programmcode symbolisch ansteuern.

Würde mich über eure Hilfe freuen

mfg breno

ich würde es in dem fall auch so machen wie der kollege Paul bereits geschrieben hat.
dann kannst du auf jedes bit symbolisch zugreifen.


Hallo Breno

Ersetze doch in der Deklarationstabelle deines FB1 das Datenwort 104 Typ <INT> durch 16 Einträge vom Typ <Bool>.
Wenn du 16 Bool´s verwendest ändert sich die Adressierung für alles was in dem DB dahinter kommt nicht, was ja wahrscheinlich vorteilhaft ist.

Auf die 16 einzelnen Bits kannst du natürlich über WinFlex zugreifen, sie über Schaltflächen setzen und rücksetzen und dir den jeweiligen Signalzustand als Text oder animierte Grafik anzeigen lassen.
 
hey peter danke für deine erklärung,

aber nach dieser Erklärung hab ich das Problem.
Eigentlich wollte ich eine Meldeanzeige einbinden.
Und nach der oben genannten PDF muss ich Bitmeldungen dazu projektieren.Und nach WinCC flex kann ich unter Bitmeldungen nur WORD oder INT Variabalen deklarieren.
-->Also hab ichs so gemacht wie du es gerade erklärt hast.

Jetzt will ich aber die Bits der deklarierten INT variablen symbolisch in meinem Programm ansprechen.

mfg breno
 
Du kannst in deiner Symbolikdatei sehr wohl einal eine Variable einmal als INT einstellen (und einen Namen vergeben) und dann nochmals alle Bits einzeln einstellen und jedem bit einen Namen geben.

peter(R)
 
Du legst einen UDT an z.B. UDT 1 Name "Meldung"
Darin sind 16 Bool (siehe Bild UDT )
Dann änderst Du in deinen DB das DW104 von INT auf den UDT 1.
Dein DB muss einen Namen haben, in meinem Beispiel z.B. DB_Meldung
(Siehe Bild DB)
In dem FB gibst Du den Parameter bei IN_OUT an mit dem Parameter UDT und gibst Deine Nummer an (Im Beispiel die 1 UDT Meldung)
Nun kannst Du im FB direkt darauf zugreifen. (Siehe Bild FB)
Am FB musst du die Adresse wie im Bild (OB) angeben.
 

Anhänge

  • db.jpg
    db.jpg
    12,6 KB · Aufrufe: 22
  • fb.jpg
    fb.jpg
    43,5 KB · Aufrufe: 23
  • ob.jpg
    ob.jpg
    15,1 KB · Aufrufe: 26
  • udt.jpg
    udt.jpg
    44,2 KB · Aufrufe: 25
Hallo zusammen,
kann Jemend mir ein Buch für Win cc Flexible empfelen ,so schritt weise beschreibt?

Danke
 
Zuletzt bearbeitet:
Zurück
Oben