Задача: конвеер
-
- professional
- Сообщения: 301
- Зарегистрирован: 12 июн 2008, 19:56
- Награды: 1
- Версия LabVIEW: 8.6; 2009
- Откуда: Montreal
- Контактная информация:
Задача: конвеер
Задача была такая: имеется 3 конвеера (каждый конвеер имеет 3 входа и 3 выхода) которые могут работать независимо друг от друга или вместе, с возможностью выбора для каждой детали точки выхода и передачей информации о деталях переданных на след. конвеер через Internet. Я может сильно намудрил , извиняюсь, только начал изучать. Cкажите что вы думаете или у кого есть какие предложения, советы. Основные программы led#1_3; led#2_3; led#3_3
- Вложения
-
- programm.zip
- (1.09 МБ) 271 скачивание
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Задача: конвеер
Ого
Открыл LED1 ну и увидел что много всего. При чём всё в одном цикле. Ну и первый вопрос: у тебя три очереди, и ты ждёшь когда придут данные. Это всё в одном цикле, т.е. пока все три очереди не получат какое нибудь значение твой цикл висит. Это ок?
Открыл LED1 ну и увидел что много всего. При чём всё в одном цикле. Ну и первый вопрос: у тебя три очереди, и ты ждёшь когда придут данные. Это всё в одном цикле, т.е. пока все три очереди не получат какое нибудь значение твой цикл висит. Это ок?
-
- professional
- Сообщения: 301
- Зарегистрирован: 12 июн 2008, 19:56
- Награды: 1
- Версия LabVIEW: 8.6; 2009
- Откуда: Montreal
- Контактная информация:
Re: Задача: конвеер
Значит ты еще не открывал LED3. Так ведь если я разделю все на 3 цикла, то во второй (третий) цикл будут поступать данные о наличии на конвеере детали 1 (1 или 2) чтобы 2 деталь не попала на первую (3 на 2 или 1) и получится все тоже самое или я не прав?
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Задача: конвеер
Я думаю надо каждый из трёх VI разделить на три цикла, хотя я пока ешё не совсем понимаю саму задачу. Но ждать все три детали в одном цикле я думаю неприемлимо для такой задачи. Хотя если задача заключается именно в этом, то я не прав.
Понимаешь цикл закончится только тогда, когда все три детали присутствют. Это ли цель?
И вообще скажи работает ли твоя прога так как ты хочешь?
Понимаешь цикл закончится только тогда, когда все три детали присутствют. Это ли цель?
И вообще скажи работает ли твоя прога так как ты хочешь?
-
- professional
- Сообщения: 301
- Зарегистрирован: 12 июн 2008, 19:56
- Награды: 1
- Версия LabVIEW: 8.6; 2009
- Откуда: Montreal
- Контактная информация:
Re: Задача: конвеер
Задача такая: на конвеер поступают 3 детали, для второй детали происходит проверка есть ли в этом месте первая, если есть то тогда маленький конвеер (откуда поступает вторая деталь) останавливается, точно также для третьей детали происходит проверка на наличие детали 1 и 2. Программа работает, но когда я включаю например два конвеера вместе (Led1 и Led2) все работает намного медленее
-
- professional
- Сообщения: 301
- Зарегистрирован: 12 июн 2008, 19:56
- Награды: 1
- Версия LabVIEW: 8.6; 2009
- Откуда: Montreal
- Контактная информация:
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Задача: конвеер
Хм, не очень ясно. Скинь схему работы, а лучше стейт диаграмму. Понимаешь, тебе понятно, потому что у тебя всё перед глазами.
-
- professional
- Сообщения: 301
- Зарегистрирован: 12 июн 2008, 19:56
- Награды: 1
- Версия LabVIEW: 8.6; 2009
- Откуда: Montreal
- Контактная информация:
Re: Задача: конвеер
Объясню по рисунку. У нас есть конвеер(1) на который поступают детали откуда-то скажем с маленьких конвееров А,B,С и на них имеются датчики наличия деталей(2). Каждая деталь на конвеере отображается своим цветом (А-зеленым; B-черным; C-фиолетовым). Нам надо чтобы деталь А выходила с конвеера в точке Exit3 в которой имеется механизм(3) убирающий деталь с конвеера, деталь B в точке Exit2 и деталь С в точке Exit1. Выставляем переключателями для каждой детали необходимый выход. Чтобы мы могли детали отсортировать нам надо избежать ситуации(4) т.к. в точке Exit3 вместе с деталью С уберется деталь А. Значит когда деталь А находится в месте появления детали С, на рисунке позиция(5), мы останавливаем маленький конвеер С. Точно также и для B. Получается конвеер-сортировщик
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Задача: конвеер
Есть такая клёвая штука, которая называется Queued State Machine. Так вот это самое то, что для этой задачи подойдёт. Ещё для начала стоит нарисовать стейт диаграмму на листочке, а потом попытаться её осуществить с помощью этой Queued State Machine в LabVIEW.
Это по-моему был бы самый правильный подход для решения твоей задачи. Но т.к. всё уже сделано и переделывать нет времени, то остаётся пробовать то что есть и искать баги и улучшать тайминг используя жёлтую лампочку (highlighting) а так же Probe Tool.
Это по-моему был бы самый правильный подход для решения твоей задачи. Но т.к. всё уже сделано и переделывать нет времени, то остаётся пробовать то что есть и искать баги и улучшать тайминг используя жёлтую лампочку (highlighting) а так же Probe Tool.
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Задача: конвеер
Еслиже тебя всё таки заинтересует Queued State Machine, то скажи, я обясню, т.к. мне всё равно рано или поздно надо писать урок на эту тему.
-
- professional
- Сообщения: 301
- Зарегистрирован: 12 июн 2008, 19:56
- Награды: 1
- Версия LabVIEW: 8.6; 2009
- Откуда: Montreal
- Контактная информация:
Re: Задача: конвеер
Ну я думаю время еще есть . Переделал через Array и все заработало быстрее. Так что такое Queued State Machine и как это делается?
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Задача: конвеер
Для начала разберись вот с этим уроком /viewtopic.php?f=23&t=153 , а из него вытекает Queued State Machine. Большой плюс QSM является то, что последовательность выполнения процесса можно задавать как изнутри цикла, так и из других параллельных циклов твоей программы. То есть все возможности какие себе можно представить.
В общем полезная и классная штука.
Вот ещё топик на эту тему:
/viewtopic.php?f=87&t=288
Подробный урок напишу позже, как время появится.
В общем полезная и классная штука.
Вот ещё топик на эту тему:
/viewtopic.php?f=87&t=288
Подробный урок напишу позже, как время появится.
-
- professional
- Сообщения: 301
- Зарегистрирован: 12 июн 2008, 19:56
- Награды: 1
- Версия LabVIEW: 8.6; 2009
- Откуда: Montreal
- Контактная информация:
Re: Задача: конвеер
Что-то я посмотрел твои примеры и пока непонимаю как это применить в моем случае. Сколько будет циклов в моей программе. Queued State Machine используется в моем случае только чтобы например передавать информацию о наличии детали 1 в месте появления детали 2?
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Задача: конвеер
Ты уже работу конвееров разбил на шаги (стейты) ? UML-диаграмма готова? Пример со светофором посмотрел?
-
- professional
- Сообщения: 301
- Зарегистрирован: 12 июн 2008, 19:56
- Награды: 1
- Версия LabVIEW: 8.6; 2009
- Откуда: Montreal
- Контактная информация: