Вход

Просмотр полной версии : ПР200 как использовать функциональные кнопки в программе?



Pulsar1311
18.10.2022, 06:25
Здравствуйте.
Подскажи, возможно ли использование функциональных кнопок ПР200("ALT" , "SEL" и тд) в программе?
Пример. Я бы хотел сбрасывать выполнение своего макроса по удержанию кнопки "ALT", бит сброса вывел, переменную назначил, но как к ней привязать "ALT"?

1exan
18.10.2022, 06:39
Здравствуйте.
Подскажи, возможно ли использование функциональных кнопок ПР200("ALT" , "SEL" и тд) в программе?
Пример. Я бы хотел сбрасывать выполнение своего макроса по удержанию кнопки "ALT", бит сброса вывел, переменную назначил, но как к ней привязать "ALT"?

Кнопки недоступны для использования в программе.
Единственный вариант - изменение переменной на экране и отслеживание её значения в программе (и сброс этой переменной к исходному значению в программе при необходимости).
Эта переменная может быть как битом, так и словом.

1exan
18.10.2022, 06:42
Пример использования булевой переменной с автосбросом после её установки:
63181

Pulsar1311
18.10.2022, 07:41
жаль
а если по кнопке сделать переход на пустой экран, не получится как то прописать условие что при переходе к пустому экрану включался какой-нибудь бит доступный в переменных?

Pulsar1311
18.10.2022, 07:42
Пример использования булевой переменной с автосбросом после её установки:
63181

Тогда буду отдельную кнопку на дискретный вход делать.
Просто удобно было бы использовать функциональные кнопки.

1exan
18.10.2022, 08:29
жаль
а если по кнопке сделать переход на пустой экран, не получится как то прописать условие что при переходе к пустому экрану включался какой-нибудь бит доступный в переменных?

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

1exan
18.10.2022, 08:33
Тогда буду отдельную кнопку на дискретный вход делать.
Просто удобно было бы использовать функциональные кнопки.

Да, через изменение переменной управлять не совсем удобно. Но - смотря насколько часто это требуется делать, и есть ли необходимое количество физических входов.

ПавелП
01.11.2022, 21:07
Кнопки недоступны для использования в программе. Я что-то пропустил в документации?
Пульт можно использовать по моему усмотрению, или не???

Сергей0308
01.11.2022, 21:41
Я что-то пропустил в документации?
Пульт можно использовать по моему усмотрению, или не???

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

ПавелП
01.11.2022, 22:18
Если Вы уверены в обратном ??? Это откуда такой вывод???

Короче, не часто такие уникальные люди нас посещают, другие люди обычно чего-то не знают! Сергей. Поаккуратнее с такими высказываниями.
Я действительно с удивлением спросил, считая что, по умолчанию, вся панель доступна.
Достаточно сказать, что не всё доступно, и я пороюсь именно в этой теме.
Буду благодарен, если укажите где подробности обсуждались.

Сергей0308
01.11.2022, 22:31
??? Это откуда такой вывод???
Сергей. Поаккуратнее с такими высказываниями.
Я действительно с удивлением спросил, считая что, по умолчанию, вся панель доступна.
Достаточно сказать, что не всё доступно, и я пороюсь именно в этой теме.
Буду благодарен, если укажите где подробности обсуждались.

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

ПавелП
01.11.2022, 22:58
Вы то откуда уверены в обратном, по другому Ваш пост трактовать нельзя! Там два вопроса, а не утверждения.

Здесь и обсуждать нечего, это правда, кнопки в программе не доступны! Давно товарищи просят Овен это сделать! Это плохо. Я, когда выбирал, на пульт рассчитывал... :(
ПР200 придёт на днях, я только начал моделировать, и тут такой облом.
Придётся ставить внешние, и мультиплексировать кнопки на входы, которых уже будет не хватать.
Про дополнительные расширения IO я знаю.
Хорошо что два RS485 - придётся AVR под пульт поставить. :)

