Список форумов   Список форумов  

Стенд проверки емкости акумуляторов

Всё о программировании на Labview

Модераторы: Техподдержка NI, Robert, Модератор

Стенд проверки емкости акумуляторов

Сообщение Артемий » Ср июн 20, 2012 4:02 pm

Здравствуйте уважаемые разработчики.
Работаю с лабвью около года. Разрабатываю стендовое оборудование для проверки различных плат производимых у нас приборов(мед. оборудование). Стенд представляет собой железо+лабвьюшный софт. Фактически, железо обладает всем функционалом. Моя задача правильно организовать последовательность управления и контроль необходимых параметров получаемых от железа.

Первым моим стендом год назад был стенд входного контроля емкости акумуляторных батарей.
Стенд представляет собой набор из 10-и последовательно подключеных плат(модулей) каждая из которых заряжает-разряжает заданым током одну батарею, прорисовывая при этом кривую разряда рассчитывая при этом отобранную акумуляторную емкость. Не имея никакого багажа знаний год назад я глупо организовал эту програму структурой Flat Sequence и последовательно опрашивал каждый из 10-и модулей. Стенд хоть и криво но успешно работает уже год. Сейчас обладая кое-какими занниями о разрелкмированных шаблонах и конечных автоматах пишу уже более сносные и красивые програмы, но все стенды у меня представляют набор плат и устройств с которыми я общаюсь посредством ЛВ для проверки одновременно только !!одной!! конкретной платы. Сейчас хотелось бы организовать мой первый стенд (проверки акумуляторов) более грамотно поскольку сейчас возможность расширить его хотя бы до 20-и модулей проверки фактически нереально.

Задача состиот в следующем. Необходимо оранизовать опрос и управление модулями, причем их количество задается при включении програмы(связь организована по интерфесу MODBUS, тоесть каждый из модулей отличается от другого только адресом, все регистры с данными одинаковые у каждого модуля). От каждого модуля необходимо получать набор данных: текущее напряжение батареи, текущий ток заряда/разряда, текущая отобранная емкость, и т п. При этом кривую напряжения в процессе разряда от каждого модуля необходимо прорисовывать на графике. Прорисовка кривой у каждого модуля начинается после полного заряда акумулятора (в разные моменты времени в зависимости от начального заряда акумулятора). Для контроля текущего этапа тестирования есть специальный регистр, тоесть я знаю когда начинать прорисовку и расчет емкости.

Вопрос: Каким образом можно организовать управление и опрос модулей, не зная заранее сколько их(задавать при запуске програмы, например списком адресов по которым обращаться). Проще говоря как динамически создать на экране некое заданое количество панелей управления модулями (для каждого модуля это: график, кнопка рестарта теста, кнопка установки разрядного тока и т п, индикатор отобранной емкости, булевая лампочка прошел-не прошел тест). Напомню ранее это было 10 Flat Sequenc-ов на блок диаграме и 10 вкладок System Tab на передней панеле.
Есть предположение реализовать это методом обьектно-ориентированого програмирования, тоесть создать класс "Модуль" с соответствующими данными и методами, а потом создавать обьекты этого класса. Но каким образом тогда динамически вывести на экран много панелей управления каждым из модулей, и чтоб каждая панель упавления была привязана к конкретному MODBUS адресу модуля? При этом еще и паралельно их опрашивать и управлять (команда рестарт, задать ток разряда и т п)

Пытался описать более менее понятно. Надеюсь, что Вы подскажете мне общую суть реализации такого алгоритма.

Заранее благодарен за любую подсказку.
Артемий
 
Сообщений: 2
Зарегистрирован: Ср июн 20, 2012 4:00 pm

Re: Стенд проверки емкости акумуляторов

Сообщение Borjomy » Чт июн 21, 2012 12:23 pm

1. Оформить через панель (VI), которая загружается динамически. При запуске ей передаются параметры обмена с внешним устройством, номер банки для надписи и прочее. В результате на экране будет куча одинаковых окошек. Удобно это или нет, решать вам. Передавая Occurence, Очереди в качестве параметра, становится возможно управлять ими. Если хотите, могу скинуть примерчик.
2. Сделать на передней панели статическую картинку со всеми возможными вариантами отображения и светить подходящую комбинацию.

К сожалению, создать графический объект динамически, изменять его размеры не получится. А вот копию VI - пожалуйста.
Borjomy
Пользователь
 
Сообщений: 24
Зарегистрирован: Вт ноя 22, 2011 12:16 pm

Re: Стенд проверки емкости акумуляторов

Сообщение Артемий » Пт июн 22, 2012 2:22 pm

Спасибо за ответ.
Идея запускать много экземпляров передней панели VI понравилась. Примерчик был бы очень в тему.
iegorenkov@ukr.net
Еще раз спасибо!)
Артемий
 
Сообщений: 2
Зарегистрирован: Ср июн 20, 2012 4:00 pm

Re: Стенд проверки емкости акумуляторов

Сообщение Borjomy » Пн июн 25, 2012 1:18 pm

Вот что-то вроде шаблона-примера. Есть некоторые недоработки, но извиняйте. Под LV 9.0 Кое что может быть избыточным, просто порезал рабочий вариант
Вложения
М Folder.zip
(95.2 KiB) Скачиваний: 101
Borjomy
Пользователь
 
Сообщений: 24
Зарегистрирован: Вт ноя 22, 2011 12:16 pm


Вернуться в LabVIEW

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

cron