к.т.н., Рогов Александр Юрьевич
Санкт-Петербургский
государственный технологический институт
(технический
университет), Россия
Генерация программной структуры систем управления
Доклад посвящен вопросам автоматизированной генерации программных структур систем управления технологическими процессами на основе перечня функциональных задач управления, предъявляемых к системе. Рост сложности технологических процессов приводит к увеличению сложности программного обеспечения систем управления ими и трудоёмкости процессов его разработки. Одним из путей снижения трудоёмкости разработки программного обеспечения может служить автоматизация этапов генерации и выбора программной структуры системы управления по формализованному описанию технологи-ческого процесса и функций управления.
Рассматриваемый подход к проектированию программного обеспечения системы управления предполагает предварительную формализацию. Для этого, алгоритмы обработки информации, поступающей и циркулирующей в системе управления, рассматриваются как модули, которые преобразуют входные данные некоторого типа в выходные данные другого типа, и выполняют какой-то набор функций (задач управления). Функция модуля означает свойство, значимое с точки зрения управления технологическим процессом. Данные также подверга-ются формализации по типу, размеру, диапазонам, точности, и т.д. При этом, технические детали реализации модуля опускаются на нижний уровень проектирования. Модуль можно представить в виде:

Такой подход позволяет оперировать алгоритмическими модулями как функциональными операторами (ФО) на уровне проектирования программной структуры системы управления. Программная структура разбивается на функциональные цепочки операторов (ФЦ), каждой из которых соответствует функциональная задача (ФЗ), выполняемая системой управления. Например, для задачи «Регистрация» технологического параметра «Температура» можно выбрать следующие цепочки:

где И – измерение, П – преобразование, О – отображение/индикация значения,
Х – сохранение значения.
Перечень функций и типов данных определяется набором алгоритмов, используемых при проектировании программного обеспечения системы управления. Информация об используемых алгоритмических модулях может быть размещена в базе данных, в которой с каждым алгоритмом обработки данных может быть сопоставлен набор функций управления и некоторый идентифика-ционный номер (ID).
Функциональная задача может решаться несколькими различными по структуре функциональными цепочками. В свою очередь цепочки могут состоять из различных функциональных операторов. Функциональному оператору могут сопоставляться разные алгоритмические модули, осуществляющие одинаковое преобразование данных, но различающиеся точностью, ёмкостью памяти, скоростью обработки, и т.д. Конечный результат раскрытия цепочек функцио-нальных операторов в цепочки алгоритмов обработки данных называется схемой реализации функциональной задачи. Таким образом, генерация программной структуры системы управления сводится к последовательности:
(функциональная задача) Þ (функциональная цепочка) Þ (схема реализации)
Информация о функциональных операторах, функциональных цепочках, функциональных задачах и обрабатываемых типах данных может размещаться в отдельных таблицах специализированной базы данных. Между таблицами функциональных задач и функциональных цепочек может быть установлено отношение типа: «задача может быть реализована цепочкой при определённых условиях». Такое отношение может быть формализовано таблицей правил. Функциональные цепочки могут быть формализованы как ориентированные графы, в которых вершинам соотвествуют функциональные операторы, а направленным ребрам соотвествуют передаваемые типы данных. Такие графы могут представляться в базе данных тремя таблицами. Одна таблица хранит информацию графах и связывается отношением с таблицей функциональных цепочек. Вторая таблица хранит информацию о вершинах графа и связывается отношением с таблицей функциональных операторов. Третья таблица хранит информацию о ребрах графа и связывается отношением с таблицей типов данных.

Функциональные операторы в схеме реализации могут быть заменены либо на алгоритмические модули, либо на другие функциональные задачи, если нет подходящего модуля. В случае замены функционального оператора на функцио-нальную задачу получается новый граф реализации, в котором присутствуют функциональные задачи и алгоритмические модули, связанные по ребрам с типами данных. Такой граф называется схемой частичной реализации системы. Для его преобразования требуется новая итерация генерирующей системы. В результате процесс генерации программной структуры системы управления распадается на несколько шагов по преобразованию схем частичной реализации в схему конечной реализации, которая состоит только из алгоритмических модулей.
(G0) Þ (G1) Þ (G2) Þ ….. Þ (Gq–1) Þ (GqFinal)
Генерирующая система получает начальный граф описания функциональ-ных задач как исходные данные для генерации. Затем система итерационно пытается раскрыть функциональные задачи и преобразовать их в функциональные цепочки, используя правила. В результате получается новый граф, содержащий функциональные операторы. Далее, система пытается заменить операторы на алгоритмические модули из базы данных модулей.

Если для функционального оператора нет модулей на замену, то система заменяет его на функциональную задачу. Если преобразованный граф снова содержит функциональные задачи, то система возвращается к применению правил преобразования, совершая новые итерации до тех пор, пока не будет получен граф, состоящий только из алгоритмических модулей.
Целью генерирующей системы является построение по перечню функцио-нальных задач системы управления и входной/выходной информации о пара-метрах технологического процесса таких цепочек функциональных операторов, которые могут быть реализованы с помощью имеющейся базы данных алгорит-мических модулей. Структура генерирующей системы может быть следующей:

Формально, генерирующую систему Á можно представить в виде:
Á: < M, D, F, C, T, P, G0 > ,
где M - множество алгоритмических модулей {mi}, i=1,...,NM ;
D – множество типов данных {dl}, l=1,...,ND ;
F - множество функциональных задач {fj}, j=1,...,NF ;
C - множество функциональных цепочек {ck}, k=1,...,NC ;
T – множество функциональных операторов {tx}, x=1,...,NT ;
P - множество правил преобразования, {pz}, z=1,...,NP ;
G0 - начальный граф описания взаимосвязи функциональных задач.
Процесс генерации структуры заключается в раскрытии начального графа описания взаимосвязи функциональных задач в схему реализации с помощью цепочек функциональных операторов.