Сергей0308
01.11.2022, 23:04
Там два вопроса, а не утверждения.
Это плохо. Я, когда выбирал, на пульт рассчитывал... :(
ПР200 придёт на днях, я только начал моделировать, и тут такой облом.
Придётся ставить внешние, и мультиплексировать кнопки на входы, которых уже будет не хватать.
Про дополнительные расширения IO я знаю.
Хорошо что два RS485 - придётся AVR под пульт поставить. :)

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

Сергей0308
01.11.2022, 23:36
Там два вопроса, а не утверждения.
Это плохо. Я, когда выбирал, на пульт рассчитывал... :(
ПР200 придёт на днях, я только начал моделировать, и тут такой облом.
Придётся ставить внешние, и мультиплексировать кнопки на входы, которых уже будет не хватать.
Про дополнительные расширения IO я знаю.
Хорошо что два RS485 - придётся AVR под пульт поставить. :)

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

63574

ПавелП
02.11.2022, 11:17
Может лишний раз придётся на кнопку нажать, неужели это так принципиально? Придётся выкручиваться. Доку читать буду повнимательней.

"Я что-то пропустил в документации?" Это вопрос, о том, что я что-то упустил в документации.
И далее я чётко пояснил своё не знание вопроса.

Буду благодарен, если Вы будете воспринимать мои вопросы - как вопросы, без синемантики. :)

P.S. Я технарь, и мне в голову не придёт выяснять, или возвышаться, или выпячиваться.

Булева алгебра, и больше ничего!!!

melky
02.11.2022, 11:35
Уж сколько лет просят добавить управление кнопками в программе, а воз и ныне там :)

1exan
02.11.2022, 12:16
Уж сколько лет просят добавить управление кнопками в программе, а воз и ныне там :)

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

melky
02.11.2022, 13:41
1exan это можно разрулить удержанием какой-то кнопки на уровне firmware самого ПР, по аналогии с ALT. Было бы желание...
А так же попаданием в экран со свойством работы кнопок, от которого уже плясать в программе

ПавелП
02.11.2022, 14:11
Уж сколько лет просят добавить управление кнопками в программе, а воз и ныне там :) Тут есть представители?

melky
02.11.2022, 15:08
ПавелП да тут целый вагон менеджеров от Овен пасется :) вы как первый раз за мужем :)

ПавелП
02.11.2022, 19:37
ПавелП да тут целый вагон менеджеров от Овен пасется :) вы как первый раз за мужем :) Я замужем не был, и не хочу.
Я первый раз на этом форуме. :)

Как я понял, они не отвечают на такие вопросы...

Dimensy
02.11.2022, 19:52
Как я понял, они не отвечают на такие вопросы...

Ну почему, отвечают фразами типа "возможно, когда рак на горе свистнет..." и "а зачем это вам надо"

ПавелП
02.11.2022, 22:36
Ну почему, отвечают фразами типа "возможно, когда рак на горе свистнет..." и "а зачем это вам надо" Так бывает, когда пытаются объять необъятное...
Сами мы дописать не можем оболочку. Исходники закрыты?

melky
02.11.2022, 22:54
"а зачем это вам надо" :) От исходников ОЛ толку мало, еще необходимы исходники самой ПР, что в нее прошивается.

ПавелП
03.11.2022, 00:11
"а зачем это вам надо" :) От исходников ОЛ толку мало, еще необходимы исходники самой ПР, что в нее прошивается. Это ОС на обычный ARM. Причём АРМ копеечный.
Заплатили за ПР200-24.5.2.0 $316, вот жду. Себестоимость такой железяки, пусть $100.
Но ОВЕН сертифицирован, и организациям пофигу $100 или $316 платить. Мне тоже. :)
Для себя я и AVR поставлю за 3 рубля.
Пока девайс не привезли - пишу в эмуляторе на ST.
Слава богу ST там появился!!!

melky
03.11.2022, 11:00
ПавелП ну вы же не будете каждый раз перепиливать ОЛ, что-то добавив. А разбираться в декомпилированном варианте без исходников это жесть... по себе знаю...

ПавелП
03.11.2022, 20:04
ПавелП ну вы же не будете каждый раз перепиливать ОЛ, что-то добавив. А разбираться в декомпилированном варианте без исходников это жесть... по себе знаю... Ха. Не надо ничего переписывать!
Но проприетарный софт надо получше изучить, прежде чем ему доверять свою судьбу! :)
Потери от глюков могут быть фатальными...

