Форум ZETLAB

Архив обсуждений, технических вопросов и ответов по оборудованию, программному обеспечению и внедрению измерительных систем.

Страницы: 1 2 След.
RSS
Вопросы по ZETView, фильтрация сигналов, цикл for, отслеживание уровня
 
В процессе нашей работы мы сталкиваемся с другими особенностями ПО ZETView. 1. Программа ZETLAB. Программа фильтрация сигналов. Конкретно нас интересует дифференцирование сигнала. Работает великолепно, позволяет следить за уровнем производной сигнала. Пытаемся воспроизвести такой же тип фильтрации в ПО ZETView. Используем, понятное дело, элемент ´Фильтрация´. Устанавливаем в свойствах элемента тип фильта - Дифференциальный. Нахимаем enter, т.е. пытаемся сохранить изменения. А оно то у нас не сохраняется. При последующем входе в свойства элемента фильтрация тип фильтра, по-прежнему, остаётся линейным. Что делать, как быть? Есть какие-то особенности применения дифференциального фильтра? Ни в одной из версий ZETView (пробовали по мере их появления с марта 2010 года) этот тип фильтра так и не сохранялся. 2. Комическая ситуация. Элемент ¨Цикл for¨. Не работает выход элемента ´Импульс´. При проектировании (создании связи между элементами ZETView) по этому выходу отображается следующая подсказка - импульс об окончании цикла. Логично предположить, что выход должен срабатывать при достижение счетчиком значения параметра quantity. Этого не происходит. С выхода сигнал не идёт. В библиотеке компонентов на сайте есть описание элемента ( http://zetms.ru/catalog/programs/scada/description/library/loop_for.php ) - но о выходе ´импульс´ там вообще ничего не упоминается. В каких случаях должен срабатывать выход Импульс? Или, быть может, подскажите - с помощью какого элемента можно отслеживать количество переходов некого числа через 0 (либо через любое другое число 5,8, 25). И давать команду на исполнительное устройство по завершению n циклов. Элемент цикл for, как мне кажется, лучше всего подходит на эту роль. С уважением, Александр.
 
Здравствуйте, Александр! По поводу компонента "Фильтрация сигналов" - в версии ZETView от декабря 2010 года мне удалось изменить все свойства и эти изменения сохранить. Каждая новая версия ZETView становится доступной для скачивания с ftp-сервера после тестирования, для отслеживания протестированных изменений создан форум "Развитие ПО и устранение замеченных ошибок". Компонент Цикл FOR направлен на дополнительное тестирование. Примечание: выходной контакт "Импульс" был добавлен уже после описания компонента на сайте. В целом текущее описание раскрывает логику работы: вход в цикл - контакт "Значение", тело цикла располается между выходным контактом "выход" и входным "Импульс" типа "любой тип соединений" (светлозеленого цвета). Каждая итерация цикла выполняется только после получения значения контактом "Импульс" типа "любой тип соединений". В противном случае цикл никогда не завершится. В разрабатываемой справке по ZETView описание компонента будет соответствовать его последней версии. Пример отслеживания количества переходов некого числа через 0 (либо через любое другое число) с использованием компонентов "Инкрементирование" и "Сравнение": Счетчик переходов. Для решения данной задачи на мой взгляд также подойдет использование функций программы Формула: IncRise (<канал>) – счетчик фронтов (переходов из 0 в 1). Следует использовать с логическими функциями Equal и Greater. Greater (<канал>, <канал>) - операция сравнения, возвращает единицу, если значения по первому каналу больше чем по второму, иначе возвращает ноль. Удобна для написания функций порогового обнаружения и создания различных регуляторов. В качестве второго агрумента можно использовать не канал, а константу или выражение. Примеры можно посмотреть в справке по программе. С уважением, Татьяна
 
Здравствуйте, Татьяна! Задача отслеживания пересечения 0 решил с помощью компонентов: Сравнение, D-триггера, константа и синхронизатор. Сигнал с компонента сравнение идёт на вход синхронизатора (уставку срабатывания устанавливаем здесь), а он, в свою очередь даёт команду исполнительному устройству (допустим светосигнальный индикатор). Компонент инкрементирование не использовал. А счёт циклов реализую через компонент цикл for и триггеры. Использовать инкрементирование в моём случае не представляется мне возможным, потому что импульс, приходящий на его вход не мгновенный. И поэтому он может сосчитать мне и 100 и 200 циклов мгновенно. Хотелось бы попросить Вас. Если с главной странички сайт проследовать по пути: Главная / Продукция / Программное обеспечение / Scada система / Примеры - то мы не увидим последних примеров, которые вы разрабатываете для пользователей. Возможно ли каким-то образом добавить все примеры (проиндексировать) в раздел сайта ПРИМЕРЫ? С Уважением, А. В. Баранов p.S. По ходу работы возник ещё один вопрос. С выхода компонента Вычитание (на нём вычитаются показания реального канала от константы) я отправляю данные на компонент Виртуальный канал. Естественно на выходе вычитания я получаю не синусоиду, а ´набор цифр´. Т.к. преобразование Измерительный канал->Вольтметр DC преобразует аналоговый сигнал в цифровую форму. А как быть, если мне необходимо сигнал после вычитания подать в синусоидальном виде на синхронизатор, к примеру? Мне необходимо сбрасывать показания датчика в 0 и работать с нулевой точки отсчета. Подавая сигнал после вычитания на виртуальный канал, а потом на синхронизатор - я получаю прямоугольный сигнал, работать с которым корректно связка синхронизатор+коммутационный блок не могут. Если после вычитания подавать сигнал
 
Здравствуйте, Александр! Очень рада, что проблема отслеживания пересечения 0 разрешилась, надеюсь теперь результат будет соответствовать поставленной цели. Ссылки на созданные примеры размещены в разделе "Примеры". Если говорить об операциях между каналом и константой, то тут подойдут компоненты "Арифмометр" (раздел "Потоковая обработка", выходом является виртуальный канал) и "ZETFormula" (раздел "Автоматизация", также создает виртуальный канал). Данные компоненты запускают и используют соответствующие программы из состава ZETLab, описание на которые можно найти в руководстве оператора. С уважением, Татьяна.
 
Здравствуйте! Поясните пожалуйста по компоненту "Комбинированный список", я понимаю так, что в этом компоненте можно задать строки со значениями, а потом в выпадающем списке выбирать нужное значение которое поступит на его выход, но как сформировать этот список значений? Такой же вопрос по компоненту "Список". У меня такая задача, на генеретор синосуедального сигнала подавать значения средних частот третьоктавных полос. Я хотел в компоненте "Комбинированный список" задать эти значения и затем выбирая нужное значение подавать его на вход генератора. Вообще может как-то можно сделать так, чтобы при нажатии кнопки поочередно менялись эти значения (т.е. поочередный перебор значений третьоктавных полос)
 
Здравствуйте, Дмитрий! Для начала отвечу про комбинированный список. Сформировать список можно в окне настроек компонента, или подать список на вход. Символом-разделителем значений списка является точка с запятой. Пробелы воспринимаются как символы, при заполнении списка численными значениями пробелы нужно исключить. Символом-разделителем целой и дробной части для численных значений является точка. Выбранное значение списка будет передано с выхода (в виде текста, числа, или индекс выбранного элемента - в зависимоти от настроек). При передачи с выхода численных значений комбинированный список можно использовать для установки частоты генератора вручную, список можно составить из третьоктавного ряда.
 
Для автоматического перебора частотного ряда подойдет компонент "Цикл For" Рекомендую обратить внимание на пример 2 в описании данного компонента ( http://zetlab.ru/catalog/programs/scada/description/library/loop_for.php ) - в нем как раз описан случай перебора частот третьоктавного ряда при формировании синусоидального сигнала. Частотный ряд задан не с помощью "Комбинированного списка", а с помощью "Детерминированного массива" (Раздел "Массивы";): 1) вызвать контекстное меню правой кнопкой мыши, в нем - "Редактировать компонент" 2) выбрать "из таблицы" 3) заполнить таблицу (пример - последний рисунок в описании компонента "Цикл FOR";) 4) Для инициализации детерминированного массива необходимо на его вход подать импульс (предусмотреть для этого кнопку), только тогда созданный массив будет передан с выхода компонента. Для того, чтобы получить значение из таблицы, используется компонент "Значение элемента (числовой)" (Раздел "Массив-Значение" ). Остальная часть схемы диктуется поставленной задачей. Для изменения какого-либо значения с равномерным шагом можно воспользоваться компонентом "Инкрементирование" (раздел "Арифметика" ): ( http://zetlab.ru/support/publication/virtualnie_pribory/scada.php - последний рисунок - реализация цикла на компонентах "Таймер", "Инктементирование" и "Сравнение" ) При необходимости подстройки генератора можно создать обратную связь с задающим компонентом через менеджера свойств (раздел "Разное";): http://zetlab.ru/catalog/programs/scada/samples/feedback_oscillator/
 
Здравствуйте, Татьяна! Спасибо за разяснения, сделал программу как требовалось. Еще вопрос, полученное приложение будет запускаться только если на компьютере установлена ZETView и окно программы будет всегда выглядить как окно ZETView?
 
Для работы приложений, написанных в ZETView необходимо наличие среды ZETView созданный проект можно скомпилировать в exe файл для того, чтобы запускать его на выполнение, исключая возможность редактирования. Для этого необходимо установить галочку "скомпилировать в EXE" и запустить проект. При этом появится сообщение, что создан исполняемый файл и будет предложено его запустить. На этом этапе можно отказаться от запуска, закрыть окно ZETView и попробовать запустить экзешник напрямую. С уважением, Татьяна.
 
Здравствуйте! Поясните пожалуйста работу компонентов: 1) "Диапозон значений" - что за числа по оси X при отображении диапазона на графике? 2) "График в полярных координатах" - как его правильно подключать,есть ли пример применения? С уважением, Иван.
 
