WinCC flexible 2INT-Variablen in DINT zusammenfassen

Thomas_K

Level-2
Beiträge
10
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich habe folgendes Problem.
Ich habe eine Datenhistorie über einen großen DB in der Steuerung aufgebaut, indem 280 Datensätze gespeichert werden, ist der 280igste Datensatz geschrieben, wird wieder der erste überschrieben. 5 Datensätze kann ich in der Visu ( MP377 unter WinCC flexible, WinCE) ansehen. Um die Tags gering zu halten, habe ich ein Array mit 300 INT-Variablen als Kopplung zwischen Steuerung und MP. Jetzt möchte ich einen Datensatzzähler haben, der jeden erzeugten Datensatz fortlaufend nummeriert, dieser muß im Format DINT sein um eine große Zahl darstellen zu können. Meine Idee ist jetzt die, in der Steuerung den DINT Wert in zwei verschiedene INT-Variablen zu transferieren.

DINT= DBX.DBDXX
L DBX.DBWXX
T DBY.DBWXX = Variable des Arrays
L DBX.DBWXX+2
T DBY.DBWXX+2 = Variable des Arrays

Jetzt muß ich im WinCC flex. aus den 2 INT-Variablen wieder eine DINT bzw. eine LONG-Variable machen. Das geht bestimmt über ein Script, aber wie lautet dazu der VBScript Syntax. Wie kann man in VBScript zwei 16Bit Variablen zu einer 32Bit-Variablen zusammenfügen, in Step7 ist das kein Problem.
Danke
Thomas_K
 
:confused: du mußt den höherwertigen INT mit 65536 multiplizieren und dann den niederwertigen dazuaddieren.
Wenn du die interne Long-Variable ständig aus den beiden Teil-Variablen aktualisiert haben mäöchtest, so mußt du die Teil-Variablen entweder auf der jeweiligen Bildschirmseite mit anzeigen oder die Variablen-Aktualisierung der beiden von "zyklisch bei Verwendung" auf "zyklisch fortlaufend" ändern.

Gruß
LL
 
Zuviel Werbung?
-> Hier kostenlos registrieren
HiWord = DBX.DBWXX
LoWord = DBX.DBWXX +2

Im Script könnte das dann so aussehen ...

Code:
  Dim DInt_Var
  DInt_Var = SmartTags("HiWord") * &H10000 + SmartTags("LoWord")

Gruß
 
Zurück
Oben