Я так думаю тебе надо сделать 4-5 параллельных потоков:
1) Конвеер А
2) Конвеер B
3) Конвеер C
4) Конвеер 1
5) Может быть обработчик событий лицевой панели программы
Для каждого потока сделать свой ВП, чтобы всё понятно было и БД не была сильно большой.
Сделать два ВП, которые создают и закрывают очереди (их будет четыре, по одной для каждого потока-конвеера).
И так, главный поток и одновременно обработчик событий будет иметь всего пару кнопок для старта и стопа программы, а в блок диаграмме он будет сначала открывать четыре очереди, потом стартовать все параллельные потоки (их тоже четыре) и когда все потоки будут закрыты, закроет очереди и закончит программу.
Потоки A, B и C будут генерировать детали: либо симулировать, либо опрашивать датчики и посылать сигналы в главную и единственную очередь твоего конвеера 1.
Конвеер 1 будет считывать свою очередь и в зависимости от полученного сигнала на это так или иначе реагировать.
Вот такой вот план, ты его обдумай, отточи и сделай стейт диаграмму когда и что должно происходить в каком конвеере.
С остальным поможем, я собираюсь сделать из этого большой подробный урок для сайта. Думаю твоё задание очень подойдёт для этого.
Задача: конвеер
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Задача: конвеер
Чес гря я твой конвеер не понимаю, бессмыслица получается. Почему не направить конвееры ABC сразу на подходящие выходы EXIT 123??? Какую роль играет тогда вообще конвеер 1?alexander756 писал(а):Объясню по рисунку. У нас есть конвеер(1) на который поступают детали откуда-то скажем с маленьких конвееров А,B,С и на них имеются датчики наличия деталей(2). Каждая деталь на конвеере отображается своим цветом (А-зеленым; B-черным; C-фиолетовым). Нам надо чтобы деталь А выходила с конвеера в точке Exit3 в которой имеется механизм(3) убирающий деталь с конвеера, деталь B в точке Exit2 и деталь С в точке Exit1. Выставляем переключателями для каждой детали необходимый выход. Чтобы мы могли детали отсортировать нам надо избежать ситуации(4) т.к. в точке Exit3 вместе с деталью С уберется деталь А. Значит когда деталь А находится в месте появления детали С, на рисунке позиция(5), мы останавливаем маленький конвеер С. Точно также и для B. Получается конвеер-сортировщик
Я понял сначала что в конвеер 1 асинхронно поступают детали с конвееров A,B и C и он сортирует их по каким то особенностям на подходящие выходы Exit 1,2 или 3, но прочитал ещё раз описание и попал в тупик.
Проясни ситуацию
P.S. Под конвеером я понимаю один канал, а не три сразу, иначе это три конвеера.
Вот что я накидал по своему плану на данный момент. Кстати укажи свою версию LabVIEW в твоём профиле, иначе незнаю в какой версии сливатъ проект.
- Вложения
-
- QSM.zip
- (120.56 КБ) 401 скачивание
-
- professional
- Сообщения: 301
- Зарегистрирован: 12 июн 2008, 19:56
- Награды: 1
- Версия LabVIEW: 8.6; 2009
- Откуда: Montreal
- Контактная информация:
Re: Задача: конвеер
Все верно, а сортирует он в зависимости от того какой выход мы указали переключателем расположенным на Front Panel. Подожди может пару дней, а лучше до понедельника не выкладывай в другой версии, хочу попробовать сам разобратьсяeg писал(а):Я понял сначала что в конвеер 1 асинхронно поступают детали с конвееров A,B и C и он сортирует их по каким то особенностям на подходящие выходы Exit 1,2 или 3
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Задача: конвеер
Если я правильно понял, то как вообще может возникнуть ситуация (4), разве можно запихать в один канал сразу две детали?
-
- professional
- Сообщения: 301
- Зарегистрирован: 12 июн 2008, 19:56
- Награды: 1
- Версия LabVIEW: 8.6; 2009
- Откуда: Montreal
- Контактная информация:
Re: Задача: конвеер
А почему не может возникнуть ситуация (4) если на ленточный конвеер поступают детали независимо друг от друга. Посмотри файлы (нужно *.zip переименовать в *.ехе), я их немного переделал чтобы объяснить принцип работы.eg писал(а):Если я правильно понял, то как вообще может возникнуть ситуация (4), разве можно запихать в один канал сразу две детали?
- Вложения
-
- array with verify.zip
- (1.09 МБ) 201 скачивание
-
- array without verify.zip
- (1.09 МБ) 192 скачивания
-
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: Задача: конвеер
Ну в принципе вот эти программы сделанны через массивы, я для каждой детали использовал 4 массива, чтобы можно было выбирать выход т.е. если деталь не выходит на первом выходе она передается во второй массив (расстояние между выходом 1 и 2) и так далее. Так ведь можно было сделать через Replace Array Subset?
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Задача: конвеер
На всякий случай выкладываю для версии 8.2
- Вложения
-
- QSM.zip
- (120.75 КБ) 352 скачивания