(3.1)
T = {A, S, D, X, Y, U, V, K, M, Z},
где:
- А - множество настроек объекта класса Т,
- S - множество состояний автоматных алгоритмов, входящих в класс Т как методы,
- D - множество закрытых данных - членов класса Т,
- X - множество входных сигналов нижнего уровня, или множество контролируемых параметров агрегата,
- Y - множество выходных сигналов нижнего уровня (управляющие агрегатом сигналы),
- U - открытые входные данные - члены класса Т,
- V - открытые выходные данные - члены класса Т,
- К - множество команд с верхнего уровня, на которые должен реагировать объект класса Т,
- М - множество сигналов, посылаемых объектом класса Т на верхний уровень
- Z - множество открытых и закрытых методов класса Т.
Графическая структура класса изображена на
рис.4.Множество Z = {z0, z1, ... , zN} представляет собой набор открытых и закрытых методов (функций-членов класса Т). Методы могут быть переопределяемыми (виртуальными). Обязательными методами являются:
- run - основной открытый метод (z0), в теле которого последовательно вызываются остальные N методов класса Т. Если Т - базовый класс, то метод run может быть либо виртуальным, либо избыточным (вызывающим пустые функции-члены).
- get - закрытый метод (z1), который осуществляет вызов и запоминание входной информации (X) нижнего уровня, а также осуществляющий необходимые преобразования этой информации к виду, удобному для последующей обработки. Метод может быть виртуальным.
- put - закрытый метод, осуществляющий вывод результатов обработки как на нижний уровень (Y), так и на верхний уровень (M). Метод может быть виртуальным.
Не обязательными, но наиболее часто используемыми являются закрытые, в том числе виртуальные, методы Zon и Zoff обработки команд (К) или условий автоматического включения - отключения (U) управляемого агрегата.
Кроме перечисленных, класс может содержать и другие закрытые методы (подмножество Zcl) и открытые методы (подмножество Zop).
Множество настроек А - перечень данных и функций, которые должны идентифицировать и инициализировать конкретные объекты класса Т. Данный перечень включается в качестве набора параметров в открытом методе, называемом конструктором класса и имеющем то же имя что и класс Т. В теле конструктора выполняется присваивание закрытым данным - членам класса значений параметров из множества А.
Множество состояний S = {s0, s1, ... , sN} объекта класса Т состоит из перечня наименований состояний алгоритмов методов z0, ... , zN. Таким образом, объект класса Т характеризуется вектором значений переменных состояния всех алгоритмов - методов класса. Переменные состояний должны иметь имена, начинающиеся с буквы s и далее имени метода. Например, sget, sput, szon и так далее. Переменные состояний принадлежат к закрытым данным - членам класса Т. Эти переменные недоступны другим алгоритмам вне объекта класса Т, но являются доступны всем методам данного класса. При необходимости иметь информацию о состоянии алгоритма того или иного метода класса необходимо предусмотреть специальный открытый метод, возвращающий при его вызове значение переменной состояния.
Множество D представляет собой набор закрытых данных - членов класса, используемых в функциях - членах класса. Эти данные запоминаются, модифицируются и сохраняются от цикла к циклу.
Множество U - это открытые данные - члены класса Т, доступные для модификации из других объектов других классов.
Множество V - это открытые данные - члены класса Т, доступные для чтения другими объектами других классов.
Множество К - это набор кодов команд, на которые должны реагировать конкретные объекты данного класса. Эти коды задаются и запоминаются конструктором класса. Код команды, получаемой из станции операторской обозначим " komanda ". Закрытые переменные - конкретные коды команд начинаются с буквы К, например: Kon, Koff (включить и отключить, соответственно).
Множество М - сигналы, передаваемые в станцию операторскую. Эти сигналы могут быть двух типов. Первый тип сигналов предполагает передачу в станцию операторскую пары: номер сообщения и обобщенного кода состояния контролируемого агрегата. Номер сообщения задается одним из параметров настройки А. Обобщенный код формируется всеми методами класса и кодируется методом put. При этом сигналы первого типа передаются в станцию операторскую в произвольном порядке от различных объектов различных классов.
Второй тип сигналов предполагает их упаковку в стандартное сообщение, где код состояния конкретного агрегата записывается в фиксированную позицию, номер которой определяется одним из параметров настройки А. В станцию операторскую такое стандартное сообщение посылается в случае любого его изменения. (В другом варианте посылка данных в операторскую станцию выполняется периопериодически независимо от наличия или отсутствия изменений.)
Множество Х представляет собой подмножество разрядов вектора всех входных двоичных сигналов, получаемых методом опроса в каждом программном цикле (с помощью драйверов ввода). Номера разрядов перечисляются в множестве А параметров настройки. (Для класса измерений или вычисления уставки множество Х есть либо дискретное значение аналогового параметра, либо множество последовательных отсчетов, например, синусоидального сигнала).
Множество Y - это значения подмножества разрядов вектора всех выходных дискретных сигналов контроллера. Номера разрядов этого подмножества задаются в множестве А параметров настройки. Множество Y формируется методом put на основе результатов вычислений в остальных методах класса.
Предложенная схема типового класса контроля и управления агрегатом используется в дальнейшем как база для синтеза конкретных классов контроля, управления и измерений.