corado
06.12.2022, 22:45
Раз уж в этой теме разговор идет про кнопки, может кто мне подскажет, у меня на пр200 нет свободных входов чтобы поставить кнопку без фиксации , мне надо сделать сброс аварий с меню экрана, как это сделать мы могееем:D суть такова, на экран выводим ввод/вывод булеан или инт флоат, селектом выбираем наш нолик, кнопочками меняем нолик на единичку, жмем ОК и в программе сбросилась переменная, но затем надо эту единичку опять селектом и стрелочкой вернуть в нолик и нажать ОК иначе это состояние так и останется включенным а возможно ли как нибудь сделать так чтобы оно само себя вернуло в исходное состаяние по типу кнопки без фиксации.

Dimensy
06.12.2022, 23:42
Раз уж в этой теме разговор идет про кнопки, может кто мне подскажет, у меня на пр200 нет свободных входов чтобы поставить кнопку без фиксации , мне надо сделать сброс аварий с меню экрана, как это сделать мы могееем:D суть такова, на экран выводим ввод/вывод булеан или инт флоат, селектом выбираем наш нолик, кнопочками меняем нолик на единичку, жмем ОК и в программе сбросилась переменная, но затем надо эту единичку опять селектом и стрелочкой вернуть в нолик и нажать ОК иначе это состояние так и останется включенным а возможно ли как нибудь сделать так чтобы оно само себя вернуло в исходное состаяние по типу кнопки без фиксации.

Вот так это делается https://owen.ru/forum/showthread.php?t=37123&p=395457&viewfull=1#post395457

corado
07.12.2022, 00:12
Вот так это делается https://owen.ru/forum/showthread.php?t=37123&p=395457&viewfull=1#post395457

