PDA

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



Страницы : 1 2 3 4 5 6 [7] 8 9 10 11 12 13 14 15

Сергей0308
15.06.2020, 15:38
Я правильно понимаю, для того что бы от внутренних переменных ошибки отслеживать мне нужно сделать два макроса PUTBIT16 in 1 (по типу как на скриншоте PUTBIT32) и каждый подключить к Рег_1 и Рег_2?
49645
А если выделенное красным удалить и подключить один макрос PUTBIT32?
49646

Вам же надо настраивать какие из 8 выходов будут включаться при нажатии каждой из 8 кнопок поста, если так, я бы так сделал при нажатии любой одной из кнопок формируется значение, например 1-8 и подаётся на вход выбора входа целочисленного мультиплексора, на входы мультиплексора подается байт с настройками какие выхода будут включатся от этой кнопки, как я показал, надеюсь понятно объяснил, на досуге(наверно сегодня вечером) пример сделаю для одного поста!

Saint999
15.06.2020, 16:31
Вам же надо настраивать какие из 8 выходов будут включаться при нажатии каждой из 8 кнопок поста, если так, я бы так сделал при нажатии любой одной из кнопок формируется значение, например 1-8 и подаётся на вход выбора входа целочисленного мультиплексора, на входы мультиплексора подается байт с настройками какие выхода будут включатся от этой кнопки, как я показал, надеюсь понятно объяснил, на досуге(наверно сегодня вечером) пример сделаю для одного поста!

Это скриншоты про экран аварий из этой темы (https://owen.ru/forum/showthread.php?t=31113&page=7).
У меня аварии (пока) нет связи с каким то постом и нет связи с модулем расширения (кстати при включении если не нажимать кнопок по модулям ошибка появляется, так как запись переменной по изменению, может снять галочку? Все приборы просто сидят на одном 485 и таким образом я скорость повышать пытаюсь), потом еще добавлю залипание пускателей и прочее, сейчас я просто кусками пытаюсь общий алгоритм организовать.

По поводу настроек для постов я сделал временно (может и постоянно) настройку для каждой программы любого поста.

Скриншоты уже не получается выкладывать, очень уж мелкие, выкладываю проект целиком.

49649


Аварии отрабатывают нормально, но не сбрасываются, тоесть я физически рву связь с постом, потом восстанавливаю ее он продолжает работать, но ошибку из меню сбросить не получается. Через отладку видно что переменная в ошибке висит.

Сергей0308
15.06.2020, 18:20
Это скриншоты про экран аварий из этой темы (https://owen.ru/forum/showthread.php?t=31113&page=7).
У меня аварии (пока) нет связи с каким то постом и нет связи с модулем расширения (кстати при включении если не нажимать кнопок по модулям ошибка появляется, так как запись переменной по изменению, может снять галочку? Все приборы просто сидят на одном 485 и таким образом я скорость повышать пытаюсь), потом еще добавлю залипание пускателей и прочее, сейчас я просто кусками пытаюсь общий алгоритм организовать.

По поводу настроек для постов я сделал временно (может и постоянно) настройку для каждой программы любого поста.

Скриншоты уже не получается выкладывать, очень уж мелкие, выкладываю проект целиком.

49649


Аварии отрабатывают нормально, но не сбрасываются, тоесть я физически рву связь с постом, потом восстанавливаю ее он продолжает работать, но ошибку из меню сбросить не получается. Через отладку видно что переменная в ошибке висит.

Аварии Вы вроде правильно подключили на один из входов целочисленного элемента AND, но непонятно как Вы их сбрасывать собираетесь, они же фиксируются, а сброс аварий у вас не подключён(на сколько понял) и для включения-выключения аварий все булевы переменные должны быть с настройкой: "Запись в конце цикла" иначе не будут работать(можно в моём проекте посмотреть):

49650

Saint999
15.06.2020, 18:52
Аварии Вы вроде правильно подключили на один из входов целочисленного элемента AND, но непонятно как Вы их сбрасывать собираетесь, они же фиксируются, а сброс аварий у вас не подключён(на сколько понял) и для включения-выключения аварий все булевы переменные должны быть с настройкой: "Запись в конце цикла" иначе не будут работать(можно в моём проекте посмотреть):


Вот так я их сбрасываю:
49651

Сергей0308
15.06.2020, 21:10
Вот так я их сбрасываю:
49651

Понятно, сразу все сбрасываете! Еще вопросик возник: из ранее сказанного я понял что имеется 8 постов по 8 кнопок, нажимается одна из 8 кнопок, а кнопочные посты параллейно могут работать или всегда в работе не более одного поста?

Saint999
16.06.2020, 10:01
Понятно, сразу все сбрасываете! Еще вопросик возник: из ранее сказанного я понял что имеется 8 постов по 8 кнопок, нажимается одна из 8 кнопок, а кнопочные посты параллейно могут работать или всегда в работе не более одного поста?

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

Сергей0308
16.06.2020, 10:33
Все работают независимо друг от друга и одновременно, разные люди в произвольном порядке нажимают кнопки.
Может быть от 1 до 8 постов, потому я и ввел настройку количества последних, для универсальности. В теории больше может быть но я такое видел пару раз в жизни, потому и решено было на 8 остановиться.

А обязательно оперативно логику менять(какие выхода включаются при нажатии каждой кнопки) или можно и ПЗУ применить, где можно также любую логику иметь, но логику можно менять только перезаливкой программы, короче, нужно ли изменять логику работы в процессе работы или просто для каждого случая применяется своя логика, в дальнейшем не изменяемая?
И посмотрел вашу программу, в плане реализации логики для 8 постов с 8 кнопками каждый: мне кажется как я предложил с целочисленным мультиплексором логика выйдет в несколько раз проще чем у вас!

capzap
16.06.2020, 11:02
Для реализации шифрования с открытым ключом нужно случайное простое число которое будет использоваться для шифровки сообщения отправителем, оно должно генерироваться на стороне получателя сообщения

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

PS увеличив диапазон чисел до 4100 необходимо увеличить в три раза количество элементов нейросети, поэтому шифрование на ПР безперспективно

Saint999
16.06.2020, 12:52
А обязательно оперативно логику менять(какие выхода включаются при нажатии каждой кнопки) или можно и ПЗУ применить, где можно также любую логику иметь, но логику можно менять только перезаливкой программы, короче, нужно ли изменять логику работы в процессе работы или просто для каждого случая применяется своя логика, в дальнейшем не изменяемая?
В теории конечно можно и так, но хотелось бы раз сделать, написать инструкцию, и дальше не касаться этой темы.


И посмотрел вашу программу, в плане реализации логики для 8 постов с 8 кнопками каждый: мне кажется как я предложил с целочисленным мультиплексором логика выйдет в несколько раз проще чем у вас!

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

Сергей0308
16.06.2020, 14:53
В теории конечно можно и так, но хотелось бы раз сделать, написать инструкцию, и дальше не касаться этой темы.


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

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

Короче, там много вариантов, примерно как-то так для одного поста:

49666

Saint999
16.06.2020, 16:43
Памяти(энергонезависимой) будет меньше занимать(в 8 раз), если 32 булевы переменные сохранять в одной целочисленной, у вас памяти пока хватает, поэтому это пока не нужно, но я про другое, если логику(алгоритм работы) выполнить в целочисленном виде, мне кажется, получится в несколько раз проще, большую часть холста схемы будут занимать сами булевы переменные!

Короче, там много вариантов, примерно как-то так для одного поста:

49666

Вот про это я и спрашивал в самом первом посте)
Буду пробовать разбираться, спасибо!

Сергей0308
16.06.2020, 18:10
Вот про это я и спрашивал в самом первом посте)
Буду пробовать разбираться, спасибо!

Так без моих извращений с экономией энергонезависимой памяти там ещё в несколько раз всё упростится до неприличия!

49667

49668

Почти для 2-х постов сделал, для 2-ого поста осталось булевы переменные добавить, аналогично как для первого и вывести их на экран для настройки!

Даже так:

49672

Чтобы настройки всех мультиплексоров были одинаковыми, такими же будут настройки макросов записи бит для 2-ого поста!

49673

verpup
16.06.2020, 19:16
запаролил макрос и забыл пароль :cool:
подскажите можно ли сбросить пароль?

Сергей0308
17.06.2020, 22:48
Это скриншоты про экран аварий из этой темы (https://owen.ru/forum/showthread.php?t=31113&page=7).
У меня аварии (пока) нет связи с каким то постом и нет связи с модулем расширения (кстати при включении если не нажимать кнопок по модулям ошибка появляется, так как запись переменной по изменению, может снять галочку? Все приборы просто сидят на одном 485 и таким образом я скорость повышать пытаюсь), потом еще добавлю залипание пускателей и прочее, сейчас я просто кусками пытаюсь общий алгоритм организовать.

По поводу настроек для постов я сделал временно (может и постоянно) настройку для каждой программы любого поста.

Скриншоты уже не получается выкладывать, очень уж мелкие, выкладываю проект целиком.

49649


Аварии отрабатывают нормально, но не сбрасываются, тоесть я физически рву связь с постом, потом восстанавливаю ее он продолжает работать, но ошибку из меню сбросить не получается. Через отладку видно что переменная в ошибке висит.

Ещё раз посмотрел что Вы намалевали и склоняюсь к реализации с помощью матрицы памяти, я выкладывал проекты с её присутствием типа "Командоаппарат реального времени..." на 32 ячейки 32 -х битных целочисленных переменных, что в 2 раза перекрывает ваши потребности и в 64 раза сократится количество булевых переменных с 512 до 8 штук необходимых для настроек, просто на экране настроек будет меняться номер настраиваемой кнопки и номер настраиваемого поста, подобно как в тех проектах с матрицей памяти что я делал, всё!
Вот ещё проект с матрицей памяти:

49678

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

И настройки на экране, что-то типа такого:

49679

Saint999
18.06.2020, 16:38
Буду пробовать разбираться, вариант хороший с таким меню, в эти дни работы навалилось что совсем нет времени на эту прошивку.
Спасибо за поддержку!

Сергей0308
19.06.2020, 09:22
Буду пробовать разбираться, вариант хороший с таким меню, в эти дни работы навалилось что совсем нет времени на эту прошивку.
Спасибо за поддержку!

Вам для своих 8-ми постов с 8 кнопками для хранения настроек достаточно 16-ти внутренних энергонезависимых целочисленных переменных! Так как переменные 32-х битные, а вам для каждой кнопки(каждого поста) достаточно 1-ого байта(8 бит), то необходимо каждую переменную разбить на 4 байта, я показывал на одной из картинок как можно это сделать!

49722

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

Alebard
22.06.2020, 12:42
Здравствуйте. Подскажите, пожалуйста:
1. Не могу найти макрос, и даже пока что сам написать его, разделяющий кратковременное и долгое нажатие кнопки, т.е. планируется разное выполнение действий
2. Так же не получается прописать макрос, отжимающий кнопку с самофиксацией другим сигналом
Заранее спасибо

Сергей0308
22.06.2020, 12:59
Здравствуйте. Подскажите, пожалуйста:
1. Не могу найти макрос, и даже пока что сам написать его, разделяющий кратковременное и долгое нажатие кнопки, т.е. планируется разное выполнение действий
2. Так же не получается прописать макрос, отжимающий кнопку с самофиксацией другим сигналом
Заранее спасибо

По второму пункту: сделайте Т-триггер из Д-триггера, для этого надо подать сигнал с инверсного выхода на вход данных, всё! У Д-триггера имеется вход сброса!
Вот здесь это рассматривали: https://owen.ru/forum/showthread.php?t=25067&page=46

petera
22.06.2020, 13:11
Здравствуйте. Подскажите, пожалуйста:
1. Не могу найти макрос, и даже пока что сам написать его, разделяющий кратковременное и долгое нажатие кнопки, т.е. планируется разное выполнение действий
2. Так же не получается прописать макрос, отжимающий кнопку с самофиксацией другим сигналом
Заранее спасибо
По п.1
49758

Alebard
22.06.2020, 13:18
По второму пункту: сделайте Т-триггер из Д-триггера, для этого надо подать сигнал с инверсного выхода на вход данных, всё! У Д-триггера имеется вход сброса!

Но вход у Д-триггера не работает как кнопка с самофиксацией

Сергей0308
22.06.2020, 13:22
Но вход у Д-триггера не работает как кнопка с самофиксацией

Если сделаете как я предложил, то каждый импульс на счётном входе будет менять состояние триггера на противоположное, это алгоритм работы Т-триггера, по-вашему кнопка с самофиксацией!

petera
22.06.2020, 13:25
Но вход у Д-триггера не работает как кнопка с самофиксацией

Так не работает?
49759

Тогда, что такое самофиксация

Alebard
22.06.2020, 13:28
По п.1
49758

после отпускания долгого нажатия сигнал подаётся и на короткое

Alebard
22.06.2020, 13:31
Так не работает?
49759

Тогда, что такое самофиксация

работает, благодарю.

petera
22.06.2020, 14:15
после отпускания долгого нажатия сигнал подаётся и на короткое

Не верю!
(с) Станиславский Константин Сергеевич


ЗЫ.
Смотри внимательней!
49760

Ревака Юрий
22.06.2020, 15:06
Здравствуйте. Подскажите, пожалуйста:
1. Не могу найти макрос, и даже пока что сам написать его, разделяющий кратковременное и долгое нажатие кнопки, т.е. планируется разное выполнение действий
2. Так же не получается прописать макрос, отжимающий кнопку с самофиксацией другим сигналом
Заранее спасибо

В менеджере компонентов макросы ONE_TOUCH(2) и ON_OFF должны решить проблемы.

Сергей0308
22.06.2020, 16:23
Так до 8 команд в зависимости от продолжительности нажатия кнопки:

49762


49763

melky
22.06.2020, 16:43
Это чтобы к кнопке с секундомером подходить ?

Евгений Леонтьев
22.06.2020, 20:08
Добрый день! Подскажите, есть какие нибудь нюансы по подключению электроконтактного манометра в Овен Лоджике в насосной?

Василий Кашуба
22.06.2020, 21:21
Добрый день! Подскажите, есть какие нибудь нюансы по подключению электроконтактного манометра в Овен Лоджике в насосной?
Схема подключения такая же как и у обычного переключателя на два положения.

Сергей0308
22.06.2020, 22:02
Добрый день! Подскажите, есть какие нибудь нюансы по подключению электроконтактного манометра в Овен Лоджике в насосной?

Многие, слышал, стремятся отказаться от ЭКМ, переходят к аналоговым датчикам, типа таких:

https://owen.ru/product/preobrazovateli_dlya_zhkh_pd100/price

Короче, Вы не собираетесь последовать их примеру?

Евгений Леонтьев
22.06.2020, 22:28
Заказчик поставил задачу смонтировать ЭКМ на всасывающий трубопровод насосной и завести его на ПР200.

Сергей0308
22.06.2020, 22:45
Заказчик поставил задачу смонтировать ЭКМ на всасывающий трубопровод насосной и завести его на ПР200.

Мне вот кажется аналоговые датчики менее чувствительны к вибрации по сравнению с ЭКМ, обладают большей перегрузочной способностью(можно найти которые выдерживают десятки ВПИ), короче, может получиться гораздо надёжней, а цены вполне сопоставимые с ЭКМ и я так понимаю у вас там ПР присутствует(может обладать аналоговыми входами), но даже они не обязательны, есть датчики с RS485(есть и у Овена), можно и по сети их связать!
Представим такую ситуацию: не дай Бог какие проблемы могут возникнуть, сигнал аналогового датчика завёл в Мастерскаду и всё, кури бамбук, можно будет проследить всю динамику изменения давления(применительно к вашему случаю), с дискретным датчиком мы такого не получим никогда:

49769

49770

49771

sertol64
23.06.2020, 04:02
Заказчик поставил задачу смонтировать ЭКМ на всасывающий трубопровод насосной и завести его на ПР200.

Прислушайтесь к Сергею0308. программа для ЭКМ состоит из одного ключевого элемента - RSтриггера, но то что ЭКМ подвержен, и я бы сказал очень сильно подвержен к вибрации - это факт. За непроизвольное включение или самопроизвольное выключение насоса Вас не похвалят. А непонятные гидроудары, вибрация от рядом стоящего оборудования - это тоже факт.

Alebard
23.06.2020, 07:37
Не верю!
(с) Станиславский Константин Сергеевич


ЗЫ.
Смотри внимательней!
49760

и правильно делаете) Спасибо, всё заработало

Евгений Леонтьев
23.06.2020, 08:42
Полностью согласен. Но, заказчик уже смонтировал ЭКМ оказывается и залил туда глицирин (Там советчиков очень много которых не переубедить). Теперь я даже напрягся. Придётся задержки ставить, чтобы не было провалов.

