Win CC Timer & Zähler

cod3sys

Level-1
Beiträge
79
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Forum,

Hat jemand Erfahrungen mit WinCC Zählfunktionen oder Zeitfunktionen ?
z.B. BOOL Signal "Tür Auf", es soll gezählt werden wie lange die Tür auf war und wie oft.
Bin sehr dankbar für jede idee...


Gruß
NUT
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

danke für deine Antwort. Ich weiss das man Zeiten und Zählern in der SPS verarbeitet. In diesem Fall habe ich aber keine SPS die untergeordnet ist. Die Variablen kommen von einer ET200 Station.
 
Hallo Nutella,

Deine Angaben sind etwas missverständlich. Wie bekommst Du denn die Daten ohne SPS von der ET200 aufs WinCC?


Gruss Andi F :)
 
Man könnte in einem Skript den Tag als Trigger anlegen und bei Änderung den Zeitstempel auslesen. Diesen in einen Buffer schreiben und bei der nächsten Änderung den Unterschied der Zeiten ausrechnen. Zur Anzahl der Öffungen direkt eine Variable inkrementieren.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe mal bei Intouch nen Lifebeat realiesiert, ich denke das müsste bei WinCC aber auch gehen.

Sekunden Takt auf Aktion Skript.. dort eine +1 auf eine Variable schreiben .. schon haste dein Zeitwert. Dieses Skript kannst du natürlich zusätzlich durch eine UND Bedinnung natürlich EIn/Aus Schalten .. Somit hättest du deinen Timer..
 
Andi schrieb:
Hallo Nutella,

Deine Angaben sind etwas missverständlich. Wie bekommst Du denn die Daten ohne SPS von der ET200 aufs WinCC?

Hallo Andi,
in meinem Beispiel habe ich auf ein Rechner nur WinCC installiert und über einen OPC Server (Industrial Ethernet) verbinde ich mich zu den SPS en oder zu den ET200 Baugruppen.
 
Hat jemand vielleicht ein Beispiel, wie man sowas auf der Basis von einem Taktmerker erstellt. Ich denke mal bei WinnCC sind Zeiten oder Zähler nur in Verbindung von Taktmerker (trigger) oder negtive+positive Flanken möglich.
 
Hi nochmal,

Praktikant habe mir dein Beispiel Projekt runtergeladen und getestet funktioniert sehr gut, vielen Dank nochmal.
Wenn ich aber den VB script in meinem Projekt benutzen will bekomme ich immer die Fehlermeldung " Variable ist nicht definiert " .
Dabei habe ich genau so wie in deinem Projekt zwei interne Variable angelegt wo ich die Zeit und Anzahl reinschreibe.
Ich füge mal ein paar Screenshots ein kann man besser sehen.
Wenn ich aber wieder auf dein Beispiel Projekt wechsele funktioniert es wieder ohne Fehlermeldungen.
Was ist denn nun bei mir anders, daß die zugewiesenen internen Variablen nicht erkannt werden ?
Übrigens kannst du mir vielleicht auch verrraten ob ich mit diesem Script nur bei Wertänderung der Variable aus dem Variablenhaushalt Zählen kann ?
Also ohne daß ich einen Button betätige.





Gruß
NUT
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
hi,

zu 1.
die variablen sind bildweit definiert (Option Explicit)

zu 2.
dazu solltest du eine neue aktion im global-script anlegen und den trigger mit der variable verbinden, die auf tuer offen reagiert.
nun wird das script bei jeder änderung der variable aufgerufen und du musst mit

if DEINE_VARIABLE = 1 then
DEINE_AKTIONEN
end if

den zustand abfangen
 

Anhänge

  • option_explicit.jpg
    option_explicit.jpg
    117,9 KB · Aufrufe: 25
Zuletzt bearbeitet:
Praktikant ich kann mich nicht genug für deine Mühe bedanken. Danke, Danke, Danke ..... Deine Beiträge haben mir sehr geholfen.
 
Hi,

kannst du mir bitte noch einmal aushelfen.
Also ich habe diesen Script im Global Script angelegt und mit der genannten Variable getriggert.
Wenn das Tor geöffnet ist wird nichts gezählt. Ich habe mal mit dem Microsoft Script Debugger mir die Sache angeschaut und der Script bleibt immer an der " If RolltorOffen = 1 then " stehen.
Muss irgendwo die Variale aus dem Variablenhaushalt irgenwie nochmal gelesen werden ???
Der Script sieht wie folgt aus:

Option Explicit
Function action
Dim RolltorOffen, AnzahlOffen
Set RolltorOffen = HMIRuntime.Tags ("Rolltor_geöffnet")
If RolltorOffen = 1 Then
Set AnzahlOffen = HMIRuntime.Tags ("AnzahlOffen")
AnzahlOffen.Write(AnzahlOffen.Read (1) +1)
End If
End Function
 

Anhänge

  • Capture-1.jpg
    Capture-1.jpg
    139,3 KB · Aufrufe: 7
  • Capture-2.jpg
    Capture-2.jpg
    125,2 KB · Aufrufe: 4
Vielen Dank,

du bist echt ein Profi in Visual Basic.
Sorry das ich ziemlich genervt habe aber das ist mein Einstieg in Visual Basic. :rolleyes:
 
Hi Praktikant,

kannst du mir vielleicht nochmal den Hintergrund erzählen wie deine Zeit hier immer 1 sekunde zählt ?
Kann man in VB z.B. Timer.Intervall = 1000 irgendwie etwas ändern ?
In welcher Zeit wird die mit VB erfasst ? ms ?
 
Zuletzt bearbeitet:
Hi, genauso hatte ich es schon versucht. Das der Script über einen zyklischen Trigger aufgerufen wird, aber es zählt irgendwelche wahnsinns Zahlen zusammen. Ich habe es zur Zeit mit der Zählfunktion gelöst und es mit einem 1 Sekunden Trigger belegt. Also solange das Rolltor offen ist ( If ... then ) wird im sekundentakt hochgezählt. Trotzdem würde mich intressieren wie man in Visual Basic diese Timer funktion mit Sekunden Takt lösen kann. Hast du es bei dir schonmal versucht ? Funktioniert es wenn du deinen Script mit einem Sekunden Trigger belegst ?
 
Zurück
Oben