This is topic Групповой запрос и атрибуты in forum TRACE MODE 6 бесплатная Базовая версия / TRACE MODE 6 free Base version at Форум TRACE MODE: техническая поддержка.


To visit this topic, use this URL:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/31/t/001733.html

Posted by CaspeR27 (Участник № / Member № 8933) on :
 
Доброго времени суток! Имеется контроллер Segnetics SMH4, который отсылает около 50 переменных типа int. Для их считывания использую групповой запрос. Как правильно вытащить из аргумента группового запроса нужный бит?
 
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
 
Зависит от задачи. Если просто выдавать индикацию на графику, то передать напрямую значение в аргумент экрана, поставив индикатору соответствующий вид индикации (битовую маску). Если нужна обработка, можно передать значение в программу и там обрабатывать, например в FBD есть соответствующие блоки. Можно привязать числовой канал класса HEX, у него есть атрибуты побитовые.
 
Posted by CaspeR27 (Участник № / Member № 8933) on :
 
Можно пожалуйста подробнее о битовой маске?
Я пробовал указать в атрибутах аргумента нужный бит, но выборка не сохраняется
 
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
 
Описание видов индикации в графике дано в справке: Разработка графического интерфейса - Задание типовых свойств ГЭ - Динамизация атрибута ГЭ.
Константы задаются в HEX, например 10(дес) - 0xa.
 
Posted by CaspeR27 (Участник № / Member № 8933) on :
 
quote:
Отправитель / Originally posted by АдАстра. Техподдержка:
Описание видов индикации в графике дано в справке: Разработка графического интерфейса - Задание типовых свойств ГЭ - Динамизация атрибута ГЭ.
Константы задаются в HEX, например 10(дес) - 0xa.

То есть бит задается как константа? Или я неправильно понял?
 
Posted by CaspeR27 (Участник № / Member № 8933) on :
 
Для аргументов группового запроса обязательно создавать каналы HEX16?
Можно как то обойтись без этого?
 
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
 
Допустим, нужна индикация определенного бита, например бита 4. По справке выбираете вид индикации, подходящий по логике - Arg & Конст, задаете маску Константа - 0x10. Если хотя бы один такой бит установлен в привязанном аргументе экрана, индицируется ИСТИНА, иначе – ЛОЖЬ.

Зачем создавать числовые каналы, если стоит задача индикации? Создание числовых каналов требуется по необходимости, например если нужны архивация, тревоги, словари сообщений по этому каналу, другая его обработка. Опишите максимально подробно поставленную задачу.
 
Posted by CaspeR27 (Участник № / Member № 8933) on :
 
Проблема в том, что в проекте используются ГЭ из библиотеки ОВиК. В них нет выбора вида индикации, есть только привязка к определенному аргументу или атрибуту. В моем случае нужен определенный бит из аргумента группового запроса
 
Posted by CaspeR27 (Участник № / Member № 8933) on :
 
Контроллер отсылает статус агрегата в виде битов, запакованных в INT. Таких INT очень много, и для ускорения опроса использован групповой запрос. В канале группового запроса созданы аргументы, куда приходят нужные мне INT. Теперь мне нужно работать с битами из аргумента канала группового запроса
 
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
 
quote:
Отправитель / Originally posted by CaspeR27:
... в проекте используются ГЭ из библиотеки ОВиК. В них нет выбора вида индикации, есть только привязка к определенному аргументу или атрибуту...

Вы можете любой Графический Объект из библиотеки ОВиК открыть на редактирование и настроить его так как Вам необходимо, включая редактирование вида индикации.
Для этого в Среде Разработки находите интересующий Вас Графический Объект. Он расположен в разделе Ресурсы Вашего проекта. Вы можете редактировать (как любой другой шаблон экрана) непосредственно оригинальный Графический Объект, либо предварительно созданную копию (и ее использовать в проекте).

quote:
Отправитель / Originally posted by CaspeR27:
Теперь мне нужно работать с битами из аргумента канала группового запроса

Предварительно, Вы редактируете Графический Объект ОВиК'а так как Вам требуется для выполнения Вашей задачи. Затем производите привязки. Для этого аргумент канала вызова шаблона экрана (канал класса Call.Screen) привязываете к аргументу канала класса Call, отрабатывающего групповой запрос. Далее в шаблоне экрана открываете свойства Графического Объекта из библиотеки ОВиК и привязываете к аргументам шаблона экрана.
 
Posted by CaspeR27 (Участник № / Member № 8933) on :
 
Хорошо, я попробую
У меня почему то в аргументах значение приходит на 6 атрибут, который вроде как тенденция
Плюс ко всему, значение все время сбрасывается
Так и должно быть?
 
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
 
Абсолютно из описания не понятно что происходит. У каналов есть набор атрибутов, они описаны в справке в разделе Каналы и системные переменные - Общие атрибуты каналов - Атрибуты каналов, отображаемые профайлером. Тенденция может иметь только определенные описанные значения, индицирующие результат сравнения реальных значений канала на текущем и предыдущем тактах пересчета. Соответственно, писать в этот атрибут не следует, а если запись есть, естественно на каждом цикле оно будет сброшено результатом сравнения.

А откуда это значение получаете? Проверьте привязки от этого канала. Возможно при создании привязки была задана привязка к данному атрибуту. Для записи в канал есть атрибут Входное значение.
 


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2