Евгений Леонтьев
23.06.2020, 09:07
Антидребезг на TON и TOF + RS триггер?
49776

Сергей0308
23.06.2020, 10:09
Антидребезг на TON и TOF + RS триггер?
49776

Может так попроще, в 1,5 раза меньше ФБ?!

49778

И я ранее ещё и такое предлагал:

49779

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

49780

Евгений Леонтьев
23.06.2020, 10:39
Надо попробовать. Спасибо.

sertol64
23.06.2020, 21:28
Позволю себе осмелиться и взять слово "советчика".В моём случае: При работе установки и возрастании давления масла, ЭКМ входит в режим уже с дребезгом и вышепредложенные схемы....ну, простите, ни как не подойдут, т.к. им нужно "продержать" сигнал хотя бы установленное на TONе время. Решил задачу проще простого (с помощью пресловутого RSтриггера)
49796

Сергей0308
23.06.2020, 23:55
Это я давно делал, 3 года тому назад, сейчас бы нечто подобное намного проще сделал, примерно как-то так:

49798

49799

Можно и ещё проще состряпать, но и так неплохо упростилось, по сравнению с вариантом трёхлетней давности!
Здесь немного другой принцип работы: каждый цикл программы пишется состояние входа("0" или "1") в один из битов целочисленной переменной, там всего 32 бита, если количество "1" более 75%(24) от общего числа бит в переменной, то принимается, что вход в состоянии "1", выход принимает значение "1", если количество "1" менее 25%(8) от общего числа бит в переменной, то принимается, что вход в состоянии "0", выход принимает значение "0", при промежуточных значениях 25-75%(8-24бита), состояние выхода не изменяется, всё!

И если надо "сильно" отфильтровать, то можно последовательно две такие цепочки(можно и больше, если потребуется) поставить:

49814

Задержка, при цикле программы в 1 мс, будет составлять около 1(0,8) секунды!

49815

sertol64
24.06.2020, 06:17
ну плохо что Вы задачи программирования решаете по личным ощущениям, вот пожалуйста: две схемы Сергея и Ваша, от одного и того же дребезга количество срабатываний у Вашей схемы больше, оно нам надо?

Извините за тупость мою, я так и не понял - что Вы имели ввиду, про количество срабатываний на выходе. Может мы с Вами рассуждаем о разных вещах? Дребезг ЭКМа (в моём случае) приводит к тому, что сигнал приходящий от ЭКМ поступает на вход ПР200 с частотой измеряемой в долях секунды, из-за чего страдает дискретный вход ПР и программа из-за непостоянства сигнала не работает de facto. И зафиксировать присутствие этой единицы, давления - невозможно. И это "моё" решение срабатывает один раз, пока имеется определённое давление, и подаёт постоянный нужный мне сигнал для дальнейшего использования. Что не так?

sertol64
24.06.2020, 09:13
49807счетчики сравнивают две схемы фильтрации
Не вижу ЦЕЛИ для сравнения "фильтров", мне ничего не говорят цифры - где больше, где меньше...Я получил результат - сигнал на выходе ПОСТОЯННЫЙ
[/ATTACH]И уже если Вы так гордитесь своим решением, то поменяйте хотя бы на TOF вместо использования инверсии и таймера с задержкой включения[/QUOTE]
Поменял - на выходе НОЛЬ.
Я наверное думаю, что мы с Вами, Уважаемый capzap преследуем разные цели и вкладываем разный смысл. Вы не можете меня понять - я Вас. Но моя схема работает уже 1,5 года, и я доволен как слон. Думаю надо закрывать тему - пора картошку полоть.....

capzap
24.06.2020, 09:22
Не вижу ЦЕЛИ для сравнения "фильтров", мне ничего не говорят цифры - где больше, где меньше...

я об этом и писал, гордится тем что делаете масло масленное довольно странно

sertol64
24.06.2020, 12:35
я об этом и писал, что Вы желаете писать программы не разбираясь в принципах работы каждого элемента. Здравая мысль, кстати, сидеть в огороде.

Я нахожусь в разделе =разные вопросы новичка=, и в чём то неразбираться - моё право. Программы писать профессионально я не собираюсь, всё на уровне - лишь бы работало, и работало подольше. А Вы, Уважаемый, со мной общаетесь на уровне чуть ли не оскорблений и упрёков. Прошу Вас, милейший, увидите мою иконку - не реагируйте, направьте свои знания и свои "колкости" на более опытных спецов.

Saint999
25.06.2020, 12:30
День добрый возник вопрос, может тема конечно не сильно подходящая, но реализация будет на пр (если получится сделать то что я хочу) потому спрошу тут.
Нужно сделать измеритель электропроводности воды, датчик заводского изготовления подключить не к заводскому монитору, а к ПР. Датчик 4 проводный, Принцип работы подобных датчиков. (http://efo-sensor.ru/datchiki-elektricheskoy-provodimosti-vodnih-rastvorov.html)
Прошу сориентировать о возможности реализации, или подсказать как получить эти данные другим устройством. В теории можно подключить монитор электропроводности с rs485 но у него стоимость больше 100$ в Китае.

Спасибо

melky
25.06.2020, 14:24
Saint999 вроде не катит, написано что подается переменное напряжение а не постоянное. У ПР нет возможности измерять переменку. Вам надо поискать на Ali что нибудь, что выдает на выход 0-5В или 0-10В, тогда можно подключить к ПР
https://aliexpress.ru/item/33027283881.html?spm=a2g0o.productlist.0.0.753d777 5wj20uv&algo_pvid=a7f5143a-4d98-48b6-a043-e027ea6be023&algo_expid=a7f5143a-4d98-48b6-a043-e027ea6be023-1&btsid=0b8b036d15930843609102575e6752&ws_ab_test=searchweb0_0,searchweb201602_,searchweb 201603_

типа того, но не разбирался сильно.

Saint999
25.06.2020, 17:35
Так без моих извращений с экономией энергонезависимой памяти там ещё в несколько раз всё упростится до неприличия!

49667

49668

Почти для 2-х постов сделал, для 2-ого поста осталось булевы переменные добавить, аналогично как для первого и вывести их на экран для настройки!

Даже так:

49672

Чтобы настройки всех мультиплексоров были одинаковыми, такими же будут настройки макросов записи бит для 2-ого поста!

49673

У меня получилось вот так заставить два поста работать и один модуль 16р
49841
49842
Я только не совсем понимаю что я делаю) вот здесь:
49843

Saint999
25.06.2020, 17:46
Saint999 вроде не катит, написано что подается переменное напряжение а не постоянное. У ПР нет возможности измерять переменку. Вам надо поискать на Ali что нибудь, что выдает на выход 0-5В или 0-10В, тогда можно подключить к ПР
https://aliexpress.ru/item/33027283881.html?spm=a2g0o.productlist.0.0.753d777 5wj20uv&algo_pvid=a7f5143a-4d98-48b6-a043-e027ea6be023&algo_expid=a7f5143a-4d98-48b6-a043-e027ea6be023-1&btsid=0b8b036d15930843609102575e6752&ws_ab_test=searchweb0_0,searchweb201602_,searchweb 201603_

типа того, но не разбирался сильно.

Спасибо, это двухпроводный вариант, наверное придется отказаться от этой затеи, и использовать без индикации
Вот такой вариант с rs485 на борту едет сейчас (https://aliexpress.ru/item/4000474114369.html?spm=a2g0o.productlist.0.0.7b853 876FzhvbG&algo_pvid=78801109-937f-49af-8a57-d5c0983e15b9&algo_expid=78801109-937f-49af-8a57-d5c0983e15b9-7&btsid=0b0a0ad815930958432285461ee53c&ws_ab_test=searchweb0_0,searchweb201602_,searchweb 201603_)
49844
Но наверное просто поиграюсь с ним и ставить не буду, так как сотка ради того что бы видеть эту цифру, оно того не стоит )

Сергей0308
25.06.2020, 18:31
У меня получилось вот так заставить два поста работать и один модуль 16р
49841
49842
Я только не совсем понимаю что я делаю) вот здесь:
49843

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

49848

Всё делается настройками макроса записи бит, но Вы решили немного усложнить и не пользоваться настройками, что я посоветовал - ваше право, никто не отнимает вашего права(пусть хуже, но по-моему)!
Теперь по второй картинке: насколько я смог понять, у вас сигналы нажатых кнопок приходят битовой маской в один регистр(16 бит), я разделил регистр на два байта, можно сказать для каждого поста по байту(8 бит) и выделил номер бита, соответствующий нажатой кнопке, что Вы там натворили(хотели натворить) мне до конца не понятно, это у Вас надо спрашивать, у меня другие настройки были! Да, и первый байт, биты 0-7, соответствующие 1-ому посту сдвинул влево на 8(не хотел использовать нулевой бит по понятным причинам), при этом настройки мультиплексоров для первого и второго поста стали одинаковыми(и они совпадают с настройками макроса записи бит для второго поста), уже ранее писал об этом, не вижу большого смысла повторять несколько раз!

49846

И ещё можно добавить, что здесь можно обойтись без шифраторов и сдвига влево(с целью исключения нулевого бита), только разделить на байты и всё, так как в мультиплексоре присутствуют настройки, просто я немного, так сказать, перестраховался, помните я схему предлагал, чтобы по одной кнопке нажималось(не больше одной одновременно), так вот, если по какой либо причине, ну там сбой, ошибка, помеха, в битовой маске для одного поста придёт несколько бит в состоянии "1", то есть несколько нажатых кнопок, то приоритет будет у старшего бита и соответствующей ему кнопке, надеюсь понятно объяснил!
Короче, если без шифраторов и сдвига, то всё настройки сохраняются для макросов записи бит, а для мультиплексоров изменятся и будут соответствовать весовому коэффициенту бита, короче, как-то так:

49851

49852

И в случае прихода в битовой маске для каждого из постов более одного бита в состоянии "1" никакие выхода не включатся, будут восприниматься только по одному биту в состоянии "1", надеюсь понятно и останется выбрать более для вас предпочтительный вариант, я то не знаю ТЗ!

49853

Вот поправил проект, что Вы выложили:

49856

Что непонятно: я предполагал, что считывается битовая маска входов(состояния кнопок) с модуля дискретного ввода, одного модуля на 16 входов хватит на 2 поста, на 32 входа хватит на 4 поста, у вас как-то всё иначе, модулями дискретного ввода там пока и не пахнет!

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

Saint999
26.06.2020, 10:09
я то не знаю ТЗ!
Оно как и раньше. Есть 8 пультов, на них прошивка Ваша: кто первый встал того и тапки, я ее только для 8 кнопок сделал и битовую маску от них передаю "центральному контроллеру"
Алгоритм работы такой: нажали кнопку 1 светится 1, нажали 2 светится 2 и тд, стоп всегда главный.

49857
49858

Центральный контроллер собирает битовые маски нажатых кнопок всех постов и в зависимости от настройки, которую я пытаюсь сделать вот уже неделю), включает на модулях дискретного вывода МУ110-224.16Р выходы (например: на первую кнопку настроено 1 и 2, на вторую 1 и 3, на 3 - 1 и 4 и тд., и вот эту настройку хотелось бы менять через меню), один модуль на 2 пульта.
Считаем наработку по первой кнопке каждого поста, так же считаем ее включения, на экраны выводим общий пробег/включения и пробег включения до ТО.
Есть настройка сколько у нас пультов и какие выходы активны при нажатии какой кнопки (пока я сделал настройку каждой программы для всех пультов одновременно и сделал это не очень красиво, потому и начал с битовыми операциями разбираться что Вы предложили, а вот с командоаппаратом не разобрался)
Обрабатываем и отображаем всевозможные аварии, на данный момент сделано отслеживание связи с модулями, в последующем планирую добавить залипания пускателей, обработку датчиков давления, температуры и тд.

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

За проект мне не платят и по сути достаточно было бы сделать на первую кнопку настроено 1 и 2, на вторую 1 и 3, на 3 - 1 и 4 и тд. и никаких настроек и аварий, но так как я с этим работаю уже 12 лет и точно знаю что персонал который монтирует данные решения и который потом ими пользуется умом не блещут, и если что то пойдет не так будут кричать "памагице усе сламалася". Вот и решил подстраховать себя и попробовать подучится.


Что непонятно: я предполагал, что считывается битовая маска входов(состояния кнопок) с модуля дискретного ввода, одного модуля на 16 входов хватит на 2 поста, на 32 входа хватит на 4 поста, у вас как-то всё иначе, модулями дискретного ввода там пока и не пахнет!

Я на модулях пробовал, делал весь алгоритм тапок на пр, а у модулей ввода/вывода собирал битовую маску кнопок и отправлял битовую маску какую подсветить, но очень большие задержки уже при 3 пультах, а когда модули вывода повесил на этот же 485 все совсем грустно стало, тоесть ты нажимаешь кнопку и держишь ее пока она не начнет светиться, и держать нужно до 3х секунд, так естественно никто делать не будет.
Вот потому у меня и приходят 2 сетевые переменные с двух пультов и я их одинаково обрабатываю, и да пульты могут быть на значительном расстоянии, потому один модуль на 2 пульта не подходит.


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


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

capzap
26.06.2020, 10:27
эту часть программы тестирую отдельно от основной, что бы проще было разбираться, а булевы одинаковые что бы не возиться при тестах
а как тестируете, сможете вообще показать таблицу истинности всего этого действа, тут же чисто булева логика ни каких таймеров, ни каких задержек на N-циклов

Сергей0308
26.06.2020, 10:41
Оно как и раньше. Есть 8 пультов, на них прошивка Ваша: кто первый встал того и тапки, я ее только для 8 кнопок сделал и битовую маску от них передаю "центральному контроллеру"
Алгоритм работы такой: нажали кнопку 1 светится 1, нажали 2 светится 2 и тд, стоп всегда главный.

49857
49858

Центральный контроллер собирает битовые маски нажатых кнопок всех постов и в зависимости от настройки, которую я пытаюсь сделать вот уже неделю), включает на модулях дискретного вывода МУ110-224.16Р выходы (например: на первую кнопку настроено 1 и 2, на вторую 1 и 3, на 3 - 1 и 4 и тд., и вот эту настройку хотелось бы менять через меню), один модуль на 2 пульта.
Считаем наработку по первой кнопке каждого поста, так же считаем ее включения, на экраны выводим общий пробег/включения и пробег включения до ТО.
Есть настройка сколько у нас пультов и какие выходы активны при нажатии какой кнопки (пока я сделал настройку каждой программы для всех пультов одновременно и сделал это не очень красиво, потому и начал с битовыми операциями разбираться что Вы предложили, а вот с командоаппаратом не разобрался)
Обрабатываем и отображаем всевозможные аварии, на данный момент сделано отслеживание связи с модулями, в последующем планирую добавить залипания пускателей, обработку датчиков давления, температуры и тд.

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

За проект мне не платят и по сути достаточно было бы сделать на первую кнопку настроено 1 и 2, на вторую 1 и 3, на 3 - 1 и 4 и тд. и никаких настроек и аварий, но так как я с этим работаю уже 12 лет и точно знаю что персонал который монтирует данные решения и который потом ими пользуется умом не блещут, и если что то пойдет не так будут кричать "памагице усе сламалася". Вот и решил подстраховать себя и попробовать подучится.

Я на модулях пробовал, делал весь алгоритм тапок на пр, а у модулей ввода/вывода собирал битовую маску кнопок и отправлял битовую маску какую подсветить, но очень большие задержки уже при 3 пультах, а когда модули вывода повесил на этот же 485 все совсем грустно стало, тоесть ты нажимаешь кнопку и держишь ее пока она не начнет светиться, и держать нужно до 3х секунд, так естественно никто делать не будет.
Вот потому у меня и приходят 2 сетевые переменные с двух пультов и я их одинаково обрабатываю, и да пульты могут быть на значительном расстоянии, потому один модуль на 2 пульта не подходит.



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

Понятней не стало, приходится спросить ещё раз: логику мы создали, от каждого поста должно одновременно приходить не более одного бита в состоянии "1", но если всё же придёт более одного взведённого бита, мало ли что: ошибка, сбой, помеха! Так вот какое состояние выходов предпочтительно для такого(аварийного) случая:
1. Состояние выходов соответствует старшему поступившему биту, имеющему приоритет;
2. все выходы выключены.
Как бы логично предусмотреть и логику(в данном случае - состояния выходов) для аварийных случаев, ну я так думаю!
Ещё как вариант, требующий небольшой доработки имеющейся логики - состояния выходов не меняется, соответствует преведущему, не аварийному состоянию кнопок!

