PDA

Просмотр полной версии : помогите пожалуйста, постановка в очередь



corado
02.11.2019, 23:21
Добрый вечер форумчане, помогите с написанием проги.
Алгоритм такой, есть 5 емкостей которые надо заполнить, у каждой емкости есть два датчика уровня, нижний датчик уровня дает команду на загрузку материала, наполнившись материалом верхний датчик уровня останавливает загрузку и так все 5 емкостей до полного заполнения.Но не в этом моя проблема :), проблема состоит в том , чтобы поставить емкости в очередь, начальное состояние клапанов через которые поступает материал в емкости открытое (и ни как по другому) поэтому при включении системы все емкости начинают заполняться материалом, и как только заполнятся
датчики верхнего уровня подают питание на клапана и клапана закрываются (без питания клапан открыт) в итоге все пять клапанов находятся под напряжением и соответственно закрыты для загрузки и вот теперь емкости надо разгрузить в любой последовательности и ставить их в очередь под загрузку, т.е. если первой например разгрузилась вторая емкость а за ней пятая то и сначала загружаем (сбрасываем питание с клапана) вторую затем пятую и так далее в порядке очереди. И так подвожу итог, если емкости загружены то на всех клапанах присутствует напряжение и чтобы начать загрузку в емкость надо снять напряжение с клапана.
На форуме есть решения поставить в очередь, но там все наоборот, короче не хватает у меня опыта и соответственно мозгов чтоб решить эту проблему, прошу помощи у Вас уважаемые форумчане.
Может кто подскажет или направит на правильное решение

Сергей0308
03.11.2019, 00:00
Добрый вечер форумчане, помогите с написанием проги.
Алгоритм такой, есть 5 емкостей которые надо заполнить, у каждой емкости есть два датчика уровня, нижний датчик уровня дает команду на загрузку материала, наполнившись материалом верхний датчик уровня останавливает загрузку и так все 5 емкостей до полного заполнения.Но не в этом моя проблема :), проблема состоит в том , чтобы поставить емкости в очередь на разгрузку, начальное состояние клапанов через которые поступает материал в емкости открытое (и ни как по другому) поэтому при включении системы все емкости начинают заполняться материалом, и как только заполнятся
датчики верхнего уровня подают питание на клапана и клапана закрываются (без питания клапан открыт) в итоге все пять клапанов находятся под напряжением и соответственно закрыты для загрузки и вот теперь емкости надо разгрузить в любой последовательности и ставить их в очередь под загрузку, т.е. если первой например разгрузилась вторая емкость а за ней пятая то и сначала загружаем (сбрасываем питание с клапана) вторую затем пятую и так далее в порядке очереди. И так подвожу итог, если емкости загружены то на всех клапанах присутствует напряжение и чтобы начать загрузку в емкость надо снять напряжение с клапана.
На форуме есть решения поставить в очередь, но там все наоборот, короче не хватает у меня опыта и соответственно мозгов чтоб решить эту проблему, прошу помощи у Вас уважаемые форумчане.
Может кто подскажет или направит на правильное решение

Вам надо было на агронома учится, даже ПЛК создавались с тем расчётом, чтобы любой агроном мог запрограммировать, короче сигналы можно и инвертировать:

45442

45444

И, вот эту тему посмотрите, там я очередь усовершенствовал: https://owen.ru/forum/showthread.php?t=31113

corado
03.11.2019, 01:37
ну не совсем я уж такой и безнадежный, ивертация сигнала не выход, при таком включении клапана загрузки сразу будут закрыты так как на выходах Q1-Q5 45445 появится единица и никакой загрузки не будет соответственно, емкость пустая, нижний датчик свободен, так ка материала в емкости нет. Вашу схему я и пытаюсь прикрутить к своей проблеме, мне надо чтобы эта же схема при включении как раз была бы без инверсии выходов, на выходах Q1-Q5 был ноль, ноль это открытые клапана для загрузки материала, затем по мере заполнения емкостей на выходах появлялась единица, это закрытие клапана и здесь мне при загрузке очередность не нужна, очередность нужна при разгрузке, например если применить эту схему то допустим первым загрузится вторая емкость, затем четвертая, затем первая они в таком порядке и встанут в очередь а разгрузка ручная и может начаться не со второй а с третьей емкости и алгоритм сломается, так вот мне и важно поставить ту емкость в очередь с которой и начнут разгружать. Алгоритм такой: емкость пустая нижний и верхний датчики свободны(разомкнуты), на выходе Q1 ноль клапан загрузки открыт, запускаем систему, в емкость начал поступать материал, как только материал достигнет нижнего датчика он замкнется
45446
затем по мере заполнения емкости материал достигнет верхнего уровня верхний датчик замкнется и даст команду на закрытие клапана, на Q1 появится единица, материал перестанет поступать.
45447
теперь разгрузка, материал выгружается из емкости, по мере убывания материала, освобождается верхний датчик, контакты размыкаются
45448
и как только материал разгрузится и разомкнутся контакты нижнего датчика тут и должна произойти постановка емкости в очередь на загрузку. Ткните меня носом как это можно решить.
Но все равно вам спасибо за участие, посмотрю и поизучаю Вашу ссылку

