# WinCC Flexible Advanced 2005 - Bildbaustein



## eYe (19 Mai 2008)

Moin,

habe schon im Forum herumgestöbert und bin auf einiges gestoßen aber leider nichts was mir auf die schnelle helfne konnte. Eventuell erbarmt sich ja jemand und gibt mir nen Tipp ^^

Ich habe einige Mittelspannungsschalter zu visualisieren, dabei habe ich für jeden Schalter eine Byte in dem der jeweilige Zustand als Dezimalwert hinterlegt ist. Bisher habe ich meine Schalter einfach immer über die Animation -> Sichtbarkeit angezeigt was auch astrein funktioniert. 
Nur bei diesem Schaltertyp muss ich noch die Erdung, die teststellung etc beachten und außerdem sind es ein paar mehr als sonst und somit wäre es sehr zeitaufwendig jedes Objekt die Variablen von Hand zuzuweisen.

Nun habe ich also so einen schicken Bildbaustein gebaut und die Variable "Schalterbyte" als Typ Byte unter Eigenschaften -> Variablen angelegt. 
Leider weiss ich nun nicht wo ich nun die externe SPS Variable dem Bildbaustein zuweisen kann.Beim Bildbaustein erscheint unter Eigenschaften -> Dynamische Schnittstelle, aber dort kann ich nichts eingeben.

Wenn ich nun die Runtime mit Simulator starte, dann erscheint bei den Variablen SMI_Schalterbyte und wenn ich dieses steuer funktioniert mein Schalter auch wunderbar 
Allerdings finde ich diese Variable nirgendwo wieder...
*
Nun die große Frage, wo finde ich diese SMI_Schalterbyte und wie verknüpfe ich diese mit meinem externen Signal aus der SPS?


*Über eine einfache Lösung würde ich mich sehr freuen ^^

thx, eYe


----------



## Waelder (19 Mai 2008)

*Bildbst...*

Hast Du ggf. eine im Struktur im BB angelegt ?
Du must im BB die Struktur verknüpfen. Vielleicht sucht deine Visu die Struktur.
Ansonsten müsste doch bei der Beschaltung an der Dynamischen Schnittstelle es möglich sein die Variable einzugeben. siehe bb2.jpg
Dann kannst Du aber auch direkt auf Variabeln zugreifen.


----------



## eYe (19 Mai 2008)

Hoi Waelder,

danke für die schnelle Antwort 

Ich habe nun eine Struktur namens "Schalter" angelegt und darin eine Variable "Zustand" vom Typ Byte deklariert. In der Variablenliste habe ich nun meiner Schaltervariablen "Schalter_1" die Struktur Schalter zugewiesen.
(Obwohl die Struktur nur ein Elemnt im Format Byte enthält wird meine Schaltervariable als DB1.DBW0 angegeben ?)

Im Bildbaustein habe ich die Struktur unter Eigenschaften eingefügt und auch die das enthaltene Objekt "Schalter.Zustand".
Unter Variablen steht immernoch die Variable "Schalterbyte" welche die Sichtbarkeit steuert.

Wenn ich nun die Runtime mit Simulator starte passiert leider beim ändern von Schalter_1 nichts, allerdings immernoch bei MSI_Schalterbyte...

Muss ich die Struktur "Zustand" noch irgendwie im Bilbaustein mit meiner Sichtbarkeitsvariablen "Schalterbyte" verknüpfen?


----------



## Waelder (19 Mai 2008)

im BB :
Im Prinzip würde es ja genügen für den BB eine Byte Variable anzulegen. (rechter mausclick  "Eigenschaft hinzufügen") und sie rot aktiviren so das sie in der Dynamischen schnittstelle erscheint.
Dann verknüpf die Variable im BB mit deinen Textlisten,Grafiken usw.

im Bild:
Jetzt musst du deine Variable aus der SPS, die du vorher angelegt hast nur noch mit deinem für deinen "Schalter BB" unter der Dynamischen Schnittstelle beschalten. Da müsste dann db1.dbb0 gehen

Bei einer Struktur macht er immer als Startadresse word.
Die Strukturen musst du sehen wie ein UDT. Die Dinger sind Fix und lesen immer nur dass ein was sie beinhalten. Du must ihm nur die Startadresse angeben. Den Rest liest er automatisch ein, vorrausgesetzt in der SPS ist die Struktur identisch sonst gibt es überschneidungen.