Сергей0308
26.06.2020, 12:55
Оно как и раньше. Есть 8 пультов, на них прошивка Ваша: кто первый встал того и тапки, я ее только для 8 кнопок сделал и битовую маску от них передаю "центральному контроллеру"
Алгоритм работы такой: нажали кнопку 1 светится 1, нажали 2 светится 2 и тд, стоп всегда главный.

49857
49858

Центральный контроллер собирает битовые маски нажатых кнопок всех постов и в зависимости от настройки, которую я пытаюсь сделать вот уже неделю), включает на модулях дискретного вывода МУ110-224.16Р выходы (например: на первую кнопку настроено 1 и 2, на вторую 1 и 3, на 3 - 1 и 4 и тд., и вот эту настройку хотелось бы менять через меню), один модуль на 2 пульта.
Считаем наработку по первой кнопке каждого поста, так же считаем ее включения, на экраны выводим общий пробег/включения и пробег включения до ТО.
Есть настройка сколько у нас пультов и какие выходы активны при нажатии какой кнопки (пока я сделал настройку каждой программы для всех пультов одновременно и сделал это не очень красиво, потому и начал с битовыми операциями разбираться что Вы предложили, а вот с командоаппаратом не разобрался)
Обрабатываем и отображаем всевозможные аварии, на данный момент сделано отслеживание связи с модулями, в последующем планирую добавить залипания пускателей, обработку датчиков давления, температуры и тд.

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

За проект мне не платят и по сути достаточно было бы сделать на первую кнопку настроено 1 и 2, на вторую 1 и 3, на 3 - 1 и 4 и тд. и никаких настроек и аварий, но так как я с этим работаю уже 12 лет и точно знаю что персонал который монтирует данные решения и который потом ими пользуется умом не блещут, и если что то пойдет не так будут кричать "памагице усе сламалася". Вот и решил подстраховать себя и попробовать подучится.

Я на модулях пробовал, делал весь алгоритм тапок на пр, а у модулей ввода/вывода собирал битовую маску кнопок и отправлял битовую маску какую подсветить, но очень большие задержки уже при 3 пультах, а когда модули вывода повесил на этот же 485 все совсем грустно стало, тоесть ты нажимаешь кнопку и держишь ее пока она не начнет светиться, и держать нужно до 3х секунд, так естественно никто делать не будет.
Вот потому у меня и приходят 2 сетевые переменные с двух пультов и я их одинаково обрабатываю, и да пульты могут быть на значительном расстоянии, потому один модуль на 2 пульта не подходит.



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

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

Вот поправил:

49863

49864

Saint999
26.06.2020, 13:23
Не понял, Вы отказались от модулей дискретного ввода и используете для каждого пульта отдельное ПР?

Да


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

Пр при нажатии генерит битовую маску и держит ее в ячейке модбас (кнопки у нас с фиксацией), модуль генерит битовую маску пока нажата кнопка и в это время нужно успеть ее забрать, не успел забрать пока нажата, он сгенерит с отпущенной кнопкой, пока 1-2 пульта нормально, потом начинаются задержки, а задержка это время сколько нужно держать кнопку нажатой.



Ну, тогда, если для каждого пульта отдельное ПР Вам и разделять регистр на байты не нужно, каждый байт будет и так в отдельной переменой!

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



Вот поправил:

49863

49864


Так работает, единственное у меня булевы переменные энергонезависимые с настройкой первую кнопку настроено 1 и 2, на вторую 1 и 3, на 3 - 1 и 4, а у модуля переключаются выводы:
1 и 3
1 и 4
1 и 5