Сергей0308
03.11.2019, 02:03
ну не совсем я уж такой и безнадежный, ивертация сигнала не выход, при таком включении клапана загрузки сразу будут закрыты так как на выходах Q1-Q5 45445 появится единица и никакой загрузки не будет соответственно, емкость пустая, нижний датчик свободен, так ка материала в емкости нет. Вашу схему я и пытаюсь прикрутить к своей проблеме, мне надо чтобы эта же схема при включении как раз была бы без инверсии выходов, на выходах Q1-Q5 был ноль, ноль это открытые клапана для загрузки материала, затем по мере заполнения емкостей на выходах появлялась единица, это закрытие клапана и здесь мне при загрузке очередность не нужна, очередность нужна при разгрузке, потому что по этой схеме в очередь становится загрузка, например если применить эту схему то допустим первым загрузится вторая емкость, затем четвертая, затем первая они в таком порядке и встанут в очередь а разгрузка ручная и может начаться не со второй а с третьей емкости и алгоритм сломается, так вот мне и важно поставить ту емкость в очередь с которой и начнут разгружать, Но все равно вам спасибо за участие, посмотрю и поизучаю Вашу ссылку

Немного начинаю понимать, а как Вы очерёдность разгрузки устанавливаете(планируете устанавливать)? Я так понимаю, ёмкости не заполняются, пока все не опустошатся?

corado
03.11.2019, 02:23
Вам надо было на агронома учится, даже ПЛК создавались с тем расчётом, чтобы любой агроном мог запрограммировать, короче сигналы можно и инвертировать:

45442

45444

И, вот эту тему посмотрите, там я очередь усовершенствовал: https://owen.ru/forum/showthread.php?t=31113

спасибо за ссылку, посмотрю

corado
03.11.2019, 02:26
Могут стоять загруженными какое то время, но как только какая то емкость опустошится первой то она и становится первой в очередь на загрузку.
разгружаются в ручную, открытием задвижки с низу емкости, и могут разгружаться в любом порядке

Сергей0308
03.11.2019, 02:53
Могут стоять загруженными какое то время, но как только какая то емкость опустошится первой то она и становится первой в очередь на загрузку.
разгружаются в ручную, открытием задвижки с низу емкости, и могут разгружаться в любом порядке

Так про загрузку Вы вроде писали, что не важна очерёдность загрузки, теперь оказывается будет и очерёдность загрузки? Если Вы назначаете вручную, после загрузки всех ёмкостей, очерёдность разгрузки, то получается и у загрузки будет такая же очерёдность. И, мне так кажется, Вам нужно и кнопку пуск приделать для запуска процесса после установки очерёдности разгрузки? Короче, я так думаю, за неделю выясним, что Вы хотите!

rovki
03.11.2019, 10:53
Вы сейчас о чем? Емкость стала пустой, её можно заполнять, при чем тут состояние датчиков от других емкостей?

Так открывать можно только одну одновременно на разгрузку ?И открывается емкость не обязательно до конца (открыли- закрыли ,потом другую так же) ?
Если разгрузка ручная ,произвольная ,но только из одной емкости ,то действительно нужно - как сработал нижний датчик (разгрузлась емкость ) ,то это емкость и включаем на загрузку без всяких очередей ,при условии ,что закрузка этой емкости начнется фактически (наличие сырья) не позже чем кончится сырье в другой ...а то будут несколько пустых ...Вообще не понятна постановка задачи ,может она не оптимальна ,хотелось бы знать в емкостях одно и тоже сырье (И на входе)?И какова цель данного алгоритма ?

melky
03.11.2019, 11:03
на разгрузку открывают когда хотят и в порядке каком хотят.
А загружаться должны по очереди по одной по принципу кто первый встал (опустошился) того и тапки.

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

если я правильно понял автора.

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

melky
03.11.2019, 11:08
да, контроля ручной задвижки нет, мало ли, человек забыл закрыть...

rovki
03.11.2019, 11:13
где об этом написано, что нельзя одновременно заполнять?
Я спрашивал про отновременную РАЗГРУЗКУ .Так я и говорю ,что каша . В начале когда все пустые можно все ,а потом нужна зачемто очередь на ЗАГРУЗКУ... Нам предлагают решить задачку оторванную от цели .А цель не озвучена !Что товашь хочет оптимизирвать обьем,время ...????

