1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Вопрос о Win CC

Ответить

Автор темы
grizzlik88
Сообщения: 2
Зарегистрирован: 17 сен 2015, 12:41
Имя: Ковалев Михаил Алексеевич
Страна: россия
город/регион: Дзержинск

Вопрос о Win CC

Сообщение grizzlik88 »

Здравствуйте! Помогите плиз разобраться со скриптом на С.
Вот сей код:

Код: Выделить всё

#include "apdefap.h"
void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y)
{
 // WINCC:TAGNAME_SECTION_START
// syntax: #define TagNameInAction "DMTagName"
// next TagID : 1
#define TAG_0 "Upr_N45_1"
// WINCC:TAGNAME_SECTION_END

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

DWORD dwHelp1,dwHelp2;

dwHelp1=GetTagByteWait(TAG_0);
dwHelp2=dwHelp1|2;
SetTagByteWait(TAG_0,(BYTE)dwHelp2);

}
Данный код написан на нажатие кнопки, и как я понял он считывает бит с тэга, и устанавливает новое значение. Мне непонятно следущее dwHelp2=dwHelp1|2? Что за символ или оператор |2?
Аватара пользователя

Serex
эксперт
эксперт
Сообщения: 2085
Зарегистрирован: 15 авг 2011, 21:36
Имя: Пупков Сергей Викторович
Страна: Россия
город/регион: Москва
Благодарил (а): 101 раз
Поблагодарили: 132 раза

Re: Вопрос о Win CC

Сообщение Serex »

Символ I это OR. Т.е накладывается маска на слово. В данном случае все биты кроме второго устанавливаются в 0, а второй бит сохраняет значение.

P.S.
Ой извиняюсь :)... Все биты кроме второго сохраняют значение, а второй устанавливается в 1.
Ответить

Вернуться в «WinCC»