Für deinen Zweck müsste ein Byte (keine Struktur) voll langen.


----------



## eYe (19 Mai 2008)

Ich komme damit irgendwie ned klar 

Irgendwas mach ich wohl grundlegend falsch, kann doch ned so schwer sein :/

Hab mal ein kleines Beispielprojekt gemacht und wäre froh wenn du mir das da so einstellen könntest das es funktioniert oder aber sagst was fehlt 

http://rapidshare.de/files/39457044/Bildbaustein.zip.html


----------



## Waelder (20 Mai 2008)

*Lösung*

Sorry habe WCF2007 muss dir ein grosses Bild anklemmen. Aber mit dem gehts.
Anschliessend die Variabeln verbinden und geht 

Gruss Micha


----------



## eYe (20 Mai 2008)

Hm interessanter Trick mit dem Löschen und Umbenennen 

Ich habe die ganze Zeit versucht die Sichtbarkeit mit der Eigenschaftsvariablen zu verknüpfen aber gingt nicht 
Aber dieser Trick scheint vielversprechend zu sein, kann es leider erst Freitag probieren da ich zur Zeit auf Inbetriebnahme bin.

Aber dis dato schonmal vielen Dank für deine Mühe 

Thx, eYe


----------



## eYe (12 Juni 2008)

So hat alles gut geklappt und mittlerweile habe ich das Prinzip verstanden 
Habe nun einen schicken Bilbaustein für einen Mittelspannungsschalter welcher anhand eines Byte Wertes die jeweilige Stellung anzeigt und sich durch eine Bool Variable rot färbt wenn ein Fehler ansteht.

Nur eine Sache habe ich noch nicht begriffen, ich habe die Strukturen für Schalterstellung und Schalterfehler erstellt und dort die Objekte einmal als Byte (Stellung) und einmal als Bool (Fehler) angelegt.
Ich kann nun toll Variablen erstellen und die Struktur als Datentyp auswählen, nur kann ich dann bei der Adresse immer nur ein ganzen Wortbereich auswählen?!?

Wenn ich z.B. für Schalter 1 die Fehler meldung aus E0.1 lesen will kann ich nur EW0 auswählen?

Muss ich nun tatsächlich für alle meine Bool und Bytewerte jeweils ein eigenes Wort anlegen, oder mache ich noch etwas falsch?

Danke, eYe


----------



## Waelder (13 Juni 2008)

*Bescheidene Frage..*

Du hast doch für den Status ein Byte oder ? 
Sag doch dem Byte wenn dein E0.1 ein Fehler signalisiert dann nimm wert 16 an oder so.

```
U     E      0.1                  //1=Fehler
SPB   noER
L     16
T     DB10.DBB    0               //Zustandsbyte
noER: NOP   0
```
musst halt alle zustände so signalisieren.

