CaspeR27
Forum Member / Участник форума
Участник № / Member № 8933
отправлено / posted
Доброго времени суток! Имеется контроллер Segnetics SMH4, который отсылает около 50 переменных типа int. Для их считывания использую групповой запрос. Как правильно вытащить из аргумента группового запроса нужный бит?
Сообщения / Posts 36 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Зависит от задачи. Если просто выдавать индикацию на графику, то передать напрямую значение в аргумент экрана, поставив индикатору соответствующий вид индикации (битовую маску). Если нужна обработка, можно передать значение в программу и там обрабатывать, например в FBD есть соответствующие блоки. Можно привязать числовой канал класса HEX, у него есть атрибуты побитовые.
Сообщения / Posts 17322 | Из / From: Россия
| IP / IP: IP адрес / IP address |
CaspeR27
Forum Member / Участник форума
Участник № / Member № 8933
отправлено / posted
Можно пожалуйста подробнее о битовой маске? Я пробовал указать в атрибутах аргумента нужный бит, но выборка не сохраняется
Сообщения / Posts 36 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Описание видов индикации в графике дано в справке: Разработка графического интерфейса - Задание типовых свойств ГЭ - Динамизация атрибута ГЭ. Константы задаются в HEX, например 10(дес) - 0xa.
Сообщения / Posts 17322 | Из / From: Россия
| IP / IP: IP адрес / IP address |
CaspeR27
Forum Member / Участник форума
Участник № / Member № 8933
отправлено / posted
quote:Отправитель / Originally posted by АдАстра. Техподдержка: Описание видов индикации в графике дано в справке: Разработка графического интерфейса - Задание типовых свойств ГЭ - Динамизация атрибута ГЭ. Константы задаются в HEX, например 10(дес) - 0xa.
CaspeR27
Forum Member / Участник форума
Участник № / Member № 8933
отправлено / posted
Для аргументов группового запроса обязательно создавать каналы HEX16? Можно как то обойтись без этого?
Сообщения / Posts 36 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Допустим, нужна индикация определенного бита, например бита 4. По справке выбираете вид индикации, подходящий по логике - Arg & Конст, задаете маску Константа - 0x10. Если хотя бы один такой бит установлен в привязанном аргументе экрана, индицируется ИСТИНА, иначе – ЛОЖЬ.
Зачем создавать числовые каналы, если стоит задача индикации? Создание числовых каналов требуется по необходимости, например если нужны архивация, тревоги, словари сообщений по этому каналу, другая его обработка. Опишите максимально подробно поставленную задачу.
Сообщения / Posts 17322 | Из / From: Россия
| IP / IP: IP адрес / IP address |
CaspeR27
Forum Member / Участник форума
Участник № / Member № 8933
отправлено / posted
Проблема в том, что в проекте используются ГЭ из библиотеки ОВиК. В них нет выбора вида индикации, есть только привязка к определенному аргументу или атрибуту. В моем случае нужен определенный бит из аргумента группового запроса
Сообщения / Posts 36 | Из / From: Россия
| IP / IP: IP адрес / IP address |
CaspeR27
Forum Member / Участник форума
Участник № / Member № 8933
отправлено / posted
Контроллер отсылает статус агрегата в виде битов, запакованных в INT. Таких INT очень много, и для ускорения опроса использован групповой запрос. В канале группового запроса созданы аргументы, куда приходят нужные мне INT. Теперь мне нужно работать с битами из аргумента канала группового запроса
Сообщения / Posts 36 | Из / From: Россия
| IP / IP: IP адрес / IP address |
quote:Отправитель / Originally posted by CaspeR27: ... в проекте используются ГЭ из библиотеки ОВиК. В них нет выбора вида индикации, есть только привязка к определенному аргументу или атрибуту...
Вы можете любой Графический Объект из библиотеки ОВиК открыть на редактирование и настроить его так как Вам необходимо, включая редактирование вида индикации. Для этого в Среде Разработки находите интересующий Вас Графический Объект. Он расположен в разделе Ресурсы Вашего проекта. Вы можете редактировать (как любой другой шаблон экрана) непосредственно оригинальный Графический Объект, либо предварительно созданную копию (и ее использовать в проекте).
quote:Отправитель / Originally posted by CaspeR27: Теперь мне нужно работать с битами из аргумента канала группового запроса
Предварительно, Вы редактируете Графический Объект ОВиК'а так как Вам требуется для выполнения Вашей задачи. Затем производите привязки. Для этого аргумент канала вызова шаблона экрана (канал класса Call.Screen) привязываете к аргументу канала класса Call, отрабатывающего групповой запрос. Далее в шаблоне экрана открываете свойства Графического Объекта из библиотеки ОВиК и привязываете к аргументам шаблона экрана.
Сообщения / Posts 17322 | Из / From: Россия
| IP / IP: IP адрес / IP address |
CaspeR27
Forum Member / Участник форума
Участник № / Member № 8933
отправлено / posted
Хорошо, я попробую У меня почему то в аргументах значение приходит на 6 атрибут, который вроде как тенденция Плюс ко всему, значение все время сбрасывается Так и должно быть?
Сообщения / Posts 36 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Абсолютно из описания не понятно что происходит. У каналов есть набор атрибутов, они описаны в справке в разделе Каналы и системные переменные - Общие атрибуты каналов - Атрибуты каналов, отображаемые профайлером. Тенденция может иметь только определенные описанные значения, индицирующие результат сравнения реальных значений канала на текущем и предыдущем тактах пересчета. Соответственно, писать в этот атрибут не следует, а если запись есть, естественно на каждом цикле оно будет сброшено результатом сравнения.
А откуда это значение получаете? Проверьте привязки от этого канала. Возможно при создании привязки была задана привязка к данному атрибуту. Для записи в канал есть атрибут Входное значение.
Сообщения / Posts 17322 | Из / From: Россия
| IP / IP: IP адрес / IP address |