Цитата Сообщение от Sulfur Посмотреть сообщение
Возвращаюсь к теме энкодеров на Hardella. Написанные мною модули успешно работают в железе. Однако есть небольшой недостаток - при выключении теряются показания (счетчики) энкодера, что естественно по причине того, что память PRU не энергонезависимая. Ломаю голову на тему сохранения показаний. Вопрос не приоритетный, но хочется что бы всё было по фен-шую.
В прошлых реализациях на ПЛК старой версии (без PRU) просто засовывал переменную показаний в ретайн, и этого было достаточно. Хотелось бы сделать нечто подобное и на новой версии ПЛК.
Можно сделать следующим образом:
1) У PRU переменной/FB блока ставим retain
2) При этом на КДС стороне будет создана отдельная программа (напр PRU0_RETAINS) с retain переменными
3) При "pru_memory_read" будут обновляться переменные в PRU0_RETAINS)
4) В момент PRU0Init брать значения из PRU0_RETAINS и с помощью них инициализровать PRU.