rovki
03.11.2019, 11:14
да, контроля ручной задвижки нет, мало ли, человек забыл закрыть...

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

stanislau
03.11.2019, 11:34
Загружаются по очереди наверно потому, что производительности транспортера или шнека не достаточно для одновременного заполнения. Первый раз долго заполняем все сразу, затем дозаполняем по очереди опустошившиеся емкости. Так простоев на одновременное заполнение емкостей не будет. Получится, что в какой-либо емкости хоть что-то да будет. Но без контроля положения задвижек ерунда получится. Я работал с бункерной системой хранения. Там на задвижках стояли индуктивные датчики, было видно какой бункер откр/закр. А так после пересменки кому-то может придется чистить забитый транспортер, если не увидишь, что какая-то емкость уже приоткрыта.:)

rovki
03.11.2019, 12:01
Так вот и хотелось бы понять что людьми движет ,а не просто 2х2=????? (вот так как сделать??? - А почему так??? Скажи что нужно,а как мы и сами придумаем).

corado
03.11.2019, 13:16
на разгрузку открывают когда хотят и в порядке каком хотят.
А загружаться должны по очереди по одной по принципу кто первый встал (опустошился) того и тапки.

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

если я правильно понял автора.

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

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

Сергей0308
03.11.2019, 13:30
вы правильно меня поняли

Я так и не понял, первоначальная загрузка, все ёмкости пусты, можно все ёмкости загружать одновременно или надо по одной загружать(очерёдность не важна)?
Потом, как я понял по мере опустошения ёмкостей, если две и более ёмкости опустошаться, то их ставить в очередь на заполнение, то есть одновременно заполняется не более одной ёмкости, я правильно Вас понял?

Короче, если всегда действует правило заполнения не более одной ёмкости, то мой проект, что я выложил, полностью соответствует вашим хотелкам!
Если Вам надо первоначально одновременно все ёмкости заполнять, то, для первоначальной загрузки, откройте все клапана до заполнения емкостей, всё!

И, если Вы не в состоянии ясно объяснить, чего хотите, для меня будет намного проще если Вы будете говорить, что не так в работе моей программы!

corado
03.11.2019, 13:31
на разгрузку открывают когда хотят и в порядке каком хотят.
А загружаться должны по очереди по одной по принципу кто первый встал (опустошился) того и тапки.

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

если я правильно понял автора.

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

на разгрузку открывают когда хотят и в порядке каком хотят совершенно верно

corado
03.11.2019, 14:45
Так про загрузку Вы вроде писали, что не важна очерёдность загрузки, теперь оказывается будет и очерёдность загрузки? Если Вы назначаете вручную, после загрузки всех ёмкостей, очерёдность разгрузки, то получается и у загрузки будет такая же очерёдность. И, мне так кажется, Вам нужно и кнопку пуск приделать для запуска процесса после установки очерёдности разгрузки? Короче, я так думаю, за неделю выясним, что Вы хотите!

извиняюсь не пояснил, загрузка по очереди тоже важна но для меня загрузить их по очереди не проблема поэтому и пишу что не важно как загрузится и в каком порядке, поясняю почему, материал загоняется в емкости воздухом и объема воздуха не хватит чтобы загрузить все емкости сразу, объема воздуха хватает чтобы загрузить одну емкость, кто первый разгрузился тот первый и встал на последующую загрузку. Например: оператор разгрузил первой емкость номер два, если в очереди на загрузку никого нет то загружается емкость номер два остальным команда запрет, затем оператор начинает разгружать емкость номер пять, номер три и номер один одновременно, какая то из них опустошилась быстрее всех на доли секунды, пусть будет первая затем номер пять и за ней номер три, то первая становится под загрузку, остальным запрет пока загружается первая и так далее по очереди, важно чтобы всегда под загрузку вставала только одна емкость

corado
03.11.2019, 14:51
где об этом написано, что нельзя одновременно заполнять? Если это слово очередь, так для меня это просто человек прочел что очередями можно пользоваться вот и упоминает это слово. А почему я так считаю, так это потому что в этом ТЗ отсутствует главное, кто будет контролировать что ручная задвижка, через которую емкость разгружается действительно закрыта, чтоб начать емкость заполнять

нижний датчик уровня

corado
03.11.2019, 14:54
очередь важна, выше я объяснил почему

