OpenSCADAWiki: Doc/Program Manual/part5
 

5. Общесистемное API пользовательского программирования.

API пользовательского программирования представляет собой дерево объектов системы OpenSCADA, каждый объект которого может представлять собственный перечень свойств и функций. Свойства и функции объектов могут использоваться пользователем в процедурах на языках пользовательского программирования OpenSCADA. Точкой входа для доступа к объектам системы OpenSCADA из языка пользовательского программирования JavaLikeCalc является зарезервированное слово "SYS" корневого объекта OpenSCADA. Например, для доступа к функции исходящего транспорта нужно записать: SYS.Transport.Serial.out_ModBus.messIO(mess);.

API объектов, предоставляемых модулями, описывается в собственной документации модуля.

5.1. Общесистемные пользовательские объекты.

Абстрактный объект представляет собой ассоциативный контейнер свойств и функций. Свойства могут содержать как данные четырёх базовых типов, так и другие объекты. Доступ к свойствам объекта обычно осуществляется посредством записи имён свойств через точку к объекту "obj.prop", а также посредством заключения имени свойства в квадратные скобки "obj["prop"]". Очевидно, что первый механизм статичен, а второй позволяет указывать имя свойства через переменную. Базовое определение объекта не содержит функций. Операции копирования объекта на самом деле делают ссылку на исходный объект. При удалении объекта осуществляется уменьшения счётчика ссылок, а при достижении счётчика ссылок нуля объект удаляется физически.

Разные компоненты могут доопределять базовый объект особыми свойствами и функциями. Стандартным расширением объекта является массив "Array".

Объект Array

Особенностью массива является то, что он работает со свойствами, как с индексами, и полное их именование бессмысленно, а значит доступен механизм обращения только заключением индекса в квадратные скобки "arr[1]". Массив хранит свойства в собственном контейнере одномерного массива. Цифровые свойства массива используются для доступа непосредственно к массиву, а символьные работают как свойства объекта.

Массив предоставляет специальное свойство "length" для получения размера массива "var = arr.length;". Также массив предоставляет следующие функции:

Объект RegExp

Объект работы с регулярными выражениями, основан на библиотеке PCRE. При глобальном поиске устанавливается атрибут объекта "lastIndex", что позволяет продолжить поиск при следующем вызове функции. В случае неудачного поиска атрибут "lastIndex" сбрасывается в ноль.

В качестве аргументов создания объекта передаётся строка с текстом регулярного выражения и флаги в виде строки символов:

Свойства объекта:

Функции объекта:

Объект XMLNodeObj

Функции:

5.2. Система (SYS)

Функции объекта:

5.3. Любой объект (TCntrNode) дерева OpenSCADA (SYS.*)

Функции объекта:

5.4. Подсистема "Безопасность" (SYS.Security)

Функции объекта подсистемы (SYS.Security):

Функции объекта пользователя (SYS.Security["usr_User"]):

Функции объекта группы (SYS.Security["grp_Group"]):

5.5. Подсистема "БД" (SYS.BD)

Функции объекта БД (SYS.BD["TypeDB"]["DB"]):

Функции объекта Таблицы (SYS.BD["TypeDB"]["DB"]["Table"]):

5.6. Подсистема "Сбор данных" (SYS.DAQ)

Функции объекта подсистемы (SYS.DAQ):

Функции объекта контроллера (SYS.DAQ["Modul"]["Controller"]):

Функции объекта параметра контроллера (SYS.DAQ["Modul"]["Controller"]["Parameter"]):

Функции объекта атрибута параметра контроллера (SYS.DAQ["Modul"]["Controller"]["Parameter"]["Attribute"]):

Функции объекта библиотеки шаблона (SYS.DAQ[tmplb_Lib"]) и шаблона (SYS.DAQ[tmplb_Lib"]["Tmpl"]) параметра контроллера:

5.6.1. Модуль DAQ.JavaLikeCalc


Объект "Библиотека функций" (SYS.DAQ.JavaLikeCalc["lib_Lfunc"])


Объект "Пользовательская функция" (SYS.DAQ.JavaLikeCalc["lib_Lfunc"]["func"])


5.6.2. Модуль DAQ.LogicLev


Объект "Параметр" [this]


5.6.3. Модуль DAQ.BlockCalc


Объект "Блок" (SYS.DAQ.BlockCalc["cntr"]["blk_block"])


5.6.4. Модуль DAQ.ModBus


Объект "Контроллер" [this.cntr()]


Объект "Параметр" [this]


5.7. Подсистема "Архивы" (SYS.Archive)

Функции объекта подсистемы:

Функции объекта архиватора сообщений (SYS.Archive["mod_Modul"]["mess_Archivator"]):

Функции объекта архиватора значений (SYS.Archive["val_Modul"]["val_Archivator"]):

Функции объекта архива (SYS.Archive["va_Archive"]):

5.8. Подсистема "Транспорты" (SYS.Transport)

Функции объекта входящего транспорта (SYS.Transport["Modul"]["in_Transp"]):

Функции объекта исходящего транспорта (SYS.Transport["Modul"]["out_Transp"]):

5.9. Подсистема "Пользовательские интерфейсы" (SYS.UI)

5.9.1. Модуль UI.VCAEngine

Action source page doesn't exist yet(/Doc / Koncepcija Sredy Vizualizacii / part 4 / part 14)

5.10. Подсистема "Специальные" (SYS.Special)

5.10.1. Модуль Special.FLibSYS


Объект "Библиотека функций" (SYS.Special.FLibSYS)


Объект "Пользовательская функция" (SYS.Special.FLibSYS["funcID"])

5.10.2. Модуль Special.FLibMath


Объект "Библиотека функций" (SYS.Special.FLibMath)


Объект "Пользовательская функция" (SYS.Special.FLibMath["funcID"])

5.10.3. Модуль Special.FLibComplex1


Объект "Библиотека функций" (SYS.Special.FLibComplex1)


Объект "Пользовательская функция" (SYS.Special.FLibComplex1["funcID"])