iFix и битовые операции |
Ответить |
Автор | |
Новичок Присоединился: 23 Март 2004 Категория: Russian Federation Online Status: Offline Публикации: 16 |
Опубликовано: 06 Апрель 2007 14:46 |
Пришел в Fix c Genesisa. Пытаюсь по привычке на полученное значение наложить маску и сравнить с заданным значением. Например одно из условий раскраски в анимации Genesis выглядит так: x=((Status & 7)==1), что означает что из первых 3 бит установлен только первый... Можно ли сделать подобное в Fix-е? Документация пока не дала однозначного ответа... У кого есть опыт, подскажите! |
|
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Новичок Присоединился: 06 Апрель 2007 Online Status: Offline Публикации: 5 |
|
А в какой тип тега вы используете для хранения битов - DI или какой другой? |
|
Новичок Присоединился: 23 Март 2004 Категория: Russian Federation Online Status: Offline Публикации: 16 |
|
Тэг берется напрямую с OPC-сервера, минуя базу... Если бы я делал через базу, то завел бы блок AI. Слово статуса на которое мне нужно наложить маску и сравнить имеет тип WORD. |
|
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Новичок Присоединился: 06 Апрель 2007 Online Status: Offline Публикации: 5 |
|
Просветите (просто никогда с ними не работал) - ваше слово статуса типа WORD - это текстовая величина, представляющая последовательность битов? Не вижу смысла формировать слово статуса на контроллере, Тег типа AI работает с аналоговыми значениями - я думаю он вам не подойдет.
Тип DI - в iFix - это лишь одно дискретное значение, например "Сигнализация задвижка - закрыта", соответственно чтобы отобразить этот сигнал в рисунке, необходимо сослаться на поле .F_CV этого тега. А вам сохранение значений битов в архиве HTRDATA не требуется?
|
|
Новичок Присоединился: 23 Март 2004 Категория: Russian Federation Online Status: Offline Публикации: 16 |
|
К примеру вентилятор... Слово статуса содержит след.информацию 3\ 6 - неисправность
Fix имеет идеологические отличия, поэтому возникают сложности с накладыванием масок... нет битовых операций Да, блок DR уже теплее, но если не ошибаюсь он не позволяет записать... к примеру приведенном выше бит9 - режим имитации, нужно менять с верха... |
|
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Новичок Присоединился: 06 Апрель 2007 Online Status: Offline Публикации: 5 |
|
Я для таких случаев завожу на каждый сигнал тег типа DI, который можно дополнительно писать в архив, писать в протокол и выдавать тревожные сообщения. Может вам тоже пойти по такому пути, т.е. для каждого статусного слова (единицы оборудования) создать несколько тегов типа DI, каждый из которых будет адресоваться к определенному биту слова. А затем уже анимацией (возможно используя выражения) отображать состояние оборудования. Например можно использовать такую анимацию... ------------------------------------- Fix32.Node.DI_01.F_CV - сигнализация Задвижка ОТКРЫТА ---------------------------------------- Выражение для анимации (объект анимации - Таблица) |
|
Ответить |
Переход на форум | Права доступа на форуме Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме |