This is topic Канал Объект.Сумма in forum Редактор Базы Каналов (Математика) / Channel Base Editor at Форум TRACE MODE: техническая поддержка.


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

Posted by ilya (Участник № / Member № 469) on :
 
Канал Объект.Сумма суммирует реальные значения только аналоговых сигналов?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
И усреднение и суммирование осуществляется только по аналоговым каналам.
Мы уточним это в документации.
 
Posted by ilya (Участник № / Member № 469) on :
 
Дополнить документацию - это хорошо. А еще лучше добавить встроенных возможностей группового анализа каналов объекта. Например: мне требуется определить, сгенерировали каналы данного объекта тревогу или нет. Это надо для того, чтобы показать оператору, на какой из мнемосхем произошла тревога, и подсветить нужную кнопку перехода. А то получается окно тревог приоритетнее мнемосхемы (сначала надо прочитать отчет - потом нажимать нужную кнопку). Во всяком случае, при моей организации экранов и большом числе физических объектов (насосных подстанций) и мнемосхем для них.
Решаю проблему так: пишу программу на IL для вычисления суммы интервалов (для аналоговых каналов). Анализирую эту сумму, если изменилась – новая тревога (пусть даже переход в норму). Для дискретных – просто анализирую сумму реальных значений. При большом числе каналов, отсутствии возможности работы с массивами в Texno-IL – все это выливается громоздкое программирование (не говоря уже об FBD – куча входов и блоков).
Так что почему бы не ввести канал подтипа ОБЪЕКТ суммирующий интервалы аналоговых каналов. И канал суммирующий реальные значения дискретных каналов. А может Вы подскажите более оригинальное решение проблемы?
Кстати опцию эту я подсмотрел в другой SCADA системе – попытался реализовать в TM- это и породило дискуссию.
P.S.: Ну а вообще хотелось бы видеть в SCADA системе более мощное и гибкое встроенное средство программирования, чем на данный момент в TM5 т.к. там, где не хватает встроенных функций - начинаются проблемы. Но это уже видимо, относиться к вопросу о ТМ6.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Привожу цитату из описания канала ОБЪЕКТ/НЕДОСТОВЕРНОСТЬ/INPUT.
Недостоверность – 4-6 биты этого канала (тип должен быть INPUT) возвращают суммарно (логически) интервалы ПРЕДУПРЕДИТЕЛЬНЫЕ, АВАРИЙНЫЕ и ЗАШКАЛИВАНИЕ соответственно. Бит 0 – логическая сумма аппаратных недостоверностей каналов ОБЪЕКТА, бит 1 – логическое произведение аппаратных недостоверностей каналов ОБЪЕКТА;
 
Posted by ilya (Участник № / Member № 469) on :
 
Ну и что дает в этом случае логическая сумма интервалов? [Недоумение / Confused]
Создаем два канала один меняется только в пределах ВГ_0-ВГ_1 это интервал 1.Второй пересекает переодически ВГ_0 меняя значения интервала с 0 на 1 и обратно. На выходе канала Input.Hex.НЕДОСТОВЕРНОСТЬ постоянно вижу 10 - логическую сумму интервалов. Еще раз повторяю - мне надо отследить поступила ли новая тревога, т.е. была ли смена интервала у какого либо канала данного объекта.
Или я совсем ничего не понимаю [Растерянность / Embarrassed]
 
Posted by ilya (Участник № / Member № 469) on :
 
А вот вычисление АЛГЕБРАИЧЕСКОЙ суммы интервалов, с последующим её анализом, дает нужный результат.

[ 10.07.2003, 17:14: Сообщение отредактировал / Message edited by AdAstra Technical Support ]
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Строго говоря, и вычисление АЛГЕБРАИЧЕСКОЙ суммы интервалов, с последующим её анализом, НЕ дает нужного результата., т.к. может одновременно так измениться набор интервалов, что некоторые из них увеличатся, другие уменьшатся, а сумма может не измениться. То же относится и к сумме реальных значений HEX-каналов.
Вы правы в том, что в версии Трейс Моуд 6 появится больше возможностей для программирования, в том числе и в обработке массивов.
Однако, вряд ли там будут такие экзотические встроенные функции, какую пытаетесь реализовать Вы.
В большинстве случаев оператору необходимо знать по каждому технологическому объекту, есть ли на нем предупредительные сигналы, есть ли аварийные сигналы, а не сколько их. Ведь ему меры надо принимать, и срочные, а не фиксировать, что там что-то изменилось. Если он не может предпринимать какие-либо действия в связи с имеющейся информацией, то и информация ему эта не нужна.
 
Posted by VICTOR S (Участник № / Member № 766) on :
 
