# WinCCFlexible 2008 - Bildbausteine und Strukturen



## MSP (29 November 2008)

Guten Morgen zusammen,

ich bin gerade dabei mich in die Materie der Bildbausteine anhand der Dokumente..

WinCC flexible Getting Started Fortgeschrittene
Getting Started, Ausgabe 04/2006, 6ZB5370-1CM01-0BA2

WinCC flexible 2008 Compact / Standard / Advanced 
148 
Benutzerhandbuch, 07/2008, 6AV6691-1AB01-3AA0 

in die Bildbausteintechnik einzuarbeiten.

Dabei möchte ich natürlich direkt am echten Objekt arbeiten und habe daher einen UDT für einen Moeller Rapidlink Ra-Mo ausgesucht, da wir diesen doch recht oft einsetzen.

Nun haben wir in STep7 Standardbausteine für das Ansteuern, die alle Daten in einem DB unter Verwendung eines UDT's speichern.
Das macht natürlich die Sache für mich sehr einfach was das Auslesen der Daten des Antriebes angeht, da ich immer die selbe Struktur habe und mich nur um die Adressierung zu kümmern brauche 

Nun ist aber der UDT recht groß, ich benötige für meinen Bildbaustein allerdings nur ein paar Daten aus dem UDT. Im Moment verstehe ich das aber so, dass ich die ganze Struktur in Flexible abbilden muss damit die Offsets etc passen und die Daten korrekt in die internen Variablen geschrieben werden.

Oder gibt es aber eine Möglichkeit das ganze von Hand zu erledigen? In der Struktur sind nämlich die Felder Offset und Bit-Offset grau und ich kann diese nicht Ändern, die werden ja automatisch gesetzt je nach Datentyp etc. Nur liegen die dann bei mir alle direkt hintereinander und nicht wie im DB / UDT abgelegt.

Komme ich also nicht drumherum meinen kompletten UDT in die Struktur zu packen?

Eine weitere Frage ist dann der Export: Da ich den Bildbaustein auch in anderen Projekten nutzen möchte, kann ich den Bildbaustein ja in die Bibliothek packen. Nur was passiert dabei mit der Struktur, den Text- und Grafiklisten? Werden die automatisch mit in die Bibliothek gelegt oder muss ich die dann später in jedem Projekt neu anlegen / importieren?

Gruss,
Michael


----------



## Shino (7 Januar 2009)

Hallo,

ich bin eben falls dabei mich dort einzuarbeiten und ich muss leider gestehen, dass ich noch nicht soweit bin wie du.

Ich arbeite mich komplett neu ein mit null Ahnung.

MfG Shino


----------



## jaipur (9 Januar 2009)

MSP schrieb:


> Komme ich also nicht drumherum meinen kompletten UDT in die Struktur zu packen?


 
ich würde einen zusätzlichen udt / db anlegen und diesen dann UDT_für_einen_Moeller_Rapidlink_Ra_Mo_VISU benennen und in diesen all das was ich für die visualisierung benötige von dem anderen udt (UDT_für_einen_Moeller_Rapidlink_Ra_Mo) übernehmen ...fertig!


----------



## s.kraut (16 Februar 2009)

Hallo, das Problem mit der Adressierung kenne ich auch recht gut. 

Ich habe auch einiger Bildbausteine und Strukturen in einem mittelgroßen Projekt und kam recht schnell über die Systemgrenze von 2048 Powertags raus. In der Runtime wird der Bildbaustein zerlegt und jeder Strukturvariable ist ein Powertag. Ein Bit genauso wie eine Real-Zahl.
Ich habe dann einige unbenötigte Bits zusammengefasst, zu Reals oder zu den noch größeren Strings, so dass ich mit wenig Powertags große Speicherbereiche "abdecken" kann, um so an die benötigten Speicherbereiche zu kommen. 

Schade dass es hier keine elegantere Adressierungsoption zu geben scheint.


----------



## s.kraut (16 Februar 2009)

Hallo, das Problem mit der Adressierung kenne ich auch recht gut. 

Ich habe auch einiger Bildbausteine und Strukturen in einem mittelgroßen Projekt und kam recht schnell über die Systemgrenze von 2048 Powertags raus. In der Runtime wird der Bildbaustein zerlegt und jeder Strukturvariable ist ein Powertag. Ein Bit genauso wie eine Real-Zahl.
Ich habe dann einige unbenötigte Bits zusammengefasst, zu Reals oder zu den noch größeren Strings, so dass ich mit wenig Powertags große Speicherbereiche "abdecken" kann, um so an die benötigten Speicherbereiche zu kommen. 

