PDA

Просмотр полной версии : Впорос по часам реального времени и живучесть постоянной памяти



tigdin
14.07.2014, 14:52
1) Если я не ошибаюсь, до регистров часов можно добраться только через сеть. Причем, делает это мастер. Например, в СМИ1 задаем значение ЧАСа и записываем в регистр 0х402 (ПР-114)...
Как поступить, если нужно, чтобы часы автоматически переводились с летнего на зимнее время? Неужели нужно приходить на работу в воскресенье, чтобы перевести часы ручками? Иначе некое устройство запустится завтра на час раньше (позже).
Почему блок записи в ФБ не видит интервальных таймеров?
Почему нельзя выполнять никакие манипуляции с данными часов?
Почему нельзя программно корректировать точность времени?

Напрашивается выход: "родить" часы в виде макроса. Да, это очень легко, но они будут сбрасывать показания при отключении питания. Ну, да, можно сохранять значения в энергонезависимой памяти. Только пользы от этого? Часы все равно стоят, пока нет питания. Ну, хорошо, можно задействовать пару дискретных входов (DATA, CLK), которые совсем не лишние и отправлять туда значения внешних часов побитно... Но зачем такие извраты? :confused: Поправьте меня, если я ошибаюсь.

И вопрос N2). Задача: некий станочек. Он может в день сделать, например, 30 000 циклов. Это значение нужно сохранять в энергонезависимой памяти, потому, что люди придут завтра и продолжат. Причем продолжаться такое может несколько дней. Счетчик немного посложнее. Кроме обычных "штук", он еще считает "группы". Например 10 групп по 100 экземпляров = 1000. Счетчик (легко!) может сделать 3 000 000 циклов записи/чтения в год! Из моих познаний (которые раздражают профессионалов в области автоматизации), я знаю, что в одну ячейку EEPROM или FLASH память можно записать ну 10 000, ну, ладно -- 100 000 раз, после чего ячейка сдохнет. Обычно, описанная выше задача решается так: по любому интерфейсу к микроконтроллеру можно прилепить энергонезависимую статическую память SDRAM. Микросхема, кстати, может содержать в своем составе часы реального времени с 3-х вольтовой батарейкой и умопомрачительной точностью хода (цена вопроса 300 рублей. Кварц в корпусе микросхемы). Память -- обычная RAM и писать туда можно Петабайты информации... батарейки хватает на 10 лет хода часов.
Как поступить в данном случае? ПЛК для такой задачи -- просто пушкой по воробьям. Задача ПР: запускать на простых логических условиях мотор через педаль. Если нужно, вводить небольшую задержку перед выключением, клацать счетчиком (счетчиками) для оператора, блокировать работу при "открытой" защите и пищать, если оператор ее не закрывает и жмет педаль. Смешно ставить самый простейший ПЛК, стоимостью в 3 раза большей, чем ПР-114.

Самопальные устройства, как мне популярно объяснили, исключены. Более того, АЦП таких устройств совсем не внушает радости в контексте промышленного использования из-за своей уязвимости. Особо опасно возникновение внешнего прерывания на таком входе из-за "иглы".

Посоветуйте, пожалуйста, куда копать? (((

Евгений Сергеевич
21.07.2014, 13:16
Энергонезависимые переменные сохраняются в момент выключения питания. Значит если у вас прибор включают в выключают один раз в день то он спокойно проживет 10 000 дней. Если ячейка сдохнет значение запишется в другую. Так что на 8 лет хватит.

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

lara197a
21.07.2014, 16:04
с часами все можно делать. только писать ручками используя сис тайм либ.
если сложно, то можно использовать для времени специальный прибор.
к примеру пр лого.
а летнее-зимнее время разве не отменили?

tigdin
23.07.2014, 19:09
Евгений, Сергеевич, здравствуйте!
Мне очень приятно, что на мои вопросы реагирует непосредственно производитель.


Энергонезависимые переменные сохраняются в момент выключения питания.
Это немного путает, видимо тех, кто привык думать, что энергонезависимость, это память типа EPROM или FLASH -- записал и забыл. Но, как я уже говорил, такая память имеет ограниченное количество циклов записи. Обычно в таком случае ставится статическая оперативная память с батарейкой. Питания хватает лет на 10. Количество циклов записи неограниченно. И... при отключении питания, обычно, микроконтроллеры наоборот ничего не пишут никуда, потому, что это опасно -- часто просто "портят" значения. Монитор питания (если он есть) при падении напряжения ниже какого-то уровня вырабатывает сигнал RESET и удерживает микроконтроллер в таком состоянии даже после возобновления питания, некоторое время. Я не прошу раскрывать секреты компании Овен, но... получается, что ПР перекидывает переменную из RAM в EPROM, когда обнаруживает факт пропажи питания? Или ARM микроконтроллеры работают несколько иначе? Поправьте меня, если я неправ.

Часы реального времени нужны не для конкретно этой задачи. Существуют такие, где хотелось бы иметь разную реакцию устройства в разные моменты времени. Можно наделать кучу вариантов для интервального таймера, но проще было бы вносить в него различные значения. Ведь его работа в общем сводится к включению-выключению. Интересно то, что реле ПР обладают очень хорошими возможностями и, частично даже перекрывают диапазон ПЛК. В определенных моих задачах трудно использовать ПЛК, потому что нужно разобраться в, например, в CoDeSys. Однако и как программист в прошлом и как человек, очень скромно разбирающийся в электронике, я понимаю, что одной программой проблему не решить. Нужно еще учитывать аппаратные тонкости "железа", причем весьма специфического. А поскольку я не занимаюсь автоматизацией профессионально (по крайней мере пока), то для меня вложение времени в ПЛК "не рентабельно" и не рентабельно.



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


с часами все можно делать. только писать ручками используя сис тайм либ.
Можно по подробнее с этого места? )


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


а летнее-зимнее время разве не отменили?
Как видите, на сегодня уже нет... )

lara197a
23.07.2014, 20:14
SYSLIBETIME.LIB- библиотека КДС.
На форуме есть примеры. Воспользуйтесь поиском.
Описание есть в билиотеках и справке КДС

Шнурок примерно 80-90евриков.

melky
24.07.2014, 09:26
tigdin шнурочки на Лого или Зелио Лоджик стоят конечно дороже, чем для ПР, но вполне вменяемых денег, 2,5-3 тыщи рублей.

Евгений Сергеевич
24.07.2014, 19:40
В Пр114 стоит монитор питания и пишет именно по пропаданию, а чтобы хватило заряда стоят дополнительные емкости. Память перед записью проверяется, что исключает ошибку из-за физической неисправности. Область памяти каждый раз разная так что это увеличивает ее ресурс.

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


На счет часов: функционал будем расширять, потребность понятна - будем подтягивать возможности).

