PDA

Просмотр полной версии : включение только 1 раз



starterm
28.08.2017, 10:21
Добрый день! я новичек) не кидайтесь сильно тапками. имеется испытательный стенд на испытание емкостей на герметичность. сначала включается 1 насос и нагнетает до 10 атм давление, после этого включается 2 насос и добивает до 25 атм. после включается таймер и смотрит стравилось ли давление или нет. как сделать так чтоб насосы при стравливании давления заново бы не включились?

Алексей Геннадьевич
28.08.2017, 10:30
Добрый день! я новичек) как сделать так чтоб насосы при стравливании давления заново бы не включились?
RS триггер для этого подойдёт.
S - по достижению давления.
R - после выполнения всех операций.

starterm
28.08.2017, 10:45
RS триггер для этого подойдёт.
S - по достижению давления.
R - после выполнения всех операций.

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

Ревака Юрий
28.08.2017, 10:53
про тригер тоже думал. а как узнать, что выполнены все операции?

Можно счетчик использовать.

melky
28.08.2017, 12:13
Лучше наверное использовать не RS триггер а D- триггер. Ему можно и set и reset ставить и запускать по импульсу процедуру когда нет reseta, в общем на любой вкус и меньше огорода будет.

Алексей Геннадьевич
28.08.2017, 12:45
Можно счетчик использовать.
Зачем? что считать собрались?

Лучше наверное использовать не RS триггер а D- триггер. Ему можно и set и reset ставить и запускать по импульсу процедуру когда нет reseta, в общем на любой вкус и меньше огорода будет.
Достаточно RS.
Давление достигло 25атм - взвели триггер, запретили включение насосов.
Через время выдержки - зафиксировали значение давления, сравнили с допуском.
Макросы памяти float здесь:
http://www.owen.ru/forum/showthread.php?t=25068&page=11&p=229971&viewfull=1#post229971

Василий Кашуба
28.08.2017, 13:04
Добрый день! я новичек) не кидайтесь сильно тапками. имеется испытательный стенд на испытание емкостей на герметичность. сначала включается 1 насос и нагнетает до 10 атм давление, после этого включается 2 насос и добивает до 25 атм. после включается таймер и смотрит стравилось ли давление или нет. как сделать так чтоб насосы при стравливании давления заново бы не включились?
Посмотрите мой вариант, может подойдёт.

Василий Кашуба
28.08.2017, 13:19
Только программа запускается не тумблером, а кнопкой без фиксации.

Ревака Юрий
28.08.2017, 13:41
Зачем? что считать собрались?



Я в код не заглядывал, но на запрос "как узнать, что выполнены все операции? " возникла идея считать кол-во срабатываний выходов, но это если операций много и они могут выполняться хаотично.

melky
29.08.2017, 12:17
Даже если операции не хаотичны а последовательны. Если известно сколько их должно быть, ставим счетчик и блокируем перезапуски.
Ну, D триггер удобнее. Если D=1 (никаких процедур не выполнялось или цикл был закончен) - разрешаем запуск по импульсу кнопки на С при условии что R=0 например. Что вам придется добавить к RS триггеру для дополнительных проверок и так далее думайте сами.

ferret_maybe
29.08.2017, 17:39
32900
Я правильно составил граф переходов (алгоритм работы) стенда? Код напишу тогда завтра, если правильно?!
Описание работы:
1. При нажатии кнопки пуск(без фиксации) и не нажатой стоп (без фиксации) включаем первый насос и индикатор работы(лампа) выполняем переход в состояние 1, если в течение 3 мин 1-й насос набрал давление, то включаем второй насос (переход в состояние 2), иначе включаем индикатор отсутствия герметичности(переход в состояние 6).
2. В состоянии 2 при включенном втором насосе, если давление не набралось в течение 3 минут, то выполняем переход в состояние 6. Если давление набралось, то выполняем переход в состояние 3 - выключение двух насосов и ожидание в течение 2 минут - переход в состояние 4.
3. В 4 состоянии сравниваем давление с 24,5 атм. Если давление меньше, то переход в состояние 6, если больше, то в состояние 5 с включением индикации герметичности.
4. При нажатии кнопку "стоп" переходим из 5 или 6 состояния в исходное 0 с выключением индикатора работы.

starterm
29.08.2017, 22:13
Посмотрите мой вариант, может подойдёт.