Schade dass es hier keine elegantere Adressierungsoption zu geben scheint.


----------



## Waelder (17 Februar 2009)

Eben S.Kraut hats richtig erfasst. Machen wir auch

Für Bits benutzt ihr ein komplettes Word, das liest ja 16 Bits ein z.B. alle IN Variabeln. Ihr müsst dann die Bits im BB einzeln ansteuern. Wenn das nicht langt könnt ihr ja ein DW benutzen macht 32 bits. Vorteil ist nur 1 Powertag statt 32 oder 16 Achtung Auskreuzen in der Visu...
Ich mach die Struktur immer wie folgt :

1X IN_BITS (WORD)
1X OUT_BITS (WORD)
1X INOUT_BITS (WORD)

Für nicht benötigte Werte setze ich einen String dazwischen der mir die Lerräume überbrückt.

Zum Beispiel FB58 (PID) da habe ich eine Struktur zu einem BB gebastelt, die nimmt (meines wissens) alle wichtigen Variabeln auf. Die hat 32 Powertags. Mit denen hast Du alle Wichtigen Werte aufm Panel. Incl Optimierungen usw. 

Mein Motorenbaustein braucht 6 Tags
Der MM420er Baustein 12 Tags

Gruss Wälder


----------



## s.kraut (17 Februar 2009)

Altes Thema Adressierung, neues Problem:
Ich hab einen Server, einen Client und 2 Panels, die alle auf die gleiche SPS gucken. Server und Client haben Wincc, die Panels flexible. Ich hab einen DB für Frequenzumrichterdaten, da kann ich von allen aus draufgucken. Die Startadresse der interessanten Daten ist 64.0. Entsprechend habe ich meine Struktur gebaut.
In der Variablentabelle, im DB selbst und im Wincc sehe ich alles wie zu erwarten. Nur mein Panel guckt 2 Worte zu tief.
Die Startadresse der Struktur ist ok.
Die Struktur ist ok.
Der Bildbaustein ist ok.
Wo gibt es noch eine Möglichkeit, diesen gammligen Offset zu finden?
Ich habe Lücken in meiner Struktur, z.B. ein Bit fängt ein neues Wort an, also ist das nächste Wort 7 Bit weiter unten. Machen diese Lücken was aus, oder muss jedes Bit belegt sein?


----------



## xhasx (17 Februar 2009)

Leider können die Strukturen ja auch nur von Bildbausteinen verwendet werden... Da sehe ich bei Sie noch Handlungsbedarf!
Und das nächste Problem ist wenn sich an der Adressierung der Variable was ändert. Das automatische ändern der Adresse anhand des Symbolischen Namens ist nicht mehr!!!


----------



## s.kraut (17 Februar 2009)

Stimmt, die Adressierung ist absolut.

Wo wir schon gerade bei den Haken sind...... die Strukturvariablen sind auch nicht archivierbar und nicht skalierbar.


----------



## xhasx (17 Februar 2009)

Also ich hab mir mit einer eigenen "Lösung" beholfen.

Ich habe mir bei den Variablen Unterordnergemacht. Der Ordnername entspricht dem Variablenname und die Element sind dann die einzelnen Variablen...

Die Schnittstelle zum BB ist dann zwar größer aber ich kann die Variablen auch anderweitig im Projekt verwenden. Sie sind Symbolisch und mehr Powertags braucht man auch nicht!

Ich erschlage vieles mit Arrays vom gleichen Datentypen (meist Real) Bau mir das in der Hmi zusammen und zerplücke es in der Steuerung wieder. So habe ich statt fast 5000 PT nur noch 200!!


----------



## s.kraut (17 Februar 2009)

Ja das ist nicht dumm, für den Fall, dass man die Bildbausteine innerhalb des Projektes nicht so oft braucht.
In meinem Fall macht das nicht so viel sinn, ich habe jeweils ca. 10 Bildbausteine mit je ca. 20 Variablen.
Wenn ich fertig bin, kopiere ich das Ganze noch einmal mit anderen DB für ein zweites Projekt, welches aber auf der gleichen CPU liegt. Da würde ich mit den Ordnern Wochen brauchen, so schaffe ich es innerhalb einer halben Stunde.
Das Problem mit der Adressierung hat sich durch ein Rebuild gelöst  - temps gelöscht, nochmal erstellt.


----------