Правда и в моем примере выше так же было (

Saint999
26.06.2020, 13:28
а как тестируете, сможете вообще показать таблицу истинности всего этого действа, тут же чисто булева логика ни каких таймеров, ни каких задержек на N-циклов

Я погуглил про таблицы истинности, и не совсем понимаю как можно создать таблицу всего этого устройства/программы.

А тестирую просто собрал 4 пульта 1 центральный, 2 модуля 16р подключил кучу кнопок с подсветкой, в меню понастовлял дублирование номеров программ что бы проще было и все это сижу и нажимаю и смотрю за реакцией.
если что то не так запускаю отладку и пробую понять что я делаю не правильно.

Saint999
26.06.2020, 13:31
Понятней не стало, приходится спросить ещё раз: логику мы создали, от каждого поста должно одновременно приходить не более одного бита в состоянии "1", но если всё же придёт более одного взведённого бита, мало ли что: ошибка, сбой, помеха! Так вот какое состояние выходов предпочтительно для такого(аварийного) случая:
1. Состояние выходов соответствует старшему поступившему биту, имеющему приоритет;
2. все выходы выключены.
Как бы логично предусмотреть и логику(в данном случае - состояния выходов) для аварийных случаев, ну я так думаю!
Ещё как вариант, требующий небольшой доработки имеющейся логики - состояния выходов не меняется, соответствует преведущему, не аварийному состоянию кнопок!

А можно как то сделать фильтр, что бы оставалось предыдущее состояние, если что то включено то оставлять его, а если все выключено то и не включать ничего?
Это я так понимаю что нужен список возможных вариантов команд, а остальное фильтруем?

Сергей0308
26.06.2020, 13:48
Да

Пр при нажатии генерит битовую маску и держит ее в ячейке модбас (кнопки у нас с фиксацией), модуль генерит битовую маску пока нажата кнопка и в это время нужно успеть ее забрать, не успел забрать пока нажата, он сгенерит с отпущенной кнопкой, пока 1-2 пульта нормально, потом начинаются задержки, а задержка это время сколько нужно держать кнопку нажатой.


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




Так работает, единственное у меня булевы переменные энергонезависимые с настройкой первую кнопку настроено 1 и 2, на вторую 1 и 3, на 3 - 1 и 4, а у модуля переключаются выводы:
1 и 3
1 и 4
1 и 5

Правда и в моем примере выше так же было (

Нулевой бит соответствует первому выходу, в макросе записи бит всё правильно настроено:

49867

Возможно Вы булевы переменные сдвинули, замечу например булева переменная с номером "0" отвечает за настройки первого выхода! Может, чтобы понятней было можно начать с булевой переменной с номером "1", тогда хотя бы первые 8 переменных будут совпадать с номером выхода!

capzap
26.06.2020, 13:49
Я погуглил про таблицы истинности, и не совсем понимаю как можно создать таблицу всего этого устройства/программы.



у Вас есть восемь входов и восемь выходов, к примеру на этом рисунке (https://owen.ru/forum/attachment.php?attachmentid=49857&d=1593153168).
Далее где угодно, например в exel рисуете таблицу с со следующей первой строкой I8,I7,I6,I5,I4,I3,I2,I1,Q1,Q2,Q3,Q4,Q5,Q6,Q7,Q8
Затем заполняете колонки Ix единичками/ноликами поразрядно с 0 до 255
Когда все занесли, начинаете заполнять поля колонок с Qx, в зависимости от состояния входов в каждой строке таблицы
В итоге можете сами написать логику, например воспользовавшись советом (https://owen.ru/forum/showthread.php?t=33364&p=335086&viewfull=1#post335086) или сюда выложить, тут останется только предложить решение, без лишних вопросов о приоритетности, о ситуациях не озвученных в ТЗ и т.п.

Сергей0308
26.06.2020, 13:55
А можно как то сделать фильтр, что бы оставалось предыдущее состояние, если что то включено то оставлять его, а если все выключено то и не включать ничего?
Это я так понимаю что нужен список возможных вариантов команд, а остальное фильтруем?

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

49874

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

49875

Или так:

49903

49904

Saint999
26.06.2020, 14:08
Здесь всё проще будет, наподобие как мы с кнопками делали для выбора нажатой кнопки пульта, если будет время и желание вечером на досуге это попробую сделать!

Мне если честно уже стыдно писать, я уже голову задурил своей безграмотностью.
Но нравится мне другое, я несколько лет что то делал с ардуиной (для дома естественно) и даже и 0,0001 части от той информации что я за эти две недели не почерпнул. Я сижу сейчас с калькулятором в режиме программист биты счелкаю что бы в эмуляторе в 10 виде задать значение. Я даже и представить себе не мог что я до такого дойду. Спасибо Вам большое!

Сергей0308
26.06.2020, 14:57
Мне если честно уже стыдно писать, я уже голову задурил своей безграмотностью.
Но нравится мне другое, я несколько лет что то делал с ардуиной (для дома естественно) и даже и 0,0001 части от той информации что я за эти две недели не почерпнул. Я сижу сейчас с калькулятором в режиме программист биты счелкаю что бы в эмуляторе в 10 виде задать значение. Я даже и представить себе не мог что я до такого дойду. Спасибо Вам большое!

Ну тогда у меня есть макрос ПЗУ на 257 ячеек памяти, что, кстати, более чем 16 раз превосходит ваши потребности, можно наверно и сократить его и(или) немного переделать, короче, берёте этот макрос и всё! Всё остальное(почти всё) придётся выкинуть за ненадобностью, там Вам калькулятор как раз может пригодится, недостатки тоже есть, один из них невозможность изменить логику без перезаливки программы, но Вы вроде писали, что это не критично, если это так, то костюмчик, как по Вам шитый!

49872

49873

Saint999
26.06.2020, 16:46
у Вас есть восемь входов и восемь выходов, к примеру на этом рисунке (https://owen.ru/forum/attachment.php?attachmentid=49857&d=1593153168).
Далее где угодно, например в exel рисуете таблицу с со следующей первой строкой I8,I7,I6,I5,I4,I3,I2,I1,Q1,Q2,Q3,Q4,Q5,Q6,Q7,Q8
Затем заполняете колонки Ix единичками/ноликами поразрядно с 0 до 255
Когда все занесли, начинаете заполнять поля колонок с Qx, в зависимости от состояния входов в каждой строке таблицы
В итоге можете сами написать логику, например воспользовавшись советом (https://owen.ru/forum/showthread.php?t=33364&p=335086&viewfull=1#post335086) или сюда выложить, тут останется только предложить решение, без лишних вопросов о приоритетности, о ситуациях не озвученных в ТЗ и т.п.

49869
Так?

capzap
26.06.2020, 16:52
а остальные варианты, Вас же спрашивал Сергей а что будет если две кнопки одновременно нажмутся(два входа и более сработают)
Напомню из восьми ходов получается 256 комбинаций и пускай многие из них ни когда не случаться, зато вопросов не будет

Saint999
26.06.2020, 16:55
а остальные варианты, Вас же спрашивал Сергей а что будет если две кнопки одновременно нажмутся(два входа и более сработают)
Напомню из восьми ходов получается 256 комбинаций и пускай многие из них ни когда не случаться, зато вопросов не будет

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

capzap
26.06.2020, 17:04
Так там смысл что бы кто первый нажался тот и будет, а как это в таблице отразить?
понимаете это уже не вопрос логики схемы блокировать сработку остальных входов если активен какой либо выход, это должно решается на родительском уровне программы относительно конкретной схемы

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

Сергей0308
26.06.2020, 18:38
А можно как то сделать фильтр, что бы оставалось предыдущее состояние, если что то включено то оставлять его, а если все выключено то и не включать ничего?
Это я так понимаю что нужен список возможных вариантов команд, а остальное фильтруем?

Вот в проект фильтр добавил:

49876

49877

Евгений Леонтьев
28.06.2020, 18:14
Добрый день. Подскажите, как можно сделать отключение насоса по времени, например на 5 мин, после срабатывания макс уставки реле давления? (На системе не поставить гидроаккумулятор, т.к. это заполнение всасывающего трубопровода основного насоса).

Евгений Леонтьев
28.06.2020, 18:25
Это я уже пробовал. На входе постоянно включается и выключается реле давления и на входе TOF идёт обнуление. Мне нужно, чтобы реле давления достигло своей уставки и при этом насос не включался 5 мин не реагируя на реле давления.

Евгений Леонтьев
28.06.2020, 18:49
Импровизировать пробовал, но пока не получается. Блоки сравнения ещё не изучил. Но всё равно за направление спасибо.

Евгений Леонтьев
28.06.2020, 19:15
Что то не работает эта схема у меня на симуляторе. https://skr.sh/s2tiS0mEFEi?a
Когда реле давления замкнуто то на входе 1, если разомкнуто то 0

Евгений Леонтьев
28.06.2020, 19:46
а зачем лишние преобразования, Вы не знаете какой тип данных подается на вход таймера и триггера?

Типы данных я ещё не изучал. Я новичок.

Сергей0308
28.06.2020, 20:12
Да

Пр при нажатии генерит битовую маску и держит ее в ячейке модбас (кнопки у нас с фиксацией), модуль генерит битовую маску пока нажата кнопка и в это время нужно успеть ее забрать, не успел забрать пока нажата, он сгенерит с отпущенной кнопкой, пока 1-2 пульта нормально, потом начинаются задержки, а задержка это время сколько нужно держать кнопку нажатой.


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




Так работает, единственное у меня булевы переменные энергонезависимые с настройкой первую кнопку настроено 1 и 2, на вторую 1 и 3, на 3 - 1 и 4, а у модуля переключаются выводы:
1 и 3
1 и 4
1 и 5

Правда и в моем примере выше так же было (

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

Saint999
29.06.2020, 10:30
понимаете это уже не вопрос логики схемы блокировать сработку остальных входов если активен какой либо выход, это должно решается на родительском уровне программы относительно конкретной схемы

таблицей истинности можно указать свою расстоновку приоритетов а не только со старшего

Вот так получилось, правда не совсем понимаю зачем я это делаю, так как это ведь уже решили давно.
49915

melky
29.06.2020, 10:36
Saint999 у вас при I8=1 всегда должен быть включен Q8 а остальные в 0 ?
з.ы. есть замечательный макрос от AI!, аналог Boolen из ZelioLogic, такую задачу решит на раз, и возможно будет легче целой толпы, которая у вас есть сейчас.
Не вдавался в суть предложенных вариантов ибо некогда.
И судя по всему, ваша таблица не полная, если I8=0 а скажем I2=1 и I5=1 ? или там переключение кнопок так сделано что две на нажмешь кроме I8 + какая-то ?

Saint999
29.06.2020, 10:41
И ещё хотел спросить, какой смысл с выходами соответствующими нажатой кнопке всегда первый выход включать, у Вас же наверняка не система ПВО и ракеты вы не запускаете?!

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

Сергей0308
29.06.2020, 10:59
Нет не пво, обычный насос и в зависимости от нажатой кнопки открывается клапан дающий воду, в стандартном исполнении на каждую воду свой клапан, но есть случаи что нужно два сразу открыть, или сам насос не запускать, а только клапан открыть, вот для того и хочу в меню сделать настройку выходов. Делаться эта настройка будет редко, но все же не хотелось бы каждый раз перепрошивать ПР, вот потопу и заморочился с редактированием через меню, с другой стороны, что бы настройки пультов отличались, такое совсем редко бывает, вот потому сразу и начал делать одну настройку на все пульты, а уже потом если сил хватит то на каждый отдельно делать буду, но так как столько переменных я не хочу создавать, буду пытаться освоить командоаппарат или термостат (там меня часы и календарь сильно сбивают, не могу разобраться).

Понятно, Вы хотите универсальное, для всех случаев в жизни подходящее устройство! Сначала сделайте так, с отдельными булевыми переменными, мне кажется, так попроще будет, точнее мы уже такое сделали для 2 постов, останется для 8 постов, повторить 4 раза, потом, когда всё работает как задумано, можно думать об упрощении и дальнейшем совершенствовании, это я так думаю!

melky
29.06.2020, 11:11
Saint999 если битовой маской на экране сделать настройку, то можно и заносить значение в макросы.

Saint999
29.06.2020, 11:31
Saint999 у вас при I8=1 всегда должен быть включен Q8 а остальные в 0 ?
з.ы. есть замечательный макрос от AI!, аналог Boolen из ZelioLogic, такую задачу решит на раз, и возможно будет легче целой толпы, которая у вас есть сейчас.
Не вдавался в суть предложенных вариантов ибо некогда.
И судя по всему, ваша таблица не полная, если I8=0 а скажем I2=1 и I5=1 ? или там переключение кнопок так сделано что две на нажмешь кроме I8 + какая-то ?

https://owen.ru/forum/showthread.php?t=26216&p=333652&viewfull=1#post333652
Вот здесь Сергей0308 дал полностью рабочее и отвечающее моим требованиям решение.

melky
29.06.2020, 11:41
Ну мне не очень интересно разбираться в самом решении, тем более если оно вас устраивает. Но я вижу что вы хотите в сервисном режиме изменить параметры.
Такие вещи как правило при помощи битовых масок реализовать проще. А в том решении у вас макрос "Кто первый встал, того и тапки" и хрен вы на лету его измените. Значит вас оно не устраивает :) Извините за тавтологию.... :)

Я к тому, что сам по себе макрос "Кто первый встал" вам не позволит что либо изменить без перепрошивки ПР.

А вот макрос, созданный AI! когда-то по просьбе кажется можно заставить изменить работу на лету. Не проверял такую возможность, но там есть переменная, которую можно вывести за пределы макроса. Правда с настройками там не сахар, так как это целочисленная переменная. И на экране надо сделать битовую маску с 0 и 1 и чтобы она потом попала в макрос... Ну либо ручками рассчитывать и вбивать число.

Saint999
29.06.2020, 11:48
Понятно, Вы хотите универсальное, для всех случаев в жизни подходящее устройство! Сначала сделайте так, с отдельными булевыми переменными, мне кажется, так попроще будет, точнее мы уже такое сделали для 2 постов, останется для 8 постов, повторить 4 раза, потом, когда всё работает как задумано, можно думать об упрощении и дальнейшем совершенствовании, это я так думаю!

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

Saint999
29.06.2020, 12:29
По поводу

есть замечательный макрос от AI!, аналог Boolen из ZelioLogic
Я его найти не могу, только Ваши упоминания в 4х темах о его существовании.

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


По RFID считывателям была какая нибудь тема, для ознакомления почитать?
Спасибо.

Saint999
29.06.2020, 12:32
Saint999 у вас при I8=1 всегда должен быть включен Q8 а остальные в 0 ?
з.ы. есть замечательный макрос от AI!, аналог Boolen из ZelioLogic, такую задачу решит на раз, и возможно будет легче целой толпы, которая у вас есть сейчас.
Не вдавался в суть предложенных вариантов ибо некогда.
И судя по всему, ваша таблица не полная, если I8=0 а скажем I2=1 и I5=1 ? или там переключение кнопок так сделано что две на нажмешь кроме I8 + какая-то ?

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

Если расскажете как такие случаи в таблице истинности расписывать, с радостью почитаю!
Спасибо.

Сергей0308
29.06.2020, 12:39
Вот я сейчас как раз, этим и занимаюсь. Ну и попутно пытаюсь читать чужие вопросы, часто много нового есть и с коммандоаппаратом разбираться.

Если что интересует насчёт моих проектов или работы макросов и непонятно - спрашивайте, только конкретно по пунктам!

melky
29.06.2020, 12:57
Да вроде выкладывал неоднократно этот макрос. Долго не мог понять как его настраивать, пока AI! не объяснил. Но если в ZelioLogic все делается расстановкой галочек, то тут только расчетом значения int и вписывании его в свойства макроса. Переменную можно вытянуть наружу, переписав макрос и управлять с экрана. Можно добавить количество входов если необходимо.

В exel файлике на Q выставляем 1, при каких комбинациях I она должна быть. Справа будет число, которое надо ввести в свойства макроса.
Что-то И + ИЛИ в оном флаконе, когда 1 на выходе должна быть при различных комбинациях.

Сергей0308
29.06.2020, 12:59
Я не знаю как это отобразить в таблице, нажатие одновременное не возможно, все равно кто то будет первый, вот тот первый и нужно что бы подсветился, а второй игнорируем.

Если расскажете как такие случаи в таблице истинности расписывать, с радостью почитаю!
Спасибо.

Вы сами попросили сделать логику: если приходят более одного бита в состоянии "1", считай как одновременно более одной нажатой кнопки (не считая кнопки стоп), то это аварийная ситуация, такого не должно быть при нормальной работе и в этом случае ничего не происходит, сохраняется преведущее состояние выходов, короче, я так и сделал! Чтобы это указать можно показать что состояние выходов при этом не меняется(фиксируется), наверно проще словами!

Вот ещё хотел добавить: можно передавать не битовую маску нажатых кнопок, а так как кнопки нажимаются по очереди(исключается одновременное нажатие, включение следующей только через кнопку стоп), то и передавать сразу код номера нажатой кнопки, впрочем он будет совпадать с номером кнопки в диапазоне 0-7, "0" соответствует, что все кнопки отжаты, тогда и проще получится и 3 бита хватит на все команды с одного пульта, надеюсь понятно объяснил и если хотите могу это в проекте переделать(показать) только напишите, если Вы не против! Тогда будет исключаться и команда одновременного нажатия кнопок, даже в случае какой ошибки(сбоя) и можно будет убрать последнюю добавленную логику с игнорированием аварийных команд и сохранением состояния выходов! Надеюсь понятно объяснил?!

Saint999
29.06.2020, 17:10
Вы сами попросили сделать логику: если приходят более одного бита в состоянии "1", считай как одновременно более одной нажатой кнопки (не считая кнопки стоп), то это аварийная ситуация, такого не должно быть при нормальной работе и в этом случае ничего не происходит, сохраняется преведущее состояние выходов, короче, я так и сделал! Чтобы это указать можно показать что состояние выходов при этом не меняется(фиксируется), наверно проще словами!


Вы все верно реализовали, на обоих сторонах! Просто попросили таблицу истинности, я о такой и не слышал, вот и составил, хотя повторюсь на словах Вы меня поняли верно. И так же как Вы пишете я тоже могу словами объяснить как поступать в нештатной ситуации, как в таблицу это занести я не знаю.


Вот ещё хотел добавить: можно передавать не битовую маску нажатых кнопок, а так как кнопки нажимаются по очереди(исключается одновременное нажатие, включение следующей только через кнопку стоп), то и передавать сразу код номера нажатой кнопки, впрочем он будет совпадать с номером кнопки в диапазоне 0-7, "0" соответствует, что все кнопки отжаты, тогда и проще получится и 3 бита хватит на все команды с одного пульта, надеюсь понятно объяснил и если хотите могу это в проекте переделать(показать) только напишите, если Вы не против! Тогда будет исключаться и команда одновременного нажатия кнопок, даже в случае какой ошибки(сбоя) и можно будет убрать последнюю добавленную логику с игнорированием аварийных команд и сохранением состояния выходов! Надеюсь понятно объяснил?!

Чего мне быть против)
Я по натуре перфекционист и потому привык делать как лучше, а здесь как мне кажется стабильности будет больше! Только расшифровывать номера кнопок я не знаю, точнее я могу на равенство сравнивать, но тогда не получается битами задавать настройки выходов, соответствующие кнопкам.

Сергей0308
29.06.2020, 19:37
Вы все верно реализовали, на обоих сторонах! Просто попросили таблицу истинности, я о такой и не слышал, вот и составил, хотя повторюсь на словах Вы меня поняли верно. И так же как Вы пишете я тоже могу словами объяснить как поступать в нештатной ситуации, как в таблицу это занести я не знаю.



Чего мне быть против)
Я по натуре перфекционист и потому привык делать как лучше, а здесь как мне кажется стабильности будет больше! Только расшифровывать номера кнопок я не знаю, точнее я могу на равенство сравнивать, но тогда не получается битами задавать настройки выходов, соответствующие кнопкам.

Тогда для ПР каждого поста, если Вас устраивала логика работы кнопок, как-то так будет:

49930

49931

Вот и проект для центрального ПР поправил:

49933

И ещё хотел сказать, что вместо физических кнопок и ПР для каждого поста можно применить ИПП120 и с помощью комбобокса на экране выбирать какую кнопку нажать, что выйдет дешевле, но я не знаю подойдёт это вам или нет? А Вы молчите как рыба, приходится всё клещами вытягивать!

Saint999
30.06.2020, 09:46
Тогда для ПР каждого поста, если Вас устраивала логика работы кнопок, как-то так будет:

49930

49931



Так так ведь подсветка не работает, не будет понятно какая кнопка нажата.



И ещё хотел сказать, что вместо физических кнопок и ПР для каждого поста можно применить ИПП120 и с помощью комбобокса на экране выбирать какую кнопку нажать, что выйдет дешевле, но я не знаю подойдёт это вам или нет? А Вы молчите как рыба, приходится всё клещами вытягивать!
[/QUOTE]

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

И я не молчу, Вы спрашивали как работать должно а не куда ставиться будет )

Сергей0308
30.06.2020, 12:20
Так так ведь подсветка не работает, не будет понятно какая кнопка нажата.




Не вижу проблем, можно оставить преведущую конструкцию для индикации нажатой кнопки

49956

49957

Даже так:

49958

49959

Или так:

49962

49963

И я проект для центральной ПР немного переделал под ваши задачи, у вас 7 кнопок режимов работы + кнопка стоп(выключение всех режимов), я ранее делал для 8 кнопок режимов работы + кнопка "стоп", всего 9, поэтому у вас на 1 кнопку всё смещалось, теперь должно всё правильно включаться в последнем варианте программы!

Saint999
30.06.2020, 16:24
И я проект для центральной ПР немного переделал под ваши задачи, у вас 7 кнопок режимов работы + кнопка стоп(выключение всех режимов), я ранее делал для 8 кнопок режимов работы + кнопка "стоп", всего 9, поэтому у вас на 1 кнопку всё смещалось, теперь должно всё правильно включаться в последнем варианте программы!

Это который EEPROM_1.3.owl?

Сергей0308
30.06.2020, 16:29
Это который EEPROM_1.3.owl?

Да, этот проект!

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

Евгений Леонтьев
30.06.2020, 20:26
Нужна ваша консультация, в каком направлении двигаться. По сигналу с кнопки нужно включить насос и выключить по достижении макс. давления (реле давления). На системе нет гидроаккумулятора, поэтому требуется только отключить насос, чтоб не реагировал на постоянное включение и выключение реле давления. Но при включении кнопки, насос снова запустился. Пробовал разные варианты, но схема не работает. Программировал в Овен Лоджик. Спасибо.

Сергей0308
30.06.2020, 20:53
Нужна ваша консультация, в каком направлении двигаться. По сигналу с кнопки нужно включить насос и выключить по достижении макс. давления (реле давления). На системе нет гидроаккумулятора, поэтому требуется только отключить насос, чтоб не реагировал на постоянное включение и выключение реле давления. Но при включении кнопки, насос снова запустился. Пробовал разные варианты, но схема не работает. Программировал в Овен Лоджик. Спасибо.

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

Евгений Леонтьев
30.06.2020, 21:01
Там давление падает в течении 1мин. Запрет с РД будет снят и по идее можно запуститься ещё раз с кнопки. Это система запитки всасывающего трубопровод нагнетания.

Сергей0308
30.06.2020, 21:10
Там давление падает в течении 1мин. Запрет с РД будет снят и по идее можно запуститься ещё раз с кнопки. Это система запитки всасывающего трубопровод нагнетания.

Так Вы же говорили, чтобы с кнопки больше не запускалось, насколько я смог понять! Может надо сделать чтобы с кнопки не запускалось при достижении установленного максимального давления в течении 1 минуты?

Евгений Леонтьев
30.06.2020, 21:17
Не, насос включается с кнопки, а выключается с РД, но чтоб не включался с РД обратно. И всё.

Сергей0308
30.06.2020, 21:25
Не, насос включается с кнопки, а выключается с РД, но чтоб не включался с РД обратно. И всё.

Тогда вообще не понятно в чём проблема, поставьте RS-триггер, с кнопки включайте с реле давления выключайте, всё!

Евгений Леонтьев
30.06.2020, 21:31
Типа вот так https://skr.sh/s2vP1MRtHjA?a

Сергей0308
30.06.2020, 21:38
Типа вот так https://skr.sh/s2vP1MRtHjA?a

А зачем эти сложности, если правильно понял Вы хотите с кнопки включить насос, при срабатывании РД - выключить, оставьте один RS-триггер и всё! Или правильно сформулируете, если чего иного хотите?
Или, мне кажется, лучше напишите что Вы хотите сделать! Может вы хотите сделать замену механического реле давления для заполнения бака-аккумулятора воды?

Евгений Леонтьев
30.06.2020, 21:52
Сергей спасибо за подсказки. Эта схема с триггером нормально вписалась. Уже проверил. https://skr.sh/s2vvnj6aDpG?a чётко работает!

Сергей0308
30.06.2020, 21:59
Сергей спасибо за подсказки. Эта схема с триггером нормально вписалась. Уже проверил. https://skr.sh/s2vvnj6aDpG?a чётко работает!

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

Здесь фильтры выкладывал: https://owen.ru/forum/showthread.php?t=26216&page=155

Saint999
01.07.2020, 09:40
Да, этот проект!

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

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

Тут такой вопрос возник, создаю макрос из EEPROM_1.3 а он мне вот такую вот непонятность создает:
49975

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

Можно что то с этим сделать?

Сергей0308
01.07.2020, 10:23
Все отлично работает, попробовал тиражировать на остальные посты, какой то затык, но думаю разберусь.

Тут такой вопрос возник, создаю макрос из EEPROM_1.3 а он мне вот такую вот непонятность создает:
49975

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

Можно что то с этим сделать?

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

Эта функция включается-выключается здесь:

49981

Saint999
01.07.2020, 11:06
Какие-то незнакомые мне проблемы, я вручную всегда создавал порядок ввода-вывода переменных в макросах, впрочем в последних версиях ОЛ как раз функцию добавили(раньше не было) чтобы можно было менять этот порядок перемещением входов-выходов макроса, раньше, если например первый вход макроса как ты не перемещай при редактировании, хоть в самый низ ставь(последним), при закрытии редактирования(на макросе) он всё равно первым(верхним) будет отображаться, короче, теперь можно вручную это изменять не нарушая связей внутри макроса!

Эта функция включается-выключается здесь:

49981

Сделал вручную, просто интересно было почему так.

Сергей0308
01.07.2020, 13:05
Сделал вручную, просто интересно было почему так.

Не знаю, как Вы сделали, я попробовал новую заявленную функцию без разрыва связей внутри макроса - у меня не получилось, как были входа вразнобой так и остались(и макрос я заменял после изменения порядка входов, не знаю как у Овена эта функция работает, может ещё какое волшебное слово надо произнести? Я так понимаю у меня эта кнопка отжимается, потом заходишь в макрос, а она уже неактивна, хотя при редактировании её активируешь и вроде как при выходе предлагается сохранить изменения и они вроде должны сохраняться, но у меня почему то не сохраняются, порядок остаётся прежним и при следующем заходе(чтобы посмотреть) кнопка включения этой функции(что Вам показывал на скриншоте отжата(неактивна), короче, я пока как вручную, с разрывом связей внутри макроса не знаю как это сделать!

49984

49985

49986

Saint999
01.07.2020, 13:19
Нужно нажать кнопку, потом что то изменить в макросе, можно просто передвинуть чего, потом нажать сохранить, потом закрыть его, потом нажать обновить макрос и если ничего не изменилось повторить процедуру.
Я только так со второй или третьей попытки справился )

49987
49988

Сергей0308
01.07.2020, 13:40
Нужно нажать кнопку, потом что то изменить в макросе, можно просто передвинуть чего, потом нажать сохранить, потом закрыть его, потом нажать обновить макрос и если ничего не изменилось повторить процедуру.
Я только так со второй или третьей попытки справился )

49987
49988

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

И вам, чтобы настройки постов можно было сделать разными в 2 раза больше булевых переменных потребуется, а значит и входов!

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

49990

И макрос подрихтовал:

49992

49993

Вот на досуге уменьшил количество булевых переменных необходимых для настройки включаемых выходов до разумных пределов до 32, у вас их 512(при 8 постах). Это, мне так кажется, перебор! На экране задаётся количество постов и отображается текущий пост при настройке и номер кнопки, для каждой кнопки каждого поста настраиваются(задаются) включённые выхода("+" - включено, "-" - выключено) при её нажатии. Короче, можно и до 8 переменных уменьшить, но так(при 32) - немного попроще будет и вполне приемлемо, это вам не 512!

50052

50053

Работает так: при включении ПР(подачи питающего напряжения) энергонезависимая память(из матрицы памяти) копируется в оперативную память, каждый цикл программы по одной переменной(ячейки), так как используется половина(16) ячеек памяти из имеющихся(32), то переменные перепишутся через 16 циклов программы, при цикле 5 мс, ПР будет готово к работе через 80 мс после включения, полностью вся память может скопироваться в оперативную за 160 мс, при цикле программы 5 мс! Собственно, только это и хотел показать на картинке!

Алексеев
06.07.2020, 10:15
Доброго времени всем.
Подскажите пожалуйста как реализовать задачу вывода логической единицы при изменении двух входных сигналов INT.
Спасибо всем за ответы.
Может это поможет . Макрос стандартный 50062

Алексеев
06.07.2020, 10:31
Ты же можешь его доработать на свою хотелку . Сохранить макрос как .

Saint999
10.07.2020, 16:03
Вот на досуге уменьшил количество булевых переменных необходимых для настройки включаемых выходов до разумных пределов до 32, у вас их 512(при 8 постах). Это, мне так кажется, перебор! На экране задаётся количество постов и отображается текущий пост при настройке и номер кнопки, для каждой кнопки каждого поста настраиваются(задаются) включённые выхода("+" - включено, "-" - выключено) при её нажатии. Короче, можно и до 8 переменных уменьшить, но так(при 32) - немного попроще будет и вполне приемлемо, это вам не 512!

50052

50053

Работает так: при включении ПР(подачи питающего напряжения) энергонезависимая память(из матрицы памяти) копируется в оперативную память, каждый цикл программы по одной переменной(ячейки), так как используется половина(16) ячеек памяти из имеющихся(32), то переменные перепишутся через 16 циклов программы, при цикле 5 мс, ПР будет готово к работе через 80 мс после включения, полностью вся память может скопироваться в оперативную за 160 мс, при цикле программы 5 мс! Собственно, только это и хотел показать на картинке!

День добрый, я тут две недели с командировок не вылажу, можно проект посмотреть?
Спасибо!

Сергей0308
10.07.2020, 17:50
День добрый, я тут две недели с командировок не вылажу, можно проект посмотреть?
Спасибо!

Как то примерно так:

50104

Или так:

50105

Здесь до 8 постов, включительно! Если удвоить количество "выходных" элементов, что очень просто сделать, буквально за 1-2 минуты, то максимальное количество постов увеличится до 16, включительно! Вы вроде писали, что бывает и до 16 постов требуется, но такое очень редко встречается! Так вот при этом памяти хватит и экранное меню не изменится, короче всё остальное сохранится в неизменном виде!

Вот, специально для вашего случая и полноценный макрос придумал на 2 поста:

50201

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

50202

И программа с новым макросом может выглядеть примерно так:

50203

50204

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

Ревака Юрий
12.07.2020, 18:21
Уважаемые знатоки, помогите пожалуйста разобраться.
Не могу как надо сделать "Запуск записи" сетевой переменной по "флагу t+b" (при увеличивающихся показаниях значений). Статусы записи и чтения не меняются.
"Запись по изменению" работает, "Запуск чтения" по вторым портам работает (с МСД по rs1).
Но не могу прочитать c МСД время или изменить его.
МСД200.cfg.zip - не архивирован, только изменил название расширения иначе неразрешенное расширение для вложения.
Спасибо всем ответившим.

По работе с чтением/записью в разных режимах делал видео https://youtu.be/k9rUF5_kLqk, может чем-то поможет, по логике ничего не понятно, что хотите реализовать.

Ревака Юрий
13.07.2020, 08:40
Спасибо видео смотрел, ответа не нашел. Заметил у меня не задан "Опрос", так понял что не будет записи или чтения только если явно задано значение 0 переменной в "Опросе". Т.к. ранее не устанавливал и его влияния не замечал.
Запись производится если установить перед "t+b" ФБ "ТР Импульс включения заданной длительности" или "RS или SR-триггер". Но с "R или FTRIG детектором" уже записи почему то нет, хотя в замедленном режиме симулятора видно "t+b" =1 (период, мс = 1000). Чтение по rs2 МСД не работает.
Добавил пояснения здесь к скриншоту. Задумано реализовать запись значений t1 и t2 в МСД не постоянно, а лишь при нарастании t1 и\или t2 в каждом цикле. Значения t1 и t2 в "простое" или уменьшении значений не нужно регистрировать в МСД. t1 так же выводится сразу на СМИ2, t2 же хочется использовать для контроля успешности процесса записи в МСД, поэтому сперва записываю затем пытаюсь считать и вывести на второй СМИ2.
Не влияет ли то что для w-t2 разрешение только на запись, а r-t2 пытается считать из того же самого 2 регистра МСД?
Так же желательно иметь возможность с ПР200 читать и корректировать значение встроенных часов МСД200. Почему то так же не получается как писал в предыдущем сообщении, в скриншоте msd_sec = 0 постоянно, или попытка корректировки часа "set_h" в проекте не работает.

Вы пишите про регистрацию в каждом цикле, не факт что такое вообще возможно, тут нужно проанализировать время цикла ПР, учесть время измерения всех аналоговых каналов, а так-же время фильтра на этих входах, от этого зависит как часто будет срабатывать флаг на запись в МСД, затем смотрим скорость обмена между ПР и МСД. Для чтения/записи через флаги, не нужно держать "1" постоянно, желательно через детектор переднего фронта, тогда будет одиночная запись в момент срабатывания условия. Для начала попробуйте отработать такую запись через управление флагом через дискретный вход.

MrGavai
13.07.2020, 10:24
добрый день!
ПР200 owen logic 1.17
Пастеризационная установка.
Необходимо на экране ПР200 выбрать программу(работа, мойка и проч.)
Использую combobox, создал переменную "set_programm", она меняет значения, в зависимости от того какую программу выбрал пользователь......
Что делать дальше?? Как сделать так чтобы при значении set_programm = 1, t == 50; set_programm = 2 , t == 80; (к примеру).
Мне на ум приходит Сишная функция switch...case
Как это реализовать здесь?
Спасибо

Сергей0308
13.07.2020, 11:02
добрый день!
ПР200 owen logic 1.17
Пастеризационная установка.
Необходимо на экране ПР200 выбрать программу(работа, мойка и проч.)
Использую combobox, создал переменную "set_programm", она меняет значения, в зависимости от того какую программу выбрал пользователь......
Что делать дальше?? Как сделать так чтобы при значении set_programm = 1, t == 50; set_programm = 2 , t == 80; (к примеру).
Мне на ум приходит Сишная функция switch...case
Как это реализовать здесь?
Спасибо

Мне так кажется, Вам мультиплексор нужен целочисленных или вещественных переменных, в ОЛ есть SEL и fSEL! Из них можно и мультиплексор сделать!

50138

MrGavai
13.07.2020, 12:01
Мне так кажется, Вам мультиплексор нужен целочисленных или вещественных переменных, в ОЛ есть SEL и fSEL! Из них можно и мультиплексор сделать!

50138

Это я уже пробовал... сравнение, с умножением, но как присвоить значение переменной?

Сергей0308
13.07.2020, 12:26
Это я уже пробовал... сравнение, с умножением, но как присвоить значение переменной?

Никто не запрещает посмотреть в проекте, что недавно выложил(последний) в текущей теме: 50139

50140

Ревака Юрий
13.07.2020, 13:10
1 "Время цикла" техпроцесса длительностью 20 - 40 мин.


Разговор не про время цикла установки, а про время цикла программы в ПР200, от которого зависит как часто прибор сможет читать/писать регистры в слейв. Разбейте задачи на простые операции: читаем по флагу, пишем и т.д.

Ревака Юрий
15.07.2020, 13:32
Доброго времени знатоки.
Не могу получить информацию о статусе чтения или записи по modbus (статус записи на сми2, мсд200 rs2, и чтение с мсд200 rs1), как при успешных выполненных операциях, так и не успешных.
Помогите пожалуйста найти\направить на ошибку.
Спасибо всем за ответы.

Вы видимо не дочитали Help OwenLogic или недосмотрели мои видео по Modbus, тут https://youtu.be/miTsntqGIQA?t=929 показан как раз режим имитации и проверки по этому статусу, но он ничего общего с обрывом связи по RS не имеет, про обрыв было показано чуть раньше, как он отрабатывает, этот статус слева вверху.

Алексеев
15.07.2020, 14:49
Доброго времени знатоки.
Не могу получить информацию о статусе чтения или записи по modbus (статус записи на сми2, мсд200 rs2, и чтение с мсд200 rs1), как при успешных выполненных операциях, так и не успешных.
Помогите пожалуйста найти\направить на ошибку.
Спасибо всем за ответы.

Я вот где использую переменные характеризующие обрыв 1 всё нормально 0 нет опроса или нет записи 5018950190

capzap
18.07.2020, 11:40
не ради забавы, а в научпопцелях

Доброго времени знатоки.
Не могу получить информацию о статусе чтения или записи по modbus (статус записи на сми2, мсд200 rs2, и чтение с мсд200 rs1), как при успешных выполненных операциях, так и не успешных.
Помогите пожалуйста найти\направить на ошибку.
Спасибо всем за ответы.
обработал это пост машиной на основе цепей Маркова по трем ключевым словам
['не', 'могу', 'получить'] комп выдал следующее
не могу получить информацию статусе чтения записи по статус лампа погаснет если переключить режим лампы отпустить обе клавиши управиться меньше чем за ответы вы так как при успешных выполненных операциях так как при успешных выполненных операциях так как при успешных выполненных навеяло по мотивам этой темы (https://owen.ru/forum/showthread.php?t=33024&p=335620&viewfull=1#post335620), с утра обновил питоновский скрипт

ЗЫ до этого было еще хуже как мне кажется
не могу получить информацию статусе чтения записи по заднему фронту переключение режимов по не пишу ибо там все же пид поставить дополнительно вычислить знак рассогласования можно было мало делал на железе чтобы вообще убрать все переменные работать переменными на единственная

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

Сергей0308
20.07.2020, 00:21
День добрый, я тут две недели с командировок не вылажу, можно проект посмотреть?
Спасибо!

Вот ещё немного подправил:

50221

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

50223

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

Сергей0308
21.07.2020, 00:00
Доброго времени знатоки.
к ПРМ-3 подключены ТП тха, измеренные значения 70 °С, показание другого поверенного прибора 65 °С. При 20 °С одинаковы.
Пожелание что бы показания были верными или одинаковыми ± 1 - 2 °С с показанием поверенного прибора.
Для юстировки нет калибратора. Правильно ли понимаю, если не покупать дорогущ калибратор или не отправлять на поверку пр200+прм3+ТП, наиболее рациональный выход: умножить в OwenLogic входное значение на поправочный коэффициент?
Спасибо всем за ответы.

Диапазон измеряемых температур ограничен значением 70°С?
У данной термопары, при допуске 1-2% и диапазоне до 1000°С погрешность может доходить до ±10°С.

Сергей0308
21.07.2020, 06:11
ограничен 100 °С, поэтому при 1000 °С не интересует.

Тогда логично применить термосопротивление, будет точнее на порядок и уложитесь в ваши допуски, боюсь и дешевле выйдет!
И сколько у вас всего термопар(термодатчиков) подключено к ПР? Если не более 4, то можно и без ПРМ-3 обойтись, поставив к термопарам нормирующие преобразователи, а термосопротивления можно и совместно с нормирующим преобразователем использовать и непосредственно на вход ПР подключить, даже так будет точнее, чем у вас сейчас!
Мне кажется у Вас самый плохой и дорогой вариант из всех возможных! Если Вы это сделали ненамеренно, я бы на вашем месте играл в лотерею, все джекпоты были бы ваши!

Сергей0308
23.07.2020, 08:35
ваши предложения озвучены в марте, но работаем с тем что есть.
Вопрос был в другом, хорошо ли вводить в алгоритм проекта OwenLogic поправочные корректора на полученные со входа значения? Или есть другие более правильные предусмотренные для этого "инструменты", кроме юстировки (за неимением прибора за 30 тыс руб, дешевле (https://www.chipdip.ru/product/ms7212)не нашел, по хорошему и для ТС для комплекции надо наверно еще столько)?
На что и каким образом влияют значения в свойствах входов ниж и верхняя границы измерений (масштабирование шкалы измерения - крайние уровни входного сигнала датчика)? Вопрос возник потому что измеряемое физические значения на входе -50+50 мВ, измеряемые данные по паспорту ТП -40+250 °С (связано скорее не с ТП а в использованных других материалах: в головке магниты, клей, изоляция и т.п.), по гост ТП тха -200+1200 °С, а сейчас значения по умолчанию выставлены 0 и 1 и измеренных показаниях нет таких кратных отличий от приведенных цифр (1, 50 мВ, 250 или 1200 °С). В руководстве написано лишь внести заначения предоставленные производителем. Изменил на -40 и +250, на показания никак не повлияло. Пока, использую корректор на входные значения t*0,93. Завтра более точно льдом и кипятком буду выставлять)

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

Сергей0308
23.07.2020, 09:24
Т.е. в ТРМ1 такие поправки просто так в настройках есть?

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

Сергей0308
25.07.2020, 15:24
Пожелание при темп 80°С ± 1 - 2 °С не такая уж и большая точность наверное, да это в 2 раза выше допуска ±2,5°С при классе допуска ТП =2.
"сейчас он с плюсом покажет , а завтра может и с минусом" - ранее не изучал, но думаю ТП не будет так себя вести, по теории вроде с Годами небольшие отклонения в одну сторону.

Повторсь в 3й раз, надо ли корректировку производить самому внесением в проект коэффициента в алгоритм обработки считанного на входе значения или может в ПР200 или OwenLogic есть штатные предусмотренные решения?
И для чего необходимы поля в свойствах входов ниж и верхняя границы измерений (масштабирование шкалы измерения - крайние уровни входного сигнала датчика) и как оно работает\влияет?
Спасибо.

Может не по теме: Вы вообще понимаете, что один процент от 100 и от 1000, это разные значения?

capzap
25.07.2020, 16:17
Может не по теме: Вы вообще понимаете, что один процент от 100 и от 1000, это разные значения?

не совсем понятно чего Вы добиваетесь, есть же гост по термопарам, там всё расписано какая погрешность до 250 и выше. Ну есть у человека в наличии то что есть, в чем претензия то

Алексеев
25.07.2020, 18:25
Может не по теме: Вы вообще понимаете, что один процент от 100 и от 1000, это разные значения?

Работаю с датчиками для воды ( до 100 град) 1% и погрешность в 1 градус в полне всех устраивает .
Ребята работают с термопарами до 1000 град и десять градусов их в полне устраивает и даже больше .
Чем больше диапазон там требования к погрешности ( естественно в градусах ) заглубляются .
Мы разрабатываем не измерительные приборы . А ПР200 не предназначен для этих целей об этом уже в темах
было не однократно озвучено . Поэтому этот диалог не о чём .:)
И CAPZAP прав . Не каждый может позволит себя купит новый , если имеются в наличии . Вот у нас тоже бывает
не ликвиды на складах заставляют использовать . А переплачивать меняя 1 % на 0.5 % для чего , если
заказчика устраивает .:confused:

Алексеев
27.07.2020, 10:20
Откуда берётся время , а конкретно часы и минуты при симулировании ????????????. Подскажите . Как его синхронизировать с компьютером ??????????????????
Ни когда не симулировал , а сейчас натолкнулся . 50325 50326

petera
27.07.2020, 10:32
Откуда берётся время , а конкретно часы и минуты при симулировании ????????????. Подскажите . Как его синхронизировать с компьютером ??????????????????
Ни когда не симулировал , а сейчас натолкнулся . 50325 50326

Не надо лезть в настройки прибора

Время (дата) для симуляции - на панели инструментов
50328

Алексеев
27.07.2020, 10:39
Не надо лезть в настройки прибора

Время (дата) для симуляции - на панели инструментов
50328

Спасибо это просто :o Век живи век учись .

Евгений Леонтьев
27.07.2020, 13:08
Добрый день. Кто нибудь может залить прогу в ПР200 с модулем расширения ПРМ220 и потестить? За не большую плату.

Евгений Леонтьев
27.07.2020, 14:50
Добрый день. Подскажите, как в такой схеме сделать повторный пуск насоса. Одного пуска не хватает из практики. Всасывающий трубопровод с водой завоздушивается. реле протока не срабатывает https://skr.sh/s3MwbC52sVr?a

verpup
27.07.2020, 15:19
Здравствуйте, посдкажите как реализовать - не могу сообразить как сделать следующий макрос:

Сценарий выполняется по наличию лог.1

При нажатии на кнопку без фиксации один раз, сигнал идет на выход 1 на 20 секунд
При нажатии на эту же кнопку без фиксации два раза, сигнал идет на выход 2 на 600 сек
При нажатии на эту же кнопку 3 раза, единица идет на выход 3 на 15 секунд

Соответственно, если используется сценарий с тремя нажатиями то первые два не должны задействоваться, и в этом затык)

Это реализумо в принципе? Были примеры или обсуждения подобного?

Алексеев
27.07.2020, 15:33
Добрый день. Подскажите, как в такой схеме сделать повторный пуск насоса. Одного пуска не хватает из практики. Всасывающий трубопровод с водой завоздушивается. реле протока не срабатывает https://skr.sh/s3MwbC52sVr?a

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

Алексеев
27.07.2020, 15:39
Здравствуйте, посдкажите как реализовать - не могу сообразить как сделать следующий макрос:

Сценарий выполняется по наличию лог.1

При нажатии на кнопку без фиксации один раз, сигнал идет на выход 1 на 20 секунд
При нажатии на эту же кнопку без фиксации два раза, сигнал идет на выход 2 на 600 сек
При нажатии на эту же кнопку 3 раза, единица идет на выход 3 на 15 секунд

Соответственно, если используется сценарий с тремя нажатиями то первые два не должны задействоваться, и в этом затык)

Это реализумо в принципе? Были примеры или обсуждения подобного?

Разберись с макросами и доработай какой нибудь из этих двух под свою задачу . 50346

Евгений Леонтьев
27.07.2020, 15:45
Да. Проверяли раз 20. Повторный пуск решает эту проблему.

Сергей0308
27.07.2020, 15:46
Здравствуйте, посдкажите как реализовать - не могу сообразить как сделать следующий макрос:

Сценарий выполняется по наличию лог.1

При нажатии на кнопку без фиксации один раз, сигнал идет на выход 1 на 20 секунд
При нажатии на эту же кнопку без фиксации два раза, сигнал идет на выход 2 на 600 сек
При нажатии на эту же кнопку 3 раза, единица идет на выход 3 на 15 секунд

Соответственно, если используется сценарий с тремя нажатиями то первые два не должны задействоваться, и в этом затык)

