# Symbolisches EA-Feld



## PLCTEC (10 Mai 2007)

WinCC flexible 2005 in Verbindung mit MP370

Hi 
möchte mit einem Symbolischen EA-Feld + Textliste in eine interne
Variablen einen Wert schreiben und dann abhänig vom Wert per Script verschiedene Strings max 24 Zeichen zur SPS in einen DB übertragen.
Muß natürlich in beide Richtungen funktionieren also lesen und schreiben... (Ein-/Ausgabe)

Hat jemand viellleicht eine Idee wie ich das am besten lösen kann ??
Muß zu meiner Schande gestehen das ich von Scripte keine Ahnung habe.
Kann auch ohne Script sein ... nur eine Idee von mir.

gruß


----------



## Kai (10 Mai 2007)

Um was geht es hier: WinCC, WinCC flexible ...  

Gruß Kai


----------



## PLCTEC (10 Mai 2007)

Sorry  ----->>>> WinCC flexible 2005 in Verbindung mit MP370

Gruß


----------



## Larry Laffer (11 Mai 2007)

Hallo,
das Script könnte z.B. so aussehen :

if Nummer = 01 then
   StringVariable = "Text 1"
elseif Nummer = 02 then
   StringCariable = "Text 2"
end if

"Nummer" und "StringVariable" sind hierbei Variablen aus der Visu und müssen auch dort hinterlegt sein.
...


----------



## PLCTEC (11 Mai 2007)

Danke werde ich gleich mal testen bzw. probieren

Super klappt...... den Rest versuche ich mal alleine ....... oder Schreie um HILFE

Gruß


----------



## Larry Laffer (11 Mai 2007)

Bitte auf jeden Fall den geänderten String auch auf der Visu anzeigen um sicher zu stellen, dass er auch zur SPS geschickt wird ...


----------



## PLCTEC (11 Mai 2007)

Hi

danke für den Tip mit dem "Anzeigen" in der Visu

Dabei habe ich festgestellt das alles läuft außer wenn ich mehr als 10 Zeichen übertrage....... das klappt dann nicht

*If SmartTags("Anzeigefach_1")= 1 Then*
*SmartTags("Textanzeige") = "1234567890123"*
ElseIf SmartTags("Anzeigefach_1")=2 Then
SmartTags("Textanzeige") ="Text2"
ElseIf SmartTags("Anzeigefach_1")=3 Then
SmartTags("Textanzeige") ="Text3"
ElseIf SmartTags("Anzeigefach_1")=4 Then
SmartTags("Textanzeige") ="Text4"
ElseIf SmartTags("Anzeigefach_1")=5 Then
SmartTags("Textanzeige") ="Text5"
ElseIf SmartTags("Anzeigefach_1")=6 Then
SmartTags("Textanzeige") ="Text6"
ElseIf SmartTags("Anzeigefach_1")=7 Then
SmartTags("Textanzeige") ="Text7"
ElseIf SmartTags("Anzeigefach_1")=8 Then
SmartTags("Textanzeige") ="Text8"
ElseIf SmartTags("Anzeigefach_1")=9 Then
SmartTags("Textanzeige") ="Text9"
End If

Muß ich einem Script noch irgendwo die Länge angeben ?????

In der SPS ist mein Datenbaustein ja auch definiert
Byte n    = maximale Länge
Byte n+1 = aktuelle Länge
Byte n+2 = erste Zeichen
Byte n+3 = zweite Zeichen
Byte n+4 = dritte Zeichen
usw


Gruß


----------



## Larry Laffer (11 Mai 2007)

... Nein.

Für VB-Script-Variablen (also solche, die du im Script mit DIM erzeugst) ist die max. Länge 254. Ich habe selber auch noch keine weitere Grenze festgestellt. Hast du denn die Länge des Ausgabefeldes nach deinen Wünschen eingestellt ? Kontrollier doch auch mal, was im DB in der SPS ankommt ... Deine Variable muss von der SPS her natürlich auch die richtige Länge haben (aber ich glaube, das hattest du berücksichtigt)
Sonst kann ich so aus dem Stehgreif nichts weiter sagen ...


----------



## PLCTEC (11 Mai 2007)

Ja habe ich soweit alles ok
Ein-/Ausgabefeld ist auf 24 Zeichen eingestellt das ist auch der längste Text.

Ich suche weiter.......... Danke erstmal


----------



## Kai (11 Mai 2007)

Ich habe mal in WinCC flexible ein symbolisches EA-Feld mit 8 Texteinträgen projektiert. Es werden dabei mit einem Skript maximal 8 Zeichen in die SPS übertragen. Eine Erweiterung auf maximal 24 Zeichen sollte ohne Probleme möglich sein. Vielleicht hilft Dir mein Beispielprojekt ja weiter.

Gruß Kai


----------



## Kai (11 Mai 2007)

Und noch ein paar Bilder.

Gruß Kai


----------



## PLCTEC (12 Mai 2007)

Hi

super Danke jetzt klappt alles.  
Habe nochmal das Projekt neu angelegt und jetzt ist alles ok.

Echt klasse wie *Larry Laffer* und *Kai *mir geholfen haben.
Vielen Dank

Gruß


----------

