# Datentypen ändern unter WinCC flexible?



## MM440 (4 November 2008)

Hallo zusammen, 
ich habe in der CPU ein Override mit dem Datentyp LREAL. 
Unter WinCC flexible möchte ich aber über einen Schieberegler diese Variable ansprechen. Jedoch akzeptiert der Schieberegler z.B nur Datentypen von DINT und WORD. 

Meine Frage lautet also, ob es eine Möglichkeit gibt unter WinCC flexible die Datentypen zu ändern, sei es über Script oder Einstellungen. 

Falls es mit Script gehen würde, wie würde es programmmäßig aussehen? 
Mit Script zu programmieren, kenne ich mich noch nicht aus.

Vielen Dank im Voraus.


----------



## johnij (4 November 2008)

MM440 schrieb:


> Hallo zusammen,
> ich habe in der CPU ein Override mit dem Datentyp LREAL.
> Unter WinCC flexible möchte ich aber über einen Schieberegler diese Variable ansprechen. Jedoch akzeptiert der Schieberegler z.B nur Datentypen von DINT und WORD.
> 
> ...


#

Ein Schiebregister eignet sich zur Darstellung von Ganzzahlen
--> ungeeignet bei dem Datentyp Real
Was spricht gegen ein E/A Feld??
PS: ein Skript hilft Dir auch nicht weiter.......


----------



## MM440 (4 November 2008)

Vielen Dank für die Antwort.
Ein E/A Feld benutze ich bereits.
Ein Schieberegler sollte nur als Zusatzfunktion dienen. 
Wenn dies nicht möglich ist, dann denke ich, wäre eine Addition bzw. Subtraktion der Werte machbar, ähnlich wie die Tippfunktion.


----------



## Kai (4 November 2008)

MM440 schrieb:


> ich habe in der CPU ein Override mit dem Datentyp LREAL.
> Unter WinCC flexible möchte ich aber über einen Schieberegler diese Variable ansprechen. Jedoch akzeptiert der Schieberegler z.B nur Datentypen von DINT und WORD.
> 
> Meine Frage lautet also, ob es eine Möglichkeit gibt unter WinCC flexible die Datentypen zu ändern, sei es über Script oder Einstellungen.


 
In VBScript kann man mit den folgenden Typkonvertierung arbeiten:



> *CSng-Funktion*
> 
> *Beschreibung*
> 
> ...


 


> *CLng-Funktion*
> 
> *Beschreibung*
> 
> ...


 



> *CDbl-Funktion*
> 
> *Beschreibung*
> 
> ...


 
Gruß Kai


----------



## Kai (4 November 2008)

In dem folgendem Programmbeispiel ist in WinCC flexible an einem Schieberegler eine Variable vom Datentyp INT projektiert.

Bei einer Wertänderung der Variablen vom Datentyp INT wird diese Variable in einem VBScript mit der CSng-Funktion in eine Variable vom Datentyp SINGLE konvertiert und als Variable vom Datentyp REAL abgespeichert.


```
' CSng-Funktion
'
' Gibt einen Ausdruck zurück, der in einen Wert vom Typ Variant 
' mit dem Untertyp Single konvertier wurde.
 
SmartTags("Schieberegler_REAL") = CSng(SmartTags("Schieberegler_INT"))
```
 
Gruß Kai


----------



## Kai (4 November 2008)

Und noch ein paar Bilder.

Gruß Kai


----------



## MM440 (4 November 2008)

*Danke*

Vielen Dank Kai,  
Bildbeispiele helfen mir sehr, sie sind leicht verständlich. Ich werde morgen gleich ausprobieren. 
Und vielen Dank für deine Mühe ein Projekt zu erstellen und die Bilder hochzuladen. :-D


----------



## Question_mark (4 November 2008)

*Kein weiterer Kommentar ....*

Hallo,



			
				MM440 schrieb:
			
		

> über einen Schieberegler diese Variable ansprechen.





			
				johnij schrieb:
			
		

> Ein Schiebregister eignet sich zur Darstellung von Ganzzahlen
> --> ungeeignet bei dem Datentyp Real



Das lasse ich jetzt mal unkommentiert, aber ich warte schon gespannt auf die nächste, von Dir entwickelte WinCC-Flex Version  *ROFL*

Gruß

Question_mark


----------



## Kai (5 November 2008)

Hier ist noch einmal ein leicht geändertes Programmbeispiel für einen Schieberegler in WinCC flexible

An einem Schieberegler ist eine Variable vom Datentyp INT projektiert.

Bei einer Wertänderung der Variablen vom Datentyp INT wird diese Variable in einem VBScript mit der CSng-Funktion in eine Variable vom Datentyp SINGLE konvertiert und als Variable vom Datentyp REAL abgespeichert.


```
' CSng-Funktion
'
' Gibt einen Ausdruck zurück, der in einen Wert vom Typ Variant 
' mit dem Untertyp Single konvertier wurde.
 
SmartTags("Schieberegler_REAL") = CSng(SmartTags("Schieberegler_INT"))
```
 
An einem EA-Feld ist eine Variable vom Datentyp REAL projektiert.

Bei einer Wertänderung der Variablen vom Datentyp REAL wird diese Variable in einem VBScript mit der CInt-Funktion in eine Variable vom Datentyp INT konvertiert und als Variable vom Datentyp INT abgespeichert.


```
' CInt-Funktion
'
' Gibt einen Ausdruck zurück, der in einen Wert vom Typ Variant 
' mit dem Untertyp Integer konvertier wurde.
 
SmartTags("Schieberegler_INT") = CInt(SmartTags("Schieberegler_REAL"))
```
 
Gruß Kai


----------



## Kai (5 November 2008)

Und noch ein paar Bilder.

Gruß Kai


----------



## Kai (5 November 2008)

Hier ist noch einmal ein leicht geändertes Programmbeispiel für einen Schieberegler in WinCC flexible.

Eine Variable vom Datentyp INT ist an einem Schieberegler sowie an einem EA-Feld projektiert.

Bei einer Wertänderung der Variablen vom Datentyp INT durch den Schieberegler oder durch das EA-Feld wird diese Variable in einem VBScript mit der CSng-Funktion in eine Variable vom Datentyp SINGLE konvertiert und als Variable vom Datentyp REAL abgespeichert.


```
' CSng-Funktion
'
' Gibt einen Ausdruck zurück, der in einen Wert vom Typ Variant 
' mit dem Untertyp Single konvertier wurde.
 
SmartTags("Schieberegler_REAL") = CSng(SmartTags("Schieberegler_INT"))
```
 
Gruß Kai


----------



## Kai (5 November 2008)

Und noch ein paar Bilder.

Gruß Kai


----------



## johnij (5 November 2008)

@Kai
Bei der Frage geht es nämlich darum Gleitpunktzahlen in einem Schiebregler darzustellen.... (z.B 13,56.)
Dass man INT(Word)-->Real umwandeln kann ist klar .Das bringt aber in unserem Fall kein Ergebnis


----------



## johnij (5 November 2008)

Question_mark schrieb:


> Hallo,
> 
> 
> 
> ...


 

Wenn Du es meinst.......


----------



## MM440 (5 November 2008)

Danke für die Informationen. Die Typenänderungsbeispiele genügen für die Visualisierung unter WinCC flexible. Manchmal hat man getrennte Aufgaben, die einen programmieren, die anderen visualisieren. Und es fällt dann einem schwer extra im Programm dafür zu sorgen, dass die Variablen mit denen unter WinCC flexible in Einklang zu bringen.

Vielen Dank für alles.


----------