Здравствуйте, Иван! 1) компонент "Диапазон значений" ( http://zetlab.ru/catalog/programs/scada/description/library/time_array.php ) передает с выхода "Х" значения времени сервера по каналу. Для правильного расчета этих данных компонентом необходимо, чтобы свойство freqrange для компонента совпадало с частотой дискретизации АЦП анализируемого сигнала. Ранее с этого контакта передавался массив индексов элементов, но это не имело практической ценности, и компонент был усовершенствован таким образом, чтобы подключение массивов "Y" и "X" к графику давало осциллограмму фрагмента сигнала. Информация об этом изменении в компоненте была приведена на форуме "Развитие ПО и устранение замеченных ошибок", в сообщении должно быть указано, какая версия ZETView содержит обновленный компонент. 2) "График в полярных координатах" предназначен для отображения зависимости переменной от угла (в градусах или радианах). В ZETLab данный компонент используется в программах "Анализ нелинейных искажений" и "Синхронное накопление" (прежнее название программы - "Порядковый анализ";). В первом случае на графике в полярных координатах отображаются нелинейные искажения для одного периода сигнала (график обновляется с течением времени): http://www.zetlab.ru/catalog/programs/zetlab/harmdist.php Во втором случае графиках в полярных координатах могут отображаться сигналы виброускорения, виброскорости и виброперемещения с наложением на график рисунка с зубчатой передачи: http://www.zetlab.ru/catalog/programs/zetlab/prdkanaliz.php Для отображения данных на графике в полярных координатах в ZETView необходимо подать на график массив, для обновления графика нужно подать импульс на вход "Синхро". Угол развертки (начальное и конечное значения угла) задаются в окне настроек, вызываемом правой кнопкой "мыши" на компоненте в режиме работы проекта. Данные равномерно распределяется по полю графика, первое значение отобразится для начального угла, последнее - для конечного угла. С уважением, Татьяна.
 
Следует помнить, что: 1) Для того, чтобы на график не попадали "старые" значения, нужно предусмотреть своевременную очистку массива. Это касается лишь массивов, накапливаемых с помощью формировщиков. Когда данные передаются с выхода компонента "Анализ нелинейных искажений" все проще. 2) Название графика, отображаемое в легенде, определяется свойством "m_sHelpString" компонента, который передает соовтетствующие данные на график. В случае, когда данные и по оси Х и по оси У передаются с одного и того же компонета можно использовать промежуточный компонент на одной из линий связи (например, прибавить ко всем компонентам массива значение 0) 3) Единицы измерения, отображаемые в легенде и в подписях по осям устанавливаются в настройках графикка. Считать информацию о единицах измерения по каналу можно с помозью компонента "Информация о каналах" и передать на график через менеджер свойств.
 
