Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 3 von 5 ErsteErste 12345 LetzteLetzte
Ergebnis 21 bis 30 von 41

Thema: Archivierung Zeitgesteuert aktivieren

  1. #21
    Registriert seit
    17.02.2009
    Ort
    Niederrhein
    Beiträge
    86
    Danke
    10
    Erhielt 8 Danke für 7 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Wie herum funktioniert SetTag ?
    Nicht das du hier Old auf akt schreibst statt umgekehrt wie du es eigentlich willst ...
    Zitat Zitat von ukofumo Beitrag anzeigen
    Ich bin jetzt auch nicht der Sripting-Spezi
    aber muss die letzte Anweisung nicht genau anders herum lauten?

    Code:
    falsch:
    M_Stopp_Archiv_Old = M_Stopp_Archiv
    
    richtig:
    M_Stopp_Archiv = M_Stopp_Archiv_Old
    Gruß ukofumo
    genau das meinte ich ja, mir scheint nämlich das du durch die falsche Reihenfolge deine Variable "M_Stop_Archiv" ständig zu NULL schreibst...
    und nicht den aktuellen Zustand von M_Stop_Archiv auf deine "Flankenvariable" M_Stop_Archiv_Old...

    ggf. mal die beiden Variablen als "Leuchtmelder" ausgeben dann kannst du den Zustand ja "sehen" (oder als Farbumschlag bei deinen beiden Buttons)

    Gruß ukofumo
    Gruß ukofumo

    Es ist vollkommen egal, wie oft man im Leben hinfällt. Es ist nur wichtig, wie oft man wieder aufsteht.

  2. #22
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.181
    Danke
    923
    Erhielt 3.289 Danke für 2.658 Beiträge

    Standard

    Zitat Zitat von ukofumo Beitrag anzeigen
    Ich bin jetzt auch nicht der Sripting-Spezi
    aber muss die letzte Anweisung nicht genau anders herum lauten?

    Code:
    falsch:
    M_Stopp_Archiv_Old = M_Stopp_Archiv
    
    richtig:
    M_Stopp_Archiv = M_Stopp_Archiv_Old
    Nein muß nicht, das ist schon richtig so. Dein Vorschlag ist falsch.

    Der TE versucht eine Flankenerkennung (welche aber nicht nötig ist).
    M_Stopp_Archiv ist die Trigger-Variable mit dem aktuellen Zustand, demzufolge muß am Ende der aktuelle Zustand in M_Stopp_Archiv_Old gemerkt werden. Siehe die Beiträge #1 und #6

    In VBS (wie eigentlich bei fast allen Programmiersprachen) steht bei Zuweisungen die Zielvariable links vom =, rechts steht das was zugewiesen werden soll.
    Code:
    'den Wert von M_Stopp_Archiv an M_Stopp_Archiv_Old zuweisen:
    M_Stopp_Archiv_Old = M_Stopp_Archiv
    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  3. #23
    Registriert seit
    17.02.2009
    Ort
    Niederrhein
    Beiträge
    86
    Danke
    10
    Erhielt 8 Danke für 7 Beiträge

    Standard

    Ok, Asche auf mein Haupt... Harald hat (ein bisschen) Recht....

    Code:
    'den Wert von M_Stopp_Archiv an M_Stopp_Archiv_Old zuweisen:
    M_Stopp_Archiv_Old = M_Stopp_Archiv
    Ich hab jetzt mal ein bissi gespielt...
    diese Art der Zuweisung scheint in WinCC gennerell nicht zu fuktionieren.

    Die Anweisung ob "M_Stopp_Archiv_Old" gesetzt oder zurück gesetzt werden soll muss mit in den jeweiligen Zweig.
    Ob dabei die getrennten If-Abfragen oder die If-Then-Else Variante sollten beide funktionieren.

    Code:
    If  (M_Stopp_Archiv And Not M_Stopp_Archiv_Old)  Then
        StopLogging hmiAlarmLog, "STQ_Archiv"
        HmiRuntime.Trace("Stopp Logging")    
    '    ShowSystemAlarm("Stopp Logging")
        ActivateScreen "BG 04",0
        SetTag ("M_Stopp_Archiv_Old"),1
    End If
    
    If  (Not M_Stopp_Archiv And M_Stopp_Archiv_Old)  Then
        StartLogging hmiAlarmLog, "STQ_Archiv"
        HmiRuntime.Trace("Start Logging")    
    '    ShowSystemAlarm("Start Logging")
        ActivateScreen "BG 05",0
        SetTag ("M_Stopp_Archiv_Old"),0
    End If
    Code:
    If (M_Stopp_Archiv And Not M_Stopp_Archiv_Old) Then
        StopLogging hmiAlarmLog, "STQ_Archiv"
        HmiRuntime.Trace("Stopp Logging")    
    '    ShowSystemAlarm("Stopp Logging")
        ActivateScreen "BG 04",0
        SetTag ("M_Stopp_Archiv_Old"),1
    ElseIf (Not M_Stopp_Archiv And M_Stopp_Archiv_Old) Then
        StartLogging hmiAlarmLog, "STQ_Archiv"
        HmiRuntime.Trace("Start Logging")    
    '    ShowSystemAlarm("Start Logging")
        ActivateScreen "BG 05",0
        SetTag ("M_Stopp_Archiv_Old"),0
    End If
    Gruß ukofumo
    Angehängte Grafiken Angehängte Grafiken
    Geändert von ukofumo (23.01.2015 um 20:29 Uhr)
    Gruß ukofumo

    Es ist vollkommen egal, wie oft man im Leben hinfällt. Es ist nur wichtig, wie oft man wieder aufsteht.

  4. #24
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.716
    Danke
    398
    Erhielt 2.399 Danke für 1.999 Beiträge

    Standard

    Zitat Zitat von ukofumo Beitrag anzeigen
    diese Art der Zuweisung scheint in WinCC gennerell nicht zu fuktionieren.
    Das wäre dann aber ein böser Fehler im TIA wenn du da Recht hast (ich kann es nicht checken - aber der TE wird es am Montag ganz sicher tun).
    Bei WinCCFlexibel 2008 zumindestens bin ich mir noch ganz sicher, dass es da korrekt (und wie auch vom TE gedacht) funktioniert hat ...

    Gruß
    Larry

  5. #25
    Registriert seit
    17.02.2009
    Ort
    Niederrhein
    Beiträge
    86
    Danke
    10
    Erhielt 8 Danke für 7 Beiträge

    Standard

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Das wäre dann aber ein böser Fehler im TIA wenn du da Recht hast (ich kann es nicht checken - aber der TE wird es am Montag ganz sicher tun).
    Bei WinCCFlexibel 2008 zumindestens bin ich mir noch ganz sicher, dass es da korrekt (und wie auch vom TE gedacht) funktioniert hat ...

    Gruß
    Larry
    tya, wie war der Spruch? warum einfach wenns auch Siemens gibt.... bei weitem ja auch nicht der einzigste Bug im TIA
    its not a Bug -> its a Feature
    Gruß ukofumo
    Gruß ukofumo

    Es ist vollkommen egal, wie oft man im Leben hinfällt. Es ist nur wichtig, wie oft man wieder aufsteht.

  6. #26
    Registriert seit
    17.02.2009
    Ort
    Niederrhein
    Beiträge
    86
    Danke
    10
    Erhielt 8 Danke für 7 Beiträge

    Standard

    Nachtrag,
    ich habs mit TIA-WinCC V13 (Updatestand müsst ich montag nochmal nachschauen) probiert, alledings auch nur mit der Runtime- Simulation getestet.
    ob sich das bei nem Realen Panel dann anderst verhält...

    mir sind auch noch ein paar weitere mir merkwürdige eigenheiten aufgefallen:
    Code:
    'wenn ich im Script eine HMI-Bit-Variable mit:
    Variable_XY = 1
    'wird die Variable auf "1" gesetzt
    Code:
    Variable_XY = 0
    'bewirkt komischer weise aber überhaupt nix (?)  die Variable bleibt auf "1"
    Zumal ich Bit-Variablen ja eig. auch eher mit "TRUE" und "FALSE" traktieren würde....
    Code:
    Variable_XY = True
    Variable_XY = False
    
    Beide Varianten bewirken aber überhaupt nix!
    deshalb dann letztlich über die "SetTag-Funktion"....



    nehme ich aber eine INT-Variable (oder DINT)
    Code:
    Variable_INT = Variable_INT +1
    
    oder
    Variable_INT = Variable_INT -1
    funktioniert das klaglos, bei jedem Scriptaufruf zählt die Variable eins hoch... (bzw. eins runter)
    Geändert von ukofumo (24.01.2015 um 16:24 Uhr)
    Gruß ukofumo

    Es ist vollkommen egal, wie oft man im Leben hinfällt. Es ist nur wichtig, wie oft man wieder aufsteht.

  7. #27
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.716
    Danke
    398
    Erhielt 2.399 Danke für 1.999 Beiträge

    Standard

    Das, was du da schreibst, wäre eine mögliche Erklärung für die Problematik des TE - für mich entbehrt das allerdings eines logischen Zusammenhangs (bitte nicht als Kritik an dich und deine Bemühungen, Licht ins Dunkel zu bringen, zu verstehen). Ich bin jetzt wirklich sehr gespannt, wie sich das Ganze weiter entwickelt.

    Gruß
    Larry

  8. #28
    Registriert seit
    17.02.2009
    Ort
    Niederrhein
    Beiträge
    86
    Danke
    10
    Erhielt 8 Danke für 7 Beiträge

    Standard

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    für mich entbehrt das allerdings eines logischen Zusammenhangs
    Trrzzz... ne kein Problem
    ich hatte ja am Anfang schon geschrieben das ich jetzt nicht unbedingt der Scripting-Profi bin...
    hätte aber schon gedacht das mich mein Basic-Wissen aus C64er Zeiten und VisualBasic doch nützen würde...
    wioe es ausschaut muss ich aber für VB-WinCC nochmal von vorne anfangen
    Gruß ukofumo

    Es ist vollkommen egal, wie oft man im Leben hinfällt. Es ist nur wichtig, wie oft man wieder aufsteht.

  9. #29
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.181
    Danke
    923
    Erhielt 3.289 Danke für 2.658 Beiträge

    Standard

    Gibt es in dem TIA kein SmartTags() mehr?
    Auch wenn man nicht immer muß, ich würde es trotzdem generell verwenden.

    Bei dem Problem des TE würde ich ganz frisch neue Variablen anlegen und ein neues ganz einfaches Script schreiben und testen und dieses dann erweitern:
    Code:
    If SmartTags("Triggervariable") = 1 Then
      SmartTags("Testvariable") = 1
      ShowSystemAlarm("Stop Logging")
    Else
      SmartTags("Testvariable") = 0
      ShowSystemAlarm("Start Logging")
    End If
    Den Zustand der Triggervariable merken ist unnötig, wenn das Script nur bei Wertänderung der Triggervariable aufgerufen wird. Es stört aber auch nicht, wenn das Script öfters aufgerufen würde.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  10. #30
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.716
    Danke
    398
    Erhielt 2.399 Danke für 1.999 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von ukofumo Beitrag anzeigen
    ich hatte ja am Anfang schon geschrieben das ich jetzt nicht unbedingt der Scripting-Profi bin...
    hätte aber schon gedacht das mich mein Basic-Wissen aus C64er Zeiten und VisualBasic doch nützen würde...
    wioe es ausschaut muss ich aber für VB-WinCC nochmal von vorne anfangen
    Sehe ich nicht so.
    Visual Basic kenne ich eigentlich recht gut. Du kannst in VB-Script die Objekte nicht so nutzen wie unter .Net - die Grundsyntax ist aber ziemlich ähnlich. Man kann halt nur Proceduren und Funktionen erstellen und keine Klassen. C64 ist allerdings doch schon recht weit hergeholt ...

    Gruß
    Larry

Ähnliche Themen

  1. Step 7 Neuen Wert laden, zeitgesteuert
    Von S-Victor im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 13.06.2013, 18:11
  2. Script in Flexible zeitgesteuert aufrufen
    Von Bensen83 im Forum HMI
    Antworten: 5
    Letzter Beitrag: 17.09.2011, 11:25
  3. Antworten: 2
    Letzter Beitrag: 09.09.2011, 08:02
  4. DALI Gruppe oder EVG zeitgesteuert (mittel Scheduler) ansprechen
    Von t.arni im Forum Sonstige Steuerungen
    Antworten: 1
    Letzter Beitrag: 09.08.2010, 17:10
  5. Step7 Ausgaänge Zeitgesteuert setzen
    Von buffi4711 im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 23.09.2006, 14:23

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •