Задача: конвеер

Темы связанные с инженерными разработками, но не подходящие в другие ветки форума
alexander756

Activity
professional
professional
Сообщения: 301
Зарегистрирован: 12 июн 2008, 19:56
Награды: 1
Версия LabVIEW: 8.6; 2009
Откуда: Montreal
Контактная информация:

Задача: конвеер

Сообщение alexander756 »

Задача была такая: имеется 3 конвеера (каждый конвеер имеет 3 входа и 3 выхода) которые могут работать независимо друг от друга или вместе, с возможностью выбора для каждой детали точки выхода и передачей информации о деталях переданных на след. конвеер через Internet. Я может сильно намудрил :D , извиняюсь, только начал изучать. Cкажите что вы думаете или у кого есть какие предложения, советы. Основные программы led#1_3; led#2_3; led#3_3
Вложения
programm.zip
(1.09 МБ) 271 скачивание
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Задача: конвеер

Сообщение Eugen Graf »

Ого :shok:

Открыл LED1 ну и увидел что много всего. При чём всё в одном цикле. Ну и первый вопрос: у тебя три очереди, и ты ждёшь когда придут данные. Это всё в одном цикле, т.е. пока все три очереди не получат какое нибудь значение твой цикл висит. Это ок?
alexander756

Activity
professional
professional
Сообщения: 301
Зарегистрирован: 12 июн 2008, 19:56
Награды: 1
Версия LabVIEW: 8.6; 2009
Откуда: Montreal
Контактная информация:

Re: Задача: конвеер

Сообщение alexander756 »

Значит ты еще не открывал LED3. :haha: Так ведь если я разделю все на 3 цикла, то во второй (третий) цикл будут поступать данные о наличии на конвеере детали 1 (1 или 2) чтобы 2 деталь не попала на первую (3 на 2 или 1) и получится все тоже самое или я не прав? :think:
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Задача: конвеер

Сообщение Eugen Graf »

Я думаю надо каждый из трёх VI разделить на три цикла, хотя я пока ешё не совсем понимаю саму задачу. Но ждать все три детали в одном цикле я думаю неприемлимо для такой задачи. Хотя если задача заключается именно в этом, то я не прав.

Понимаешь цикл закончится только тогда, когда все три детали присутствют. Это ли цель?
И вообще скажи работает ли твоя прога так как ты хочешь?
alexander756

Activity
professional
professional
Сообщения: 301
Зарегистрирован: 12 июн 2008, 19:56
Награды: 1
Версия LabVIEW: 8.6; 2009
Откуда: Montreal
Контактная информация:

Re: Задача: конвеер

Сообщение alexander756 »

Задача такая: на конвеер поступают 3 детали, для второй детали происходит проверка есть ли в этом месте первая, если есть то тогда маленький конвеер (откуда поступает вторая деталь) останавливается, точно также для третьей детали происходит проверка на наличие детали 1 и 2. Программа работает, но когда я включаю например два конвеера вместе (Led1 и Led2) все работает намного медленее
alexander756

Activity
professional
professional
Сообщения: 301
Зарегистрирован: 12 июн 2008, 19:56
Награды: 1
Версия LabVIEW: 8.6; 2009
Откуда: Montreal
Контактная информация:

Re: Задача: конвеер

Сообщение alexander756 »

Может это потому что происходит передача и прием данных между программами?
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Задача: конвеер

Сообщение Eugen Graf »

Хм, не очень ясно. Скинь схему работы, а лучше стейт диаграмму. Понимаешь, тебе понятно, потому что у тебя всё перед глазами.
alexander756

Activity
professional
professional
Сообщения: 301
Зарегистрирован: 12 июн 2008, 19:56
Награды: 1
Версия LabVIEW: 8.6; 2009
Откуда: Montreal
Контактная информация:

Re: Задача: конвеер

Сообщение alexander756 »

Объясню по рисунку. У нас есть конвеер(1) на который поступают детали откуда-то скажем с маленьких конвееров А,B,С и на них имеются датчики наличия деталей(2). Каждая деталь на конвеере отображается своим цветом (А-зеленым; B-черным; C-фиолетовым). Нам надо чтобы деталь А выходила с конвеера в точке Exit3 в которой имеется механизм(3) убирающий деталь с конвеера, деталь B в точке Exit2 и деталь С в точке Exit1. Выставляем переключателями для каждой детали необходимый выход. Чтобы мы могли детали отсортировать нам надо избежать ситуации(4) т.к. в точке Exit3 вместе с деталью С уберется деталь А. Значит когда деталь А находится в месте появления детали С, на рисунке позиция(5), мы останавливаем маленький конвеер С. Точно также и для B. Получается конвеер-сортировщик
Вложения
1.JPG
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Задача: конвеер

Сообщение Eugen Graf »

Есть такая клёвая штука, которая называется Queued State Machine. Так вот это самое то, что для этой задачи подойдёт. Ещё для начала стоит нарисовать стейт диаграмму на листочке, а потом попытаться её осуществить с помощью этой Queued State Machine в LabVIEW.
Это по-моему был бы самый правильный подход для решения твоей задачи. Но т.к. всё уже сделано и переделывать нет времени, то остаётся пробовать то что есть и искать баги и улучшать тайминг используя жёлтую лампочку (highlighting) а так же Probe Tool.
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Задача: конвеер

Сообщение Eugen Graf »

Еслиже тебя всё таки заинтересует Queued State Machine, то скажи, я обясню, т.к. мне всё равно рано или поздно надо писать урок на эту тему. :think:
alexander756

Activity
professional
professional
Сообщения: 301
Зарегистрирован: 12 июн 2008, 19:56
Награды: 1
Версия LabVIEW: 8.6; 2009
Откуда: Montreal
Контактная информация:

Re: Задача: конвеер

Сообщение alexander756 »

Ну я думаю время еще есть :D . Переделал через Array и все заработало быстрее. Так что такое Queued State Machine и как это делается?
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Задача: конвеер

Сообщение Eugen Graf »

Для начала разберись вот с этим уроком /viewtopic.php?f=23&t=153 , а из него вытекает Queued State Machine. Большой плюс QSM является то, что последовательность выполнения процесса можно задавать как изнутри цикла, так и из других параллельных циклов твоей программы. То есть все возможности какие себе можно представить.

В общем полезная и классная штука.

Вот ещё топик на эту тему:
/viewtopic.php?f=87&t=288

Подробный урок напишу позже, как время появится.
alexander756

Activity
professional
professional
Сообщения: 301
Зарегистрирован: 12 июн 2008, 19:56
Награды: 1
Версия LabVIEW: 8.6; 2009
Откуда: Montreal
Контактная информация:

Re: Задача: конвеер

Сообщение alexander756 »

Что-то я посмотрел твои примеры и пока непонимаю как это применить в моем случае. Сколько будет циклов в моей программе. Queued State Machine используется в моем случае только чтобы например передавать информацию о наличии детали 1 в месте появления детали 2?
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Задача: конвеер

Сообщение Eugen Graf »

Ты уже работу конвееров разбил на шаги (стейты) ? UML-диаграмма готова? Пример со светофором посмотрел?
alexander756

Activity
professional
professional
Сообщения: 301
Зарегистрирован: 12 июн 2008, 19:56
Награды: 1
Версия LabVIEW: 8.6; 2009
Откуда: Montreal
Контактная информация:

Re: Задача: конвеер

Сообщение alexander756 »

Я пошел рисовать диаграммы и разбираться с примерами с лампочкой :suicide: :D
Ответить

Вернуться в «Общие»