Вход

Просмотр полной версии : отображение чч:мм:сс таймера на дисплее пр200 и возможность редактирования уставки вр



Виктор888
14.08.2020, 14:35
Подскажите пожалуйста как вывести на дисплей время работы? Например при подаче 1 на вход макроса на дисплее начал тикать таймер. И вторая задача это таймер с возможностью редактирования уставки "время работы" с помощью кнопок на пр200. Заранее спасибо

Виктор888
14.08.2020, 17:34
с отображением разобрался, нужно создать сетевую выходную переменную и запихнуть ее в дисплей. Я так понимаю что для редактирования нужен макрос который переделает чч мм сс в секунды, подскажите где его можно посмотреть

Виктор888
14.08.2020, 17:36
И еще вопрос, у меня на дисплее отображается допустим так 3: 2:26, а нужно 03:02:26, как это можно подправить?

dan75
14.08.2020, 19:13
Делал когда-то макрос обратного отсчёта для этих целей. Но там уставку можно было поменять, только когда таймер стоит.

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

И еще вопрос, у меня на дисплее отображается допустим так 3: 2:26, а нужно 03:02:26
Эта проблема решается записью десятков и единиц минут в две разные переменные.

Виктор888
14.08.2020, 19:24
мне нужно просто выставить время, потом нажать кнопку, время пошло и включилась например лампочка. Если кнопку отпустить то лампочка гаснет, повторное нажатие, лампочка снова горит таймер считает заново с заданной уставки

Виктор888
14.08.2020, 19:24
а можно пример с правильной записью времени?

dan75
14.08.2020, 19:41
а можно пример с правильной записью времени?
Вот такой пример.

dan75
14.08.2020, 19:44
мне нужно просто выставить время, потом нажать кнопку, время пошло и включилась например лампочка. Если кнопку отпустить то лампочка гаснет, повторное нажатие, лампочка снова горит таймер считает заново с заданной уставки

Т.е. таймер должен работать, пока кто-то держит кнопку? И при этом время задаётся в часах? Пожалейте оператора!:D

Виктор888
14.08.2020, 20:59
Т.е. таймер должен работать, пока кто-то держит кнопку? И при этом время задаётся в часах? Пожалейте оператора!:D

это я образно чтоб с описанием не заморачиваться.
Спасибо за пример завтра на работе посмотрю. А может и сейчас, под пивко)))

Виктор888
14.08.2020, 21:37
Попробовал его в эмуляторе, спасибо это то что нужно. Считаю что этот макрос нужно занести в "золотой пантеон", то есть в онлайн базу, его том явно не хватает.

Виктор888
14.08.2020, 21:52
Забыл добавить что там не хватает одного важного параметра как часы, там только секунды минуты. Сразу не заметил.

Сергей0308
14.08.2020, 23:31
Забыл добавить что там не хватает одного важного параметра как часы, там только секунды минуты. Сразу не заметил.

Вы как с Луны упали и даже не вчера, а только что!

50640

50641

Можно так, с прямым и обратным отсчётом времени!

dan75
15.08.2020, 12:48
Забыл добавить что там не хватает одного важного параметра как часы, там только секунды минуты. Сразу не заметил.

Да, часов там нет, ибо когда делал этот макрос, они мне не были нужны. Вообще, изначально макрос делался как таймер обратного отсчёта для блоков TON и TOF. Поэтому он работает, когда сигналы не входах En1 и En2 неравны: отсчёт идёт, когда на выходе TON или TOF не то же самое, что на входе. А выход Spms пересчитывает заданную с экрана уставку в мс, для задания уставки блоку TON или TOF.

Но принцип, думаю, понятен? Можно при желании и часы добавить.

Виктор888
15.08.2020, 13:32
Да именно я только что с луны свалился, поэтому не судите строго. Сергей0308 если скинете живые примеры вместо картинок буду очень благодарен.

Виктор888
15.08.2020, 13:58
Да, часов там нет, ибо когда делал этот макрос, они мне не были нужны. Вообще, изначально макрос делался как таймер обратного отсчёта для блоков TON и TOF. Поэтому он работает, когда сигналы не входах En1 и En2 неравны: отсчёт идёт, когда на выходе TON или TOF не то же самое, что на входе. А выход Spms пересчитывает заданную с экрана уставку в мс, для задания уставки блоку TON или TOF.

