Использование Beckhoff Novram

Использование Beckhoff Novram

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

Для сохранения данных в энергонезависимую память, контроллер Beckhoff CX9001 имеет два возможных пути.

Флэш память. Имеет ограниченное кол-во циклов перезаписи (ок. 1000000). Но большой объём 16МБ. Её рассматривать не будем.

Novolatile memory NOV-RAM. Только 124кб. Но неограниченное количество циклов записи.

Сразу скажу, галочка на RETAIN на CX эффекта не даст, как впрочем, и на любом контроллере под Windows. Галочка на PERSISTANT, совместно с функциональным блоком FB_WritePersistantData отвечает за работу с flash памятью.

Использование NOVRAM.


Тут есть два пути: быстрый-простой и посложнее-но-получше.

Просто и быстро. Привязать в System Manger. В образе NOV-RAM создаём точку и привязываем её к выходу или входу AT%Q* контроллера. В настройках образа NOV-RAM во вкладке Generic DPRAM, ставим галочку Auto Init Linked PLC outputs. Теперь значение выхода не пропадёт при сбросе питания. Недостаток в ухудшении производительности. Дело в том,  что запись происходит каждый цикл, а доступ к NOVRAM занимает значительно больше ресурсов чем доступ к программной памяти.

ПНР для автоматки зданий

Доступ к NOVRAM из алгоритма программы TwinCat. Нужен ФБ FB_NovRamReadWriteEx из TcIoFunctions.lib. Блоку можно задать периодичность записи в память память, например 15 сек. А считывать при первом цикле программы, сразу после запуска программы.

новрам бекхов проект и пнр

Наиболее экономичный выход , это производить запись в энергонезависимую память, только по сигналу о пропаже питания. В CX50xx CX80xx есть встроенный 1sec-UPS на пару секунд. Узнать об исчезнувшем питании, на поможет блок из библиотеки  TwinCAT  TcSUPS.lib  FB_S_UPS.  Прошу обратить внимание CX90xx такого нет.