From OpenSCADAWiki
Jump to: navigation, search

Сохранение/Восстановление модифицированных данных в источнике/обёртке логического уровня

Иногда может понадобиться сохранить и затем восстановить, в основном при перезапуске, некоторые модифицированные данные вроде счётчиков пробега оборудования. В целом обработку такого рода источников данных и оборудования нужно осуществлять в логическом уровне подсистемы "Сбор данных". Такую задачу Вы можете реализовать многими путями, предусматривающими сохранение данных и последующее их восстановление на некотором хранилище, однако наиболее известные способы это:

  • Периодическое сохранение контекста параметров шаблона с помощью запроса пользовательского 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().