Это реализумо в принципе? Были примеры или обсуждения подобного?

Мне кажется, как вариант, можно использовать счётчик + булевый демультиплексор! С перспективами дальнейшего углубления!

Алексеев
27.07.2020, 16:00
Да. Проверяли раз 20. Повторный пуск решает эту проблему.

Используйте BLINK TP логические операторы на самом выходе схемы запускайте ТР по переднему фронту включения насоса . И согласуйте время таймера с генератором ( сколько раз нужно включать , выключать насос) -- это же просто . Мы сами в прошлом году столкнулись с подобной ситуацией и заменили реле перепада
на электронные более чувствительные производитель РОСМА на электронные казань ПРОМА

Примерно так50349

Евгений Леонтьев
27.07.2020, 16:21
Используйте BLINK TP логические операторы на самом выходе схемы запускайте ТР по переднему фронту включения насоса . И согласуйте время таймера с генератором ( сколько раз нужно включать , выключать насос) -- это же просто . Мы сами в прошлом году столкнулись с подобной ситуацией и заменили реле перепада
на электронные более чувствительные производитель РОСМА на электронные казань ПРОМА

Не много не понял как привязать к моей схемке, чтоб первый запуск насоса был по таймеру например, а второй пуск контролировался датчиком протока. https://skr.sh/s3MwbC52sVr?a

