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

Ergebnis 1 bis 7 von 7

Thema: WinCC 6.0 Bit setzen/rücksetzen

  1. #1
    Registriert seit
    20.11.2007
    Beiträge
    96
    Danke
    41
    Erhielt 0 Danke für 0 Beiträge

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Bitte um Hilfe! Habe in WinCC eine Variable die heißt "MD110" - Vorzeichenlos 32Bit! Nun möchte ich mit einem Taster das 24. Bit (M110.0) aktivieren und wenn ich den Taster wieder loslasse - soll sich der Merker zurücksetzen. Ich schätze mal das es mit einer C-Aktion am besten geht! Kann mir wer mal die beiden Befehlszeichen fürs setzen und rücksetzen zukommen lassen. (Will nicht jedes einzelne Bit als Variable anlegen) DANKE!!
    Zitieren Zitieren WinCC 6.0 Bit setzen/rücksetzen  

  2. #2
    Registriert seit
    16.10.2008
    Beiträge
    5
    Danke
    1
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hallo zwerg77,

    hab das bei mir mit WinCC 6.2 im Graphics Editor mit dem Dynamic Wizard "Bit setzen/rücksetzen" gemacht. Variable als vorzeichenlosen 32bit Wert erstellt. Taster im Editor eingefügt-> Doppelklick auf Dynamic Wizard "Bit setzen/rücksetzen" ->Linke Maustaste drücken setzt das 24te Bit und loslassen setzt es zurück

    Hier das Skribt für Taste drücken:
    {
    // WINCC:TAGNAME_SECTION_START
    // syntax: #define TagNameInAction "DMTagName"
    // next TagID : 1
    #define TAG_0 "MD110"
    // WINCC:TAGNAME_SECTION_END

    // WINCC:PICNAME_SECTION_START
    // syntax: #define PicNameInAction "PictureName"
    // next PicID : 1
    // WINCC:PICNAME_SECTION_END

    DWORD dwHelp1,dwHelp2;

    dwHelp1=GetTagDWordWait(TAG_0);
    dwHelp2=dwHelp1|16777216;
    SetTagDWordWait(TAG_0,dwHelp2);

    }

    und hier für loslassen:

    {
    // WINCC:TAGNAME_SECTION_START
    // syntax: #define TagNameInAction "DMTagName"
    // next TagID : 1
    #define TAG_0 "MD110"
    // WINCC:TAGNAME_SECTION_END

    // WINCC:PICNAME_SECTION_START
    // syntax: #define PicNameInAction "PictureName"
    // next PicID : 1
    // WINCC:PICNAME_SECTION_END

    DWORD dwHelp1,dwHelp2;

    dwHelp1=GetTagDWordWait(TAG_0);
    dwHelp2=dwHelp1&(0xFFFFFFFF^16777216);
    SetTagDWordWait(TAG_0, dwHelp2);

    }

  3. #3
    Registriert seit
    29.03.2004
    Beiträge
    5.793
    Danke
    144
    Erhielt 1.706 Danke für 1.238 Beiträge

    Standard

    Zitat Zitat von Jenzzzz Beitrag anzeigen
    dwHelp2=dwHelp1|16777216;
    Also ich bin ja kein Freund von solchen "Magic Numbers".
    Wenn ich Bit 24 setzen will schreibe ich in C einfach sowas (und man braucht auch nicht zu rechnen);
    Code:
    dwHelp2 = dwHelp1 | (1 << 24);

  4. #4
    Registriert seit
    20.11.2007
    Beiträge
    96
    Danke
    41
    Erhielt 0 Danke für 0 Beiträge

    Cool

    Danke für eure Antworten! Hab mit so einer C-Aktion noch nie was gemacht. Hab bis jetzt jedes Bit extra angelegt! (Das kann ins Geld gehen!!) Wie lautet nun der Vollständige Quelltext, wenn ich von meiner Variable "MD110" das Bit 24 setzen will, und beim loslassen des Taster wieder rücksetzen will. (Vielleicht kann jemand eine Graphik von der C-Aktion hier reinstellen) Aber mal ganz anders - geht das ganze nicht ein bisschen einfacher - ich meine so wie in WinCC Flex?

  5. #5
    Registriert seit
    16.10.2008
    Beiträge
    5
    Danke
    1
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hallo zwerg77,

    normalerweise brauchst du nur das Skript für drücken bzw. loslassen kopieren und dann im Graphics Designer bei C-Aktion wieder einfügen oder du machst es dir ganz einfach und nimmst im Graphics Designer den Dynamic Wizard->Standard Dynamiken->Bit setzen/rücksetzen oder du siehst mal in der WinCC Hilfe unter "Dynamic-Wizard" nach.

    MFG Jenzzzz

  6. Folgender Benutzer sagt Danke zu Jenzzzz für den nützlichen Beitrag:

    zwerg77 (03.12.2008)

  7. #6
    Registriert seit
    20.11.2007
    Beiträge
    96
    Danke
    41
    Erhielt 0 Danke für 0 Beiträge

    Frage

    Trägt das zur Lösung meines Problems auch bei?!?

  8. #7
    Registriert seit
    16.08.2008
    Beiträge
    27
    Danke
    0
    Erhielt 11 Danke für 10 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Der Lösungsansatz von Jenzzzz ist genau der Richtige!

    Kann ich nur bestätigen.
    Geändert von hmiverbieger (07.12.2008 um 22:51 Uhr)

  9. Folgender Benutzer sagt Danke zu hmiverbieger für den nützlichen Beitrag:

    zwerg77 (09.12.2008)

Ähnliche Themen

  1. Bit in Word setzen bzw rücksetzen
    Von geit im Forum Simatic
    Antworten: 27
    Letzter Beitrag: 06.03.2013, 13:10
  2. Ausgang setzen und rücksetzen
    Von Andreas k im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 26.07.2010, 16:39
  3. WINCC V6.2 Bit setzen/rücksetzen
    Von HarbichC im Forum HMI
    Antworten: 19
    Letzter Beitrag: 03.05.2010, 10:12
  4. Schütz mit Setzen Rücksetzen
    Von mitchih im Forum Elektronik
    Antworten: 14
    Letzter Beitrag: 15.03.2010, 16:07
  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
  •