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 у якості джерела з метою ініціалізації якісних характеристик буфера архіву згідно особливостям джерела даних та їх опитування.