хорошо, тогда как включить расширеный режим в свойствах:( у меня в свойствах переменной, такого нет.64360

Dimensy
07.12.2022, 06:00
хорошо, тогда как включить расширеный режим в свойствах:( у меня в свойствах переменной, такого нет.64360

Такое свойство имеют переменные, которые расположены на экране

corado
07.12.2022, 06:54
спасибо за подсказку;), буду пробовать

Ткачук
02.04.2025, 16:01
Облом я тоже рассчитывал на кнопки, куча кнопок и такое фиаско братан, причем читая инструкцию там так хитро вывернуто написано что вот кнопки вот настройки, да не к ПР 200

Ткачук
04.04.2025, 15:00
Добрый день! Подскажите пожалуйста реле ПР200-220.220.2.1.0 Не получается сделать. Нужно с панели задать допустим 100 часов, включается обратный отсчет и на DO подаются раз в две секунды импульсы через бленкер вкл, выклю, идет счет импульсов это я сделал на панели. А вот задачу времени с панели времени и пуска с панели при заданном времени не получается. Смысл такой задаю часы (идет обратный отсчет) с панели реле работают и считают срабатывания, по окончанию вижу сколько срабатываний было времени и что время закончилось, если свет отключили, то при включении счетчики и время просто с того же момента должны начать. И если возможно, то подробно для новичка, не вырезая элементарные вещи из контеста

Dimensy
04.04.2025, 15:10
Добрый день! Подскажите пожалуйста реле ПР200-220.220.2.1.0 Не получается сделать. Нужно с панели задать допустим 100 часов, включается обратный отсчет и на DO подаются раз в две секунды импульсы через бленкер вкл, выклю, идет счет импульсов это я сделал на панели. А вот задачу времени с панели времени и пуска с панели при заданном времени не получается. Смысл такой задаю часы (идет обратный отсчет) с панели реле работают и считают срабатывания, по окончанию вижу сколько срабатываний было времени и что время закончилось, если свет отключили, то при включении счетчики и время просто с того же момента должны начать. И если возможно, то подробно для новичка, не вырезая элементарные вещи из контеста

Дискретность задания времени какая должна быть? - часы, минусы, секунды? Максимальное время какое можно задать?

Сергей0308
04.04.2025, 15:25
Добрый день! Подскажите пожалуйста реле ПР200-220.220.2.1.0 Не получается сделать. Нужно с панели задать допустим 100 часов, включается обратный отсчет и на DO подаются раз в две секунды импульсы через бленкер вкл, выклю, идет счет импульсов это я сделал на панели. А вот задачу времени с панели времени и пуска с панели при заданном времени не получается. Смысл такой задаю часы (идет обратный отсчет) с панели реле работают и считают срабатывания, по окончанию вижу сколько срабатываний было времени и что время закончилось, если свет отключили, то при включении счетчики и время просто с того же момента должны начать. И если возможно, то подробно для новичка, не вырезая элементарные вещи из контеста

Здесь выкладывал энергонезависимый таймер с прямым и обратным отсчётом времени, как я понимаю вполне подойдёт для ваших хотелок:
https://owen.ru/forum/showthread.php?t=33720&p=353353&viewfull=1#post353353

kondor3000
05.04.2025, 10:58
Добрый день! Подскажите пожалуйста реле ПР200-220.220.2.1.0 Не получается сделать. Нужно с панели задать допустим 100 часов, включается обратный отсчет и на DO подаются раз в две секунды импульсы через бленкер вкл, выклю, идет счет импульсов это я сделал на панели. А вот задачу времени с панели времени и пуска с панели при заданном времени не получается. Смысл такой задаю часы (идет обратный отсчет) с панели реле работают и считают срабатывания, по окончанию вижу сколько срабатываний было времени и что время закончилось, если свет отключили, то при включении счетчики и время просто с того же момента должны начать. И если возможно, то подробно для новичка, не вырезая элементарные вещи из контеста

Вот мой вариант на ST, таймер обратного отсчёта с задачей времени и памятью наработки 82899
В примере задано 100 час , прямой и обратный отсчёт, запоминает наработку в секундах и кол-во включений.

Таймер в среде Codesys 2.3 https://owen.ru/forum/showthread.php?t=41403&p=464812&viewfull=1#post464812

Ткачук
07.04.2025, 08:34
Мне нужно что бы работал не от входа, а только по заданию с дисплея, поставил 100 часов он вкл. выкл. бленкером делает, выключилось питание, сколько было оттуда и начал (после подключения) и видно сколько было осталось 34 часа например и было 1000 вкл.

kondor3000
07.04.2025, 08:38
Мне нужно что бы работал не от входа, а только по заданию с дисплея, поставил 100 часов он вкл. выкл. бленкером делает, выключилось питание, сколько было оттуда и начал (после подключения) и видно сколько было осталось 34 часа например и было 1000 вкл.

В чём проблема то? Вы блок в эмуляции хоть проверяли?
Вход Enabl включает блоки и отсчёт, подайте на него выход Blink, а задачу времени выведите на экран. 82926
Например с 2 блоками, один считает наработку, второй кол-во включений, при достижении таймером 0, останавливается всё.
Чтобы схема с Блинком работала сама, без кнопки Пуска, можно на вход схемы подать просто константу 1.

Ткачук
07.04.2025, 10:12
У меня сейчас логика работает как надо, но у меня сохраняются при выключении питания только введение с клавиатуры минуты, как сделать что бы остальные переменные сохранялись и стартовали с того же места?829288292882929

Dimensy
07.04.2025, 10:25
У меня сейчас логика работает как надо, но у меня сохраняются при выключении питания только введение с клавиатуры минуты, как сделать что бы остальные переменные сохранялись и стартовали с того же места?

Ну, если все работает и устраивает, тогда открываете макрос Time U/D, в нем находите и открываете макрос CTN32 и делаете его энергонезависимым
82930
Счетчик, который, в основной программе в настройках делается энергонезависимым
82931

kondor3000
07.04.2025, 10:30
У меня сейчас логика работает как надо, но у меня сохраняются при выключении питания только введение с клавиатуры минуты, как сделать что бы остальные переменные сохранялись и стартовали с того же места?829288292882929

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

32 разрядный счётчик CTN, который применён в TIME U/D, не имеет такой настройки как энергонезависимость.

Ткачук
07.04.2025, 11:54
Это я поправил, вопрос остался только как время сохранить теперь 82940

Ткачук
07.04.2025, 12:19
Время в таймере при отключении стартует с задорного значения. Нужен энергонезависимый таймер?

kondor3000
07.04.2025, 12:22
Время в таймере при отключении стартует с задорного значения. Нужен энергонезависимый таймер?

Ткачук , может прочитаете что вам писали ? 3 раз спрашиваете, на что уже 3 раза ответили.

Ткачук
08.04.2025, 08:50
82951 не знаю где ошибся, но он не считает совсем

kondor3000
08.04.2025, 09:06
82951 не знаю где ошибся, но он не считает совсем

Часы не заданы, зачем 0 считать? Вы хоть в симуляции проверить можете?
На задаче минут не та переменная поставлена.

Ткачук
08.04.2025, 09:16
8295382954 Не понимаю, таймер не останавливается после 0, а выдает непонятно что82955

kondor3000
08.04.2025, 09:18
8295382954 Не понимаю, таймер не останавливается после 0, а выдает непонятно что82955

У вас тут нет Блинка и схемы сравнения, как на предыдущем скрине, как он остановится то?

Ткачук
08.04.2025, 09:28
В предыдущий не считал

Ткачук
08.04.2025, 12:20
Спасибо большое за помощь все работает отлично! Извините за невнимательность. Если кому вдруг подобное понадобится 829628296382964

Ткачук
08.04.2025, 14:47
Еще пожалуйста можете подсказать как можно реализовать задание в секундах что у него задаются генератор импульсов на включение, выключение не в программе а так же с дисплея?

kondor3000
08.04.2025, 16:09
Еще пожалуйста можете подсказать как можно реализовать задание в секундах что у него задаются генератор импульсов на включение, выключение не в программе а так же с дисплея?

Если вы про Блинк, то там тоже можно задавать секунды через Write To Fb (находятся над схемой), только их надо умножить на 1000 82965
Время задаётся в мс.

pahotnyh
15.04.2025, 15:53
Вот мой вариант на ST, таймер обратного отсчёта с задачей времени и памятью наработки 82899
В примере задано 100 час , прямой и обратный отсчёт, запоминает наработку в секундах и кол-во включений.

Спасибо за блок. То что надо для управления ротацией насосов по наработке.

kondor3000
15.04.2025, 15:58
Спасибо за блок. То что надо для управления ротацией насосов по наработке.

Посмотрите ещё тут, последние версии.
4 насоса_Нараб_Ротация по времени и миним. наработке, память и аварии https://owen.ru/forum/showthread.php?t=38920&page=2#13

А тут для будущих проектов https://owen.ru/forum/showthread.php?t=37203&page=9&p=429061#81

pahotnyh
15.04.2025, 18:56
Посмотрите ещё тут, последние версии.
4 насоса_Нараб_Ротация по времени и миним. наработке, память и аварии https://owen.ru/forum/showthread.php?t=38920&page=2#13

А тут для будущих проектов https://owen.ru/forum/showthread.php?t=37203&page=9&p=429061#81

Ваш блок требует доработки. Мне нужна возможность редактирования наработки через меню ПР205. К примеру после замены насоса. И представление наработки нужно независимое ЧЧ ММ СС. Редактирование только ЧЧ и ММ.
С раздельным выводом проблем нет, но с редактированием нужно подумать над реализацй.

kondor3000
15.04.2025, 19:11
Ваш блок требует доработки. Мне нужна возможность редактирования наработки через меню ПР205. К примеру после замены насоса. И представление наработки нужно независимое ЧЧ ММ СС. Редактирование только ЧЧ и ММ.
С раздельным выводом проблем нет, но с редактированием нужно подумать над реализацй.

При замене насоса нужен сброс наработки, но не редактирование. Сброс есть.
Так каждый будет наработку менять, получится фигня). Сделать можно всё, но это будет не правильно.

