Цитата Сообщение от SKV Посмотреть сообщение
Странно. Если сделать вот так:

TYPE strDWORD :
STRUCT
Channel : DWORD;
{bitaccess x1 0}
END_STRUCT
END_TYPE

VAR_GLOBAL CONSTANT
x1 : INT := 3;
END_VAR

То будет меняться 3 бит в переменной Channel.

Если убрать в объявлении bitaccess 0, т.е. так:
TYPE strDWORD :
STRUCT
Channel : DWORD;
{bitaccess x1}
END_STRUCT
END_TYPE
то не работает.

Т.е. в записи {bitaccess x1 0} цифра после имени бита нужна, но значение номера бита для имени x1 берется из глобальных констант.

Зачем тогда указывать цифру в объявлении {bitaccess x1 0}?
так Вы прочитайте в документации синтакиси этой директивы, замените ноль на 333 и посмотрите что будет