Клуб программистов "Весельчак У" - ООП и схемы программ реального времени для систем управления техническими средствами (1.3)
ГЛАВНАЯ СТАТЬИ ЧАВО КОНТАКТЫ ПОИСК
новости

Наш сайт поздравляет всех с Новым Годом! Желаем вам всего самого лучшего и много много хорошего в Новом 2010 году.
Администрация.


В связи с дырой в старом движке форума все переезжает на новый движок. Прошу прощения за неудобcтва...


Свершилось!
Сайт переехал на свой собственный выделенный сервер!

личный кабинет
онлайн
счетчики



Яндекс цитирования



ООП и схемы программ реального времени для систем управления техническими средствами (1.3)
3. Обобщенное представление классов Как уже отмечалось, оборудование современной СУТС разрабатывается исходя из двухуровневой схемы: на нижнем уровне находятся периферийные приборы - станции локальные технологические (СЛТ), а на верхнем уровне находятся пульты управления - станции операторские (СО). Все приборы (СО и СЛТ) связаны как правило магистралью. Собственно логическое управление осуществляется в СЛТ как на основе анализа входной локальной информации, так и по командам, формируемым в СО. Локальная информация из СЛТ передается в СО для представления оператору. Нас больше будут интересовать алгоритмы СЛТ. Первый накопленный автором опыт синтеза функционального ПО СЛТ с использованием ООП показал ряд положительных свойств, а именно: * Алгоритмы управления и контроля отдельными агрегатами оформлены в виде автономных классов, * Классы изолированы друг от друга в силу инкапсуляции и могут быть независимо спроектированы и отлажены, * Объекты классов реализуются строго последовательно, что существенно упрощает алгоритмизацию и программирование, * Объектно-ориентированные алгоритмы отвечают требованию независимых фрагментов, * В целом ПО слабо связано с используемой операционной системой, и может быть сравнительно легко перенесено даже в простейшую среду MS DOS. На базе изложенного автором предложена концепция типового класса контроля и управления агрегатом общего вида. При этом полагаем, что класс размещается на текущем программно-аппаратном уровне, нижним уровнем по отношению к классу является уровень оборудования управляемого (контролируемого) агрегата, верхним уровнем по отношению к классу является программно-аппаратное обеспечение станций операторских. Определим типовой класс как десятку (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 на основе результатов вычислений в остальных методах класса. Предложенная схема типового класса контроля и управления агрегатом используется в дальнейшем как база для синтеза конкретных классов контроля, управления и измерений.




Комментарии отсутствуют
дополнительно
рассылки
опрос

Каким языком программирования Вы владеете?

Perl
Ассемблер
Дельфи
Язык управления 1С
Языки С & C++
Вледею всеми
Не владею ни одним


Результаты
Все опросы

канал IRC
Внимание:
Действует чат на канале IRC.
Для подключения используйте следующие настройки:
Сервер - irc.rinet.ru или irc.baikal.net
Порт - 6669.
Канал - #Shelek.
© "Весельчак У"
email:club@shelek.com