Сергей0308
03.11.2019, 14:57
извиняюсь не пояснил, загрузка по очереди тоже важна но для меня загрузить их по очереди не проблема поэтому и пишу что не важно как загрузится и в каком порядке, поясняю почему, материал загоняется в емкости воздухом и объема воздуха не хватит чтобы загрузить все емкости сразу, объема воздуха хватает чтобы загрузить одну емкость, кто первый разгрузился тот первый и встал на последующую загрузку. Например: оператор разгрузил первой емкость номер два, если в очереди на загрузку никого нет то загружается емкость номер два остальным команда запрет, затем оператор начинает разгружать емкость номер пять, номер три и номер один одновременно, какая то из них опустошилась быстрее всех на доли секунды, пусть будет первая затем номер пять и за ней номер три, то первая становится под загрузку, остальным запрет пока загружается первая и так далее по очереди, важно чтобы всегда под загрузку вставала только одна емкость

Тогда, получается мой проект(что я выложил) полностью соответствует вашим хотелкам?
И, насколько понял, вам важна не очередь(чтобы ёмкости заполнялись в порядке опустошения), а что бы одновременно заполнялось не более одной ёмкости, я правильно Вас понимаю?
Тогда логика работы только упростится во много раз!

corado
03.11.2019, 15:07
Так открывать можно только одну одновременно на разгрузку ?И открывается емкость не обязательно до конца (открыли- закрыли ,потом другую так же) ?
Если разгрузка ручная ,произвольная ,но только из одной емкости ,то действительно нужно - как сработал нижний датчик (разгрузлась емкость ) ,то это емкость и включаем на загрузку без всяких очередей ,при условии ,что закрузка этой емкости начнется фактически (наличие сырья) не позже чем кончится сырье в другой ...а то будут несколько пустых ...Вообще не понятна постановка задачи ,может она не оптимальна ,хотелось бы знать в емкостях одно и тоже сырье (И на входе)?И какова цель данного алгоритма ?

открывать на разгрузку можно все емкости, но первая разгрузившаяся емкость по нижнему датчику ставит себя на загрузку первой, остальным дает команду на запрет загрузки, остальные в это время еще разгружаются, последующая разгрузившаяся емкость ставит себя в очередь. Емкости загружаются одним материалом под давлением воздуха, и этого воздуха хватает только на одновременную загрузку только одной емкости поэтому и важна очередь, чтобы всегда загружалась только одна емкость

corado
03.11.2019, 15:11
да, контроля ручной задвижки нет, мало ли, человек забыл закрыть...

ну это под ответственность оператора

rovki
03.11.2019, 15:16
Если только это все продиктовано экономией воздуха при загрузке ,тогда и первоночальное заполнение должно быть по одному ,а не по очереди ...Хоть что то стал проясняться ,а то очередь,очередь ....А какая разница если заполнение до верху по датчику .Может и есть разница ,но тогда как в задачке про трубу и бассейн нужно знать производительность с которой заполняется бункер и с какой опусташается при открытой полностью задвижке ...Думается что наполнение в раз несколько быстрее чем расход ,иначе зачем 5 емкостей или как?

melky
03.11.2019, 15:36
блин, ну если все емкости пусты и начинаем работу, то очередь будет 1,2,3,4,5, потом в процессе работы очередь будет меняться.

То есть есть начальное значение, потом по обстоятельствам. Все.

corado
03.11.2019, 15:38
Я спрашивал про отновременную РАЗГРУЗКУ .Так я и говорю ,что каша . В начале когда все пустые можно все ,а потом нужна зачемто очередь на ЗАГРУЗКУ... Нам предлагают решить задачку оторванную от цели .А цель не озвучена !Что товашь хочет оптимизирвать обьем,время ...????

Извиняюсь что не правильно сформулировал задачу.

Емкости заполняются под давлением воздуха и этого воздуха хватает только на загрузку только одной емкости поэтому и важна очередь. В начале когда все емкости пустые загрузить их по очереди по одной нет проблем, поэтому и написал что загрузка не важна а вот разгрузка(подчеркиваю, разгрузка) по нижнему датчику должна ставить в очередь на загрузку ту емкость которая разгрузилась первой (именно разгрузилась а не загрузилась), остальным эта емкость дает команду на запрет загрузки и пока она не загрузится запрет остальным не снимается, дальше в очередь становятся следующие разгрузившиеся емкости в порядке очереди, в итоге загружаться должна только одна емкость, остальные стоят и ждут своей очереди.
Оптимизировать ничего не надо ни объема ни времени. Цель создать очередь

Сергей0308
03.11.2019, 16:08
Извиняюсь что не правильно сформулировал задачу.

