реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> На чем сделать компьютерную тест-систему для цифрового контроллера?, MATLAB, LabView, Visual C или другое?
syoma
сообщение Oct 10 2009, 09:15
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368



Привет всем.

В общем уже давно стоит задача разработки автоматизированной тест-системы на базе PC для контроллера.
То есть есть система управления на основе контроллера, которая имеет до 100 цифровых входов и 100 цифровых выходов. Контроллер исполняет различные алгоритмы.
Задача состоит в том, чтобы с помощью компа сосздать виртуальное окружение для контроллера, чтобы он "думал" что управляет реальным объектом.
Плюс нужна хорошая визуализация, чтобы человек мог видеть, что происходит на экране монитора и мог если что нажать пару "виртуальных" кнопок и посмотреть, что будет.

По железу вопросов нет - я уже взял себе на пробу Agilent USB - в нем есть дрова для всего - и Matlabа и LabView и для Visual C.
Вопрос в том, что лучше применить? Я уже когда-то начинал писать софт для подобной тест-системы и знаю, что легче всего это описать текстовой программой.

Опыт работы с Матлабом и Лабвью у меня есть и плюсы и минусы каждого варианта немного понятны:
Matlab
+ Легкое текстовое программирование и графический Simulink интерфейс
- Плохая визуализация, помоему нужен Real Time Workshop и тот же Microsoft C, чтобы получить приемлемое время реакции( ну порядка 100мс хотя бы)

Labview
+ Отличная визуализация
- Помоему последние версии ну очень тяжелые для конфигурации и большие, нет текстового программирования

Microsoft C
+ Создание автономных приложений, текстовое программирование
- Много чего надо напистать, чтобы заработало.

А что вы посоветуете?
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Oct 10 2009, 20:03
Сообщение #2


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



C# - совмещает в себе все возможности С++ и возможность использовать скрипты для описания непосредственно алгоритма задачи. Есть возможность визульного создания этого алгоритма из разработанных заранее "кубиков" ввиде диаграмм описания процессов - workflow.
Go to the top of the page
 
+Quote Post
Mik174
сообщение Oct 11 2009, 11:04
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 357
Регистрация: 6-01-07
Пользователь №: 24 139



Цитата(syoma @ Oct 10 2009, 13:15) *
По железу вопросов нет - я уже взял себе на пробу Agilent USB - в нем есть дрова для всего - и Matlabа и LabView и для Visual C.
Вопрос в том, что лучше применить?
А что вы посоветуете?


Сделать можно на любом из трех перечисленных Вами инструментах.
Применяйте тот, который лучше знаете - меньше времени потратите на изучение инструмента, быстрее и качественнее решится задача.
Go to the top of the page
 
+Quote Post
syoma
сообщение Oct 11 2009, 12:16
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368



Цитата(Mik174 @ Oct 11 2009, 13:04) *
Сделать можно на любом из трех перечисленных Вами инструментах.
Применяйте тот, который лучше знаете - меньше времени потратите на изучение инструмента, быстрее и качественнее решится задача.


ХЗ. Уже начал экспериментировать на Матлабе, так как он у меня был установлен, надо было только Data Akquisition Toolbox установить. Но с Симулинком лажа вышла - нельзя одновременно с моим девайсом ввод и вывод сделать. Зато с помощью скриптов все запустилось и уже парой светодиодиков мигает.
Но в итоге получается, что все надо в коде писать. Для тестового алгоритма применимо - а вот как в Матлабе визуализация и пользовательский интерфейс делается - я плаваю(графики рисовать не считается). Посмотрел, как в примерах- похоже не легче, чем в Си.
Сижу счас, разбираюсь дальше.

ПС. Если кому интересно, железка вот такая: Agilent U2651A Пока все установилось и с Матлабом пашет без глюков
Планирую несколько таких и стойку под них взять.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Oct 11 2009, 12:25
Сообщение #5


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Кривоватый подход в принципе вы выбрали.
Т.е. с одной строные Agilent-ы слишком универсальны и избыточны, с другой непопонятен механизм их масштабирования в том же Matlabа и LabView.
У дивайсов то нет одновременно 100 входов и выходов. Придется делать стек из Agilent-ов. Потом какую-то синхронизацию.
Agilent-ы по сути повторяют команды с PC, логика в них не вгружается. Т.е. юзер получает полный гемор связанный с реализацие реалтайма под Windows.

Потом USB хоть и HS это совсем не интерфейс реального времени.
Во первых он делится между другими дивайсами на шине.
Во вторых точные тайминги в пределах мкс юзером не управляются.
Отсюда вытекает невозможность точной планировки потока событий. Недаром у Agilent-ов нигде не специфицируется время реакции выходов на управляющие команды.

Короче тестирующая платформа должна иметь возможность выполнять внутри себя загружаемую логику. Здесь лучше всего подходит концепция "hardware in the loop". Эту концепцию поддерживает и Matlab и LabView.
Но эти среды заточены на разные внешние IDE и микропроцессорные платформы.

