WinCC externe Variablen zerstückeln

pjoddi

Level-2
Beiträge
212
Reaktionspunkte
54
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo allerseits

habe nun mein erstes echtes WinCC Projekt auf dem Tisch, und natürlich die "kleine Lizenz-Nummer". (by King Customer)
Also muß ich externe Variablen sparen.
Habe mir in der SPS also meine Bits in DWs gesammelt, und muß sie in WinCC nun wieder auseinanderpflücken.

Und da beginnt mein Problem. Hat jemand einen Ansatz oder ein C-script, mit dem man diese Auflösung in einzelne Bits bewerkstelligen kann? Habe bisher noch nicht mit scripten gearbeitet.
 
Kenn mich mit WinCC jetzt nicht aus aber kann man da nicht Struct Variablen auch übergeben und man benötigt nur 1Tag?
Da kannst ja deine Daten in Struct zusammenfassen und das sollte dann leicht wieder zum auseinandernehmen sein.
Geht das so? :rolleyes:

godi
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Kenn mich mit WinCC jetzt nicht aus aber kann man da nicht Struct Variablen auch übergeben und man benötigt nur 1Tag?
Da kannst ja deine Daten in Struct zusammenfassen und das sollte dann leicht wieder zum auseinandernehmen sein.
Geht das so? :rolleyes:

godi

Jedes Struct Mitglied ist ein Powertag. Leider.

Gruß Schumi91
 
Wo ist das Problem, du kannst doch das Bit das du aus deinem DW möchtest in wincc einfach angeben, zuerst Variable dann bit auswählen, oder verstehe ich die frage falsch, so hab ichs bei meinem projekt gemacht und echt en haufen tags "gespart"

mfg
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Natürlich, Danke!

Danke Euch, habs jetzt gefunden.
Wer lesen kann ist klar im Vorteil!
Man kann natürlich, genau so wie`s "geduldiger" geschildert hat, eine externe Variable vom Typ "Word" angeben, und mit der Schaltfläche "Bit" dann das entsprechende Bit auswählen.
Schönen Abend noch!
 
Und diese ganzen Word Variablen kannste dann in einem Array zusammenfassen, das kostet dich dann auch nur einen Powertag :)
 
Kannst auch Rohdaten verwenden. Damit kannst du bis zu 256 Byte mit einer Variable einlesen. Mußt es dann halt per C skript wieder zerpflücken.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hab hier was. aber noch nicht getestet. Iss gleich Feierabend :ROFLMAO:


Code:
struct {
       WORD Stat1;
       WORD Stat2;
       WORD Stat3;
       WORD Stat4;
       WORD Stat5;
       WORD Stat6;
       WORD Stat7;
       WORD Stat8;
       } RStat;
 
#define pRawTag = "Deine_Rohdaten_Variable"
 
DWORD        TagState;
 
GetTagRawState(pRawTag,(BYTE *)&RStat,sizeof(RStat),&TagState);
 
if(TagState) 
     return 0; 
 
 
 
 
//ab hier kannst du auf die einzelnen Word´s zugreifen bzw auf interne Variable schreiben die ja nicht gezählt werden :)
//ist aber ein wenig dirty *g*
 
SetTagWord(Deine_interne_16Bit_Variable,RStat.Stat1);
//usw
 
@eYe

Kannst Du das bitte mal erklären ? Kenne nur die Struct's. :(

Danke
Christian

Hallo!

Brauchst nur in deinem DB ein ARRAY anlegen.
zb.:
Code:
DATA_BLOCK DB 1
TITLE =
VERSION : 0.1

  STRUCT  
   Dein_Speicher : ARRAY  [1 .. 10 ] OF //Array mit 10 Word
   WORD ; 
  END_STRUCT ; 
BEGIN
   Dein_Speicher[1] := W#16#0; 
   Dein_Speicher[2] := W#16#0; 
   Dein_Speicher[3] := W#16#0; 
   Dein_Speicher[4] := W#16#0; 
   Dein_Speicher[5] := W#16#0; 
   Dein_Speicher[6] := W#16#0; 
   Dein_Speicher[7] := W#16#0; 
   Dein_Speicher[8] := W#16#0; 
   Dein_Speicher[9] := W#16#0; 
   Dein_Speicher[10] := W#16#0; 
END_DATA_BLOCK

godi
 
Habe gerade mal WinCC V6.0 gestartet gehabt! :(
Was ich so gesehen habe geht das leider nicht, das man ein Array übergiebt! :(
Maximal geht ein 32BIT vorzeichenlose Variable

godi
 
Nö, das weiß ich ja ;)

Zu meinem Verständnis (wurde alles schon mal erwähnt) :
Mir ist klar das wenn man eine Wort oder Doppelwort Variable anlegt (WinCC) man auf die einzelnen Bits zugreifen kann aber nur ein Powetag benötigt. Ich weiß auch das beim Struct für jedes Mitglied ein Powertag fällig ist. Die Lösung über eine Rohdatenvariable zu gehen und diese anschließend über C wieder auseinanderzudrösseln kenn ich auch ...

Man was ich alles kenne :ROFLMAO:

Nu sagt eYe aber:

Und diese ganzen Word Variablen kannste dann in einem Array zusammenfassen, das kostet dich dann auch nur einen Powertag :)

Und das versteh ich nicht ganz !

Meint er damit eine Doppel/Wortvariable in WinCC anlegen und diese in der SPS wie von godi bereits gezeigt entsprechend nach Bedarf zu füllen ?

Gruß
Christian
 
Zurück
Oben