Eine Wrapper UDT hört sich sehr gut an!!!
nur bei einer Wrapper UDT muss ich ja auch in die "Unterelemente" "rein schauen" und den Index checken...
Meine UDTs in dem Struct haben zusätzlich auch noch verschiedene Größen von Speicherplatz her
kann ich in SCL den Variablen Namen (symbolisch) generieren? (habe gehofft ich komme um die rumpointerrei endlich herum)
Wenn zum Beispiel die Variable folgenden Namen hat...
DB STRUCT UDT(STRUCT) REAL
NameDesDBs.NameDesStructsWelchesDieGesuchtenElementeEnthält.NameDesElementsInnerhalbDesStructsMitDerNummer_1.WertDenIchZbÄndernMöchte
kann ich dann den Namen der Variable (Symbol) an dieser Stelle-------------------------------------------------------^ so abändern, dass dann da eine zwei(2) steht?
Hmmmm.... geht auch nicht... dazu müsste die Symboltabelle ja in der CPU sein... Habe übrigens eine 1500er CPU
Vielleicht gehe ich da auch falsch ran...
-Ich habe in meiner Anlage mehrere Druckaufnehmer
-Für die einzelnen Druckaufnehmer habe ich einen FC der die Daten ausliest...
--...die Messergebnisse und Parameter entnimmt und speichert der FC an seinem InOut in ein UDT
-Ausserhalb des FCs ist das InOut UDT mit seinem Gegenstück in einem Struct innerhalb eines DBs gekoppelt (in dem Struct innerhalb des DBs sind alle Druckaufnehmer drin)
Bis dahin funktioniert alles optimal und höchst komfortabel.
Auch im Zusammenhang mit WinCC, da anscheinend der Import eines kompletten Structs nur ein Powertag kostet

<< kleiner Tip am Rande
Also kann ich, wenn ich in der HMI die Druckdosen visualisieren muss, ALLE Infos aus der Steuerung ziehen und muss nicht immer alle Variablen einzeln anlegen
Und in AWL kann ich mit unter 10 Tastenanschlägen meinen gesuchten Wert ran ziehen
Jetzt kam die neue Idee und nu hängts an einer kleinen Stelle...
Die neue Idee war folgende:
Ein Filter wird am Eingang und am Ausgang mit Drucküberwacht.
Durch den Differenzdruck (unter Anderem) kann man den Verschmutzungsgrad ermitteln.
Da der Arbeitsdruck auf den es ankommt der gleiche ist (und der Andere nur die Drucküberwachung übernimmt) wollte ich nun aus den beiden Sensoren eine logische Einheit machen
>> neuer FC - der beide Druckaufnehmer aufnimmt
>> neues UDT - mit detaillierten Filter Infos
>> Alles rein in das Struct in dem die Anderen DruckSensoren auch drin sind
---- bis hier hin funktioniert alles prima ----
Jetzt will ich in der HMI die Filterkurve die aus den zusätzlichen Parametern entsteht anzeigen lassen.
Da WinCC keine internen Arrays nutzen kann (wie jeder Andere auch) muss ich die Kurve in der CPU generieren und wertvolle Ressourcen dafür opfern.
Das generieren funktioniert prima und die Kurve kann ich bitgetriggert in der CPU abholen...
Das ganze funktioniert nun mit einem Filter. Jetzt nöchte ich die anderen Filter auch visualisieren. aber nicht alle einzeln!!
Daher die Idee:
Ich baue für die HMI Seite die die Kurven anzeigt eine Datenschnittstelle (auch ein UDT)
Wenn die Seite in der HMI aufgebaut ist, wird Code in der CPU ausgeführt der die Datenschnittstelle füttert
Jetzt möchte ich auf dieser HMI Seite vorgeben welchen Sensor ich beobachten will
Dazu muss ich erstmal auf der HMI Angezeigt bekommen welche meiner Überwachungs-Punkte ein solches Feature besitzt
Und da hängts, weil ich innerhalb des Structs nicht differenzieren kann
Ich könnte mich in dem Struct entlang "pointern" und immer unterschiedliche offsets nehmen wenn ich einen UDT erkann habe. Will ich aber im Jahre 2016 nicht mehr machen
Oder ich baue die "Filter Geschichte" auf dem "Überwachungspunkt" aus... Habe aber bei defekten Filterelementen ein Abschaltkriterium generiert welches gut an die Stelle passen würde...