LabView - на AD BlackFin, Keil ARM и т.д.
Matlab - на TI DSP, Tasking ARM, Multi2000 ARM

По опыту самая быстрая связка где за день можно сварганить логику управления IO и HMI на экране PC является LabView в паре с недорогой платой от Keil ARM.
Go to the top of the page
 
+Quote Post
syoma
сообщение Oct 11 2009, 13:29
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368



Принципы построения "Hardware in the loop" мне знакомы- строил такие и на ФПГА и знаком с такими монстрами, как RTDS и OPAL-RT.

То, что вы предлагаете - это тот-же DSPACE- Внешнее железо, для которого в Матлабе нужно сгенерить код и затем загрузить и выполнять в реальном времени. Требует кучу тулбоксов, внешний компилятор и капитальной конфигурации.
Мне же реалтайм пока не очень нужен - время реакции 100мс вполне допустимо. Плюс реализация синхронизации вполне простая - прерывание по таймеру.
Пока на 100мс работает вполне точно.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Oct 11 2009, 15:19
Сообщение #7


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Ну собственно сценарий тестирования тож имеет значение.
Вы собственно что тестируете: производительность вашего контроллера, выявляете предельную нагрузку по потоку событий, отказы в обслуживании , адаптацию к объекту регулирования, комбинационную логику контроллера или че еще?
Это все требует принципиально разных подходов и соответственно пакетов в MATLAB и LabView.
Некоторые фичи по моделированию асинхронных процессов появились только в последней версии MATLAB.


Цитата(syoma @ Oct 11 2009, 16:29) *
Пока на 100мс работает вполне точно.
Go to the top of the page
 
+Quote Post
syoma
сообщение Oct 12 2009, 07:18
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368



Это будет в основном тестирование логики - то есть реакции на нестандартные события, такие как например отказ датчика или обрыв в цепи сигнала, обкатка новых алгоритмов управления. Плюс стандартное тестирование контроллеров на производстве - проверка всех входов и выходов.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Oct 12 2009, 09:09
Сообщение #9


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



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

Но с такими Agilent-ами тут делать нечего это точно. Они сами или MATLAB-ы скорее начнут чудить от попыток смоделировать стрессы.
А без стрессов это не тестирование, а лабуда.


Цитата(syoma @ Oct 12 2009, 10:18) *
Это будет в основном тестирование логики - то есть реакции на нестандартные события, такие как например отказ датчика или обрыв в цепи сигнала, обкатка новых алгоритмов управления. Плюс стандартное тестирование контроллеров на производстве - проверка всех входов и выходов.
Go to the top of the page
 
+Quote Post
syoma
сообщение Oct 15 2009, 12:56
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368



То есть все таки лучше взять парочку старых добрых PCI-DIO-96 да XPC Target на какой нибудь простенькой машине замутить?
Помоему больше глюков вылезет. Там пока Visual C++ с Матлабом свяжешь - намучаешься.
Go to the top of the page
 
+Quote Post
shf_05
сообщение Dec 8 2009, 04:14
Сообщение #11


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 22-04-08
Из: г. Екатеринбург
Пользователь №: 36 992



у нас делают так - одноплатный IBM совместимый комп, на котором ОСРВ, ISA шина и на ней куча дискретных вводов-выводов, к которым и реле можно подцепить, только вот с визуализацией не очень круто- прогоняется ряд стандартных тестов- сигналы в опр. последовательности, сигналы по random-у и выводится табличка с результатом.
Go to the top of the page
 
+Quote Post
syoma
сообщение Nov 18 2010, 13:25
Сообщение #12


Профессионал
*****

Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368



Для обновления. Agilent вернулся производителю. А я взял себе PCI-DIO96 от Measurement Computing. А к ней сразу интерфейсные карты SSR-RACK24 и кабель. В итоге на интерфейсную карту ставятся любые гальваниечски изолированные модули сопряжения - хош 24Вольтовый вход, хош выход 220В AC и т.д. Причем почти в любых комбинациях.
Дрова и под MATLAB и под Labview и даже в XPCTarget поддерживается. Единственное, что в моей машине только пара PCI слотов есть - придется еще что-то старенькое найти.
Go to the top of the page
 
+Quote Post
Forger
сообщение Nov 18 2010, 15:50
Сообщение #13


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Попробуйте ПЛК CoDeSys от 3S Software, есть локализованная русская: codesys.ru.
Не требует железа (ПЛК), все визуально симулируется отлаживается на обычном компе. См. версию 3.x.
Поддерживает 7 языков программирования (одновременно в одной программе).
Сама прога бесплатная. Платно - сами ПЛК, с которыми она работает.
Я щас все свои проекты начинаю с нее, прорабатываю алгоритм, интерфейс работы с пользователем.
Потом воплащаю в своем железе. Куча времени экономится!


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 26th July 2025 - 07:43
Рейтинг@Mail.ru


Страница сгенерированна за 0.01476 секунд с 7
ELECTRONIX ©2004-2016