Пробую в проекте разместить долеоктавный или узкополосный спектр, но при переключении на вид Интерфейс оператора эти компоненты не видны и их нет при запуске проекта. Что я делаю не так?
 
К этим компонентам нужно подключать "График" для отображения рассчитанных ими значений. А при запуске проекта должно быть заметно, как сооветствующая программа (узкополосный или долеоктавный спектр) запустилась и скрылась.
 
Спасибо
 
Также благодарю за информацию
 
Добрый день! Хочется узнать как сохранять данные графика в полярных координатах чтобы его затем можно было смотреть через просмотрщик и распечатать.
 
Здравствуйте, Иван! К сожалению, на данный момент в просмотровщике ZETLab нет возможности просматривать графики в полярных координатах. Для реализации такой функции можно построить небольшой проект в ZETVIEW, похожий пример есть на сайте: Просмотр записанных файлов в виде зависимостей XY, XYT, XYZ Для печати графика его можно скопировать в буфер обмена привычной комбинацией клавиш +, вставить в ворд или графический редактор (+ и распечатать используя функцию "Печать" ворда или графического редактора. Вставка графика в документ word или excel также возможна средствами ZETVIEW.
 
Поясните пожалуйста как можно вставить полярный график в Word средствами ZETView.Простая комбинация Ctrl+C не срабатывает.
 
Здравствуйте, Иван! Прошу прощения за дезинформацию. На данный момент копирование графика в буфер обмена реализовано только для компонентов "График", "Многоканальный осциллограф" (метод "CopyPicture" и "XYZ плоттер" (метод PrintScreen). Для компонентов "XYZ осциллограф", "Грамма" и "График в полярных координатах" данная функция будет реализована в следующих версиях ZETView. Добавление графиков в отчет обсуждалось в теме «XYZ плоттер и отображение результатов» http://zetlab.ru/support/NewForum.php?PAGE_NAME=read&FID=2&TID=512 (сообщение №7) К сожалению, пока дата выхода следущей версии ZETView неизвестна, следите за форумом "Развитие ПО и устранение замеченных ошибок", кроме того, мы стараемся сообщать о внесенных в ПО изменениях в темах, где эти изменения обсуждались. С уважением, Татьяна.
Страницы: 1 2 След.
Читают тему