Алексеев
27.07.2020, 16:34
Не много не понял как привязать к моей схемке, чтоб первый запуск насоса был по таймеру например, а второй пуск контролировался датчиком протока. https://skr.sh/s3MwbC52sVr?a

Вы же свой макрос не выкладываете . Чтобы его можно было доработать . Вообще то реле перепада нужно для того чтобы по нему в случае Аварии
производить АВР насоса . А если АВР не помог то выдавать сигнал аварии . В вашем случае не совсем понятно . Выше выложил картинку как Я это представляю .
Без контроля . У нас такое произошло только на одном объекте где были самые слабые по мощности насосы . И датчик перепада работал на границе своей чувствительности ..

Евгений Леонтьев
27.07.2020, 16:46
Макрос https://yadi.sk/d/ExpaEyyEO-mi5Q

Алексеев
27.07.2020, 19:04
Макрос https://yadi.sk/d/ExpaEyyEO-mi5Q

Зачем Вы выключаете при Аварии насос , Я всегда боюсь его выключать по реле перепаду ( мороз система разморозится)
если ложное срабатывание , а выключаю только когда сухой ход перед насосом ( аналоговый датчик давления) .
С вашим макросом как то так . Поиграйтесь с задержками ТР Блинком . Да и другими таймерами .


Пользуйтесь расширенным сообщением в нем проще передавать файлы . 50351

Евгений Леонтьев
27.07.2020, 20:37
Зачем Вы выключаете при Аварии насос , Я всегда боюсь его выключать по реле перепаду ( мороз система разморозится)
если ложное срабатывание , а выключаю только когда сухой ход перед насосом ( аналоговый датчик давления) .
С вашим макросом как то так . Поиграйтесь с задержками ТР Блинком . Да и другими таймерами .


Пользуйтесь расширенным сообщением в нем проще передавать файлы . 50351

Огромное спасибо. Мне как новичку эта схема очень полезна. У меня чуть чуть другой алгоритм. Пуск насоса (таймер) без учёта датчика протока по сигналу>Останов насоса (сигнал на пуск остаётся)> Пуск насоса уже по схеме с датчиком протока. Реле давления на всасывающем трубопроводе перед насосом цепляет постоянно воздух со всех щелей. Поэтому необходим повторный пуск. Переделывать гидравлику не хотят. Второй день мучаюсь. Кстати реле протока у меня защищает от сухого хода в макросе. При запуске в течении 25 сек реле протока не учитывается, а когда система работает при пропадании сигнала в течении 5 сек реле протока отключается насос.

Алексеев
27.07.2020, 21:48
Огромное спасибо. Мне как новичку эта схема очень полезна. У меня чуть чуть другой алгоритм. Пуск насоса (таймер) без учёта датчика протока по сигналу>Останов насоса (сигнал на пуск остаётся)> Пуск насоса уже по схеме с датчиком протока. Реле давления на всасывающем трубопроводе перед насосом цепляет постоянно воздух со всех щелей. Поэтому необходим повторный пуск. Переделывать гидравлику не хотят. Второй день мучаюсь. Кстати реле протока у меня защищает от сухого хода в макросе. При запуске в течении 25 сек реле протока не учитывается, а когда система работает при пропадании сигнала в течении 5 сек реле протока отключается насос.

Ваша идея мне понравилась подергать насосами прежде чем делать АВР и решил тоже применить для надежности .

Но дергать буду 1 раз через три часа . Но не чаще . Подергаю если по прежнему нету сигнала с реле потом только АВР50356 50357 Сравните два макроса ( предыдущий) может улучшите Ваш .

А действительно нельзя макросы просто так передавать только в .RAR

Евгений Леонтьев
27.07.2020, 22:07
Ваша идея мне понравилась подергать насосами прежде чем делать АВР и решил тоже применить для надежности .

Но дергать буду 1 раз через три часа . Но не чаще . Подергаю если по прежнему нету сигнала с реле потом только АВР50356 50357 Сравните два макроса ( предыдущий) может улучшите Ваш .

А действительно нельзя макросы просто так передавать только в .RAR
Ох. Спасибо. Мне новичку до утра разгребать такую схему. Буду изучать.

Алексеев
27.07.2020, 22:42
Ох. Спасибо. Мне новичку до утра разгребать такую схему. Буду изучать.

Зачем схему это как пример . Макрос реле протока 1 . Запускаете в симуляторе и смотрите поведения
При разных комбинациях входов .

Saint999
28.07.2020, 17:34
День добрый, ПР200 может ходить на сервер, по какому нибудь протоколу, http или сокет или на худой конец модбас через vpn/
Понятное дело какой то модем нужен, вопрос какой и в принципе возможно ли это.
На сервере как обычно мониторинг, статистики и прочее. Через овенклауд не хочу.

Saint999
28.07.2020, 17:58
Вот ещё немного подправил:

50221

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

50223

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

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

Сергей0308
28.07.2020, 19:03
Все отлично работает, а как сделать преднастройку по постам, что бы при каждой загрузке не делать вручную, пока тестируется не очень удобно)

Вот добавил в свойства макроса настройку значений по умолчанию:

50379

Останется нужные значения найти, наверно проще В ОЛ сделать небольшой проект для этого!

50380

В переменной(А1), 32 бита(0-31), одной переменной хватает для настройки 4-х кнопок, точнее какие выходы активируются при нажатии каждой из кнопок, кнопке 1 соответствуют биты 0-7, кнопке 2 соответствуют 8-15, кнопке 3 соответствуют биты 16-23, кнопке 4 соответствуют биты 24-31, кнопке 5 соответствуют биты 0-7 переменной А2, кнопке 6 соответствуют биты 8-15(А2), кнопке 7 соответствуют биты 16-23(А2), кнопке 8 соответствуют биты 24-31(А2). Аналогично для второго поста, только переменные А3 и А4, надеюсь понятно рассказал?!

Saint999
29.07.2020, 12:45
Вот добавил в свойства макроса настройку значений по умолчанию:

50379

Останется нужные значения найти, наверно проще В ОЛ сделать небольшой проект для этого!

50380

В переменной(А1), 32 бита(0-31), одной переменной хватает для настройки 4-х кнопок, точнее какие выходы активируются при нажатии каждой из кнопок, кнопке 1 соответствуют биты 0-7, кнопке 2 соответствуют 8-15, кнопке 3 соответствуют биты 16-23, кнопке 4 соответствуют биты 24-31, кнопке 5 соответствуют биты 0-7 переменной А2, кнопке 6 соответствуют биты 8-15(А2), кнопке 7 соответствуют биты 16-23(А2), кнопке 8 соответствуют биты 24-31(А2). Аналогично для второго поста, только переменные А3 и А4, надеюсь понятно рассказал?!

Воспользовался советом, и в симуляторе, прямо в этом проекте рассчитал нужные коды, спасибо
50392

Saint999
29.07.2020, 12:45
День добрый, ПР200 может ходить на сервер, по какому нибудь протоколу, http или сокет или на худой конец модбас через vpn/
Понятное дело какой то модем нужен, вопрос какой и в принципе возможно ли это.
На сервере как обычно мониторинг, статистики и прочее. Через овенклауд не хочу.

А по этому вопросу, нету мыслей как реализовать?

Ревака Юрий
29.07.2020, 12:50
А по этому вопросу, нету мыслей как реализовать?

А почему Owencloud не хотите? А так, Modbus конвертируйте куда нужно, хоть в Telegram отправляйте.

melky
29.07.2020, 12:53
Saint999 для этого надо ответить на несколько вопросов. А именно по доступу к серверу, где у вас идет сбор данных. ПР200 в любом случае будет слейвом для сервера, и только Modbus RTU. Роутер может быть практически любым, а вот GSM модем (лучше GPRS, 3G, 4G) должен уметь поднимать VPN соединение на сервер с реальным IP адресом, чтобы не платить деньги за IP адрес со стороны модема.

Saint999
29.07.2020, 14:32
Так вот вопрос именно в том чем конвертировать и как, модем пм01 я так понимаю не подходит, так как он сам слэйв и пр200 слэйв. У меня есть возможность поставить Teltonika RUT240 но модбас рту в тсп ип перевести чем то нужно (да и дорогой этот вариант, думал чего дешевле организовать).
Я на вставках и на заводе овна ни раз спрашивал почему нельзя сделать реализацию доступа к своему серверу как к овенклауду, тоесть в тот же модем прописываем свои регистрационные данные и адреса, а дальше сос тороны сервера апи поддерживаем, но у них такой подход и менять ничего не собираются.

melky
29.07.2020, 15:07
ПМ01 не подходит для ПР200. Смотрите в сторону Teleofis, выбирайте среди их моделей, в зависимости что вы можете поднять на сервере. Есть модификации с openVPN, есть с l2tp, как вариант с поддержкой m2m может подойти скорее всего (сам не тестировал это решение, но зуб дают что все будет отлично :) ).

з.ы. Овен много не понимает, надеюсь, что со временем у них этот загон пройдет... :)

Saint999
29.07.2020, 15:40
ПМ01 не подходит для ПР200. Смотрите в сторону Teleofis, выбирайте среди их моделей, в зависимости что вы можете поднять на сервере. Есть модификации с openVPN, есть с l2tp, как вариант с поддержкой m2m может подойти скорее всего (сам не тестировал это решение, но зуб дают что все будет отлично :) ).

з.ы. Овен много не понимает, надеюсь, что со временем у них этот загон пройдет... :)

Спасибо почитаю, если есть варианты на сокет вообще было бы шикарно, у меня уже http и WS подняты

игорь68
29.07.2020, 17:36
Коллеги. Возможно глупый вопрос. ПР200 мастер и СМИ2(2 шт ) слейвы. Физически СМИ2 стоят в разных комнатах. И показывают оставшееся время. Как настроить порты у ПР200. Проект прилагаю.

Сергей0308
29.07.2020, 19:48
Коллеги. Возможно глупый вопрос. ПР200 мастер и СМИ2(2 шт ) слейвы. Физически СМИ2 стоят в разных комнатах. И показывают оставшееся время. Как настроить порты у ПР200. Проект прилагаю.

Так у Вас СМИ2 или СМИ1, а то в проекте написано СМИ1, и насколько знаю инт надо в 25 регистр СМИ2 писать, насколько понимаю, РЭ Вы принципиально даже не смотрите! Начните с выяснения, что у Вас СМИ2 или СМИ1, выясните, пишите, дальше будем смотреть!
Вот совсем недавно ругался и проект выкладывал, как раз там в СМИ2 пишется! https://owen.ru/forum/showthread.php?t=12264&page=226

Посмотреть-то Вы можете?

50404

И для настройки СМИ2 я преобразователь АС4 использую, у вас имеется такой или подобный преобразователь, как Вы хотите СМИ2 настроить?

игорь68
29.07.2020, 21:06
СМИ2 две штуки. АС4 есть. В проекте мой косяк. Хотел обозвать как "СМИ 2.1" и "СМИ 2.2" но видимо упустил.

Сергей0308
29.07.2020, 21:22
СМИ2 две штуки.

Хорошо, Вы хотите, чтобы на СМИ2 отображались минуты и секунды, если да(мне приходится догадываться, почему нельзя написать как Вы хотите сделать), умножаете минуты на 100, прибавляете секунды и пишите в 25 регистр, всё! Чтение выключаете в ПР(можно проект посмотреть, что я выложил), для второго СМИ2 аналогично, адреса назначаете разные, например первого "1", второго "2", скорость я бы поставил 115,2 кбит/с и не забудьте настроить в СМИ2 2 знака после запятой, чтобы минуты и секунды точка разделяла!

игорь68
29.07.2020, 21:36
Сергей вставка задаётся в секундах. Макрос ТОН OFF сам делает из секунд минуты. Вот и выходит что нужно видеть что то типа 4:45(четыре минуты сорок пять секунд).

Сергей0308
29.07.2020, 21:46
Сергей вставка задаётся в секундах. Макрос ТОН OFF сам делает из секунд минуты. Вот и выходит что нужно видеть что то типа 4:45(четыре минуты сорок пять секунд).

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

игорь68
29.07.2020, 22:11
Да там отдельно минуты и секунды. На выходе макроса два int числа. Вот эти числа и нужно передать на два индикатора СМИ 2. Только как эти переменны раздать не пойму. Я в настройках прибора создал Мастер это сам ПР. И на второй порт я сделал слейв. И тут я завис. Я создаю для СМИ 2.1 адрес 2. Потом я пытаюсь создать слейв для СМИ 2.2 но не могу. Так как есть СМИ 2.1

Сергей0308
29.07.2020, 22:23
Да там отдельно минуты и секунды. На выходе макроса два int числа. Вот эти числа и нужно передать на два индикатора СМИ 2. Только как эти переменны раздать не пойму. Я в настройках прибора создал Мастер это сам ПР. И на второй порт я сделал слейв. И тут я завис. Я создаю для СМИ 2.1 адрес 2. Потом я пытаюсь создать слейв для СМИ 2.2 но не могу. Так как есть СМИ 2.1

Мне не понятно в чём трудность, всё рассказал, даже проект рабочий выложил, подставляйте ваши значения, он будет писать в СМИ2, может вам сложно запомнить номер регистра - 25, можно и в 26 регистр писать, я так понимаю 25 Вас не устраивает!
Ну и сделайте одинаковые настройки для связи, только адреса разные у СМИ2!

50405

Посмотрел настройки СМИ2 по умолчанию, в принципе для работы достаточно поменять протокол на модбас и адрес одного из приборов, всё!

NisyBoy
02.08.2020, 12:12
Добрый день, посмотрел видео по мониторингу состояния сети в RS485 на панели ИПП120. Воспроизвел алгоритм из видео, но работает он не так как должен. 50475 Переменная по которой проверяется статус сети всегда в единице, в независимости от состояния на входе. Панель не подключена к сети, и сообщение об отсутствии сети не выводится. Не могу понять в чем дело. Экраны настроены, выбрана соответствующая переменная.

NisyBoy
02.08.2020, 12:16
Каким способом можно мониторить состояние связи в ИПП120?

Ревака Юрий
03.08.2020, 09:19
Добрый день, посмотрел видео по мониторингу состояния сети в RS485 на панели ИПП120. Воспроизвел алгоритм из видео, но работает он не так как должен. 50475 Переменная по которой проверяется статус сети всегда в единице, в независимости от состояния на входе. Панель не подключена к сети, и сообщение об отсутствии сети не выводится. Не могу понять в чем дело. Экраны настроены, выбрана соответствующая переменная.

Если Вы в симуляции это проверяете, то скорее всего так и будет, это только на реальном приборе проверяется.

