PDA

Просмотр полной версии : Вопрос по таймеру



Shera_Best
06.08.2020, 14:42
Добрый день,
подскажите как решить следующую проблему..
заказчик просит поставить таймер на работу установки и что бы через какое-то время система остановилась и запросила пароль (защита от нечестного покупателя)..
что-то никак не соображу как это сделать? Установил таймер с уставкой и подключил к RS тригеру, сброс тригера по паролю. Таймер обозначил как RETAIN.
Так вот, этот таймер почему-то после выкл/вкл ПЛК сразу выходит на уставку и срабатывает тригер, не видет таймер счетс остановленного момента.
Попробовал ЕТ таймер также обозначить как RETAIN но результат тот же. А если таймер не заношу в RETAIN то счет сначала идет, как положено.

Если кто знает другой путь решения то поделитесь плиз..

Николай Суриков
06.08.2020, 19:25
В ПЛК есть встроенные часы реального времени, и библиотека syslibtime для работы с ними. Сделайте проверку по дате времени и блокируйте программу. Имхо так проще.

Shera_Best
06.08.2020, 19:45
о спасибо..

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

Валенок
06.08.2020, 22:36
Таймер обозначил как RETAIN.
Так вот, этот таймер почему-то после выкл/вкл ПЛК сразу выходит на уставку и срабатывает тригер..
Патаму что ретайн-таймер момент включения питания воспринимает как начало следующего круга времени.

Физрук задал школьникам пробежать пол-круга. Когда школьники пробежали четверть физрук уснул. Школьники ушли домой. К началу следующего урока школьники пришли на старт а физрук проснулся. Увидев что школьники на старте он посчитал что они пробежали еще 3 четверти (т.к. двигаться они могли только вперед) И т.к. пройденная четверть + 3 четверти это больше или равно первичной задачи - сразу поставил зачет.
1 к 1.

Shera_Best
07.08.2020, 06:49
понятно..
значит этот момент не доработан в CODSYS.. раз RETAIN хранит в энергонезависимой памяти данные на момент выключения, то он не должен их интерпретировать по другому на момент включения..

capzap
07.08.2020, 07:22
понятно..
значит этот момент не доработан в CODSYS.. раз RETAIN хранит в энергонезависимой памяти данные на момент выключения, то он не должен их интерпретировать по другому на момент включения..
начать надо с главного, а где тот код , по которому будет судить экспертное собщество что КДС не доработан?

melky
07.08.2020, 08:57
Shera_Best а вы станку сколько даете времени поработать, что у вас таймер так быстро срабатывает ?

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

Денис Жмуров
07.08.2020, 15:09
понятно..
значит этот момент не доработан в CODSYS.. раз RETAIN хранит в энергонезависимой памяти данные на момент выключения, то он не должен их интерпретировать по другому на момент включения..

Не надо так буквально воспринимать таймер как программный объект TON.
Я решал эту задачу по-другому.

Пишете таймер, который каждый час инкрементирует retain-переменную на 1. Вот вам счетчик часов наработки.
Ну а далее пишете уже логику запроса пароля при достижении заданной наработки часов, блокировку работы установки, отключения блокировки после ввода пароля и т.п.