WinCC 6.0 Bit setzen/rücksetzen

zwerg77

Level-2
Beiträge
102
Reaktionspunkte
0
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!!
 
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);

}
 
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?
 
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
 
Zurück
Oben