Byte aus Array in WinCC flexible 2008

fuss

Level-1
Beiträge
350
Reaktionspunkte
48
Hallo alle zusammen,
Um Power Tags in meinem WinCC flex Projekt zu sparen habe ich 2 Arrays in einem DB angelegt. Das erste Array besteht aus 20 WORD, wobei jeweils 1 WORD die Informationen (Fehlermeldungen, Laufmeldungen) eines Antriebes beinhaltet (SPS-->HMI). Das zweite Array besteht aus 20 Byte, wobei jeweils 1 Byte die Befehle vom OP für einen Antrieb beinhalten (HMI-->SPS).

Nun zu meinem Problem:
Das anknüpfen der Wörter aus dem ersten Array in WinCC flex funktioniert ohne Probleme.
Doch wenn ich die Bytes aus dem zweiten Array anknüpfe werden diese orange hinterlegt. Beim Generieren werden aber keine Warnungen oder Fehlermeldungen ausgegeben.

Beim testen mit WinCC flex Runtime und PLC-Sim wurden die Informationen (WORD) richtig angezeigt, die Befehle (Byte) kamen aber nicht auf der SPS an.

wenn einer ne Idee, bitte posten
 

Wo sind die orange? im Ordner Variablen? Rechtsklick "neu verbinden".
 
Hallo verpolt,
erst einmal danke für deine schnelle Antwort.
Im Ordner Variablen sind nur die beiden Arrays hinterlegt. ich knüpfe jeweils ein Byte aus dem Array an jeweils einen Bildbaustein (Faceplate) an. In dem Bildbaustein selber ist auch ein Byte unter Properties definiert, also müsste es ja eigentlich funktionieren.
 
Hast du die Variablen in WFlex selbst angelegt oder aus dem DB angeklickt?
Im Bildbaustein direkt unter der Bytevariable die Variable aus dem integrierten Projekt anwählen. (Also das Byte im DB )

PS: Dann sind das womöglich wieder Powertags
 
Aber ich möchte ja Power Tags sparen und mit dem WORD aus dem ersten Array funktioniert es ja auch.

 
Hallo Larry,
hier mal ein Screenshot vom DB


Das Array mit den 20 WORD befindet sich in einem anderen DB.
Könnte es vielleicht auch zu Problemen kommen, da ich die Bytes in dem Array über die Bildbausteine beschreibe (Button Startbefehl etc.) ? Auf die Wörter greife ich bloß lesend zu um z.B. Fehlermeldungen im Bildbaustein anzuzeigen.
 
Könnte es vielleicht auch zu Problemen kommen, da ich die Bytes in dem Array über die Bildbausteine beschreibe (Button Startbefehl etc.) ?

Grundsätzlich sind die Bytes immernoch orange markiert in WinCCflex. Ob lesend oder schreibend ist ja erstmal egal.

Nimm zum Test doch mal ein Wort-array für die Steuerung (bytes).
 
So habe es jetzt nochmal in Wflex überprüft, sobald ich schreibend auf eine Variable (z.B Setze Bit in Variable) im Array zugreife wird die Variable am Bildbaustein orange hinterlegt.
 
Wort funktioniert in Bildbausteinen bei Wflex nicht, habe es mit Integer probiert, leider gleicher Effekt.

Habe mal eine Schaltfläche eingefügt und unter Ereignisse "Setze Bit in Variable" projektiert, bei der Variablenauswahl steht mir dann aber das Array bzw. die Daten aus dem Array nicht zur Verfügung
 
Zuletzt bearbeitet:
Hallo LT Smash,
habe deinen Vorschlag eben mal ausporbiert, funktioniert, aber jedes Byte ist wieder ein Power Tag. Ich vesuche aber Power Tags zu sparen. Oder habe ich da etwas falsch verstanden?
 
...du musst in der Variablendeklaration die DB-Startadress angeben, als Datentyp "Byte" auswählen und in der Spalte "Array-Elemente" die Anzahl Bytes angeben, die der Länge des benötigten Datenbereichs entspricht. Dann ist diese Variable genau 1 Powertag. Du hast somit Zugriff auf den ganzen DB und verbrauchst nur 1 Powertag.
 
Hallo LT Smash,

danke nochmal für deine Antwort
wie du es beschreibst habe ich es auch gemacht! Wenn ich ein EA Feld einfüge und ein Byte aus dem Array anknüpfe funktioniert auch alles wunderbar. Projektiere ich jetzt aber eine Schaltfläche und füge unter Ereignisse "Setze Bit in Variable" ein, so kann ich unter Varibale (Eingabe/Ausgabe) kein Byte aus dem Array auswählen.
 
Hab das eben auch mal nachvollzogen:
Du hast recht... ein schreibender Zugriff über eine Schaltfäche ist nicht möglich. So was...
 
Tja manchmal ist es halt komisch, trotzdem danke für deine Bemühungen!!!
 
Für die Nutzung dieser Website sind Cookies erforderlich. Du musst diese akzeptieren, um die Website weiter nutzen zu können. Erfahre mehr…