{}

Наші бренди

Impact-Company-Logo-English Black-01-177x54

Вітаємо на веб-сайті Schneider Electric

Ласкаво просимо на наш веб-сайт.
Пошук серед найпопулярніших питань
Как в Vijeo Citect обращаться к отдельному биту в слове?

Для облегчения обслуживания и модификации системы мы рекомендуем выделять биты из слов на уровне ПЛК и передавать их в Citect SCADA в виде дискретных переменных.

Если модификация программы ПЛК невозможна, то для ряда протоколов, например MODNET30 и OFSOPC, в Vijeo Citect возможно определить дискретные переменные, обращающиеся к битам слов в ПЛК. Для этого к их адресу нужно добавить идентификатор бита в виде ‘.n’, где n – номер бита. Например Word1.1 – адрес первого бита слова с адресом Word1 для OFSOPC, а %MW1.2 - адрес первого бита слова с адресом %MW1 для MODNET30. Тип данных при этом должен быть DIGITAL.

Также, возможно извлекать бит непосредственно из слова, применяя к нему битовую маску. Выражение для чтения бита будет выглядеть следующим образом:

(iValue BITAND Pow(2, iBitNo)) <> 0

Здесь iValue – читаемый тег, iBitNo – номер бита.

Для записи бита в слове также необходимо писать функцию Cicode. Она будет выглядеть следующим образом:

INT
FUNCTION
BitWrite(INT iValue, INT iBitno, INT bState)

IF bState = FALSE THEN
RETURN iValue BITAND (4294967295 BITXOR Pow(2, iBitNo));
ELSE
RETURN iValue BITOR Pow(2, iBitNo);
END
END

Здесь bState – значение, которое необходимо записать в бит.

При записи отдельных битов, надо учитывать тот факт, что запись происходит в 3 этапа. Сначала слово считывается во временную переменную. Затем в ней изменяется требуемый бит. И наконец, исходное слово полностью перезаписывается измененным. При этом существует вероятность, что в промежуток времени между чтением и записью слова в нем изменятся другие биты и при записи они будут затерты.

Schneider Electric Україна

Досліджуйте більше
Серія:
Статті, які можуть бути корисними
Досліджуйте більше
Серія: