# WinCC v7 - E/A-Felder mit dynamischer Variablenanbindung



## RONIN (29 September 2013)

Hallo Leute!

 Wie der Titel schon sagt versuche ich einem EA-Feld beizubringen in Abhängigkeit von einer Variable (Nummer) auf einen gewissen TAG zuzugreifen.
Sowohl Ein- als auch Ausgabe!

z.B: 
Wert 1: EA-Feld greift auf Variable "TM_PZ*1*.FU_Wert" zu
      Wert 2: EA-Feld greift auf Variable "TM_PZ*2*.FU_Wert" zu

 In den Anhängen seht ihr ein Standard-EA-Feld sowie einen meiner versuche das oben genannte Problem zu lösen... Leider ohne Erfolg.
Das zusammensetzen des String-Variablennamens ist kein Problem ich weiß nur nicht wie bzw. auf welche Eigenschaft des EA-Felds ich ihn zuweisen muss.

Ich bin für alle Lösungen offen, egal ob VBS-, C-Skript oder Alternativvorschläge.

 mfg Ronin


----------



## ducati (30 September 2013)

RONIN schrieb:


> Das zusammensetzen des String-Variablennamens ist kein Problem ich weiß nur nicht wie bzw. auf welche Eigenschaft des EA-Felds ich ihn zuweisen muss.



Nach dem Zusammenbau des Variablennamens, den Wert aus der SPS lesen (GetTag...) dann mit den return() einfach rückgeben. fertig.

Also return(GetTagXXX(Variablenname));


Gruß.

PS: das ist jetzt für C-Script. Falls Du C verwenden willst, hilft es auch, mit dem DynamicDialog ,mal etwas anzulegen und dann als C-Script zu öffnen.

Mit VBS sollte der Befehl zu Auslesen des Variablenwertes OutputValue_Trigger = HMIRuntime.Tags(Variablenname).Read heissen. Aber nagle mich da nicht fest...


----------



## RONIN (25 November 2013)

Durch Zufall bin ich jetzt nach langer Zeit über die Lösung dieses Problem gestolpert....



ducati schrieb:


> Also return(GetTagXXX(Variablenname));
> 
> Gruß.


Diese Variante gibt leider nur den Aktuellen Wert des jeweiligen Tags zurück, ermöglicht aber keine Eingabe/Wertänderung...

Die Lösung hab ich grad einem Siemens-Support-Artikel gefunden...
https://support.automation.siemens....csview&extranet=standard&viewreg=WW#A34603135
Siehe Unterpunkt: Wie kann ich in WinCC ein E/A-Feld indirekt adressieren? 

Die Funktion war immer schon da, aber so richtig hingeschaut hab ich noch nie...


----------



## RONIN (25 November 2013)

So und für die ganz *perserven *:twisted: unter uns könnte man vermutlich sogar basierend auf dem hier
https://www.automation.siemens.com/...how.aspx?HTTPS=REDIR&PostID=62807&language=de

den Adresseintrag des Tags in der WinCC-Datenbank manipulieren... vielleicht....

brr.. schauder....


----------



## ducati (25 November 2013)

RONIN schrieb:


> den Adresseintrag des Tags in der WinCC-Datenbank manipulieren... vielleicht....
> 
> brr.. schauder....



Jo machen kann man viel, nur sollte man sich nicht wundern, wenn nach einer Hochrüstung des System mit mehreren redundanten Doppelservern und vielen Clients und Webserver und H-CPUs irgendwas nicht mehr funktioniert...

In Deinem Ausgangspost hab ich irgendwie überlesen, dass Du auch Eingaben machen willst...

vielleicht auch eine Idee: Bildfenster mit Variablen-Präfix... finde ich eleganter, aber ich kenn ja die Anwendung nicht.


----------



## RONIN (25 November 2013)

ducati schrieb:


> Jo machen kann man viel, nur sollte man sich nicht wundern, wenn nach einer Hochrüstung des System mit mehreren redundanten Doppelservern und vielen Clients und Webserver und H-CPUs irgendwas nicht mehr funktioniert...


Jup... sowas würd vermutlich passieren... das is auch eher was für die *Perservlinge* unter uns, also nicht für mich... 
Aber trotzdem interessant was so geht.



ducati schrieb:


> vielleicht auch eine Idee: Bildfenster mit Variablen-Präfix... finde ich eleganter, aber ich kenn ja die Anwendung nicht.


Das geht auch... aber hast du meinen Betrag meine Beitrag weiter oben vielleicht übersehen...

Wie gesagt um ein E/A-Feld mit einem dynamischen Tag (Ein- und Ausgabe) zu versehen gibt eine WinCC-interne Möglichkeit...
Bild: 
	

		
			
		

		
	




Komisch das mir das da noch nie aufgefallen ist bzw. ich mich noch nie drum gekümmert hab...


----------



## ducati (25 November 2013)

RONIN schrieb:


> Das geht auch... aber hast du meinen Betrag meine Beitrag weiter oben vielleicht übersehen...
> 
> Wie gesagt um ein E/A-Feld mit einem dynamischen Tag (Ein- und Ausgabe) zu versehen gibt eine WinCC-interne Möglichkeit...



Ja, das hab ich schon gelesen... aber da brauchst für jedes EA-Feld noch ne zusätzliche interne Variable bzw. EA-Feld-Zwischenpeicher bzw. nen Script, welches die indirekte Adresse liefert...

Wenn Du jetzt mehrere EA-Felder und evtl. noch sonstiges hast, welche das selbe Variablenpräfix bekommen. Ist ein Bildfenster auch ne gute Variante. Da brauchst Du nur ein Script, welches das Variablenpräfix am Bildfenster ändert, und alle Variablen im Bildfenster bekommen das automatisch vorangestellt. Macht sich gut, wenn die Anbindung an die SPS über Strukturvariablen erfolgt: Variablenpräfix ist dann TM_PZ*1*. und am EA-Feld steht dann nur FU_Wert

aber funktioniert sicherlich beides...


----------