Oder du legst in deimem BB noch ne input variable typ bool an (genauso wie dein bvte und machst mit dem  dein Schalterle rot. Eine Struktur brauchst du hierfür nicht 

Gruss Micha


----------



## eYe (13 Juni 2008)

Hoi Waelder,

kann dem Byte leider nicht den Wert 16 geben wenn der Eingang E0.1 kommt, da dann der Schalter verschwinden würde:

Byte Zustand:
0: undefiniert
1: aus
2: ein
3: geerdet
4: teststellung aus
5: testsellung ein

Bool Fehler:
0: kein Fehler
1: Fehler

Warum muss ich die Bool Variable nicht auch als Struktur anlegen? 
Dachte ich muss alle Eigenschaften als Struktur anlegen damit ich sie im BB als dynamsiche Variable nutzen kann?

Was ich ja nun eigentlich wissen wollte ist, warum ich immer nur ein ganzes Wort anlegen kann beim Typ Struktur obwohl es sich z.B. beim Fehler um ein Bool handelt?


----------



## Waelder (14 Juni 2008)

Also ich hab dir mein bb projekt angehängt (normal mit ZIP gemacht version 2005 SP1)

Da ist nun ein Bool integriert, das macht bei true die weissen kästchen rot.

Du hast nun zur auswahl 1x Byte dein status
und 1x Bool dein Fehler

Ich hoffe das passt als Vorlage

Gruss Micha

PS: Wenns möglich ist werde ich das Zip am 19.6 löschen


----------



## eYe (14 Juni 2008)

Moin Waelder,

erstmal vielen Dank für deine Ausdauer und die anhaltende Unterstützung 

Also dein Beispiel entspricht genau dem was ich wollte, soweit habe ich es ja auch schon ebracht gehabt. Nur fällt mir eine Sache ins Auge die mich etwas verwirrt, aber mein Problem wohl löst.

Wenn ich es nun richtig sehe, hast du gar keine Struktur verwendet und deshalb hast du auch nicht das Problem mit welchem ich mich zur Zeit herumschlage ^^ 
Dachte die ganze Zeit ich muss eine Struktur anlegen, aber offensichtlich geht es auch ohne...

Also nochmal vielen Dank für dein Beispiel, ich werde mal versuchen meinen BB so hinzubekommen und werde dann natürlich ein hoffentlich positives Feedback geben können 

Deinen Anhang kannst du natürlich gerne löschen.

Thx, eYe


Edit:
So hab es nun ohne Probleme hinbekommen 
Ist nun alles so wie es sein soll und das Thema kann endlich geclosed werden ^^
Keine Ahnung warum ich mich so auf diese Strukturen versteift habe, aber ohne geht es definitiv besser.


----------



## Waelder (14 Juni 2008)

*Struktur oder nicht Struktur*

Also wenn ich aus nem DB mehrere Daten zieh mach ich ne Struktur.
Wenn ich nur das eine oder andere Bit Byte mache verwende ich nur einzelne Variabeln.

Gruss Micha


----------



## Stefan B. (11 Januar 2015)

Hallo Micha.

Sorry, dass ich Dich nach fast 7 Jahren nochmal mit diesem Problem konfrontieren muss...

Ich stehe gerade vor einem ähnlichen Problem wie "eYe". Dein Trick vom 20.5.2008 in diesem Thema ist zwar schon ein bisschen her, aber vielleicht weißt Du noch, wie du das gemacht hast ....

Leider verstehe ich nicht, wie Du die dynamischen (roten) Variablenanbindungen vom Variablenbereich in den Eigenschafenbereich verschoben hast...????

Bin schon so langsam am Verzweifeln :-(

Viele Grüße
Stefan


----------



## Waelder (11 Januar 2015)

Guten Tag erstmal ;-)
Mann ist das lange her. Ich versuche es trotzdem mal mein Memory zu aktivieren. Ich nehme mal an du meinst den Post #6 ( http://www.sps-forum.de/hmi/19903-wincc-flexible-advanced-2005-bildbaustein.html#post136379 ) oder ?
Schau mal in das erste Bild. Dort steht *direkt im Bild die Erklärung* wie Du die Variabeln umbenennst und umhängst. Hilft Dir das ? Das Beispiel hierzu habe ich wahrscheinlich nicht mehr Verfügbar.  
Hilft das soweit vielleicht ?
Sonst posten wir noch ein wenig.
Gruss Micha


----------



## Stefan B. (11 Januar 2015)

Hallo Micha.

Danke erst einmal, dass überhaupt noch eine Reaktion erfolgt...hihihi

Das Bild habe ich mir schon angeschaut, und auch so versucht. Allerdings weiß ich nicht, wie ich die Variablen "umhängen" soll. Per "Drag und Drop" funktioniert das bei mir nicht.




Der einzige Unterschied zum Post #6 ist, das ich nicht INT sondern DINT als Wort verwende....

Notfalls kann Ich Dir auch mal das Projekt schicken. Ist nur ein Versuchsprojekt, um überhaupt mal zu testen wie das funktioniert.

Gruß Stefan


----------



## Stefan B. (12 Januar 2015)

Eureka !!! Es funktioniert...!!!

Hallo Micha.

Hat ein bisschen gedauert, bis ich es kapiert habe, aber jetzt gehts.

Ich habe übersehen, dass man den Verzeichnisbaum einblenden und auf "Properties" umstellen muß. Dann kann man auch die "Eigenschaft" als "Variable" unter Objekteigenschaften eintragen.

Warum einfach, wenn man auch Siemens einsetzen kann....hihi

Vielen Dank für Deinen Tipp

Viele Grüße aus Nordbayern
Stefan


----------

