Доброго времени суток, мучаюсь с проблемой на ПЛК TWIDO - необходимо сохранять значения переменных (%mw) в память ЕЕПРОМ автоматически (через программу) в конце цикла и считывать их в начале цикла.
Через твидософт (backup\restore) файл с переменными создается.
Может я просто не правильно понимаю манул, и сохранять значения нельзя?!..
А зачем Вам это надо делать, какая задача?
Переменные там хранятся для возможности при отключении сохранять значения. Это, на сколько я помню, делается автоматически, а вот когда - не помню.
Идея такова: есть некоторые значения импульсов, которые оператор периодически (в режиме настройки) должен изменять по своему желанию. При это при включении питания ПЛК они должны хранится в памяти, чтобы в случае выключения не было необходимости проводить настройку устатовок заново.
Вырезка из хелпа твидосьют (в твидософте будет тоже самое)
-----------------------------------------
Introduction
The following information details backup and restore memory functions in modular and compact controllers using a 32K backup cartridge.
This section does not apply to the Twido Extreme TWDLEDCK1 PLC which has no backup cartridge. This is described in Twido Extreme User Memory.
--------------------------------------------------------------------------------
At a Glance
The backup cartridge is used to save a program and transfer that program to other Twido controllers. It should be removed from a controller and set aside once the program has been installed or saved. Only program and configuration data can be saved to the cartridge (%MWs cannot be saved to the 32K backup cartridge). Dynamic data can be stored in memory words then backed up to the EEPROM. When program installation is complete any %MWs that were backed up to the internal EEPROM prior to installation will be lost.
--------------------------------------------------------------------------------
Memory Structure
Here is a diagram of a controller’s memory structure with the backup cartridge attached. The arrows show what can be backed up to the EEPROM and cartridge from RAM:
--------------------------------------------------------------------------------
Program Backup
Here are the steps for backing up your program into the backup cartridge:
Step Action
1 Power down the controller.
2 Plug in the backup cartridge.
3 Powerup the controller.
4 From the TwidoSuite window, select Memory Cartridge Commands from Program ® Debug, select a connection and click Backup.
5 Power down the controller.
6 Remove backup cartridge from controller.
--------------------------------------------------------------------------------
Program Restore
To load a program saved on a backup cartridge into a controller do the following:
Step Action
1 Power down the controller.
2 Plug in the backup cartridge.
3 Powerup the controller.
(If Auto Start is configured you must power cycle again to get to run mode.)
4 Power down the controller.
5 Remove backup cartridge from controller.
--------------------------------------------------------------------------------
Data (%MWs) Backup
Here are the steps for backing up data (memory words) into the EEPROM:
Step Action
1 For this to work the following must be true:
A valid program in RAM.
The same valid program already backed up into the EEPROM.
Memory words configured in the program.
2 Set %SW97 to the length of the memory words to be saved.
Note Length cannot exceed the configured memory word length, and it must be greater than 0 but not greater than 512.
3 Set %SW96:X0 to 1.
--------------------------------------------------------------------------------
Data (%MWs) Restore
Restore %MWs manually by setting system bit %S95 to 1.
For this to work the following must be true:
A valid backup application is present in the EEPROM
The application in RAM matches the backup application in EEPROM
The backup memory words are valid
DennisSV
25.4.2012, 12:10
да, хелп читал... делал вроде так же как прописано, единственно не совсем ясно, как прописать какие именно %MW мне надо записать... может в этом косяк?!, позвонил в Тех.Поддержку - сказли что записывать можно, но не сказали как именно - обещали прислать описание, пока нету.
Нажмите для просмотра прикрепленного файлаНажмите для просмотра прикрепленного файла
Цитата(DennisSV @ 25.4.2012, 11:10)

да, хелп читал... делал вроде так же как прописано, единственно не совсем ясно, как прописать какие именно %MW мне надо записать... может в этом косяк?!, позвонил в Тех.Поддержку - сказли что записывать можно, но не сказали как именно - обещали прислать описание, пока нету.
Я так понял что начиная с 0.
А что именно не работает? Я так понимаю, что эти куски запускаются только по какому-то условию (чтение бекапа и запись бекапа), иначе у Вас получается: вечно читать с бекапа и когда все Ок - вечно писать в бекап.
DennisSV
25.4.2012, 12:36
Цитата(san @ 25.4.2012, 13:28)

Я так понял что начиная с 0.
А что именно не работает? Я так понимаю, что эти куски запускаются только по какому-то условию (чтение бекапа и запись бекапа), иначе у Вас получается: вечно читать с бекапа и когда все Ок - вечно писать в бекап.
Может и с 0 ... Просто когда в оболочке делаешь БЕКАП переменных - там указываешь с какого по какой... Ну это даже не суть. В любом случае в %SW97 указывает кол-во слов для записи - я беру с запасом.
Да именно - читать всегда из памяти, а периодически необходимо перезаписывать значения в ЕЕПРОМе (для этого создана отдельная ветка).
Собственно похоже, что не происходит записи в память.
DennisSV
25.4.2012, 16:15
Получил письмо от Шнейдера, немного подправил прогу, ну суть не изменилась, все равно не пишет, по крайней мере сейчас видно почему, но не знаю решения: не хватает
%SW96:X1 = 1, у меня равно 0
как видно из 3 рис. EEPROM = RAM
Нажмите для просмотра прикрепленного файлаНажмите для просмотра прикрепленного файлаНажмите для просмотра прикрепленного файла
Попробуйте руцями записать. То есть с таблицы анимаций изменняя нужные системные переменные. Так будет быстрее отловить причину, так как блохи могут быть в логике программы.
DennisSV
26.4.2012, 10:48
Вроде разобрался, проблема была в том что программа постоянно пыталась писать в ЕЕПРОМ, поэтому не было статуса "ОК". Сделал запись по условию - вроде нормально, щас обкатываю.
Не забывайте, что EEPROM - это по сути флеш-память с ограниченным числом циклов записи. Если писать в нее на каждом цикле она выйдет из строя. По опыту: хватает на 2-3 дня при цикле 15-20 мс.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.