Емкости заполняются под давлением воздуха и этого воздуха хватает только на загрузку только одной емкости поэтому и важна очередь. В начале когда все емкости пустые загрузить их по очереди по одной нет проблем, поэтому и написал что загрузка не важна а вот разгрузка(подчеркиваю, разгрузка) по нижнему датчику должна ставить в очередь на загрузку ту емкость которая разгрузилась первой (именно разгрузилась а не загрузилась), остальным эта емкость дает команду на запрет загрузки и пока она не загрузится запрет остальным не снимается, дальше в очередь становятся следующие разгрузившиеся емкости в порядке очереди, в итоге загружаться должна только одна емкость, остальные стоят и ждут своей очереди.
Оптимизировать ничего не надо ни объема ни времени. Цель создать очередь

Так чем тогда Вас не устраивает мой вариант? Там точно так и работает, как Вы хотите(сейчас описали)!
Единственное, что контакты датчиков размыкаются у датчиков нижнего уровня(у меня должны замыкаться), так Вы же нас убеждали, что дружите с инвертором!
За два дня три инвертора можно поставить?!

corado
03.11.2019, 16:13
Тогда, получается мой проект(что я выложил) полностью соответствует вашим хотелкам?
И, насколько понял, вам важна не очередь(чтобы ёмкости заполнялись в порядке опустошения), а что бы одновременно заполнялось не более одной ёмкости, я правильно Вас понимаю?
Тогда логика работы только упростится во много раз!

Да, мне надо чтобы в процессе загрузки участвовало не более одной емкости, иначе на загрузку не хватит давления воздуха, но надо чтобы последующие разгрузившиеся емкости вставали в очередь на загрузку, даже если все они опустошились. Клапана разрешающие подачу материала имеют начальное состояние нормально открытые (NO) и если включить систему то сразу пойдет загрузка во все емкости, я их закрою и загружу по очереди а вот дальше вступает в силу приоритет разгрузки, потому что там нет последовательности, разгружаться могут в любом порядке, в таком же порядке и должны и загружаться но строго по одному

Сергей0308
03.11.2019, 16:29
Да, мне надо чтобы в процессе загрузки участвовало не более одной емкости, иначе на загрузку не хватит давления воздуха, но надо чтобы последующие разгрузившиеся емкости вставали в очередь на загрузку, даже если все они опустошились. Клапана разрешающие подачу материала имеют начальное состояние нормально открытые (NO) и если включить систему то сразу пойдет загрузка во все емкости, я их закрою и загружу по очереди а вот дальше вступает в силу приоритет разгрузки, потому что там нет последовательности, разгружаться могут в любом порядке, в таком же порядке и должны и загружаться но строго по одному

Вы, наверно просто не посмотрели мою программу, что бы Вы там не делали, она не позволит загружать более одной ёмкости, вот и инверторы Вам поставил, Вы похоже сами не в состоянии, зачем тогда убеждать нас в обратном?!

45451

45452

Вот эту программу попробуйте, мне кажется, должна Вам идеально подходить, судя по вашим хотелкам!

corado
03.11.2019, 17:08
Да, мне надо чтобы в процессе загрузки участвовало не более одной емкости, иначе на загрузку не хватит давления воздуха, но надо чтобы последующие разгрузившиеся емкости вставали в очередь на загрузку, даже если все они опустошились. Клапана разрешающие подачу материала имеют начальное состояние нормально открытые (NO) и если включить систему то сразу пойдет загрузка во все емкости, я их закрою и загружу по очереди а вот дальше вступает в силу приоритет разгрузки, потому что там нет последовательности, разгружаться могут в любом порядке, в таком же порядке и должны и загружаться но строго по одному

по моему я сам себе мозги зас__ал ваша схема с инверсией кажется то что надо сейчас еще раз ее попробую.

rovki
03.11.2019, 17:13
Если вход один и выход один (общий) ,то очередь вообще не нужна - работа чисто по датчикам уровня ,но только по одному в данный момент по кругу тобишь .

corado
03.11.2019, 17:19
Вы, наверно просто не посмотрели мою программу, что бы Вы там не делали, она не позволит загружать более одной ёмкости, вот и инверторы Вам поставил, Вы похоже сами не в состоянии, зачем тогда убеждать нас в обратном?!

45451

45452

Вот эту программу попробуйте, мне кажется, должна Вам идеально подходить, судя по вашим хотелкам!

не знаю почему, но я сам себе вбил в мозги неправильную логику переключения этой схемы, а сегодня стал раскладывать по полочкам описывая процесс на форуме, и мозг просветлел:o пришел к выводу что это то что надо, сейчас буду допиливать. Всем огромное спасибо.

Включил эту схему, блииин это как раз то что надо, даже первое включение реализовалось, в очередь на загрузку встала первая емкость и придумывать дальше ничего не надо,в первой версии этого нет. Огромнейшее спасибо за помощь.
За инверторы не пинайте меня сильно, я пробовал, но увы тогда мне показалось что это все не так как мне надо.
45454
К6-К7 это загрузка первой емкости.

