26 декабря 2011 г.

Энергонезависимая память в ПЛК Omron

Из статьи вы узнаете об устройстве и методах использования энергонезависимой (retentive) памяти в контроллерах Omron серии CP1

Введение

Зачастую требуется сохранить данные настроек программы между выключениями оборудования. В контроллерах Omron серии CP1 в этом деле очень помогает отдельно заказываемая батарейка, которая позволит надолго (5 лет при 25°C) сохранить данные в некоторых областях памяти при отключении питания. Привожу таблицу из руководства (1).

Красным выделено, что будет с определенной областью памяти при отключении питания

Нестабильность означает, что определенное время после пропадания питания состояние памяти поддерживается за счет остаточного заряда конденсаторов, после исчерпания которого биты примут случайное состояние. Для серии CPU E-Type это время составит 50 часов при температуре 25°C. Для CPU N/NA-Type 40 часов. С ростом температуры время уменьшается. 
Для области памяти A нестабильность означает, что встроенные часы реального времени после включения покажут неправильную дату и время (одно из самых неудобных следствий).
А что делать, если батарейки нет или если её не успеют вовремя заменить? Omron предлагает решение с сохранением во встроенную EEPROM память части области D (1500 или 7000 регистров, в зависимости от модели). 

Настройки контроллера

Нас интересует меню "PLC Settings", вкладка "Startup/CPU Settings" , поле "Startup Data Read". Во-первых, если нет батарейки, то необходимо поставить галочку "Clear retained memory area". Эта настройка-указание контроллеру обнулять указанные области памяти при включении. Так мы сразу ставим крест на использовании остаточного заряда конденсаторов или батарейки - работает только механизм DM-backup memory. А главное - избавляемся возможного мусора в памяти при включении контроллера после его простоя.

Окно настроек ПЛК Omron CP1 в CX-One

Далее указываем, сколько регистров мы планируем использовать под хранение информации, которую мы не хотим потерять при выключении питания. Нумерация идет с нуля, так что, если указано как в примере 14 регистров, то это D0..D13

Требования к схеме

Необходимо определить момент пропадания питания. Это можно сделать, просто поставив реле перед питающим трансформатором или на входе в шкаф. Пока питание есть - контакты замкнуты. Как пропало - они размыкаются, сигнал пропадает - пора сохранять данные. Теоретически,  контроллеру хватит времени работы на остаточном заряде конденсаторов для сохранения информации. Но это теоретически... Хорошую службу тут сыграет простой источник бесперебойного питания (на него, кстати, можно повесить не только контроллер), который предоставит возможность нормально завершить работу. Я не говорю тут о крупных или отказоустойчивых системах, на которую вы, конечно, захотите поставить серьёзную систему обеспечения бесперебойного питания соответствующей мощности. Кстати, приведу тут удобную страничку для выбора ИБП фирмы APC (2).
С использованием ИБП можно повесить сигнал на нормально закрытые контакты, что повысит безопасность системы. Без него только на нормально открытые (а то где вы питание будете брать? =) ).

Вызов сохранения данных

Если отсутствует ИБП, неплохо приведенную ниже конструкцию поместить в прерывание, дабы сохранить данные как можно быстрее. Особенно важно указать обработку по фронту или спаду. В момент исполнения данного кода вы должны быть уверены в корректности сохраняемых данных в D0...Dxxxx. Или сделать их таковыми по сигналу пропадания питания.

Корректная обработка пропадания питания

А после включения контроллера уже можно использовать нашу драгоценную информацию. Приведу на ST, а то картинка получится очень уж длинной.

'  Восстановление данных в рабочую область памяти после включения
LD P_First_Cycle
OUT TR0
ANDNOT A751.11
MOV(021) &1 D7100
MOV(021) D0 D7001
MOV(021) D1 D7002
MOV(021) D2 D7003
MOV(021) D3 D7004
MOV(021) D4 D7106
MOV(021) D5 D7200
MOV(021) D6 D7201
MOV(021) D7 D7202
MOV(021) D8 D7203
MOV(021) D9 D7204
MOV(021) D10 D7205
MOV(021) D11 D7206
MOV(021) D12 D7207
MOV(021) D13 D7208
MOV(021) #1510 D7006
MOV(021) D7204 D7007
MOV(021) D7208 D7008
MOV(021) #0000 D7009
MOV(021) #0000 D7010
LD TR0
AND A751.11
SET W40.01
MOV(021) &4 D7100

Ссылки к статье
  1. Документация к программному обеспечению контроллеров CP1
  2. Выбор ИБП фирмы APC

Комментариев нет:

Отправить комментарий