# WinCC Flex Script mit Bit aus S7 Anstoßen



## salus (16 März 2011)

Hallo User,
ich möchte gerne ein Script "Copy_Archive" mit steigender Flanke einer Bit-Variablen aus der SPS ausführen. Für die Anweisung in dem Script stehe hier etwas auf dem Schlauch.

Vielen Dank für die Hilfe


----------



## PN/DP (16 März 2011)

Du müßtest die Bit-Variable "Zyklisch fortlaufend" lesen und beim Ereignis "Änderung" Dein Script aufrufen. Am Beginn des Scriptes die Variable abfragen, ob die jetzt 1 ist (dann war's die steigende Flanke). Ist die jetzt 0, dann das Script ohne was zu tun gleich wieder verlassen (exit).

Harald


----------



## JesperMP (16 März 2011)

Anstatt ein Bit, nimm ein Zähler. Und inkrementier die Zähler 0, 1, 2, ... 9999, 10000, 0, 1, usw.
Und speicher diese Zähler-Wert zusammen mit die andere Daten.
Dann kan man sehen ob alle Skript-Aufrufe abgefangen werden.
Und man braucht nicht zu testen ob es ein "steigender" Flanke war.


----------



## Kai (16 März 2011)

salus schrieb:


> ich möchte gerne ein Script "Copy_Archive" mit steigender Flanke einer Bit-Variablen aus der SPS ausführen. Für die Anweisung in dem Script stehe hier etwas auf dem Schlauch.


 
Eine *Variable Trigger* vom *Datentyp Bool* hat als *Erfassungsart Zyklisch fortlaufend*.




Bei einer *Wertänderung* der *Variablen Trigger* von *False/True* oder *True/False* wird ein *Skript Speicher* aufgerufen.

Durch die Abfrage der Bedingung *Variable Trigger = True* in der ersten Zeile des Skriptes werden die folgenden Anweisungen 
im Skript jedoch nur bei einer *Wertänderung* von *False/True* ausgeführt


```
Dim i
 
If SmartTags("Trigger") = True Then
 
    For i = 3 To 0 Step - 1
 
        SmartTags("Speicher_1")(i + 1) = SmartTags("Speicher_1")(i)
 
        SmartTags("Speicher_2")(i + 1) = SmartTags("Speicher_2")(i)
 
    Next
 
    SmartTags("Speicher_1")(0) = SmartTags("Messwert_1")
 
    SmartTags("Speicher_2")(0) = SmartTags("Messwert_2")
 
End If
```
 




Gruß Kai


----------



## Paule (16 März 2011)

PN/DP schrieb:


> Du müßtest die Bit-Variable "Zyklisch fortlaufend" lesen und beim Ereignis "Änderung" Dein Script aufrufen.


[OT]
Wenn bei TIA V11 mit einer Variable ein Script aufgerufen wird, stellt sich die Variable automatisch auf "Zyklisch fortlaufend" um.
Coole Sache 
[/OT]


----------



## Jochen Kühner (17 März 2011)

Paule schrieb:


> [OT]
> Wenn bei TIA V11 mit einer Variable ein Script aufgerufen wird, stellt sich die Variable automatisch auf "Zyklisch fortlaufend" um.
> Coole Sache
> [/OT]



Hast dus schon?


----------



## Paule (17 März 2011)

Jochen Kühner schrieb:


> Hast dus schon?


Leider noch nicht, habe es aber bei einer Vorführung gesehen.


----------