Сергей0308
03.11.2019, 17:20
Уже писал об этом, что очередь здесь не нужна и тогда программа только упростится в несколько раз, так как ему важна не очередь, а что бы одновременно не более одной ёмкости загружалось!

corado
03.11.2019, 20:26
Добрый вечер форумчане, помогите с написанием проги.
Алгоритм такой, есть 5 емкостей которые надо заполнить, у каждой емкости есть два датчика уровня, нижний датчик уровня дает команду на загрузку материала, наполнившись материалом верхний датчик уровня останавливает загрузку и так все 5 емкостей до полного заполнения.Но не в этом моя проблема :), проблема состоит в том , чтобы поставить емкости в очередь на разгрузку, начальное состояние клапанов через которые поступает материал в емкости открытое (и ни как по другому) поэтому при включении системы все емкости начинают заполняться материалом, и как только заполнятся
датчики верхнего уровня подают питание на клапана и клапана закрываются (без питания клапан открыт) в итоге все пять клапанов находятся под напряжением и соответственно закрыты для загрузки и вот теперь емкости надо разгрузить в любой последовательности и ставить их в очередь под загрузку, т.е. если первой например разгрузилась вторая емкость а за ней пятая то и сначала загружаем (сбрасываем питание с клапана) вторую затем пятую и так далее в порядке очереди. И так подвожу итог, если емкости загружены то на всех клапанах присутствует напряжение и чтобы начать загрузку в емкость надо снять напряжение с клапана.
На форуме есть решения поставить в очередь, но там все наоборот, короче не хватает у меня опыта и соответственно мозгов чтоб решить эту проблему, прошу помощи у Вас уважаемые форумчане.
Может кто подскажет или направит на правильное решение

всем огромное спасибо, в особенности Сергей0308 за его програмку очередь версии 8х8. все заработало как надо.

corado
03.11.2019, 20:30
Уже писал об этом, что очередь здесь не нужна и тогда программа только упростится в несколько раз, так как ему важна не очередь, а что бы одновременно не более одной ёмкости загружалось!

вот я и зациклился на очереди пока умные люди меня не направили в нужном направлении

Сергей0308
03.11.2019, 21:59
Вот усовершенствовал немного макрос "очередь", как по ссылке, что давал, уже вполне прилично выглядит и работает! Вам это не нужно, Вам скорость переключения не важна, а так в принципе в 32 раза может время реакции сократиться(при 32 входах-выходах), это при цикле 10мс, почти треть секунды! Да и приоритет будет в отличии от преведущей версии у входов-выходов с большим числовым значением(поэтому ёмкости "перевернул")! Но ранее кто-то уже просил уменьшить усовершенствованную версию с 32 входами-выходами до 8 входов-выходов, вот выкладываю такую версию и она немного отличается от версии с 32 входами-выходами в "мелочах", что на работу не влияет:

45457

45458