NisyBoy
03.08.2020, 18:27
Если Вы в симуляции это проверяете, то скорее всего так и будет, это только на реальном приборе проверяется.
Загружал в прибор, на секунду появлялся необходимый экран сообщающий о потере связи и сразу исчезал. Хотя прибор не подключен к сети rs485. Вот что смутило.

Ревака Юрий
04.08.2020, 00:10
Загружал в прибор, на секунду появлялся необходимый экран сообщающий о потере связи и сразу исчезал. Хотя прибор не подключен к сети rs485. Вот что смутило.

Какие у Вас приборы, при старте мастер не видит слейв и взводит флаг потери связи, который переключает экран, можно при старте блокировать этот момент или добавить свою логику, в примере вход и выход на экран потери связи по флагу, нужна синхронизация, или делать выход вручную, иначе может получится наоборот, связь есть переходим на экран потери связи, восстановилась выходим с экрана. На этом же принципе пример с датчиком уровня ПДУ по RS построен, только там режимов больше.

sssssaaaaabbbbb
04.08.2020, 12:38
есть у кого код на ST:
одной кнопкой без фиксации нужно включать и выключать реле

petera
04.08.2020, 13:39
есть у кого код на ST:
одной кнопкой без фиксации нужно включать и выключать реле

50498

https://owen.ru/forum/showthread.php?t=10555&p=140888&viewfull=1#post140888

Alges
10.08.2020, 13:56
Уважаемые знатоки подскажите пожалуйста как временно запомнить значение Float или int.
Пытался по искать в поиске, но не знаю как сформулировать правильно
Может есть какой макрос или базовая функция ? мне надо что-бы число заморозилось на момент когда действует логическая единица bool

melky
10.08.2020, 14:25
SEL применить

Alges
10.08.2020, 21:30
SEL применить

Чуток не понял , как коммутатор запомнит число ? всяко попробовал не выходит (
Замотался с этой работай , внимательно посмотрел в онлайн базах макроса там есть эти блоки называются Save

Василий Кашуба
10.08.2020, 21:56
Чуток не понял , как коммутатор запомнит число ? всяко попробовал не выходит (

Нужно скоммутировать выход с нижним входом.

Ревака Юрий
11.08.2020, 00:00
Уважаемые знатоки подскажите пожалуйста как временно запомнить значение Float или int.
Пытался по искать в поиске, но не знаю как сформулировать правильно
Может есть какой макрос или базовая функция ? мне надо что-бы число заморозилось на момент когда действует логическая единица bool

Может этот пример поможет https://www.youtube.com/watch?v=LrpQqC7F9d4

Lukas
11.08.2020, 20:13
Чуток не понял , как коммутатор запомнит число ? всяко попробовал не выходит (
Замотался с этой работай , внимательно посмотрел в онлайн базах макроса там есть эти блоки называются Save

Можно так реализовать

lord2210
12.08.2020, 09:42
День добрый, поясните новичку, является ли время выставленное в генераторе BLINK равнозначно реальному времени, в алгоритмах с большим объёмом вычисления? Или нужно вносить корректировку времени на обработку цикла программы? Т.е. привязано ли время в генераторе BLINK к часам реального времени?50599

Ревака Юрий
12.08.2020, 11:01
День добрый, поясните новичку, является ли время выставленное в генераторе BLINK равнозначно реальному времени, в алгоритмах с большим объёмом вычисления? Или нужно вносить корректировку времени на обработку цикла программы? Т.е. привязано ли время в генераторе BLINK к часам реального времени?50599

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

Серёга Букашкин
12.08.2020, 11:26
BLINK работает по прерываниям, а логика раз в цикл. Поэтому не следует ставить время меньше времени цикла, а то проглатывает часть интервалов без обработки логикой. И что такое большой объём вычислений? Даже в огромных проектах трудно выйти на время цикла более 20мс.

lord2210
12.08.2020, 11:36
даже 3 мс за год сложится в тонны неучтённой продукции. А есть ли макрос чтобы связать переменную "секунда" с часов реального времени на выход булевский.

Ревака Юрий
12.08.2020, 11:39
Забыл что время в мс выводится, 3 мс это немного.

lord2210
12.08.2020, 11:39
Это что время цикла 3 мс? Это симуляция или отладка? По прерываниям таймера вроде работают, за блинк не скажу, но логика в любом случае по циклу работает. Можно проверить, блинк прицепить на выход и задать время меньше времени цикла, проверить как отработает.

это отладка

lord2210
12.08.2020, 14:44
Это что время цикла 3 сек? Это симуляция или отладка? По прерываниям таймера вроде работают, за блинк не скажу, но логика в любом случае по циклу работает. Можно проверить, блинк прицепить на выход и задать время меньше времени цикла, проверить как отработает.


Нашёл на форуме. Спасибо.50608

Сергей0308
12.08.2020, 15:08
Нашёл на форуме. Спасибо.50608

И что это?

lord2210
13.08.2020, 06:13
И что это?

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

Сергей0308
13.08.2020, 06:29
Вот моргалка с частотой 1 сек от часов реального времени, может кому надо будет.
50613

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

lord2210
13.08.2020, 07:22
Эту моргалку Вы не увидите, и будет проще если использовать функцию сравнения на равенство с инверсией, а для моргалки, чтобы увидеть, надо сделать форму импульсов поближе к меандру, скважность уменьшить!

Видеть не надо, надо чтоб работало, а оно работает :)

Сергей0308
13.08.2020, 16:33
Видеть не надо, надо чтоб работало, а оно работает :)

Какая же это моргалка, если она не моргает! Назовите соответственно и я так понимаю: Вы считаете, что чем больше элементов использовано для выполнения той или иной функции(алгоритма), тем лучше?

capzap
13.08.2020, 16:57
Вот моргалка с частотой 1 сек от часов реального времени, может кому надо будет.
50613

Вашу связку можно заменить на такую 50627

dan75
14.08.2020, 19:59
Вашу связку можно заменить на такую 50627

Да можно просто EQ + NOT.

stanislau
14.08.2020, 21:02
Новичку в качестве "моргалки" можно и blink применить:)

capzap
15.08.2020, 10:31
Да можно просто EQ + NOT.

в чем простота, разве количество элементов значительно меньше чем в моем предложении? Вот по скорости, время занимает сравнение больше, видимо потому что построено на сложении по модулю, как у меня 50644

capzap
15.08.2020, 10:33
Новичку в качестве "моргалки" можно и blink применить:)

а этот пост читали? https://owen.ru/forum/showthread.php?t=26216&p=338010&viewfull=1#post338010

stanislau
15.08.2020, 18:42
И что в том посте такого? Ветка то называется "разные вопросы новичка".

dan75
15.08.2020, 22:05
в чем простота, разве количество элементов значительно меньше чем в моем предложении? Вот по скорости, время занимает сравнение больше, видимо потому что построено на сложении по модулю, как у меня 50644

Хорошо. А обсуждалась ли где-нибудь тема времени работы разных ФБ?

melky
16.08.2020, 09:39
Все FB привязаны к циклу. никаких аппаратных прерываний таймеров, блинков в ОЛ вроде нет и никогда не было.

dan75
16.08.2020, 10:40
Все FB привязаны к циклу. никаких аппаратных прерываний таймеров, блинков в ОЛ вроде нет и никогда не было.
Зато время самого цикла непостоянно. Вопрос в том, какие FB больше на него влияют.

melky
16.08.2020, 10:56
capzap к чему ссылка в никуда?, каким образом то и аппаратные таймеры ?
Даже в ПЛК, часть таймеров нифига не аппаратные, все равно на них влияет время цикла. А в ПР подобного вообще нет от слова совсем.

это у вас запой, из контекста вырвали.

dan75 на цикл влияет количество FB, так как на исполнение каждого требуется время (некоторое количество тактов процессора), а такие как R-Trig, F-Trig всегда работают на двух циклах всей программы. Уставки таймеров, блинка тоже сравниваются на следующем цикле. Впрочем как и везде.

melky
16.08.2020, 11:11
capzap да при чем тут все это? речь была о том, что ни таймер, ни блинк не использует аппаратных прерываний.

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

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

В ОЛ такого механизма НЕТ.

извиняюсь за сумбур, не знаю как еще правильно описать данный механизм, когда в ПЛК есть какое-то количество аппаратных таймеров.

dan75
16.08.2020, 11:15
dan75 на цикл влияет количество FB, так как на исполнение каждого требуется время (некоторое количество тактов процессора), а такие как R-Trig, F-Trig всегда работают на двух циклах всей программы. Уставки таймеров, блинка тоже сравниваются на следующем цикле. Впрочем как и везде.
Ну так и я про то! Вроде бы, простой вопрос задал: какие FB больше влияют на скорость. А в ответ получил нечто несвязное, малопонятное и неразделённое на предложения от capzap: "никто, только во первых это вряд ли ни кому не пригодиться, во вторых я как минимум аргументировал свой код и в Ваших словах не заметил посыла, что можно еще так, а почему проще Вы не удосужились объяснить, даже сейчас", бла-бла-бла. А теперь и вы ещё вокруг да около ходите. Я понимаю, что на каждый FB требуется некоторое количество тактов. Я понимаю даже, что для разных FB это количество разное. Осталось только разобраться, кто из FB требует больше времени на обработку. Ну вот, например, в этой теме выяснилось, что XOR предпочтительнее, чем EQ, но хотелось бы, чтобы огласили весь список, пажалуста. Насколь помню, в том же ЛогоСофтКомфорте это аж в инструкции было.

melky
16.08.2020, 11:26
dan75 боюсь вас огорчить, авторы ОЛ наверное этого и сами не знают :) ну не Siemens они и не Schneider....

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

Ревака Юрий
17.08.2020, 09:35
Ну вот, например, в этой теме выяснилось, что XOR предпочтительнее, чем EQ, но хотелось бы, чтобы огласили весь список, пажалуста. Насколь помню, в том же ЛогоСофтКомфорте это аж в инструкции было.

Разница между лого и ПР в том, что в ПР Вам не особо сильно эта информация и нужна, я помню как-то делал перенос программы с лого на ПР, был удивлен малым количеством доступных элементов, может конечно за 4 года что-то изменилось, пока открыв первый попавшийся документ по лого, вижу "Вы можете использовать в вашей коммутационной программе до 200 блоков.", а дальше что? Когда-то нужно было увеличить значительно время цикла, я устал накидывать блоки на холст, счет был на тысячи https://www.youtube.com/watch?v=qC5uuBg-eBc, при этом я старался брать логику посложнее с float, можно проверить на простых И (ИЛИ).

kingoff
18.08.2020, 12:45
Подскажите, а как сделать чтобы при установке DI1=1,DI2=0, в локальную переменную записывалось число к примеру 25, а если DI1=0,DI2=1 в эту же локальную переменную записалось число к примеру 49?это нужно в зависимости от переключающегося тумблера выбиралась скорость двигателя 25 ГЦ либо 49ГЦ

Ревака Юрий
18.08.2020, 12:55
Подскажите, а как сделать чтобы при установке DI1=1,DI2=0, в локальную переменную записывалось число к примеру 25, а если DI1=0,DI2=1 в эту же локальную переменную записалось число к примеру 49?это нужно в зависимости от переключающегося тумблера выбиралась скорость двигателя 25 ГЦ либо 49ГЦ

Блок SEL смотрите.

dan75
18.08.2020, 13:50
Подскажите, а как сделать чтобы при установке DI1=1,DI2=0, в локальную переменную записывалось число к примеру 25, а если DI1=0,DI2=1 в эту же локальную переменную записалось число к примеру 49?это нужно в зависимости от переключающегося тумблера выбиралась скорость двигателя 25 ГЦ либо 49ГЦ

А ежели оба входа=0? Или оба=1?

kingoff
18.08.2020, 19:13
там тумблер переключающийся одинаковых никогда не будет.

dan75
18.08.2020, 19:20
там тумблер переключающийся одинаковых никогда не будет.

Зачем тогда задействовать 2 входа?

kingoff
18.08.2020, 20:02
мало ли провод отвалится или мыши перегрызут, будет видно не исправность.

Saint999
19.08.2020, 10:37
День добрый, можно ли написать программу под модуль расширения ПРМ-24.1, а сам модуль не подключать? Естественно та часть программы что обрабатывается модулем работать не будет, может в меню настройку такую сделать, но основной цикл работать будет? Просто создать и прошить пр получается и вроде даже работает, но это с ходу, может какие то подводные камни есть?
Спасибо!

Ревака Юрий
19.08.2020, 11:35
День добрый, можно ли написать программу под модуль расширения ПРМ-24.1, а сам модуль не подключать? Естественно та часть программы что обрабатывается модулем работать не будет, может в меню настройку такую сделать, но основной цикл работать будет? Просто создать и прошить пр получается и вроде даже работает, но это с ходу, может какие то подводные камни есть?
Спасибо!

Добрый день. Проблем быть не должно, если конечно по какому-то входу из ПРМ, состояние которого видно не будет, Ваша логика не потеряет смысл, а так цикл будет работать, можно даже по флагу состояния модуля сделать сигнализацию, или блокировать часть логики.

kingoff
19.08.2020, 12:02
К ПР200 подключен ручной энкодер с центральной кнопкой для установки температуры нагрева. с помощью каких элементов можно реализовать задачу. Измеренная температура выводится на СМИ2 по ModBus, но как только начинаю вращать ручку энкодера должна выводится заданная температура и в зависимости куда поворачиваю, увеличиваться либо уменьшаться.и если нажать центральную кнопку она запишется в переменную заданной температуры и через 5сек должна начать отображаться на индикаторе опять измеренная температура. а если не нажимать центральную кнопку то также через 5сек должна начать отображаться на индикаторе измеренная температура без записи в переменную заданной температуры.

Алексеев
19.08.2020, 12:13
День добрый, можно ли написать программу под модуль расширения ПРМ-24.1, а сам модуль не подключать? Естественно та часть программы что обрабатывается модулем работать не будет, может в меню настройку такую сделать, но основной цикл работать будет? Просто создать и прошить пр получается и вроде даже работает, но это с ходу, может какие то подводные камни есть?
Спасибо!

Я так понимаю вы хотите делать проект на перспективу . В начале без него , а потом по мере развития его докупить .
Я Сам разрабатываю проекты всего с возможностью выбора конфигурации пользователем . Например если есть подпитка в котельной и он хочет её использовать с реле то входит в меню и устанавливает флаг
И алгоритм начинает на это реагировать с соответствующими аварийными оповещениями .
В Вашем случае аналогично можно сделать флаг наличие ПРМ1 или его отсутствия . И естественно писать проект с учётом этого флага .

Ревака Юрий
20.08.2020, 09:27
К ПР200 подключен ручной энкодер с центральной кнопкой для установки температуры нагрева. с помощью каких элементов можно реализовать задачу. Измеренная температура выводится на СМИ2 по ModBus, но как только начинаю вращать ручку энкодера должна выводится заданная температура и в зависимости куда поворачиваю, увеличиваться либо уменьшаться.и если нажать центральную кнопку она запишется в переменную заданной температуры и через 5сек должна начать отображаться на индикаторе опять измеренная температура. а если не нажимать центральную кнопку то также через 5сек должна начать отображаться на индикаторе измеренная температура без записи в переменную заданной температуры.

Добрый день. Какой у Вас тип энкодера?

kingoff
20.08.2020, 15:37
PEC16-4220F-S0024, Энкодер инкрементный + выключатель (кнопка) Его я подключил и с помощью макроса вращая ручку значение в переменной изменяется. загвоздка у меня как передавать на дисплей временную переменную а потом постоянную

Ревака Юрий
20.08.2020, 16:20
PEC16-4220F-S0024, Энкодер инкрементный + выключатель (кнопка) Его я подключил и с помощью макроса вращая ручку значение в переменной изменяется. загвоздка у меня как передавать на дисплей временную переменную а потом постоянную

Проблема с этими энкодерами что у них рабочее напряжение 5В, а тут нужно 24В заводить, а так да работать будет, на дисплей можно вывести 1 переменную, активировать таймер по кнопке, и пока есть изменение на выходе давать возможность работать энкодеру, если есть n-секунд бездействия, просто запрещать сигналы с энкодера, и что получилось на выходе использовать в работе.

mafckz
20.08.2020, 18:02
Прошу подсказать, есть ли возможность сделать рестарт программы (в софтверной части) для ПР200?
Или всеобщий сброс таймеров и приведение всех переменных на начальный уровень?

