ок. Спасибо
Вид для печати
ок. Спасибо
В нашем ПЛ210 переменные RETAIN почему то не сохраняются.
Подскажите без ПЛК в эмуляторе я могу проверить как будет работать моя программа после включения ПЛК ?
Какая физически память(MRAM) в ПЛК используется для RETAIN переменных ? (с питанием от батарейки ?)
https://ru.wikipedia.org/wiki/%D0%9C...8F%D1%82%D1%8C
Цитата:
Магниторезистивная оперативная память (MRAM — англ. magnetoresistive random-access memory) — запоминающее устройство с произвольным доступом на основе спиновых вентилей. Хранит информацию при помощи магнитных моментов, а не электрических зарядов.
Преимущество этого типа памяти — энергонезависимость, то есть способность сохранять записанную информацию (например, программные контексты задач в системе и состояние всей системы) при отсутствии внешнего питания.
1) ПЛ210 на объекте стоит. Интернета отсутствует. Я удалённо правлю ППО и пересылаю наладчику. (проверить на эмуляторе как работает ППО при выключении питания ПЛК - получается нет возможности)
2) В области VAR_GLOBAL RETAIN объявил переменную "AAAA : UINT; " , которую нигде в ППО не использую.
Наладчик подключается Codesys - онлайн, записывает в неё значение, затем выключает эл.питание ПЛК, включает, и значение переменной = 0.
3) У меня осталось только одно предположение : версия прошивки в ПЛК = 1.1.1204.1025, а Версия пакета таргет-файлов в CodeSys установлен = 3.5.14.30-10.
Причём если в CodeSys ставлю Версия пакета таргет-файлов = 3.5.14.30-03 (чтоб было соответствие) , то в проекте не определяются ПЛК (и обновить устройство не получается).
Получается нужно обновить версию прошивки в ПЛК ?
Да, попробуйте обновить прошивку со сбросом настроек.Цитата:
Получается нужно обновить версию прошивки в ПЛК ?
Столкнулся с такой же проблемой. В проекте куча настроек, которые должны храниться в энергонезависимой памяти, на Schneider Modicon M241 все работало отлично, то есть переменные были объявлены в GVL как RETAIN с адресами через команду AT для возможности их изменения с TCP Modbus Master, для этого требуются прямые адреса. В OWEN данная конструкция не работает, после пропадания питания все обнуляется. При объявлении в списке PERSISTENT компилятор ругается на прямые адреса.
Как то удалось решить данную проблему? Или нужно городить костыль, при запуске перекидывать все данные из PERSISTENT в обычную память, а в цикле программы периодически перекидывать все данные обратно в PERSISTENT ? Это же полный бред, должно же быть более оптимальное решение! Как Овен подразумевает хранение энергонезависимых настроек в таких случаях?
Мы рекомендуем использовать библиотеку OwenCommunication для таких случаев.
В ней TCP Slave организуется с помощью функционального блока MB_TcpSlave, на вход которого передается указатель на буфер данных - можно передать указатель на массив или структуру, которые объявлены как RETAIN/PERSISTENT.
Именно через нее и работаю, но проблема не в этом, обмен работает прекрасно. Проблема в том, что при объявлении в Global Variables List регистров как RETAIN они после отключения питания не сохраняются, а при объявлении в списке PERSISTENT невозможно указать адреса для Modbus TCP Master.