pahotnyh
15.04.2025, 19:23
При замене насоса нужен сброс наработки, но не редактирование. Сброс есть.
Так каждый будет наработку менять, получится фигня). Сделать можно всё, но это будет не правильно.

Не соглашусь. Насос может быть заменен, заменен на не новый, поменяны местами и т.д. Учет серийного номера будет предусмотрен. В перспективе можно и сигнализацию на обслуживание реализовать.
P.S. Работаю в основном с генераторными контроллерами. Идеи черпаю оттуда. Там все это есть.

pahotnyh
15.04.2025, 20:09
Посмотрите ещё тут, последние версии.
4 насоса_Нараб_Ротация по времени и миним. наработке, память и аварии https://owen.ru/forum/showthread.php?t=38920&page=2#13

А тут для будущих проектов https://owen.ru/forum/showthread.php?t=37203&page=9&p=429061#81

Спасибо за подсказки!
Ротацию планирую по моточасам реализовать.

pahotnyh
15.04.2025, 20:35
Посмотрите ещё тут, последние версии.
4 насоса_Нараб_Ротация по времени и миним. наработке, память и аварии https://owen.ru/forum/showthread.php?t=38920&page=2#13

А тут для будущих проектов https://owen.ru/forum/showthread.php?t=37203&page=9&p=429061#81

