• Автор
    Тема
  • #49320

    Гость
    Участник

    В процессе нашей работы мы сталкиваемся с другими особенностями ПО ZETView.

    1. Программа ZETLAB. Программа фильтрация сигналов. Конкретно нас интересует дифференцирование сигнала. Работает великолепно, позволяет следить за уровнем производной сигнала.
    Пытаемся воспроизвести такой же тип фильтрации в ПО ZETView. Используем, понятное дело, элемент ´Фильтрация´. Устанавливаем в свойствах элемента тип фильта — Дифференциальный. Нахимаем enter, т.е. пытаемся сохранить изменения. А оно то у нас не сохраняется. При последующем входе в свойства элемента фильтрация тип фильтра, по-прежнему, остаётся линейным.
    Что делать, как быть? Есть какие-то особенности применения дифференциального фильтра? Ни в одной из версий ZETView (пробовали по мере их появления с марта 2010 года) этот тип фильтра так и не сохранялся.

    2. Комическая ситуация. Элемент ¨Цикл for¨. Не работает выход элемента ´Импульс´. При проектировании (создании связи между элементами ZETView) по этому выходу отображается следующая подсказка — импульс об окончании цикла. Логично предположить, что выход должен срабатывать при достижение счетчиком значения параметра quantity. Этого не происходит. С выхода сигнал не идёт.
    В библиотеке компонентов на сайте есть описание элемента ( https://zetms.ru/catalog/programs/scada/description/library/loop_for.php )
    — но о выходе ´импульс´ там вообще ничего не упоминается.
    В каких случаях должен срабатывать выход Импульс?

    Или, быть может, подскажите — с помощью какого элемента можно отслеживать количество переходов некого числа через 0 (либо через любое другое число 5,8, 25). И давать команду на исполнительное устройство по завершению n циклов.
    Элемент цикл for, как мне кажется, лучше всего подходит на эту роль.

    С уважением, Александр.

Просмотр 15 ответов - с 1 по 15 (всего 38)
  • Автор
    Ответы
  • #49321

    Менеджер ZETLab
    Хранитель

    Здравствуйте, Александр!

    По поводу компонента «Фильтрация сигналов» — в версии ZETView от декабря 2010 года мне удалось изменить все свойства и эти изменения сохранить. Каждая новая версия ZETView становится доступной для скачивания с ftp-сервера после тестирования, для отслеживания протестированных изменений создан форум «Развитие ПО и устранение замеченных ошибок».

    Компонент Цикл FOR направлен на дополнительное тестирование.
    Примечание: выходной контакт «Импульс» был добавлен уже после описания компонента на сайте. В целом текущее описание раскрывает логику работы: вход в цикл — контакт «Значение», тело цикла располается между выходным контактом «выход» и входным «Импульс» типа «любой тип соединений» (светлозеленого цвета). Каждая итерация цикла выполняется только после получения значения контактом «Импульс» типа «любой тип соединений». В противном случае цикл никогда не завершится.
    В разрабатываемой справке по ZETView описание компонента будет соответствовать его последней версии.

    Пример отслеживания количества переходов некого числа через 0 (либо через любое другое число) с использованием компонентов «Инкрементирование» и «Сравнение»:
    Счетчик переходов.

    Для решения данной задачи на мой взгляд также подойдет использование функций программы Формула:
    IncRise (< канал>) – счетчик фронтов (переходов из 0 в 1).
    Следует использовать с логическими функциями Equal и Greater.
    Greater (< канал>, < канал>) — операция сравнения, возвращает единицу, если значения по первому каналу больше чем по второму, иначе возвращает ноль. Удобна для написания функций порогового обнаружения и создания различных регуляторов. В качестве второго агрумента можно использовать не канал, а константу или выражение.
    Примеры можно посмотреть в справке по программе.

    С уважением, Татьяна

    #49322

    Здравствуйте, Татьяна!
    Задача отслеживания пересечения 0 решил с помощью компонентов: Сравнение, D-триггера, константа и синхронизатор. Сигнал с компонента сравнение идёт на вход синхронизатора (уставку срабатывания устанавливаем здесь), а он, в свою очередь даёт команду исполнительному устройству (допустим светосигнальный индикатор).
    Компонент инкрементирование не использовал.
    А счёт циклов реализую через компонент цикл for и триггеры. Использовать инкрементирование в моём случае не представляется мне возможным, потому что импульс, приходящий на его вход не мгновенный. И поэтому он может сосчитать мне и 100 и 200 циклов мгновенно.

    Хотелось бы попросить Вас. Если с главной странички сайт проследовать по пути: Главная / Продукция / Программное обеспечение / Scada система / Примеры — то мы не увидим последних примеров, которые вы разрабатываете для пользователей. Возможно ли каким-то образом добавить все примеры (проиндексировать) в раздел сайта ПРИМЕРЫ?

    С Уважением, А. В. Баранов

    p.S. По ходу работы возник ещё один вопрос.

    С выхода компонента Вычитание (на нём вычитаются показания реального канала от константы) я отправляю данные на компонент Виртуальный канал. Естественно на выходе вычитания я получаю не синусоиду, а ´набор цифр´. Т.к. преобразование Измерительный канал->Вольтметр DC преобразует аналоговый сигнал в цифровую форму.
    А как быть, если мне необходимо сигнал после вычитания подать в синусоидальном виде на синхронизатор, к примеру?
    Мне необходимо сбрасывать показания датчика в 0 и работать с нулевой точки отсчета. Подавая сигнал после вычитания на виртуальный канал, а потом на синхронизатор — я получаю прямоугольный сигнал, работать с которым корректно связка синхронизатор+коммутационный блок не могут.
    Если после вычитания подавать сигнал

    #49323

    Менеджер ZETLab
    Хранитель

    Здравствуйте, Александр!
    Очень рада, что проблема отслеживания пересечения 0 разрешилась, надеюсь теперь результат будет соответствовать поставленной цели.

    Ссылки на созданные примеры размещены в разделе «Примеры».

    Если говорить об операциях между каналом и константой, то тут подойдут компоненты «Арифмометр» (раздел «Потоковая обработка», выходом является виртуальный канал) и «ZETFormula» (раздел «Автоматизация», также создает виртуальный канал). Данные компоненты запускают и используют соответствующие программы из состава ZETLab, описание на которые можно найти в руководстве оператора.

    С уважением, Татьяна.

    #49324

    Здравствуйте!
    Поясните пожалуйста по компоненту «Комбинированный список», я понимаю так, что в этом компоненте можно задать строки со значениями, а потом в выпадающем списке выбирать нужное значение которое поступит на его выход, но как сформировать этот список значений?
    Такой же вопрос по компоненту «Список».
    У меня такая задача, на генеретор синосуедального сигнала подавать значения средних частот третьоктавных полос. Я хотел в компоненте «Комбинированный список» задать эти значения и затем выбирая нужное значение подавать его на вход генератора. Вообще может как-то можно сделать так, чтобы при нажатии кнопки поочередно менялись эти значения (т.е. поочередный перебор значений третьоктавных полос)

    #49325

    Менеджер ZETLab
    Хранитель

    Здравствуйте, Дмитрий!
    Для начала отвечу про комбинированный список.
    Сформировать список можно в окне настроек компонента, или подать список на вход. Символом-разделителем значений списка является точка с запятой. Пробелы воспринимаются как символы, при заполнении списка численными значениями пробелы нужно исключить. Символом-разделителем целой и дробной части для численных значений является точка.
    Выбранное значение списка будет передано с выхода (в виде текста, числа, или индекс выбранного элемента — в зависимоти от настроек). При передачи с выхода численных значений комбинированный список можно использовать для установки частоты генератора вручную, список можно составить из третьоктавного ряда.

    #49326

    Менеджер ZETLab
    Хранитель

    Для автоматического перебора частотного ряда подойдет компонент «Цикл For»
    Рекомендую обратить внимание на пример 2 в описании данного компонента ( https://zetlab.ru/catalog/programs/scada/description/library/loop_for.php ) — в нем как раз описан случай перебора частот третьоктавного ряда при формировании синусоидального сигнала. Частотный ряд задан не с помощью «Комбинированного списка», а с помощью «Детерминированного массива» (Раздел «Массивы»;):
    1) вызвать контекстное меню правой кнопкой мыши, в нем — «Редактировать компонент»
    2) выбрать «из таблицы»
    3) заполнить таблицу (пример — последний рисунок в описании компонента «Цикл FOR»;)
    4) Для инициализации детерминированного массива необходимо на его вход подать импульс (предусмотреть для этого кнопку), только тогда созданный массив будет передан с выхода компонента.

    Для того, чтобы получить значение из таблицы, используется компонент «Значение элемента (числовой)» (Раздел «Массив-Значение» ). Остальная часть схемы диктуется поставленной задачей.

    Для изменения какого-либо значения с равномерным шагом можно воспользоваться компонентом «Инкрементирование» (раздел «Арифметика» ):
    ( https://zetlab.ru/support/publication/virtualnie_pribory/scada.php — последний рисунок — реализация цикла на компонентах «Таймер», «Инктементирование» и «Сравнение» )

    При необходимости подстройки генератора можно создать обратную связь с задающим компонентом через менеджера свойств (раздел «Разное»;):
    https://zetlab.ru/catalog/programs/scada/samples/feedback_oscillator/

    #49327

    Здравствуйте, Татьяна!
    Спасибо за разяснения, сделал программу как требовалось.
    Еще вопрос, полученное приложение будет запускаться только если на компьютере установлена ZETView и окно программы будет всегда выглядить как окно ZETView?

    #49328

    Менеджер ZETLab
    Хранитель

    Для работы приложений, написанных в ZETView необходимо наличие среды ZETView

    созданный проект можно скомпилировать в exe файл для того, чтобы запускать его на выполнение, исключая возможность редактирования.
    Для этого необходимо установить галочку «скомпилировать в EXE» и запустить проект. При этом появится сообщение, что создан исполняемый файл и будет предложено его запустить. На этом этапе можно отказаться от запуска, закрыть окно ZETView и попробовать запустить экзешник напрямую.

    С уважением, Татьяна.

    #49329

    Здравствуйте!

    Поясните пожалуйста работу компонентов:

    1) «График в полярных координатах» — как его правильно подключать,есть ли пример применения?
    2) «Диапозон значений» — что за числа по оси X при отображении диапазона на графике?

    С уважением, Иван.

    #49330

    Менеджер ZETLab
    Хранитель

    Здравствуйте, Иван!

    1) «График в полярных координатах» предназначен для отображения зависимости переменной от угла (в градусах или радианах).
    В ZETLab данный компонент используется в программах «Анализ нелинейных искажений» и «Синхронное накопление» (прежнее название программы — «Порядковый анализ»;).
    В первом случае на графике в полярных координатах отображаются нелинейные искажения для одного периода сигнала (график обновляется с течением времени): https://www.zetlab.ru/catalog/programs/zetlab/harmdist.php
    Во втором случае графиках в полярных координатах могут отображаться сигналы виброускорения, виброскорости и виброперемещения с наложением на график рисунка с зубчатой передачи: https://www.zetlab.ru/catalog/programs/zetlab/prdkanaliz.php

    Для отображения данных на графике в полярных координатах в ZETView необходимо подать на график массив, для обновления графика нужно подать импульс на вход «Синхро».
    Угол развертки (начальное и конечное значения угла) задаются в окне настроек, вызываемом правой кнопкой «мыши» на компоненте в режиме работы проекта.
    Данные равномерно распределяется по полю графика, первое значение отобразится для начального угла, последнее — для конечного угла.

    2) компонент «Диапазон значений» ( https://zetlab.ru/catalog/programs/scada/description/library/time_array.php ) передает с выхода «Х» значения времени сервера по каналу. Для правильного расчета этих данных компонентом необходимо, чтобы свойство «freqrange» для компонента совпадало с частотой дискретизации АЦП анализируемого сигнала.
    Ранее с этого контакта передавался массив индексов элементов, но это не имело практической ценности, и компонент был усовершенствован таким образом, чтобы подключение массивов «Y» и «X» к графику давало осциллограмму фрагмента сигнала.
    Информация об этом изменении в компоненте была приведена на форуме «Развитие ПО и устранение замеченных ошибок», в сообщении должно быть указано, какая версия ZETView содержит обновленный компонент.

    С уважением, Татьяна.

    #49331

    Менеджер ZETLab
    Хранитель

    Следует помнить, что:
    1) Для того, чтобы на график не попадали «старые» значения, нужно предусмотреть своевременную очистку массива. Это касается лишь массивов, накапливаемых с помощью формировщиков. Когда данные передаются с выхода компонента «Анализ нелинейных искажений» все проще.
    2) Название графика, отображаемое в легенде, определяется свойством «m_sHelpString» компонента, который передает соовтетствующие данные на график. В случае, когда данные и по оси Х и по оси У передаются с одного и того же компонета можно использовать промежуточный компонент на одной из линий связи (например, прибавить ко всем компонентам массива значение 0)
    3) Единицы измерения, отображаемые в легенде и в подписях по осям устанавливаются в настройках графикка. Считать информацию о единицах измерения по каналу можно с помозью компонента «Информация о каналах» и передать на график через менеджер свойств.

    #49332

    Пробую в проекте разместить долеоктавный или узкополосный спектр, но при переключении на вид Интерфейс оператора эти компоненты не видны и их нет при запуске проекта. Что я делаю не так?

    #49333

    Менеджер ZETLab
    Хранитель

    К этим компонентам нужно подключать «График» для отображения рассчитанных ими значений.
    А при запуске проекта должно быть заметно, как сооветствующая программа (узкополосный или долеоктавный спектр) запустилась и скрылась.

    #49334

    Спасибо

    #49335

    Также благодарю за информацию

Просмотр 15 ответов - с 1 по 15 (всего 38)

Для ответа в этой теме необходимо авторизоваться.