TIA Indirekte Adressierung

Mephisto

Level-1
Beiträge
242
Reaktionspunkte
12
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo!

Weiß jemand, ob ich bei den HMIs SPS-Variablen indirekt adressieren kann?

Komponenten:
S7-400H Steuerung projektiert in Step7 V5.5
TP700 Comfort Panel prohektiert in TIA V13.1
Anbindung der S7-400H über Proxy-PLC im TIA Portal.

Ich möchte nun im TIA Portal eine Variable aus einem Array aus der SPS ansprechen.
in der SPS gibt es zum Beispiel die 10 Reals "Variable[1]" - "Variable [10]"
Diese möchte ich mit mehreren HMIs abrufen, wobei HMI 1 "Variable[1]", HMI 2 "Variable[2]", ..., anzeigen soll.
Ich dachte mir nun, dass ich einfach eine interne Variable z.B.: "Nummer" im HMI anlege und dann die SPS-Variable projektiere als "Variable[Nummer]".
Das funktioniert so leider nicht.
Mit der MUX-Funktion möchte ich nicht arbeiten weil ich dabei nicht genug Array-Elemente ansprechen kann.

Hat jemand eine gute Idee?
 
Du legst in der HMi eine Variable vom ersten Indexelement eines Array an (symbolisch).
Dann unter Eigenschaften/Allgemein das Feld "Adresse" auswählen.
Dort kannst du unter Index festlegen, das das eine Variable sein soll und diese dann auswählen.
Er schreibt dann in der Eigenschaftstabelle automatisch <Multiplex-Variable> hinein, aber wenn dieunter Eigenschaften/Multiplexen nachsiehst, ist diese Tabelle leer.
Es wird also rein über diesen Index gearbeitet.
Als Spezialfall kann man das sogar mit einer "echten" Mutiülex-Variable machen und hat dann Variablen mit doppeltem Index.
Das ist rel. kompliziert anzulegen, funktioniert aber in der HMI gut.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo!

Hab mir das mal angesehen. Das, was du da beschrieben hast scheint zu funktionieren.
Nur leider ist es für meinen Fall nicht geignet. Ich kann die SPS nur absolut adressieren (und nicht symbolisch).
Somit kann ich auch nur die DB-Nummer und den DB-Offset mittels einer Variablen angeben.
Ich würde jedoch gerne den symbolischen Namen mit einer Variable modifizieren.
Zudem habe ich keine eindimensionalen Arrays (also Array of Real, etc.) sondern habe ein Array of UDT, dass ich mit dem HMI anzeigen möchte.

So wie du es beschreibst, würde es nur klappen, wenn ich mein Array of UDT lösche und bei z.B.: einem Array[1..5] of UDT
5DBs mit jeweils dem gleichen UDT darin anlege.
Dann könnte ich diese DBs im HMI über die Indexvariable ansprechen.
Das bereitet mir aber Probleme beim SPS-Programm.

Hast du vielleicht sonst noch eine gute Idee?
 
Symbolisch multiplexen geht nur via "Variablen multiplexen", d.h. es muß eine Tabelle der Variablen projektiert werden.
Die WinCC RT kann nicht symbolische Namen von PLC-Variablen zusammensetzen, sondern nur die Namen von HMI-Variablen. Und der Zusammenhang zwischen HMI-Variable und PLC-Variable (Adresse oder Name) muß zur Generierzeit schon bekannt/projektiert sein.

Harald
 
Hallo!

Der Ansatz mit der indirekten Adressierung der DB-Nummer (Ralles Beitrag #2) scheint mir der interessanteste Lösungsansatz dabei. Das lässt sich leicht bei mir implementieren.
Es gibt aber ein großes Problem:
Wenn ich auf diese Art und weiße HMI-Variablen mit einer PLC-Adresse verknüpfe, dann kann ich diese Variable nicht als HMI-Meldung verwenden.
Hat dazu jemand eine Lösung?
 
Zurück
Oben