Я ST только начал курить. Вы писали, что время лучше системный таймер использовать. Как лучше генератор на 1 сек сделать?

Dimensy
15.04.2025, 21:19
... Как лучше генератор на 1 сек сделать?
По разному, например, вот так


a1 := dt_to_udint(get_date_time());
Q := not (SYS.compare_date_time(a1, a2, 1) = 0);
a2 := a1;

pahotnyh
15.04.2025, 21:23
По разному, например, вот так


a1 := dt_to_udint(get_date_time());
Q := not (SYS.compare_date_time(a1, a2, 1) = 0);
a2 := a1;

Я так сделал.

T:=TIME_TO_UDINT(GET_TIME())/1000;
IF T-T1 = 1 THEN Tic:=TRUE; ELSE Tic:=FALSE; END_IF;
IF Tic THEN T1:=T; END_IF;
IF Enab AND Tic THEN C_:=TRUE; ELSE C_:=FALSE; END_IF;

pahotnyh
15.04.2025, 21:25
По разному, например, вот так


a1 := dt_to_udint(get_date_time());
Q := not (SYS.compare_date_time(a1, a2, 1) = 0);
a2 := a1;

С помощью SYS.compare наверное правильней будет..

kondor3000
15.04.2025, 21:27
Не соглашусь. Насос может быть заменен, заменен на не новый, поменяны местами и т.д. Учет серийного номера будет предусмотрен. В перспективе можно и сигнализацию на обслуживание реализовать.
P.S. Работаю в основном с генераторными контроллерами. Идеи черпаю оттуда. Там все это есть.

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

Dimensy
15.04.2025, 21:29
Я так сделал.

T:=TIME_TO_UDINT(GET_TIME())/1000;
IF T-T1 = 1 THEN Tic:=TRUE; ELSE Tic:=FALSE; END_IF;
IF Tic THEN T1:=T; END_IF;
IF Enab AND Tic THEN C_:=TRUE; ELSE C_:=FALSE; END_IF;

Тогда уж так


a1 := time_to_udint(get_time());
Q := a1 - a2 >= 1000;
if Q then a2 := a1; end_if

pahotnyh
15.04.2025, 21:31
Вот вам переделанный таймер, с возможностью установки наработки по биту Запись

Спасибо! Посмотрю.