В вашем варианте насосы не отключаются при достижении давления(

starterm
29.08.2017, 22:17
32900
Я правильно составил граф переходов (алгоритм работы) стенда? Код напишу тогда завтра, если правильно?!
Описание работы:
1. При нажатии кнопки пуск(без фиксации) и не нажатой стоп (без фиксации) включаем первый насос и индикатор работы(лампа) выполняем переход в состояние 1, если в течение 3 мин 1-й насос набрал давление, то включаем второй насос (переход в состояние 2), иначе включаем индикатор отсутствия герметичности(переход в состояние 6).
2. В состоянии 2 при включенном втором насосе, если давление не набралось в течение 3 минут, то выполняем переход в состояние 6. Если давление набралось, то выполняем переход в состояние 3 - выключение двух насосов и ожидание в течение 2 минут - переход в состояние 4.
3. В 4 состоянии сравниваем давление с 24,5 атм. Если давление меньше, то переход в состояние 6, если больше, то в состояние 5 с включением индикации герметичности.
4. При нажатии кнопку "стоп" переходим из 5 или 6 состояния в исходное 0 с выключением индикатора работы.

да, правильно, только теперь еще надо для 2 насоса выбирать давление испытательное 25 или 16 атм

Василий Кашуба
29.08.2017, 23:18
В вашем варианте насосы не отключаются при достижении давления(
Вы запускали программу, или вы просто так думаете?

Василий Кашуба
29.08.2017, 23:24
У меня всё работает как в ТЗ.32903 Я же ещё вам комментарий давал http://www.owen.ru/forum/showthread.php?t=27309&p=256386&viewfull=1#post256386

starterm
30.08.2017, 08:14
Вы запускали программу, или вы просто так думаете?

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

Василий Кашуба
30.08.2017, 08:21
запускал прогу. может забыл отключить 1 вход, что у меня постоянно 1 на тригер подавалась.
Тогда по входу добавьте ещё один ФБ R_TRIG.

starterm
30.08.2017, 08:24
Тогда по входу добавьте ещё один ФБ R_TRIG.

вот скрин
при давлении 15 должен работать только насос 2
https://yadi.sk/i/cg8Dw-lE3MSSJY картинка не прикрепляется вот ссылка

starterm
30.08.2017, 09:46
Тогда по входу добавьте ещё один ФБ R_TRIG.

вот что у меня получилось. 2 насос может повторно включаться https://yadi.sk/d/1eQw2UqZ3MSXAw

ferret_maybe
30.08.2017, 13:07
32910
Посмотрите. У меня один насос работает до достижения давления 10 атмосфер, затем работают два до достижения 16 или 25. Но это легко исправить в блоке формирования команд - убрать работу первого при состоянии 2.

starterm
31.08.2017, 09:53
32910
Посмотрите. У меня один насос работает до достижения давления 10 атмосфер, затем работают два до достижения 16 или 25. Но это легко исправить в блоке формирования команд - убрать работу первого при состоянии 2.

Спасибо, убрал, заработало. есть несколько вопросов: как можно выбрать предельное давление? ввести дополнительную переменную, которую буду отображать на экране? или сделать тумблер переключения состояний 16/25?

Ревака Юрий
31.08.2017, 10:04
Спасибо, убрал, заработало. есть несколько вопросов: как можно выбрать предельное давление? ввести дополнительную переменную, которую буду отображать на экране? или сделать тумблер переключения состояний 16/25?

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

starterm
31.08.2017, 10:16
32910
Посмотрите. У меня один насос работает до достижения давления 10 атмосфер, затем работают два до достижения 16 или 25. Но это легко исправить в блоке формирования команд - убрать работу первого при состоянии 2.

Разобрался. там есть selekt и на нем можно выставлять требуемое значение)))
а герметичность отпределяется изменением давления за время?

ferret_maybe
31.08.2017, 13:21
Разобрался. там есть selekt и на нем можно выставлять требуемое значение)))
а герметичность отпределяется изменением давления за время?
Да, герметичность определяется на 3-м шаге - длительность шага 2 минуты. Если давление меньше нагнетенного в камеру на 5%(параметры забит жестко, но можно менять или вынести если будет панель) и более в течение 2 минут, то сообщение о негерметичности - лампа и т.д.
Не знаю каким оборудованием вы располагает поэтому все на кнопках (без фиксации) и арматуре сигнализирующей (лампах).

Василий Кашуба
31.08.2017, 18:57
32910
Посмотрите. У меня один насос работает до достижения давления 10 атмосфер, затем работают два до достижения 16 или 25. Но это легко исправить в блоке формирования команд - убрать работу первого при состоянии 2.
У вас слишком избыточная схема. Приведу вам один маленький пример, где я упростил ваш макрос "Селектор".
32930

ferret_maybe
31.08.2017, 21:08
У вас слишком избыточная схема. Приведу вам один маленький пример, где я упростил ваш макрос "Селектор".
32930
Я не претендую на оптимальность решения. Я делал по универсальному подходу, который подходит для решения процентов 60 решаемых задач. Оптимизацию считаю нужно делать, когда начинается нехватка ресурсов.

Ревака Юрий
01.09.2017, 09:57
У вас слишком избыточная схема. Приведу вам один маленький пример, где я упростил ваш макрос "Селектор".
32930

Это уже есть и онлайн базе, в группе Дискретные преобразования->ON_OFF называется.

melky
01.09.2017, 10:22
Простите, какой же это селектор ? он что, выбирает одну из 2-х переменных, чтобы его так назвать ?

ferret_maybe
01.09.2017, 10:33
Простите, какой же это селектор ? он что, выбирает одну из 2-х переменных, чтобы его так назвать ?

Далее в коде выбирает.

melky
01.09.2017, 12:31
Я про рисунок от Василия с XOR

Василий Кашуба
01.09.2017, 13:43
Я про рисунок от Василия с XOR
Я его так не называл, это в такой вид упростился данный макрос "селектор" от ferret_maybe.

Сергей0308
01.09.2017, 16:36
Это уже есть и онлайн базе, в группе Дискретные преобразования->ON_OFF называется.

Почему нельзя назвать по-человечьи, например Т-триггер, как минимум у большинства, кто с ним не знаком(с этим макросом), сразу исчезнут все вопросы, мне так кажется!