|- ! API модулів підсистеми "Збір Даних" |- | Надає збір даних реального часу із зовнішніх систем або їх формування у обчислювачах, які реалізуються модулем. Це основна підсистема, оскільки SCADA це первинно про Збір Даних. Як основна підсистема, вона забезпечує декілька підходів до реалізації модулів, які здебільшого стосуються формування та зберігання структури атрибутів:
- Статичне формування через визначення набору типів параметрів, успадкованих від TTypeParam, тобто застосування структур виконується як набір атрибутів зі зміною типу параметра. Цей метод є найменш гнучким і його використовують такі модулі: GPIO, SMH2Gi, AMRDevs.
- Динамічне формування з керуванням структури контейнеру TElem в об’єкті параметра TParamContr. Цей метод є найбільш гнучким і використовується в більшості модулів, структуру яких можна конфігурувати.
- Як розширення динамічного формування існує тип параметра Логічного Рівня, який можна додати до будь-якого модуля, але він використовується переважно в універсальних джерелах даних: LogicLev, ModBus, Siemens, [[Special:MyLanguage/Modules/OPC_UA|OPC_UA].
|- |TTypeDAQ->TModule — кореневий об'єкт модуля підсистеми "Збір Даних":
- virtual bool compileFuncLangs( vector<string> *ls = NULL ); — запитує перелік мов ls для яких реалізується можливість формування користувацьких процедур у цьому модулі, та перевірка факту підтримки цього.
- virtual void compileFuncSnthHgl( const string &lang, XMLNode &shgl ); — запит прав підсвітлення синтаксису shgl щодо визначеної мови lang.
- virtual string compileFunc( const string &lang, TFunction &fnc_cfg, const string &prog_text, const string &usings = "", int maxCalcTm = 0 ); — компіляція-реєстрація користувацької функції на підтримуваній мові програмування lang та на вихідному коді процедури prog_text, заснованій на параметрах процедури fnc_cfg. Повертає адресу об'єкту скомпільованої функції, готового до виконання.
- virtual bool redntAllow( ); — стан підтримки механізму резервування цим модулем. Має бути перевизначено та повертати TRUE за підтримки, інакше FALSE.
- virtual TController *ContrAttach( const string &id, const string &daq_db ); — викликається модулем за відкриття або створення нового об'єкту контролеру із ідентифікатором id.
|- |TController — об'єкт контролеру джерела даних. У контексті об'єкту зазвичай виконується завдання періодичного або планового опитування даних реального часу фізичного контролеру або фізично відокремленого блоку даних. У випадку отримання даних пакетами, вони розташовуються безпосередньо у архіві, пов'язаному із атрибутом параметра TVAl::arch(), та поточне значення встановлюється функцією TVAl::set() із атрибутом "sys"=TRUE:
- virtual string getStatus( ); — функція запиту статусу контролеру.
- virtual void enable_( ); — увімкнення об'єкту контролеру. На цій стадії зазвичай відбувається ініціалізація об'єктів параметрів та їх інтерфейсів у формі атрибутів, атрибути інколи можуть запитуватися у пов'язаного віддаленого джерела.
- virtual void disable_( ); — вимкнення об'єкту контролеру.
- virtual void start_( ); — запуск об'єкту контролеру. На цій стадії зазвичай створюється та запускається завдання опитування.
- virtual void stop_( ); — зупинка об'єкту контролеру.
- virtual void redntDataUpdate( ); — операція отримання даних із резервної станції, автоматично викликається сервісною процедурою схеми резервування підсистеми.
- virtual string catsPat( ); — перелік правил регулярних виразів, поділених '|', для виокремлення за категорією щодо повідомлень згенерованих об'єктом.
- virtual void messSet( const string &mess, int lev, const string &type2Code = "OP", const string &prm = "", const string &cat = "" ); — формування повідомлення Джерела Даних від об'єкту параметру prm (PrmId) або об'єкту контролеру взагалі якщо об'єкту параметру не визначено, для повідомлення mess, рівня lev та коду типу type2Code. Ця функція генерує повідомлення із уніфікованою категорією прозорості Джерела Даних "{type2Code}{ModId}:{CntrId}[.{prm}][:{cat}]".
- virtual TParamContr *ParamAttach( const string &id, int type ); — викликається модулем за відкриття або створення нового об'єкту параметру контролера із ідентифікатором id.
|- |TParamContr->TValue — об'єкт параметру контролера джерела даних. Містить атрибути з реальними даними у наборі визначеному фізично доступними даними. Значення до атрибутів потрапляють із завдання опитування контролера, при асинхронному режимі, або запитуються під час звернення, при синхронному режимі, та за посередництвом методів успадкованого типу TValue:
- virtual TElem *dynElCntr( ); — контейнер динамічних елементів атрибутів Збору Даних. Переважно визначається джерелами логічного рівня які і надають контейнери такого характеру.
- virtual void enable( ); — увімкнення об'єкту параметру, здійснюється формування набору атрибутів та заповнення їх значеннями недостовірності.
- virtual void disable( ); — вимкнення об'єкту параметру.
- virtual void setType( const string &tpId ); — викликається для зміни типу параметру у tpId та може бути опрацьований у об'єкті модуля для зміни власних даних.
- virtual TVal* vlNew( ); — викликається на стадії створення нового атрибуту. Може бути перевизначено для реалізації особливої поведінки у межах свого об'єкту, успадкованого від TVal, при доступі до атрибуту.
- virtual void vlGet( TVal &vo ); — викликається для атрибуту vo із режимом прямого читання TVal::DirRead при читанні значення задля прямого-синхронного читання із фізичного джерела або буферу об'єкта.
- virtual void vlSet( TVal &vo, const TVariant &vl, const TVariant &pvl ); — викликається для атрибуту vo із режимом прямого запису TVal::DirWrite при запису значення vl задля прямого-синхронного запису до фізичного джерела або буферу об'єкта, із попереднім значенням pvl.
- virtual void vlArchMake( TVal &val ); — викликається на стадії створення архіву значень із атрибутом val як джерело щодо ініціалізації характеристик якості буферу архіву у відповідності до характеристик джерела даних та опитування.