Mikkos
04.05.2022, 12:02
1) Если я не ошибаюсь, до регистров часов можно добраться только через сеть. Причем, делает это мастер. Например, в СМИ1 задаем значение ЧАСа и записываем в регистр 0х402 (ПР-114)...
Как поступить, если нужно, чтобы часы автоматически переводились с летнего на зимнее время? Неужели нужно приходить на работу в воскресенье, чтобы перевести часы ручками? Иначе некое устройство запустится завтра на час раньше (позже).
Почему блок записи в ФБ не видит интервальных таймеров?
Почему нельзя выполнять никакие манипуляции с данными часов?
Почему нельзя программно корректировать точность времени?

Напрашивается выход: "родить" часы в виде макроса. Да, это очень легко, но они будут сбрасывать показания при отключении питания. Ну, да, можно сохранять значения в энергонезависимой памяти. Только пользы от этого? Часы все равно стоят, пока нет питания. Ну, хорошо, можно задействовать пару дискретных входов (DATA, CLK), которые совсем не лишние и отправлять туда значения внешних часов побитно... Но зачем такие извраты? :confused: Поправьте меня, если я ошибаюсь.

И вопрос N2). Задача: некий станочек. Он может в день сделать, например, 30 000 циклов. Это значение нужно сохранять в энергонезависимой памяти, потому, что люди придут завтра и продолжат. Причем продолжаться такое может несколько дней. Счетчик немного посложнее. Кроме обычных "штук", он еще считает "группы". Например 10 групп по 100 экземпляров = 1000. Счетчик (легко!) может сделать 3 000 000 циклов записи/чтения в год! Из моих познаний (которые раздражают профессионалов в области автоматизации), я знаю, что в одну ячейку EEPROM или FLASH память можно записать ну 10 000, ну, ладно -- 100 000 раз, после чего ячейка сдохнет. Обычно, описанная выше задача решается так: по любому интерфейсу к микроконтроллеру можно прилепить энергонезависимую статическую память SDRAM. Микросхема, кстати, может содержать в своем составе часы реального времени с 3-х вольтовой батарейкой и умопомрачительной точностью хода (цена вопроса 300 рублей. Кварц в корпусе микросхемы). Память -- обычная RAM и писать туда можно Петабайты информации... батарейки хватает на 10 лет хода часов. Использовали кварцевый агломерат etna (https://etnaquartz.ru/katalog-etna-quartz/). Как поступить в данном случае? ПЛК для такой задачи -- просто пушкой по воробьям. Задача ПР: запускать на простых логических условиях мотор через педаль. Если нужно, вводить небольшую задержку перед выключением, клацать счетчиком (счетчиками) для оператора, блокировать работу при "открытой" защите и пищать, если оператор ее не закрывает и жмет педаль. Смешно ставить самый простейший ПЛК, стоимостью в 3 раза большей, чем ПР-114.

Самопальные устройства, как мне популярно объяснили, исключены. Более того, АЦП таких устройств совсем не внушает радости в контексте промышленного использования из-за своей уязвимости. Особо опасно возникновение внешнего прерывания на таком входе из-за "иглы".

Посоветуйте, пожалуйста, куда копать? (((



как вопрос решили?