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

Results 1 to 7 of 7

Thread: WinCC 6.0 Bit setzen/rücksetzen

  1. #1
    Join Date
    20.11.2007
    Posts
    102
    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!!
    Reply With Quote Reply With Quote WinCC 6.0 Bit setzen/rücksetzen  

  2. #2
    Join Date
    16.10.2008
    Posts
    5
    Danke
    1
    Erhielt 1 Danke für 1 Beitrag

    Default

    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
    Join Date
    29.03.2004
    Posts
    7,268
    Danke
    165
    Erhielt 2,181 Danke für 1,562 Beiträge

    Default

    Quote Originally Posted by Jenzzzz View Post
    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
    zwerg77's Avatar
    zwerg77 is offline Erfahrener Benutzer
    Themenstarter
    Join Date
    20.11.2007
    Posts
    102
    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
    Join Date
    16.10.2008
    Posts
    5
    Danke
    1
    Erhielt 1 Danke für 1 Beitrag

    Default

    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
    zwerg77's Avatar
    zwerg77 is offline Erfahrener Benutzer
    Themenstarter
    Join Date
    20.11.2007
    Posts
    102
    Danke
    41
    Erhielt 0 Danke für 0 Beiträge

    Frage

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

  8. #7
    Join Date
    16.08.2008
    Posts
    27
    Danke
    0
    Erhielt 11 Danke für 10 Beiträge

    Default


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

    Kann ich nur bestätigen.
    Last edited by hmiverbieger; 07.12.2008 at 22:51.

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

    zwerg77 (09.12.2008)

Similar Threads

  1. TIA Bit zyklisch setzen und rücksetzen
    By Outrider in forum Simatic
    Replies: 6
    Last Post: 07.06.2019, 13:17
  2. Step 7 einzelnes Bit setzen/rücksetzen (Datenwort)
    By Hucky in forum Simatic
    Replies: 8
    Last Post: 08.06.2017, 12:20
  3. Bit in Word setzen bzw rücksetzen
    By geit in forum Simatic
    Replies: 27
    Last Post: 06.03.2013, 13:10
  4. WINCC V6.2 Bit setzen/rücksetzen
    By HarbichC in forum HMI
    Replies: 19
    Last Post: 03.05.2010, 10:12
  5. Bit setzen/rücksetzen bei Tastendruck
    By tantrum13 in forum HMI
    Replies: 0
    Last Post: 15.12.2006, 07:54

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •