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

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

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

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

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

Я так думаю тебе надо сделать 4-5 параллельных потоков:

1) Конвеер А
2) Конвеер B
3) Конвеер C
4) Конвеер 1
5) Может быть обработчик событий лицевой панели программы

Для каждого потока сделать свой ВП, чтобы всё понятно было и БД не была сильно большой.

Сделать два ВП, которые создают и закрывают очереди (их будет четыре, по одной для каждого потока-конвеера).

И так, главный поток и одновременно обработчик событий будет иметь всего пару кнопок для старта и стопа программы, а в блок диаграмме он будет сначала открывать четыре очереди, потом стартовать все параллельные потоки (их тоже четыре) и когда все потоки будут закрыты, закроет очереди и закончит программу.

Потоки A, B и C будут генерировать детали: либо симулировать, либо опрашивать датчики и посылать сигналы в главную и единственную очередь твоего конвеера 1.

Конвеер 1 будет считывать свою очередь и в зависимости от полученного сигнала на это так или иначе реагировать.

Вот такой вот план, ты его обдумай, отточи и сделай стейт диаграмму когда и что должно происходить в каком конвеере.

С остальным поможем, я собираюсь сделать из этого большой подробный урок для сайта. Думаю твоё задание очень подойдёт для этого.
Аватара пользователя
Eugen Graf

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

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

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

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

Я понял сначала что в конвеер 1 асинхронно поступают детали с конвееров A,B и C и он сортирует их по каким то особенностям на подходящие выходы Exit 1,2 или 3, но прочитал ещё раз описание и попал в тупик.

Проясни ситуацию

P.S. Под конвеером я понимаю один канал, а не три сразу, иначе это три конвеера.

Вот что я накидал по своему плану на данный момент. Кстати укажи свою версию LabVIEW в твоём профиле, иначе незнаю в какой версии сливатъ проект.
Вложения
QSM.zip
(120.56 КБ) 401 скачивание
alexander756

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

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

Сообщение alexander756 »

eg писал(а):Я понял сначала что в конвеер 1 асинхронно поступают детали с конвееров A,B и C и он сортирует их по каким то особенностям на подходящие выходы Exit 1,2 или 3
Все верно, а сортирует он в зависимости от того какой выход мы указали переключателем расположенным на Front Panel. Подожди может пару дней, а лучше до понедельника не выкладывай в другой версии, хочу попробовать сам разобраться :think:
Аватара пользователя
Eugen Graf

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

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

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

Если я правильно понял, то как вообще может возникнуть ситуация (4), разве можно запихать в один канал сразу две детали?
alexander756

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

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

Сообщение alexander756 »

eg писал(а):Если я правильно понял, то как вообще может возникнуть ситуация (4), разве можно запихать в один канал сразу две детали?
А почему не может возникнуть ситуация (4) если на ленточный конвеер поступают детали независимо друг от друга. Посмотри файлы (нужно *.zip переименовать в *.ехе), я их немного переделал чтобы объяснить принцип работы.
Вложения
array with verify.zip
(1.09 МБ) 201 скачивание
array without verify.zip
(1.09 МБ) 192 скачивания
Аватара пользователя
Eugen Graf

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

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

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

Прикольно выглядит. :crazy:

Ну хорошо, я понял, значит на конвеер (техничеки и механически) всё таки могут попасть детали сразу с нескольких входов. Тогда я предлагаю работать с тремя массивами, а не с очередями.
alexander756

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

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

Сообщение alexander756 »

Ну в принципе вот эти программы сделанны через массивы, я для каждой детали использовал 4 массива, чтобы можно было выбирать выход т.е. если деталь не выходит на первом выходе она передается во второй массив (расстояние между выходом 1 и 2) и так далее. Так ведь можно было сделать через Replace Array Subset? :cry:
Аватара пользователя
Eugen Graf

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

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

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

На всякий случай выкладываю для версии 8.2
Вложения
QSM.zip
(120.75 КБ) 352 скачивания
Ответить

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