PDA

Просмотр полной версии : RETAIN переменные и панель ИП320



Дмитрий77
07.11.2007, 13:52
Подскажите пожалуйста как мне переменные MODBUS RTU сделать енергонезависимыми. Если я их прописываю помимо конфигуратора в MODBASе, ещё и в теле программы как RETAIN переменные, они просто не принимают нужных мне значений задаваемых с ИП320. Если можно простейший пример. Может быть я чего-то не понимаю!

Малышев Олег
07.11.2007, 14:39
Только прошейтесь в последнюю прошивку. В версиях ниже 2.01.5 этой возможности не было.
См http://owen.ru/forum/showthread.php?t=115 для уточнененния

Филоненко Владислав
07.11.2007, 14:40
Все переменный в ModBus slave являются энергонезависимыми. Для этого ничего делать не надо.
Однако:
1. Запись в энергонезависимую память происходит при пропадании питания
2. Чтение из энергонезависимой памяти происходит только если у Вас сделан BootProject
3. Если Вы в программе инициализируете переменные в ModBus slave - это сотрет энергонезависимые значения
4. Если вы посылаете команду на запись по сети, это сотрет энергонезависимое значение в том регистре, в к-й вы обращаетесь.
Проверить работоспособность можно сл. образом.
Сделайте пустой проект с 1 ModBus Slave.
Добавте в него переменные.
Залогиньтесь, сделайте BootProject.
Поменяйте значения переменных.
Разлогиньтесь.
Выключите питание.
Включите питание.
Перегрузите контролер (должен пискнуть).
Залогиньтесь - значения в переменных должны соответствовать изменённым значениям.

Дмитрий77
07.11.2007, 15:46
Спасибо! Тупил ибо делал boot progect перед loginom а не после!

Сергей71
09.11.2007, 08:48
Есть вопрос?

Как быть.

У меня настроечные параметры сидят в ModBus slave (около 100).
А разные коэффициенты , как RETAIN (не мало).

Запустил систему, настроил, работает. Через некоторое время, Заказчик просит изменить алгоритм. И происходит такая вещь. Если поменял программу без проблем то ОК. Но...

Бывает подвиснет при прошивке, и потом требует перезагрузить проект. Все настройки рухнули.

Подскажите как правильно сохранять, прошивать и восстанавливать данные.

PS Думаю все данные сохранять в файл и восстанавливать, но зачем RETAIN.

И еще, ModBus slave если данные в перемешку(byte, word, dword) и их много как автоматизировать процесс пересчета адресов. Надоело на листке считать, потом синхронизировать адреса с панелью и тд.

И сколько памяти выделено в ПЛК под ModBus slave (какое макс. кол-во переменных)?

Малышев Олег
09.11.2007, 09:24
Из своего опыта
Бывает подвиснет при прошивке, и потом требует перезагрузить проект. Все настройки рухнули.

Подскажите как правильно сохранять, прошивать и восстанавливать данные.

Некоторые проекты (видимо есть зависимость от пользовательского алгоритма) плохо отрабатывают online changes. При загрузке лучше использовать "Load all". Перед загрузкой лучше всего остановить программу, если не возможно - остановить опрос по интерфейсам.

Насчет вычисления адресов и синхронизации с панелью... Возможно нам удастся создать утилиту вычисления адресов регистров. Синхронизировать переменные в конфигураторе панели и ПЛК вообще невозможно.

Филоненко Владислав
09.11.2007, 11:17
Размер под переменные ModBus Slave зависит от лицензии.
Если лицензия неограниченная, то и их число тоже неограничено :) (в пределах свободной памяти в ПЛК). Ориентировочно сотня-другая тысяч регистров. Но по стандарту ModBus Вы более 65535 регистров на 1 slave использовать не сможете!

Сергей71
11.11.2007, 12:42
Иногда при изменении алгоритма обязательно требуется перезагрузить проект. Но как правильно сделать, чтобы переменные RETAIN и ModBus slave сохранились, а после прошивки их восстановить?
В описании CoDeSys PLC Browser есть команды читать и писать RETAIN, но на Ваших ПЛК этих команд нет.



Но по стандарту ModBus Вы более 65535 регистров на 1 slave использовать не сможете!
Имел ввиду что все 65535 регистров (128 kbyte) будут RETAIN сохраняемыми?

Филоненко Владислав
12.11.2007, 11:32
Да! Именно так.

Рфаэль
18.05.2010, 16:06
Разъясните пожалуйста ситуацию:
ПЛК 100 (2.05.7 Slave) и ИП320 (Master), переменные не сохраняются в энергонезависимой памяти.
1.Login и изменяю значение переменной в ИП320
2.Greate BootProget
3. LogOut и Выкл-ю питание
4. Вкл-ю питание, а знач-е переменной по нулям.
Пробовал разные варианты все одно.
Такое ощущение что ИП320 обнуляет знач-е переменной.
Подскажите где собака зарыта, может я что- то не так делаю, с ОВЕНом дружу не так давно.

Филоненко Владислав
18.05.2010, 20:05
обнуляет. поищите на полезностях-был пример решения проблемы

Рфаэль
22.05.2010, 09:33
Делаю тестовый новый проект без ИП320:
1. Создаю RETAIN переменную:
VAR_GLOBAL RETAIN
test : INT;
END_VAR
2. Login, изменяю значение переменной
3. Write Values
4. LogOut
5. Снова Login, значение переменной изменное т.е. записалось все ок.
6. Great Boot Project
7. LogOut, отключаю питание и жду 10-15 мин (также и 24 часа).
8. Вкл.питание Login смотрю значение переменной по нулям?????????

Пробывал с удалением Initialize zero в Target Settings, результат тот же?

Что делаю не так? Хотим делать проект, уже родил КД на него, а тут такая засада.
Поясните, может где я что- то не так делаю. С уважением, инженер.

Рфаэль
24.05.2010, 14:23
Run присутствует, забыл написать)