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

Нужна помощь!

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

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

Нужна помощь!

Сообщение igor174 » Чт мар 29, 2012 5:14 pm

Здравствуйте!
Помогите разобраться с проблемой возникшей при программировании, нарисовал программу так-то простую,но ёмкую,в конце концов дошел до того, что при компиляции ВИ, LabView подвисает и затем выходит ошибка (скрин скинул). есть ли какие-нить ограничения в лабвью для одного ВИ? Все свои мысли высказывайте =)
Вложения
Ошибка.JPG
Ошибка.JPG (9.54 KiB) Просмотров: 1490
igor174
 
Сообщений: 3
Зарегистрирован: Чт мар 29, 2012 5:10 pm

Re: Нужна помощь!

Сообщение MEvgeniy » Пт мар 30, 2012 2:11 pm

Здравствуйте,
Какая у вас версия LabView? Попробуйте оптимизировать код программы: как можно меньше использовать локальные и глобальные переменные, не использовать express VI, избавиться от дублирующихся частей программы. В более поздних версиях, начиная с LV 2010 SP1, эта ошибка маловероятна, если есть такая возможность, используйте более позднюю версию LabView.
MEvgeniy
Активный пользователь
 
Сообщений: 34
Зарегистрирован: Пн фев 13, 2012 11:55 am

Re: Нужна помощь!

Сообщение igor174 » Сб мар 31, 2012 10:49 am

Приветствую!
Использую версию LV 2010. На счёт оптимизации, самоучка и только начал программировать вообще, так что сделал, как знаю. Расскажу вкратце про ТЗ на нужную программу: Есть плата, которая состоит из 32-х реле, в компе стоит плата PCI1758-это плата ввода/вывода она используется для проверки платы с реле. Задача: проверить правильность и исправность монтажа платы с реле. Для этого программно подаю питание на первую реле, она срабатывает, затем проверяю по битно состояние на портах (входах) платы 1758,эти состояния должны остаться не изменны, а по битно проверяю, для того что бы в случае срабатывания ещё какой-то реле можно было определить её порядковый номер. И так с каждой реле, получается 32 раза, для организации последовательности использую по кадровую последовательность, т.е. на каждом кадре я включаю одну реле и побитно проверяю все остальные. Кадры отличны между собой,так что дублирования нет. Визуализация реле на экране сделана светодиодами, поэтому присутствуют локальные переменные, без них не получается.
Я чет не могу понять, какие есть ограничения по программированию на LV? И есть ли такая закономерность: чем больше и сложнее программа, тем нужно больше оперативной памяти на компе для её компиляции? У меня 4 Гб стоит, сейчас!
VI скинуть не могу, так как выходные, а все материалы на работе =)
igor174
 
Сообщений: 3
Зарегистрирован: Чт мар 29, 2012 5:10 pm

Re: Нужна помощь!

Сообщение IvanLis » Сб мар 31, 2012 2:27 pm

igor174 писал(а):Я чет не могу понять, какие есть ограничения по программированию на LV? И есть ли такая закономерность: чем больше и сложнее программа, тем нужно больше оперативной памяти на компе для её компиляции? У меня 4 Гб стоит, сейчас!
VI скинуть не могу, так как выходные, а все материалы на работе =)

Ваша задача достаточно проста.
Дело именно в программировании.
Используйте модель программирования "Конечный автомат", это значительно упростит программу.
Знание нескольких принципов освобождает от знания многих фактов!

Живу я здесь ||| LabVIEW Portal in Google+
IvanLis
Специалист LabVIEW
 
Сообщений: 491
Зарегистрирован: Пн апр 23, 2007 1:44 pm
Откуда: СССР

Re: Нужна помощь!

Сообщение igor174 » Вс апр 01, 2012 10:55 am

Как видите тут конечный автомат? Как я понял, засовываю побитную проверку портов и индикацию в цикл While, а подачу питания и переключение реле перед ним в по кадровую последовательность, так может?
igor174
 
Сообщений: 3
Зарегистрирован: Чт мар 29, 2012 5:10 pm

Re: Нужна помощь!

Сообщение IvanLis » Вс апр 01, 2012 11:54 am

igor174 писал(а):Как видите тут конечный автомат?

Спасение утопающего, дело рук самого утопающего! Тем более в Вашей ситуации.
Я помочь пытаюсь....
Прочтите хотя бы Вопрос про State Machine, поищите еще информацию.
В книге LabVIEW. Стиль программирования | Питер Блюм неплохо написано про модель State Machine.

Для проверки реле необходимо:
1. Подать сигнал управления - включение.
2. Выдержать паузу необходимую для включения.
3. Определить замкнулись контакты или нет.
4. Подать сигнал управления - выключение.
5. Выдержать паузу необходимую для выключения.

И так для каждого реле, а их 32 штуки.
И того у Вас должна получиться колбаса из 160 кадров :D .
Знание нескольких принципов освобождает от знания многих фактов!

Живу я здесь ||| LabVIEW Portal in Google+
IvanLis
Специалист LabVIEW
 
Сообщений: 491
Зарегистрирован: Пн апр 23, 2007 1:44 pm
Откуда: СССР


Вернуться в LabVIEW

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

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

cron