PDA

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



alexbig
16.05.2021, 13:32
Добрый день! Только вот вникаю в среду программирования, очень удобно. Купил себе для экспериментов ПР200. Логику реализовать очень просто, а вот с пониманием битов плохо.
И некоторые задачи для меня пока не решаемые.

Задача:
а) Необходимо вести журнал количество нажатий на педаль станка;
б) Необходимо вести журнал часов работы двигателя станка в день;
в) Необходимо объединить в один датированный журнал событий два значения время работы станка и количество нажатий.

Реально ли это реализовать на ПР 200 и сколько таких событий можно хранить в памяти прибора? Есть ли примеры, помогите новичку!?
55097

melky
16.05.2021, 14:49
в памяти можно хранить мало. Ставьте Scada систему

alexbig
16.05.2021, 19:22
на сколько мал? на три дня можно реализовать? пусть будет на три дня! На сколько мал?
23.05-18ч; 5200
23.05-18ч; 5200
23.05-18ч; 5200

melky
16.05.2021, 20:21
Посмотрите в руководстве, сколько там энергонезависимых переменных вообще можно использовать.
На три дня точно можно. Но у вас будет на один день, 3 ячейки примерно памяти примерно. Если захотите выводить в Scada со временем, то 4-ре ячейки.

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

Ищите варианты реализации под ПР Журнал Аварий и пилите под себя. Можно сделать с выводом на экран соответственно.
Если задача только в этом стоит и основная программа управления не большая, то может влезет до 2-х месяцев, но скорее нет, но месяц должен гарантировано влезть.

Да, подобный журнал будет отъедать память и ресурсы и не слабо так. У меня журнал всего на 16-ть записей, программа практически никакая, выполняется примерно 7 мс

Сергей0308
16.05.2021, 20:47
на сколько мал? на три дня можно реализовать? пусть будет на три дня! На сколько мал?
23.05-18ч; 5200
23.05-18ч; 5200
23.05-18ч; 5200

Если определится с необходимой точностью для времени и диапазоном для количества нажатий и тщательно упаковать, чтобы энергонезависимая память без толку не расходовалась, например для сохранения значение номера месяца(диапазон 1-12) хватит четырёх бит(диапазон 0-15), а внутренние переменные 32-х битные, то есть в 8 раз больше значений можно поместить, короче, я так полагаю, на полгода может хватить энергонезависимой памяти ПР!
Вот один из проектов, где я плотно упаковывал данные:
55098
Но я сомневаюсь, что он Вам поможет, даже в соответствующих темах(была не одна подобная тема), где я подробно всё описывал, и Вы сначала с битами разберитесь, что к чему, только потом можно идти дальше!

melky
16.05.2021, 21:08
Сергей0308 в один регистр можно упаковать время только игнорируя год, насколько помню.

Сергей0308
16.05.2021, 21:25
Сергей0308 в один регистр можно упаковать время только игнорируя год, насколько помню.

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

Если далее посчитать: если достаточно, точности измерения времени(минимальная ступенька) до десятых долей часа, то диапазон составит 0-240, ещё 8 бит потребуется(диапазон 0-255), останется 15 бит для счётчика нажатий, это диапазон 0-32767, мне так кажется достаточно одной внутренней переменной для хранения ежесуточных данных, в моём проекте(что выложил) матрица памяти на 32 ячейки, короче на месяц хватит и в проекте 6 таких макросов поместятся, то есть, как я и предполагал на полгода вполне хватает памяти ПР, точнее если её экономно использовать, если даже ничего не упаковывать и не экономить, всё равно без проблем хватит на месяц!
Или можно время писать с точностью(ступенькой) до минуты, потребуется 11 бит, для счётчика количества нажатий остаётся 12 бит, диапазон 0-4095, этого хватит на 3 нажатия в минуту на протяжении суток, надеюсь ТС этого хватит?!

Vladimir F
23.05.2021, 20:37
Подскажите пожалуйста как можно реализовать следующие. Работа насоса длится 10 минут затем на 10 минут останавливается. Как реализовать возможность корректировки времени с панели оператора.

melky
23.05.2021, 21:27
Vladimir F использовать таймеры или Blink в которые можно вводить данные через блок записи в FB, блок записи пишет значения в блоки в миллисекундах.

Vladimir F
24.05.2021, 07:20
Спасибо попробуем. Тогда отпишусь.