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

Ergebnis 1 bis 8 von 8

Thema: Skript: Taster mit Schaltverhalten (Setzen,Rücksetzen)

  1. #1
    Registriert seit
    11.09.2007
    Beiträge
    44
    Danke
    22
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich möchte einen Taster (z.B.Schaltfläche,Bild), der eine ungesetzte Variable setzt oder eine gesetzte Variable zurücksetzt. Deshalb habe ich mir ein Skript geschrieben, was leider nicht vollständig funktioniert.

    Dim objTest
    Dim i

    i=0
    Set objTest= SmartTags("test")

    If i=0 Then
    Select Case objTest
    Case 0
    SetBit SmartTags("test")
    Case 1
    ResetBit SmartTags("test")
    End Select
    i=i+1
    End If

    Beim Drücken der Schaltfläche wird das Skript gestartet. Ist die interne Variable "test" 0, soll sie 1 gesetzt werden. Ist sie dagegen 1 soll sie 0 gesetzt werden.
    Das Skript funktioniert dahingehend, dass beim Drücken die Variable von 0 auf 1 wechselt. Jedoch wird sie beim erneuten Drücken nicht wieder zurück auf 0 gesetzt. Sie bleibt immer 1.

    Weiß jemand warum das so ist?

    Im Voraus herzlichen Dank
    Chris
    Zitieren Zitieren Skript: Taster mit Schaltverhalten (Setzen,Rücksetzen)  

  2. #2
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.735
    Danke
    321
    Erhielt 1.522 Danke für 1.283 Beiträge

    Standard

    Ich bin zwar sicherlich kein Script-Experte,
    ich verstehe auch nicht warum man sowas mit einem Skript macht ...

    Aber meiner Meinung nach ist dein IF-Konstrukt falsch / sinnlos.

    If i=0 Then
    Damit wird der Hauptteil deines Skriptes also nur bearbeitet wenn i 0 ist,
    was nur beim ersten durchlauf der Fall sein kann,
    weil du i ja am ende inkrementierst.

    P.S. Probiers mal mit Einrücken.

    Mfg
    Manuel
    Warum denn einfach, wenn man auch Siemens einsetzen kann!

    Wer die grundlegenden Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu bekommen, verdient weder Freiheit noch Sicherheit (B. Franklin).

  3. #3
    Registriert seit
    11.09.2007
    Beiträge
    44
    Danke
    22
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,

    so wie es geschrieben steht, hat alles seine Berechtigung.
    Das Skript soll ja nur einmal durchlaufen werden. Stelle man sich vor jemand macht ein Dauerdrücken, so wechselt die Variable ständig von 0 auf 1 und umgekehrt. (Kann sein, dass WinCC flex das automatisch verhindert, aber sicher ist sicher)
    Was das Einrücken betrifft, liegt das leider am Forum. Beim Schreiben war alles noch i.O. Nach dem Losschicken aber nicht mehr. Sorry

    Durch Zufall habe ich den Fehler gefunden. Und es liegt nicht am Skript. Die Variable wird nicht von 0 auf 1 gesetzt, sondern von 0 auf -1 !!! Keine Ahnung was Siemens sich dabei denkt.
    Hat das irgendwie einen Hintergrund?

    Gruß
    Chris

  4. #4
    Registriert seit
    11.09.2007
    Beiträge
    44
    Danke
    22
    Erhielt 0 Danke für 0 Beiträge

    Standard

    apropos: "ich verstehe auch nicht warum man sowas mit einem Skript macht ..."

    Wäre schön wenn du mir sagst, wie ich es anders machen kann. Bin nämlich kein Skript Liebhaber.

    Danke

  5. #5
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.735
    Danke
    321
    Erhielt 1.522 Danke für 1.283 Beiträge

    Standard

    Wenn du mir (uns) sagst womit du projektierst, kann ich dir, oder andere,
    Kenntnis des Systems vorrausgesetzt, da sicherlich weiterhelfen.


    Zu Skript soll nur einmal durchlaufen werden, das dürfte ziemlich Sicher ohnehin nicht der Fall sein.
    Du Nullst I am Anfang deines Skripts, was heißt dein IF wird wieder TRUE, habe ich vorhin ganz übersehen.

    Im Endeffekt kann dann aber nur mit deinem Case-Konstrukt was nicht passen.

    Mfg
    Manuel
    Warum denn einfach, wenn man auch Siemens einsetzen kann!

    Wer die grundlegenden Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu bekommen, verdient weder Freiheit noch Sicherheit (B. Franklin).

  6. #6
    Registriert seit
    11.09.2007
    Beiträge
    44
    Danke
    22
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Oh habe ich ganz vergessen.
    Ich nutze WinCC flexible 2005.

    Aber wie schon geschrieben, das Skript geht nun. Das Problem mit den -1 muss am WinCC flex. liegen. Es tritt nämlich auch ohne das Skript auf. Man muss nur in der Simulation den Wert irgendeiner Variablen auf 1 setzen, dann steht beim aktuellen Wert -1 statt 1.

  7. #7
    Jo ist offline Erfahrener Benutzer
    Registriert seit
    05.10.2005
    Beiträge
    115
    Danke
    10
    Erhielt 10 Danke für 9 Beiträge

    Standard

    ...
    Select Case objTest
    Case 0
    SetBit SmartTags("test")
    Case 1
    ResetBit SmartTags("test")
    End Select
    ...
    warum einfach (test = not test), wenn's auch umständlich geht?

    mfG Jo

  8. #8
    Registriert seit
    07.11.2004
    Beiträge
    697
    Danke
    69
    Erhielt 64 Danke für 48 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von cam1704 Beitrag anzeigen
    ...
    ich möchte einen Taster (z.B.Schaltfläche,Bild), der eine ungesetzte Variable setzt oder eine gesetzte Variable zurücksetzt.
    ...
    Beim Drücken der Schaltfläche wird das Skript gestartet. Ist die interne Variable "test" 0, soll sie 1 gesetzt werden. Ist sie dagegen 1 soll sie 0 gesetzt werden.
    ...
    Im Voraus herzlichen Dank
    Chris
    Nimm doch einfach die Funktion "Invertiere BIT"...

    Dabei wird bei Klick auf die Taste das Bit invertiert - also genau das was du suchst, oder?
    RS (rs-plc-aa)
    ______________________________________________
    Morgen ist Heute Gestern...
    ______________________________________________
    Installierst du noch - oder Arbeitest du schon ?
    ______________________________________________

  9. Folgender Benutzer sagt Danke zu rs-plc-aa für den nützlichen Beitrag:

    cam1704 (18.10.2007)

Ähnliche Themen

  1. Ausgang setzen und rücksetzen
    Von Andreas k im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 26.07.2010, 16:39
  2. WINCC V6.2 Bit setzen/rücksetzen
    Von HarbichC im Forum HMI
    Antworten: 19
    Letzter Beitrag: 03.05.2010, 10:12
  3. Schütz mit Setzen Rücksetzen
    Von mitchih im Forum Elektronik
    Antworten: 14
    Letzter Beitrag: 15.03.2010, 16:07
  4. WinCC 6.0 Bit setzen/rücksetzen
    Von zwerg77 im Forum HMI
    Antworten: 6
    Letzter Beitrag: 07.12.2008, 22:48
  5. Bit setzen/rücksetzen bei Tastendruck
    Von tantrum13 im Forum HMI
    Antworten: 0
    Letzter Beitrag: 15.12.2006, 07:54

Lesezeichen

Berechtigungen

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