Saint999
20.08.2020, 19:08
И я проект для центральной ПР немного переделал под ваши задачи, у вас 7 кнопок режимов работы + кнопка стоп(выключение всех режимов), я ранее делал для 8 кнопок режимов работы + кнопка "стоп", всего 9, поэтому у вас на 1 кнопку всё смещалось, теперь должно всё правильно включаться в последнем варианте программы!
День добрый, соединил я все в один проект и аварии и проверку их и естественно все посты и даже меню нарисовал, но вот никак не получается у меня записать с центрального переменную пульта, тоесть мне нужно по входу поставить таймер, и если вход не меняет свое значение больше чем например 20 минут (настраиваемый параметр) выключить все, на модуле расширения я все выключаю но горит на пульте последняя кнопка, как идея ввести переменную еще одну что бы пульта стоп дергать по рс, но как то некрасиво). В общем может есть какой то совет в каком направлении копать?

Сергей0308
20.08.2020, 21:10
День добрый, соединил я все в один проект и аварии и проверку их и естественно все посты и даже меню нарисовал, но вот никак не получается у меня записать с центрального переменную пульта, тоесть мне нужно по входу поставить таймер, и если вход не меняет свое значение больше чем например 20 минут (настраиваемый параметр) выключить все, на модуле расширения я все выключаю но горит на пульте последняя кнопка, как идея ввести переменную еще одну что бы пульта стоп дергать по рс, но как то некрасиво). В общем может есть какой то совет в каком направлении копать?

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

Может так поможет:

50733

Saint999
21.08.2020, 10:00
Я уже всё забыл, как мы там мастерили и не до конца понимаю, что Вы хотите сделать, насколько понял при нажатой кнопке Вы хотите чтобы включённые выхода соответствующие этой нажатой кнопке, по истечении некого установленного времени(например 20 минут) сами выключались, несмотря на то что кнопка нажата, для повторного включения выходов нужно отпустить и вновь нажать кнопку, я Вас правильно понимаю?

Может так поможет:

50733

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

Сергей0308
21.08.2020, 15:58
Не, я хочу в проекте кто первый встал того и тапки сбрасывать на 8 выход, по rs485, тоесть переменную состояний выходов я опрашиваю, записать что то не получается, можно ввести дополнительную переменную сброса
но я пытаюсь понять что я не так делаю)

Я правильно понимаю что эти выхода куда Вы хотите записать значения - это выхода ПР200, короче, если Вы используете ПР200 как программируемое устройство, то такое невозможно, можно только читать состояния выходов и управлять ими из программы, например передать битовую маску состояния выходов одним регистром и разложить на биты, подобное мы неоднократно уже делали! Можно использовать ПР200 как модуль ввода-вывода(есть такой режим работы), да, тогда можно писать выходы, но любая логика в ПР невозможна, короче ПР станет овощем(растением), надеюсь понятно?!

Если ваша программа соответствует этой картинке, что мы ранее рассматривали:

50738

и Вы хотите писать значение "0" по сети в сетевую переменную Var1, то попробуйте так:

50739

50740

Запись должна быть разовая(кратковременная) и я обычно в мастере создаю две разные сетевые переменные, одну пишу, другую читаю, в слейве это будет одна переменная Var1! Я обычно делаю так, что бы запись шла, пока не считается "0" из этой переменной и ограничиваю по времени 10 секундами, мало ли что, например мыши провод перегрызли!

И мне непонятно, зачем писать загадками?

Saint999
25.08.2020, 10:21
И мне непонятно, зачем писать загадками?

Какие загадки), все кристально чисто и прозрачно, проект выложить, да без проблем:
50772

Только он большой стал уже )
Кстати может подскажете почему как соединил проект аварий и программ в программах циклические связи ОЛ увидел?
Спасибо!

Сергей0308
25.08.2020, 10:50
Какие загадки), все кристально чисто и прозрачно, проект выложить, да без проблем:
50772

Только он большой стал уже )
Кстати может подскажете почему как соединил проект аварий и программ в программах циклические связи ОЛ увидел?
Спасибо!

Я, вроде выкладывал свои проекты, там нельзя посмотреть? Короче, сделайте запись в конце цикла, чтобы не желтело и всё работало, это же в 1000 раз быстрее выяснить просто посмотрев мой проект, не понятно, зачем такое спрашивать?!

50773

Ну, а что в переменную Var1 "0" не пишется, мне так кажется тоже всё очевидно, там у вас вообще функции записи нет, как же она запишется?!

50774

Saint999
25.08.2020, 14:12
Я, вроде выкладывал свои проекты, там нельзя посмотреть? Короче, сделайте запись в конце цикла, чтобы не желтело и всё работало, это же в 1000 раз быстрее выяснить просто посмотрев мой проект, не понятно, зачем такое спрашивать?!

50773

Ну, а что в переменную Var1 "0" не пишется, мне так кажется тоже всё очевидно, там у вас вообще функции записи нет, как же она запишется?!

50774
По поводу записи в конце цикла, я все перепроверил, все сравнил, а вот про переменные даже и не подумал)
По поводу функции записи, я естественно менял это в настройках, просто копию проекта создавал что бы не поломать то что уже работает.

Сергей0308
25.08.2020, 18:55
По поводу записи в конце цикла, я все перепроверил, все сравнил, а вот про переменные даже и не подумал)
По поводу функции записи, я естественно менял это в настройках, просто копию проекта создавал что бы не поломать то что уже работает.

Попробуйте, как я предлагал, чтобы запись шла не постоянно, а по команде(состоянию булевой переменной), мне кажется так предпочтительней, чем постоянно писать переменную!
Я так предполагаю, Вы с экрана хотели сбрасывать переменную, например создаёшь переменную "Сброс_пост_1", "Сброс_пост_2", "Сброс_пост_3", "Сброс_пост_4", и т. д., при редактировании из "Нет" в "Да" - переменной присваивается значение "1" и происходит разовая(кратковременная) запись "0" в сетевую переменную Var_2!

50780

50781

50782

50783

dantist433
27.08.2020, 16:40
Добрый день. Только начал разбираться с Owen. Имеется ПР200-220.2(4).X и Частотный преобразователь A300 на 5.5 кВт. Соединенные через RS-485.
Подскажите, как посмотреть адреса регистров?

dan75
27.08.2020, 18:07
Проще всего обратиться в техподдержку производителя частотника.

Сергей0308
27.08.2020, 23:10
Тоже была такая проблема, обратился к производителю, выслали без проблем, правда у нас ПЧ другой серии В601!

50817

Попробуйте, вероятно и вам подойдёт!

kingoff
01.09.2020, 13:10
а как настроить макрос ПИД регулятора чтобы он снижал мощность градусов за 10 до уставки, а то у печи инерция большая на 7 градусов убегает вверх

Ревака Юрий
01.09.2020, 14:02
а как настроить макрос ПИД регулятора чтобы он снижал мощность градусов за 10 до уставки, а то у печи инерция большая на 7 градусов убегает вверх

Подбирать коэффициенты в соответствии с задачей, либо быстро но с перерегулированием или медленно с дотягиванием.
По ПИД есть инфа тут: https://owen.ru/forum/showthread.php?t=25068&p=338771&viewfull=1#post338771

Сергей0308
02.09.2020, 00:29
а как настроить макрос ПИД регулятора чтобы он снижал мощность градусов за 10 до уставки, а то у печи инерция большая на 7 градусов убегает вверх

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

Алексеев
02.09.2020, 08:45
С Сергеем полностью согласен . Чем больше дифференциальная составляющая , тем больше проявляется эффект подтягивания к заданной величине .
Но имейте ввиду , что если пропорциональный коэффициент будет велик , то может произойти раскачивания процесса ( рассогласования будут увеличиваться) .
Если большая инерционность необходимо использовать шаг дискретизации . То есть производить расчет с определенным шагом равным инерционности системы .

Saint999
02.09.2020, 16:32
Попробуйте, как я предлагал, чтобы запись шла не постоянно, а по команде(состоянию булевой переменной), мне кажется так предпочтительней, чем постоянно писать переменную!
Я так предполагаю, Вы с экрана хотели сбрасывать переменную, например создаёшь переменную "Сброс_пост_1", "Сброс_пост_2", "Сброс_пост_3", "Сброс_пост_4", и т. д., при редактировании из "Нет" в "Да" - переменной присваивается значение "1" и происходит разовая(кратковременная) запись "0" в сетевую переменную Var_2!

День добрый, неделю пытаюсь сделать, ничего не получается.
Есть входы самой центральной пр200, на них подключены микропереключатели реле давлений насосов принцип такой (в дополнение к тому что есть уже), кнопку на пульте нажал, включилась программа (которую мы закодировали в настройках) и начался отсчет времени (задается но по умолчанию 30 секунд) если это реле давления не срабатывала за него мы выключаем насос (сейчас я выключаю все сразу, так как пока не пробовал кодировать именно первый бит и девятый).
50889
50890
Так же не получается сделать алгоритм, есть битовая маск, если она больше 0 значит разрешаем отсчитывать время, но каждый раз когда меняется состоянии входа датчика давления этого поста время обнуляться должно, и не важно вход замкнут или нет, 30 минут не было изменения входа - мы пишем в переменную поста 0 что бы программа сбросилась на стоп.

Сергей0308
02.09.2020, 23:38
День добрый, неделю пытаюсь сделать, ничего не получается.
Есть входы самой центральной пр200, на них подключены микропереключатели реле давлений насосов принцип такой (в дополнение к тому что есть уже), кнопку на пульте нажал, включилась программа (которую мы закодировали в настройках) и начался отсчет времени (задается но по умолчанию 30 секунд) если это реле давления не срабатывала за него мы выключаем насос (сейчас я выключаю все сразу, так как пока не пробовал кодировать именно первый бит и девятый).
50889
50890
Так же не получается сделать алгоритм, есть битовая маск, если она больше 0 значит разрешаем отсчитывать время, но каждый раз когда меняется состоянии входа датчика давления этого поста время обнуляться должно, и не важно вход замкнут или нет, 30 минут не было изменения входа - мы пишем в переменную поста 0 что бы программа сбросилась на стоп.

Насосы, как я понимаю, Вы как то ещё там включаете с другого шкафа?
Вы сделали, что если эти реле давления выключатся на время большее 30 секунд, то битовая маска нажатых на посте кнопок(что читается с других ПР) заменится "0", что равносильно что все кнопки отжаты, я так понимаю это какая-то защита, всё!
Вы же ранее вроде хотели писать "0" в переменную битовой маски в другие ПР, так конечно надёжней, в том плане, что если Вы запишите "0" в переменную на другой ПР, то оператор этого ПР может "передёрнуть" кнопку(выключить и вновь включить) тогда "0" опять перезапишется значением, соответствующим нажатой кнопке!
В остальном не совсем понятно в чём загвоздка, если Вам нужны таймеры с выводом прямого(обратного) отсчёта времени, имеются разные, даже с паузой есть, делаются на основе счётчиков и много раз обсуждались! Если не ошибаюсь, даже в менеджере компонентов имеются!

Saint999
03.09.2020, 10:22
Насосы, как я понимаю, Вы как то ещё там включаете с другого шкафа?

Нет, только с этого.

Вы сделали, что если эти реле давления выключатся на время большее 30 секунд, то битовая маска нажатых на посте кнопок(что читается с других ПР) заменится "0", что равносильно что все кнопки отжаты, я так понимаю это какая-то защита, всё!
Это стандартный алгоритм работы насоса высокого давления: нажал пистолет вода течет, отпустил пистолет - сработал байпасный клапан и начался отсчет времени (10-60 секунд обычно), если пистолет не нажмут за это время насос выключится должен. Пока опять не нажмут на пистолет (реле давления не сработает).
Так вот то что я сделал у меня не работает, вот потому и пишу, я уже голову за неделю сломал что я делаю не так.
Это простой вариант, универсальный вариант это выключать только 1 или 9 выход МУ110, но до этого я еще не дошел)

Вы же ранее вроде хотели писать "0" в переменную битовой маски в другие ПР, так конечно надёжней, в том плане, что если Вы запишите "0" в переменную на другой ПР, то оператор этого ПР может "передёрнуть" кнопку(выключить и вновь включить) тогда "0" опять перезапишется значением, соответствующим нажатой кнопке!

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

Сергей0308
03.09.2020, 10:44
Нет, только с этого.

Это стандартный алгоритм работы насоса высокого давления: нажал пистолет вода течет, отпустил пистолет - сработал байпасный клапан и начался отсчет времени (10-60 секунд обычно), если пистолет не нажмут за это время насос выключится должен. Пока опять не нажмут на пистолет (реле давления не сработает).
Так вот то что я сделал у меня не работает, вот потому и пишу, я уже голову за неделю сломал что я делаю не так.
Это простой вариант, универсальный вариант это выключать только 1 или 9 выход МУ110, но до этого я еще не дошел)

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

Тогда и обычного таймера достаточно, ничего искать не нужно, если Вам отображение прямого(обратного) отсчёта не нужно, а как ноль писать уже советовал!
Можно как то так импульс записи сформировать:

50907

Далее взводится триггер и остаётся взведённым пока ноль не запишется в сетевую переменную с ограничением по времени в 10 секунд, я картинку уже выкладывал чуть раньше!

Это же простейшие элементы, таймеры, чего тут может быть непонятным?!

Saint999
03.09.2020, 17:35
А здесь что я не так сделал? Почему не работает?
https://owen.ru/forum/attachment.php?attachmentid=50889&d=1599053306

Сергей0308
03.09.2020, 18:13
А здесь что я не так сделал? Почему не работает?
https://owen.ru/forum/attachment.php?attachmentid=50889&d=1599053306

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

Saint999
04.09.2020, 10:26
Расписал я все в красках, и перед тем как отправить решил еще раз проверить, а все заработало, что было не так я так и не понял.
Буду пробовать кодировать 1 и 9 выходы МУ110, я решил с простого начать, а оно не работало (

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

Сергей0308
04.09.2020, 13:58
Расписал я все в красках, и перед тем как отправить решил еще раз проверить, а все заработало, что было не так я так и не понял.
Буду пробовать кодировать 1 и 9 выходы МУ110, я решил с простого начать, а оно не работало (

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

Ну, изменения могли и не сохраниться! Не так давно писал в какой-то теме(https://owen.ru/forum/showthread.php?t=12264&page=227), как я галочку сохранял(Запись по изменению), короче, если вносятся какие-то изменения(незначительные тем более), лучше(от греха подальше) сохранять проект как... и новое имя придумать, чтобы старый не перезаписался!
И, если Вы хотите получить ответ на интересующий вопрос, необходимо иметь терпение и каждому желающему помочь придётся, как правило, заново объяснять в чём у вас проблема, тем более когда проект не первый месяц обсуждается и он идёт в общей теме с другими вопросами темы вперемешку, думаю никто(подавляющая часть) не будет выискивать ваши объяснения, иголку в стоге сена, да и забыть можно, за такое время все тонкости, надеюсь, понятно! И ещё бывает(у меня например) чтобы понять в чём загвоздка, приходится многократно уточнять и переспрашивать!

Aviator_VZh
08.09.2020, 16:50
Коллеги, подскажите!
Как подсчитать количество переходов через полночь, прошедших с момента последнего отключения прибора от питания до момента включения?

Ревака Юрий
08.09.2020, 17:25
Коллеги, подскажите!
Как подсчитать количество переходов через полночь, прошедших с момента последнего отключения прибора от питания до момента включения?

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

Aviator_VZh
09.09.2020, 10:38
Думаю самый простой вариант завести энергонезависимую переменную в UNIX time формате, писать туда время, при старте вычитать из текущего значения UNIX time сохраненное, дальше математика.

С математикой и проблема.
Мне нужно подсчитать не количество прошедших суток, а количество переходов через полночь (количество смен дат).

Ревака Юрий
09.09.2020, 10:53
С математикой и проблема.
Мне нужно подсчитать не количество прошедших суток, а количество переходов через полночь (количество смен дат).

Ээ.. а это не одно и тоже, дата меняется в полночь, если выключили 5 сентября, а включили 9, значит было четыре перехода, или у Вас что-то более сложное, что за задача?

Aviator_VZh
09.09.2020, 11:06
Ээ.. а это не одно и тоже, дата меняется в полночь, если выключили 5 сентября, а включили 9, значит было четыре перехода, или у Вас что-то более сложное, что за задача?

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

Aviator_VZh
09.09.2020, 11:17
Понял. Время UNIX делим на 86400, целую часть запоминаем и сравниваем с текущим значением при включении. Разница и есть искомая величина. Спасибо!

Kondratev.S
17.09.2020, 18:41
Добрый день. Не могу понять в чем проблема: На аналоговый вход, настроенный на измерение сопротивления, ставлю макрос Pt1000, для преобразования сопротивления в температуру. При запуске симуляции не получается внести новое значение на вход. Вход не подсвечивается. Подскажите в чем проблема?
51077
настройка входа
51078
Owen logic Версия 1.17.253 ПР200-220.5.X