This is topic О процедурах обработки данных в каналах in forum Редактор Базы Каналов (Математика) / Channel Base Editor at Форум TRACE MODE: техническая поддержка.
В процессе работы над проектом в релизе 5.11 выявлены следующие "пикантные" особенности в реализации процедур обработки аналоговых данных в каналах: 1. Последовательность выполнения процедур следующая: сначала апертуры, затем фильтрация. В результате фильтрация начисто уничтожает результаты уставки апертур. Как результат - совместное использование этих процедур невозможно. 2. Реализация процедуры наложения апертур реализована с ошибкой (в эмуляторе по каналу она отсутствует). Ошибка заключается в том, что на каждом цикле пересчета осуществляется сравнение с апертурой приращения данных относительно предыдущего цикла, а не относительно последнего выведенного значения. В результате при медленно меняющихся данных, мы можем получить отсутствие пересчета для сколь угодно больших величин.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
1) А не могли бы Вы пояснить - в чем принципиальная разница сглаживания до апертуры? Если подумать, то нет практически никакой разницы в выполнении сглаживания до апертуры и после. 2) Здесь Вы неправы - проверяется разность текущего и входного начения со значением апертуры. Если бы ситуация была, как Вы описали - то использование апертуры в любом виде привело бы к тому, что значение канала не менялось бы никогда.
Posted by Mikhail Kagan (Участник № / Member № 28) on :
1. Результат наложения апертуры есть появление скачкообразных изменений данных, которые затем будут аккуратно сглажены процедурой фильтрации. Если апертуры используются, например для уменьшения потока данных, сохраняемых в СПАД, то после сглаживания, пересылка данных в СПАД на каждом цикле пересчета гарантирована. 2. При нынешней реализации процедуры апертуры теряются не все данные, а только те, которые меняются медленно. Можете проверить путем посылки в канал с апертурой и программой трансляции с экспоненциальным фильтром скачка данных. На выходе канала установившегося значения вы не увидете. Это ошибка присутствует в реализации процедур в МРВ и его эмуляторе. В эмуляторе по каналу её нет.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
1) Согласен что для СПАД это будет критично, но остается все же под сомнением целесообразность использования сглаживания и апертуры совместно.
2) Да как бы медленно они не менялись - апертура работает по разности реального значения и текущего аппаратного. При таком расчете как бы медленно не переходил параметр границу апертуры он ведь все равно ее перейдет и значение будет присвоено Реальному атрибуту. Можете прислать свой тестовый проект, на котором Вы проверяете Ваши утверждения?
Posted by Mikhail Kagan (Участник № / Member № 28) on :
1. Позволю с Вами не согласиться. Необходимость сглаживания перед наложением апертуры необходима при регистрации медленно меняющихся зашумленных данных (например температурный сигнал с термосорпротивлений). Да и, вообще, сложнее найти ситуацию, когда предварительная фильтрация не нужна. 2. Выслал Вам на hotline простой тестовый пример.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Порядок реализации встроенных процедур (сначала АПЕРТУРА, потом СГЛАЖИВАНИЕ) таков, что РЕАЛЬНОЕ ЗНАЧЕНИЕ канала всегда достигнет АППАРАТНОГО за разностью на значение АПЕРТУРЫ.
Если Вы считаете, что Вам нужен обратный порядок, Вы должны использовать собственную процедуру трансляции, где эти функции будут реализовываться в нужном Вам порядке, что Вы и продемонстрировали в своем проекте на канале Тест3_.