Вот не успокоился(https://www.youtube.com/watch?v=jEdgnGfehB4), сделал проект с последними версиями макросов очередь на 8 и 32 входа-выхода и сделал их более универсальными, то есть по сути макрос на 32 входа-выхода слеплен из четырех элементов макроса на 8 входов-выходов:

45460

45459

И, мне кажется, это уже обращение с сочинителям ОЛ, что если помещается макрос в макрос, то во втором макросе, куда помещается первый, надо дать возможность дописать к названию константы хотя бы три буквы или цифры(я вот планировал дописать: Q1-Q8), что бы различать их, ну иначе их невозможно различить, приходится действовать вслепую, на ощупь, боясь лишний раз что-то шевельнуть в макросе, пример перед Вами, как мне различать константы посоветуете:

45461

45462

Короче, Вам видней, подскажите, как мне лучше сделать в этом случае?

rovki
03.11.2019, 22:40
Я бы для данного проекта сделал "сканирование" по кругу - нужно ,досыплю ,нет - следующий ...итд по кругу (опрос) ,а фактически может получиться любая комбинация при засыпке (смотря какая была разгрузка)...И нет разницы первоначальная засыпка или нет ,все по кругу ...

Сергей0308
03.11.2019, 22:47
Я бы для данного проекта сделал "сканирование" по кругу - нужно ,досыплю ,нет - следующий ...итд по кругу (опрос) ,а фактически может получиться любая комбинация при засыпке (смотря какая была разгрузка)...И нет разницы первоначальная засыпка или нет ,все по кругу ...

Это получится, что-то вроде ротации, следующим запускается устройство из числа готовых к запуску, по кругу всё гоняется и не надо ни каких очередей!
Ну и таймер можно поставить по времени максимальной продолжительности загрузки для определения какой-то неисправности или задвижку закрыть забыли!

Сергей0308
03.11.2019, 22:55
не знаю почему, но я сам себе вбил в мозги неправильную логику переключения этой схемы, а сегодня стал раскладывать по полочкам описывая процесс на форуме, и мозг просветлел:o пришел к выводу что это то что надо, сейчас буду допиливать. Всем огромное спасибо.

Включил эту схему, блииин это как раз то что надо, даже первое включение реализовалось, в очередь на загрузку встала первая емкость и придумывать дальше ничего не надо,в первой версии этого нет. Огромнейшее спасибо за помощь.
За инверторы не пинайте меня сильно, я пробовал, но увы тогда мне показалось что это все не так как мне надо.
45454
К6-К7 это загрузка первой емкости.

И, судя по скрину, Вы смело усовершенствуете мой макрос очередь, надо полагать, что Вы во всех тонкостях разобрались в принципах его работы?

rovki
03.11.2019, 22:58
Это получится, что-то вроде ротации, следующим запускается устройство из числа готовых к запуску, по кругу всё гоняется и не надо ни каких очередей!
Ну и таймер можно поставить по времени максимальной продолжительности загрузки для определения какой-то неисправности или задвижку закрыть забыли!

Да функциональная диагностика должна быть во всех проектах .

capzap
04.11.2019, 10:29
Я тогда тоже выложу свое представление такой задачи, сильно не старался возможно какое то условие и не совпадет, вход RND должен быть привязан к ГСЧ, чтоб при одновременном срабатывании двух сигналов в одном цикле не получилось одинаковое время

Сергей0308
04.11.2019, 20:53
Наверно, так попроще будет:

45464

45465

Даже так:

45466

45467

stanislau
04.11.2019, 22:58
Вариант Capzar вроде работает как ТС хочет.Только аналоговые входы лучше переключить в дискретный режим. Или нет? Как работает вариант Сергей0308 не понял. Бункеров 5, датчиков 10, а входов задействовано 8. И выходов почему-то 8. Должно же быть 10 входных сигналов и 5 выходных?

capzap
04.11.2019, 23:05
Вариант Capzar вроде работает как ТС хочет.Только аналоговые входы лучше переключить в дискретный режим. Или нет? Как работает вариант Сергей0308 не понял. Бункеров 5, датчиков 10, а входов задействовано 8. И выходов почему-то 8. Должно же быть 10 входных сигналов и 5 выходных?

это же не мой проект, я просто продемонстрировал как можно сделать, может в реальной задаче есть модули расширения, потому что на скрине от ТС есть и другие сигналы на входах

Сергей0308
04.11.2019, 23:34
Вариант Capzar вроде работает как ТС хочет.Только аналоговые входы лучше переключить в дискретный режим. Или нет? Как работает вариант Сергей0308 не понял. Бункеров 5, датчиков 10, а входов задействовано 8. И выходов почему-то 8. Должно же быть 10 входных сигналов и 5 выходных?

Посмотрите 29 пост, от датчиков триггеры срабатывают, они на входах стоят, а на выходах инверторы, не стал лишний раз рисовать триггеры и инверторы, что бы под конкретный проект ТС подходило, здесь показал принципиальное решение, а у кого какие клапана(нормально открытые или нормально закрытые) или датчики - это не важно, тем более ранее, преведущий мой вариант мне пришлось подгонять под конкретные датчики и клапана ТС!

Если Вас беспокоит не принципиальное решение, а конкретное для ТС, то как-то так:

45470

И, мне так кажется, в десятки раз проще, чем с очередью получается!
Извиняюсь, не мог подумать, что у кого-то проблемы возникнут, как это применить!

И, пусть немного сложней, но мне всё-таки ближе с понятными приоритетами, короче, как-то так:

45475

А для конкретного случая ТС даже так, с инвертированием всех выходов в макросе, чтобы дополнительных инверторов не ставить:

45476

45477

CleanS
05.11.2019, 08:30
Меня несколько другое смущает в исполнении, это НО (нормально открытые) клапана.
В своё время учили, что все исполнительные механизмы желательно держать отключенными и обесточенными, а питание подавать непосредственно в момент выполнения необходимой операции. С точки зрения энергозатрат и аварийности, как-то с НО спокойнее.

CleanS
05.11.2019, 10:49
Внимательно ещё раз перечитайте первый пост.
Система наполнения бункеров оборудована нормально ОТКРЫТЫМИ клапанами.
Т.е. при отсутствующем питании - открыты.


Добрый вечер форумчане, помогите с написанием проги.
..... начальное состояние клапанов через которые поступает материал в емкости открытое (и ни как по другому) поэтому при включении системы все емкости начинают заполняться материалом, и как только заполнятся
...

CleanS
05.11.2019, 11:53
прежде всего с себя начните, это же Вас смущает в исполнении использование нормально открытого клапана

Какой-то вы агрессивный, после праздников.

CleanS
05.11.2019, 12:13
Обратимся к первоисточнику. Т.е. к вашему сообщению...


так Вас с НО смущает или спокойнее? На клапан подается питание, когда требуется опорожнить емкость, это самая короткая операция во временном промежутке процесса в целом, что тут может смущать, все же именно так как Вас учили

Я вежливо предложил внимательно ознакомится с темой.
У автора темы ОПОРОЖНЕНИЕ ёмкостей происходит вообще, оператором и вручную, а НО клапана установлены на НАПОЛНЕНИЕ ёмкости. Именно ЭТО меня и смущает. А вас нет. Ну, нет , так нет..

CleanS
05.11.2019, 13:05
Ну давайте на пальчиках разберем, подали питание на НО клапан, он закрылся, значит заполнение уже не происходит, потому что достигнут верхний уровень, значит можно открыть ручной кран для разгрузки заполненной емкости, что не так?

Всё так... Вопрос закрыт.

corado
06.11.2019, 00:57
Если только это все продиктовано экономией воздуха при загрузке ,тогда и первоночальное заполнение должно быть по одному ,а не по очереди ...Хоть что то стал проясняться ,а то очередь,очередь ....А какая разница если заполнение до верху по датчику .Может и есть разница ,но тогда как в задачке про трубу и бассейн нужно знать производительность с которой заполняется бункер и с какой опусташается при открытой полностью задвижке ...Думается что наполнение в раз несколько быстрее чем расход ,иначе зачем 5 емкостей или как?

насос закачивает материал, а у насоса есть регулировка подачи по времени, время выбирается экспериментально, до заполнения емкости и если все пять емкостей заполнились, насос отключится

corado
06.11.2019, 01:03
Обратимся к первоисточнику. Т.е. к вашему сообщению...



Я вежливо предложил внимательно ознакомится с темой.
У автора темы ОПОРОЖНЕНИЕ ёмкостей происходит вообще, оператором и вручную, а НО клапана установлены на НАПОЛНЕНИЕ ёмкости. Именно ЭТО меня и смущает. А вас нет. Ну, нет , так нет..

я когда об этом узнал меня это тоже смутило, но увы такая конструкция

corado
06.11.2019, 01:20
И, судя по скрину, Вы смело усовершенствуете мой макрос очередь, надо полагать, что Вы во всех тонкостях разобрались в принципах его работы?

Нееет, полностью не разобрался, раскрыл его полностью для ознакомления, но так и пока и не не осилил. Если б я разобрался, то и не просил бы помощи.

corado
06.11.2019, 01:39
Вариант Capzar вроде работает как ТС хочет.Только аналоговые входы лучше переключить в дискретный режим. Или нет? Как работает вариант Сергей0308 не понял. Бункеров 5, датчиков 10, а входов задействовано 8. И выходов почему-то 8. Должно же быть 10 входных сигналов и 5 выходных?

у меня модули расширения аж 2 штуки стоят

corado
06.11.2019, 01:59
Вариант Capzar вроде работает как ТС хочет.Только аналоговые входы лучше переключить в дискретный режим. Или нет? Как работает вариант Сергей0308 не понял. Бункеров 5, датчиков 10, а входов задействовано 8. И выходов почему-то 8. Должно же быть 10 входных сигналов и 5 выходных?

неее, посмотрел, под мои условия не подходит, а вот решение о совпадении по времени двух емкостей то это да, следующий вариант сергея , это как раз то что надо, всегда в очереди только один выход

corado
06.11.2019, 02:04
Посмотрите 29 пост, от датчиков триггеры срабатывают, они на входах стоят, а на выходах инверторы, не стал лишний раз рисовать триггеры и инверторы, что бы под конкретный проект ТС подходило, здесь показал принципиальное решение, а у кого какие клапана(нормально открытые или нормально закрытые) или датчики - это не важно, тем более ранее, преведущий мой вариант мне пришлось подгонять под конкретные датчики и клапана ТС!

Если Вас беспокоит не принципиальное решение, а конкретное для ТС, то как-то так:

45470

И, мне так кажется, в десятки раз проще, чем с очередью получается!
Извиняюсь, не мог подумать, что у кого-то проблемы возникнут, как это применить!

И, пусть немного сложней, но мне всё-таки ближе с понятными приоритетами, короче, как-то так:

45475

А для конкретного случая ТС даже так, с инвертированием всех выходов в макросе, чтобы дополнительных инверторов не ставить:

45476

45477

спасибо за усовершенствование, сейчас вставим очередь 5_6