From OpenSCADAWiki
Сохранение/Восстановление модифицированных данных в источнике/обёртке логического уровня
Иногда может понадобиться сохранить и затем восстановить, в основном при перезапуске, некоторые модифицированные данные вроде счётчиков пробега оборудования. В целом обработку такого рода источников данных и оборудования нужно осуществлять в логическом уровне подсистемы "Сбор данных". Такую задачу Вы можете реализовать многими путями, предусматривающими сохранение данных и последующее их восстановление на некотором хранилище, однако наиболее известные способы это:
- Периодическое сохранение контекста параметров шаблона с помощью запроса пользовательского API OpenSCADA через cntrReq():
SYS.cntrReq(SYS.XMLNode("save").setAttr("path",this.nodePath()+"/%2fobj"));
- Если атрибут шаблона со счётчиком архивируется тогда Вы можете получить последнее значение из этого архива при старте параметра, например, так:
if(f_start) prevArchRestore = false; if(!prevArchRestore && (archEnd=this.cntr.arch().end("FSArch.1s"))) { SYS.messInfo("testArch", "val="+this.cntr.arch().getVal(archEnd)+"; " "val1="+this.cntr.arch().getVal(archEnd,false,"FSArch.1s")+"; " "val2="+this.cntr.get(archEnd/1000000,archEnd%1000000)); cntr = this.cntr.arch().getVal(archEnd); prevArchRestore = true; }
- Создание специальной таблицы БД и запись/чтение этих данных прямо в эту таблицу посредством SQL-запросов через SQLReq().