Только что посылал вам сообщение по поводу канала ОБЪЕКТ НЕДОСТОВЕРНОСТЬ. Прочитал вашу дискуссию по каналу ОБЪЕКТ СУММА. Видимо и такой путь не позволит "красиво" решить проблему отслеживания изменений 30-40 сигналов на оперативном кадре и отработку по этим изменениям звукового файла. FDB получилась громоздкая (большое количество входов и блоков). Может у вас есть все-таки какое-либо приемлемое решение в версии ТМ5.12, а не в ТМ6.Полностью поддерживаю аргументы участника ilya.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Смотрите ответ на сообщение участника "ilya" - "алгебраическая сумма НЕ дает нужного результата., т.к. может одновременно так измениться набор интервалов, что некоторые из них увеличатся, другие уменьшатся, а сумма может не измениться."
Зачем реализовывать заведомо неработающий механизм? [crazy / сумасшедший]

На данный момент - решение не в суммировании, а в инкриментировании (подсчете) некоторого счетчика при выходе любого из параметров контролируемой группы сигналов за границы. И кроме как анализа интервала каждого из них в FBD - других штатных решений в ТМ5 нет!
 
Posted by ilya (Участник № / Member № 469) on :
 
Нужный результат дает сумма разностей интервалов на текущем и предыдущем тактах по каждому каналу. Если она изменилась - есть новая тревога. Вообщем в любом случае надо анализировать интервал, что в FBD и при большом колличестве каналов задача практически не осуществимая. Я буду пробовать решать эту проблему на ActiveX.
И все таки хотелось бы иметь штатное решение!(как я понял из topic-a "Групповая сигнализация" это будет реалезовано в следующей версии).Ждем!!!
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Разность - также не даст нужного результата, это же все равно, что умножить результат их обычной их суммы на -1. [Вращающиеся глаза / Roll Eyes]
 
Posted by ilya (Участник № / Member № 469) on :
 
Повторяю:
"СУММА РАЗНОСТЕЙ ИНТЕРВАЛОВ НА ПРЕДЫДУЩЕМ И ТЕКУЩЕМ ТАКТЕ ПО КАЖДОМУ КАНАЛУ".Т. е. : (I1тек-I1пред)+(I2тек-I2пред)+...+(Iiтек-Iiпред)+...+(INтек-INпред),где:
Iiтек интервал i-го канала на текущем такте
Iiпред интервал i-го канала на предыдущем такте
N-число каналов
Если она не равна нулю -> есть новая тревога на данном такте для данной группы каналов. Это сугубо Ваше дело как вы решите эту проблему и какой алгоритм для этого используете. Просто мне как пользователю нужна такая характеристика(был ли выход за границы для данной группы каналов).
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Даже эта формула не может гарантировать ситуации, когда интервалы изменятся так, что результирующее значение останется прежним! [master / мастер]
Еще раз повторю - никакое сложение и вычитание здесь не даст нужного результата! Это довольно не тривиальная задача - и решаться она должна только через групповой контроль со счетчиком. [clever / умный]
 
Posted by ilya (Участник № / Member № 469) on :
 
Прошу прощения. [prey / молящийся] Мой алгоритм действительно не правильный.
 
Posted by Валерий Б (Участник № / Member № 377) on :
 
Как то давно я задавал вопрос о работе канал "Объект сумма" для дискретных каналов.Это не работало,а как для 5.12? Обещали рассмотреть.
Хотел использовать это для сигнализации как "события" через тенденцию [crazy / сумасшедший]
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
В 5.12 сумма для HEX тоже работать не будет...
 
Posted by VICTOR S (Участник № / Member № 766) on :
 
Вопрос, скорее, к участнику ilya - удалось ли добиться нужного или более приемлемого результата в решении проблемы рассматриваемой в этой теме и в теме "групповая сигнализация"? Если да, то каким путем Вы все-таки пошли при решении этой проблемы? Спасибо за ответ.
 
Posted by ilya (Участник № / Member № 469) on :
 
Например. Есть N объектов. У всех каналов первого объекта в комментарии присутствует уникальная метка, допустим ‘s1’, второго объекта ‘s2’, у третьего ‘s3’ и т.д.
Создано N пустых каналов соответствующих каждому объекту, допустим ‘chan1’, ‘chan2’, ‘chan3’ и т.д.
Далее на Delphi написан ActiveX который в методе onAlarm получает строку тревоги. В этой строке ищется подстрока ‘s1’, если она найдена значение канала ‘chan1’ устанавливается в единицу, если найдено ‘s2’ то значение ‘chan2’ устанавливается в еденицу (или можно например его инкрементировать) и т.д.
Вот примерно такой алгоритм образом.

Я это реализовал, но поскольку с методом onAlarm были проблемы ( см. здесь ), я убрал из своего проекта эту функциональность, а после того как этот глюк исправили восстанавливать не стал…

Хочется еще раз высказать пожелание, что бы в TM6 появилось стандартное решение этой задачи.
 
Posted by ilya (Участник № / Member № 469) on :
 
Вообще, конечно, то что я вчера тут написал, далеко не оптимально. Ведь, по сути, у нас есть массив из интервалов каналов и надо просто на каждом такте анализировать, изменился какой-то элемент массива или нет.
У меня в комментарии каналов уже были уникальные метки и как-то само собой родилось такое решение.
Решать задачу с помощью FBD и IL, а не с помощью внешних алгоритмов, похоже достаточно проблематично.
 


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



Powered by Infopop Corporation
UBB.classic™ 6.7.2