From OpenSCADAWiki
Jump to: navigation, search

Программный интерфейс OpenSCADA для реализации доступа к данным реального времени представлен объектами и виртуальными функциями вызовов из ядра OpenSCADA:

  • TTypeDAQ->TModule — Корневой объект модуля подсистемы "Сбор данных":
    • void compileFuncLangs( vector<string> &ls ); — Запрос перечня языков пользовательского программирования, поддерживаемых модулем в ls.
    • void compileFuncSynthHighl( const string &lang, XMLNode &shgl ); — Запрос правил подсветки синтаксиса shgl указанного языка пользовательского программирования lang.
    • string compileFunc( const string &lang, TFunction &fnc_cfg, const string &prog_text ); — Вызов компиляции пользовательской процедуры в prog_text и создания объекта исполнения функции на основе fnc_cfg для указанного языка пользовательского программирования lang этого модуля. Возвращается адрес к скомпилированному объекту функции, готовому для исполнения.
    • bool redntAllow( ); — Признак поддержки механизмов резервирования модулем. Должен переопределяться и возвращать "true" в случае поддержки, иначе "false".
    • TController *ContrAttach( const string &name, const string &daq_db ); — Вызывается при открытии или создании нового объекта контроллера name данным модулем с хранилищем в db.
  • TController — Объект контроллера источника данных. В контексте данного объекта обычно запускается задача периодического или по расписанию опроса данных реального времени одного физического контроллера или физически выделенного блока данных. В случае получения данных пакетами они помещаются непосредственно в архив, связанный с атрибутом параметра TVAl::arch(), а текущее значение устанавливается функцией TVAl::set() с атрибутом "sys"=true:
    • string getStatus( ); — Вызов для получения специфического статуса контроллера.
    • void enable_( ); — Включение контроллера. Обычно здесь осуществляется инициализация объектов параметров и их интерфейса в виде атрибутов, которые иногда могут запрашиваться у ассоциированного удалённого источника.
    • void disable_( ); — Отключение контроллера.
    • void start_( ); — Запуск контроллера. Обычно здесь создаётся и запускается задача периодического или по расписанию опроса.
    • void stop_( ); — Останов контроллера.
    • void redntDataUpdate( bool firstArchiveSync = false ); — Выполнение операции получения данных из резервной станции. Вызывается автоматически задачей обслуживания схемы резервирования и перед запуском для синхронизации архивов с установленным параметром firstArchiveSync.
    • TParamContr *ParamAttach( const string &name, int type ); — Вызывается при открытии или создании нового объекта параметра name с типом type.
  • TParamContr->TValue — Объект параметра контроллера источника данных. Содержит атрибуты с реальными данными в наборе, определённом физически доступными данными. Значения в атрибуты попадают из задачи опроса контроллера при асинхронном режиме или запрашиваются в момент обращения при синхронном режиме посредством методов наследованного типа TValue данного объекта:
    • void enable( ); — Включить параметр. Осуществляется формирование набора атрибутов и заполнение их значением недостоверности.
    • void disable( ); — Отключить параметр.
    • void setType( const string &tpId ); — Вызывается для смены типа параметра tpId и может быть обработан в объекте модуля для смены собственных данных.
    • TVal* vlNew( ); — Вызывается при создании нового атрибута. Может быть переопределён для реализации особого поведения в рамках своего, наследованного от TVal, класса при доступе к атрибуту.
    • void vlSet( TVal &val, const TVariant &pvl ); — Вызывается для атрибута с прямым режимом записи TVal::DirWrite (синхронный режим или запись во внутренний буфер объекта) при установке значения с целью непосредственной записи значения в физический контроллер или буфер объекта.
    • void vlGet( TVal &val ); — Вызывается для атрибута с прямым режимом чтения TVal::DirRead (синхронный режим или чтение из внутреннего буфера объекта) при чтении значения с целью непосредственного чтения значения из физического контроллера или буфера объекта.
    • void vlArchMake( TVal &val ); — Вызывается при создании архива значений с атрибутом val в качестве источника с целью инициализации качественных характеристик буфера архива согласно особенностям источника данных и их опроса.