Но принцип, думаю, понятен? Можно при желании и часы добавить.

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

dan75
15.08.2020, 15:29
Принцип понятен, но время мне дается с трудом. Подскажите как в вашем макросе добавить часы или подсказку дайте. Задавать уставку нужно только часы минуты, показывать чч:мм:cc

Можно, конечно, добавить обработку часов. Но следует помнить, что максимально возможная уставка счётчика CTN, используемого в макросе = 65535. Поэтому таймер в приведённом примере будет ограничен 18ю часами (64800 секунд). Ежели нужно больше, придётся делать каскад из двух счётчиков.

Сергей0308
15.08.2020, 16:13
Какая здесь проблема, если уставка более 18ч 12м 15с, то можно(нужно) применить 32 битный счётчик из менеджера компонентов, в нём и уставку проще ввести, без блока записи в ФБ, как в 16 битном универсальном счётчике из ОЛ.
Но в принципе все зависит от нужной дискретности уставки(минимальной ступеньки), если например достаточно ступеньки в 10 секунд, то максимальное значение уставки можно увеличить в 10 раз с тем же счётчиком, надеюсь понятно?!

Виктор888
15.08.2020, 17:47
Спасибо! Все работает 18ть часов более чем достаточно

Сергей0308
15.08.2020, 23:43
Можно и с паузой таймер сделать, при подобном исполнении это не сложно и даже иметь энергонезависимость, когда это нужно, и это много-много раз уже обсуждалось, короче, оскомину набило, образно выражаясь!

50651

50652

dan75
16.08.2020, 10:38
Спасибо! Все работает 18ть часов более чем достаточно

Тогда из макроса можно убрать последовательность GT-NOТ-SEL, ограничивающую входной сигнал 18ю часами. А на экране Экран1 выставить границы изменения переменой sph.

Виктор888
16.08.2020, 18:04
а для чего убирать эту последовательность?

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

СергейНовосиб
03.09.2020, 03:45
А зачем вообще придумывать макросы, если можно было в ОЛ в функциональных блоках TON, TOF, TP ... - сразу сделать выход с отсчетом времени, а не как сейчас -"Время задержки ...". Это время и так известно, его на вход блока подаешь. CS сделано, а в ОЛ-е почему-то нет. Есть задачи, когда нужен отсчет времени с отображением на дисплее.

Сергей0308
03.09.2020, 05:56
А зачем вообще придумывать макросы, если можно было в ОЛ в функциональных блоках TON, TOF, TP ... - сразу сделать выход с отсчетом времени, а не как сейчас -"Время задержки ...". Это время и так известно, его на вход блока подаешь. CS сделано, а в ОЛ-е почему-то нет. Есть задачи, когда нужен отсчет времени с отображением на дисплее.

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

dan75
03.09.2020, 07:44
А зачем вообще придумывать макросы, если можно было в ОЛ в функциональных блоках TON, TOF, TP ... - сразу сделать выход с отсчетом времени, а не как сейчас -"Время задержки ...". Это время и так известно, его на вход блока подаешь. CS сделано, а в ОЛ-е почему-то нет. Есть задачи, когда нужен отсчет времени с отображением на дисплее.
Ну, пока не сделано. Зато есть бесполезный оператор "чтение из ФБ". Бесполезен он тем, что читает уставку, которая и так известна. Вот ежели бы научить его читать оставшееся время, тогда было бы дело. И не пришлось бы городить макросы.

Ревака Юрий
03.09.2020, 09:37
А зачем вообще придумывать макросы, если можно было в ОЛ в функциональных блоках TON, TOF, TP ... - сразу сделать выход с отсчетом времени, а не как сейчас -"Время задержки ...". Это время и так известно, его на вход блока подаешь. CS сделано, а в ОЛ-е почему-то нет. Есть задачи, когда нужен отсчет времени с отображением на дисплее.

Для таких задач, есть макрос TIME U/D, в остальном с Вами полностью согласен.