pahotnyh
15.04.2025, 22:28
time_to_udint(get_time() таймер не сбрасывается?
Его переполнение произойдет через примерно 49 суток

pahotnyh
15.04.2025, 22:34
time_to_udint(get_time() таймер не сбрасывается?


Естественно нет.

pahotnyh
16.04.2025, 16:49
Сделал так.

kondor3000
16.04.2025, 17:32
Сделал так.

По моему не доделали, по отдельности вверху и внизу часы изменить не даёт, только вместе. Где задача наработки и задача времени не понятно.
Главное, чтобы работало как вам надо)

pahotnyh
16.04.2025, 17:38
По моему не доделали, по отдельности вверху и внизу часы изменить не даёт, только вместе.

Ну все в процессе..
Верхняя панель отображает текущее время, нижняя - ввод нового значения по входу Set. Одновременное обращение к энергонезависимой переменной не работает. По этому появились входы Fh.. - обратная связь, и Ih.. - новое значение. Если подскажете как лучше сделать, буду признателен.

kondor3000
16.04.2025, 17:41
Ну все в процессе..
Верхняя панель отображает текущее время, нижняя - ввод нового значения по входу Set. Одновременное обращение к энергонезависимой переменной не работает. По этому появились входы Fh.. - обратная связь, и Ih.. - новое значение. Если подскажете как лучше сделать, буду признателен.

Так зачем вам пример то дал? Смотрите как работает, ещё и отладка есть, прямо в ФБ.
Раньше, что в блоке твориться, только догадываться надо было или переменные все выводить наружу.
Или переносить в Codesys 2.3 и смотреть там.

Если коротко, то счётчик считает секунды ET, а для записи наработки в него, требуется передёрнуть вход сброса R, у меня 3 переменных для инициализации при старте программы, сброса в 0 и сброса для записи наработки.
Соответственно на вход N в разных вариантах надо подать наработку, ноль или задачу наработки.
CTU1 (U :=ET<>ET_, N:=T_1, R:=x_ or Res or R_Trig.Q, Q=>T1 );
ET_:=ET;

pahotnyh
16.04.2025, 18:58
Так зачем вам пример то дал? Смотрите как работает, ещё и отладка есть, прямо в ФБ.
Раньше, что в блоке твориться, только догадываться надо было или переменные все выводить наружу.
Или переносить в Codesys 2.3 и смотреть там.

Так я на основе ваших блоков и делал + мануал по OL.
На данном этапе пока получается то что нужно. Запись и сброс наверно лучше через Rtrig делать. Как думаете?

kondor3000
16.04.2025, 21:20
Так я на основе ваших блоков и делал + мануал по OL.
На данном этапе пока получается то что нужно. Запись и сброс наверно лучше через Rtrig делать. Как думаете?

Rtrig не везде подходит, для инициализации нужна разовая защёлка, сброс по IF, а запись можно по Rtrig

pahotnyh
17.04.2025, 10:11
Добавил счетчик количества включений.
Все работает, но не нравится реализация редактирования значений через доп переменные.

Сергей0308
17.04.2025, 10:15
Выводите нужные переменные на экран и редактируйте, зачем что-то усложнять, в смысле, пытаться сделать через заднее место?!

pahotnyh
17.04.2025, 10:39
Выводите нужные переменные на экран и редактируйте, зачем что-то усложнять, в смысле, пытаться сделать через заднее место?!
Из-за того что переменная задействована в счетчике через экран она не меняется. Если знаете как сделать, то подскажите. Проект я приложил.

Dimensy
17.04.2025, 12:03
Добавил счетчик количества включений.
Все работает, но не нравится реализация редактирования значений через доп переменные.

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

pahotnyh
17.04.2025, 12:19
А напомните, зачем нам редактировать значение наработки?
И у вас количество включений будет сбрасываться при перезагрузке

Повторюсь, только начинаю в OL работать.
Редактирование необходимо для корректного учета м/ч в ситуации когда будет произведена замена на не новый насос и данные должны вноситься из эксплуатационного паспорта. Подобный алгоритм реализовывал в энергетике. Запуск ДГУ по наработке. До этого была простая циклическая ротация 1-2-3-1.. Это привело к тому что наработка отличалась в некоторых случаях кратно!
Переменная количества включений энергонезависимая.

Dimensy
17.04.2025, 12:24
...Переменная количества включений энергонезависимая.
Да? А то что счетчик SYS.CTN не имеет энергонезависимости вас не смущает?

pahotnyh
17.04.2025, 12:32
Да? А то что счетчик SYS.CTN не имеет энергонезависимости вас не смущает?
Это поправимо.
P.S. И вторично. Информация нужна больше для статистики. К примеру, при равной наработке можно оценить производительность.