Scientific journal
Fundamental research
ISSN 1812-7339
"Перечень" ВАК
ИФ РИНЦ = 1,749

PROBLEM OF FORMING A FAULT-TOLERANT INDUSTRIAL CONTROL SOFTWARE PACKAGE

Stashkov D.V. 1 Nasyrov I.R. 2 Kazakovtsev L.A. 2, 3
1 SINETIC JSC
2 Siberian State Aerospace University Named after M.F. Reshetnev
3 Siberian Federal University
Authors propose new statement of the problem of increase of fault tolerance of program control systems for technological processes via redundancy of the most important program units. This problem is stated as a constrained pseudo-Boolean optimization problem of knapsack type with budget constraint. Parameters of such optimization model are program units. For each unit, solving the optimization problem results in determining necessity of its duplication or using its single version. Additional versions of program units which need duplication must be developed independently by an independent team of computer programmers. Estimation of error detection probability for a program unit is based on the Halsted statistical model. The proposed models are useful for the synthesis of automated control systems used in industrial companies and city infrastructure systems such as automated control systems of purification plants of a city sewerage system.
industrial automation
multi-version programming
pseudo-Boolean optimization
1. Antamoshkin A.N., Kazakovtsev L.A. Algoritm sluchainogo poiska dlya obobschennoi zadachi Vebera v diskretnykh koordinatakh [Random search algorithm for a generalized Weber problem in discrete coordinates]. Informatika i sistemy upravleniya. 2013, issue 1, p. 87–98.
2. Antamoshkin A.N., Kazakovtsev L.A.. Primenenie metoda izmeniayuschikhsya veroyatnostei dlya zadach razmescheniya na seti [Using the probability changing method for location problems on a network]. Vestnik SibGAU, 2014. 5(57).
3. Babeshko E.V. Analiz vozmozhnostey sovremennykh promyshlennykh kontrollerov dlya razrabotki otkazoustoichivykh system [Capability study of modern industrial controllers for developing reliable systems]. Radioelektronnye i kompyuternye sistemi. 2006, no. 7(19), pр. 36–39.
4. Dyubin G.N., Korbut A.A. Zhadnye algoritmy dlya zadachi o rantse: povedenie v srednem [Greedy algorithms for knapsack problem: average behavior]. Sibirskii Zhurnal Industrialnoi Matematiki. 1999. Vol. II, issue 2(4), pр. 68–93.
5. Kazakovtsev L.A. Parallelnyi algoritm sluchainogo poiska s adaptatsiei dlya system s raspredelennoi pamyatyu [Parallel random search algorithm with adaptation for shared memory systems]. Sistemy upravleniya i informatsionnye tekhnologii. 2012. issue 3 (49), pр. 11–15.
6. Kazakovtsev L.A., Stupina A.A., Orlov V.I. Modifikatsiya genetichskogo algoritma s zhadnoi evristikoi dlya nepreryvnykh zadach razmescheniya i klassifikaksii [Modification of genetic algorithm with greedy heuristic for location and classification problems]. Sistemy upravleniya i informatsionnye tekhnologii. 2014, issue 2(56), pр. 35–39.
7. Markov A.S.. Modeli otsenki i planirovaniya ispytanii programmnykh sredstv po trebovaniiam bezopasnosti informatsii [Models of estimating and planning of computer program tests according to information security demands]. Herald of the Bauman Moscow State Technical University. Mechanical Engineering. 2011. Special issue «Technical means and systems of information security», рp. 90–103.
8. Stupina A.A., Yezhemanskaya S.N. Tekhnologiya nadezhnostnogo programmirovaniya zadach avtomatizatsii v tekhnicheskikh sistemakh [Аault-tolerant programming of automation problems in technical systems]. Krasnoyarsk, Siberian Federal University, 2011б 164 p.
9. Tsarev R.Yu., Kapulin D.V., Mashurova D.V., Tynchenko Ya.A., Kovtanyuk D.N. Mnogoatributivnoe formirovanie garantosposobnykh sistem upravleniya i obrabotki informatsii [Multi-attributive synthesis of dependable control and information systems] // Vestnik SibGAU. 2012, no. 5(45), pр. 106–110.
10. Yastrebenetskii M.A. Opredelenie nadezhnosti apparatury promyshlennoy avtomatiki v usloviyah ekspluatatsii [Determining industrial automation systems reliability in service]. Moscow, Ripol Classic, 2014, 134 p.
11. Antamoshkin A.N., Kazakovtsev L.A. Random Search Algorithm for the p-Median Problem, Informatica (Ljubljana). 2013. 37(3), pр. 267–278.
12. GE Fanuc Automation. Series 90-70. Hot Standby CPU Redundancy. Users Guide. Ge Fanuc Automation North America. 1993, 93 р.
13. IEEE Std. 1061-1998 IEEE Computer Society: Standard for Software Quality Metrics Methodology. 1998, 20 p.
14. Kazakovtsev L.A. Random Constrained Pseudo-Boolean Optimization Algorithm for Multiprocessor Systems and Clusters // ICUMT 2012, International Congress on Ultra-Modern Telecommunications. IEEE Press. S-Petersburg. 2012, pр. 650–656.
15. Siemens Simatic. S7-400H Programmable Controller. Fault-Tolerant Systems.– Siemens AG. 2003, 328 р.

Современные системы управления промышленной автоматикой включают в себя сложные программно-аппаратные комплексы, состоящие из десятков и сотен компонентов: датчиков, исполнительных элементов, коммуникационных каналов, систем обработки информации и программных модулей. Дублирование функций аппаратных устройств достаточно хорошо изучено и описано в литературе [10, 3]. В критически важных узлах предусмотрено дублирование датчиков, исполнительных элементов, каналов передачи информации, серверов хранения и обработки информации, клиентских терминалов.

Производители устройств промышленной автоматики располагают обширной статистической информацией об отказах каждого вида устройств [15, 12]. Располагая подобной информацией, проектировщик имеет возможность оценить риски отказа той или иной подсистемы и спроектировать критически важные компоненты таким образом, чтобы применение наиболее надежных устройств в сочетании с дублированием и резервированием сводило риски к приемлемому уровню. В то же время сложные системы требуют разработки в своем составе программного комплекса управления технологическим процессом, который собственно и позволяет системе функционировать как единое целое, организуя взаимодействие ее компонентов в зависимости от условий окружающей среды и от хода технологического процесса. Отказы программного обеспечения, в том числе связанные с некорректной реализацией заложенных в систему управления математических моделей, могут приводить к отказу системы в целом, причем дублирование одинаковых копий программного обеспечения в этом случае ни в коей мере не устраняет проблему. В этой связи средством повышения надежности может стать мультиверсионное программирование.

Причины отказов и статистические данные о них

Производители устройств промышленной автоматики снабжают потребителей, которыми зачастую являются проектные и внедренческие предприятия, исчерпывающим методическим обеспечением [15, 12] по разработке соответствующего программного обеспечения. Но разработка программного обеспечения всегда сопряжена с риском возникновения ошибок на различных этапах. Ошибки на этапе составления программного кода, выявляемые компилятором, здесь несущественны, поскольку выявляются до ввода программного модуля в эксплуатацию. То же можно сказать о грубых логических ошибках в коде, всегда выявляемых на этапе тестирования системы. Наибольшее влияние на надежность программного комплекса оказывают ошибки, незначительные в обычных режимах работы, но проявляющиеся при выполнении нескольких условий. Как правило, программные модули тестируются на работоспособность в предельных режимах работы. В то же время ошибки могут проявляться при достижении предельных значений нескольких параметров одновременно.

Еще более «коварными» являются ошибки в сложных математических моделях, на основе которых построен программный код. Современные узлы промышленной автоматики работают под управлением программных модулей различной сложности. Единственный программный модуль может реализовывать как очень простую, так и чрезвычайно сложную логику управления исполнительными элементами в зависимости от показаний множества датчиков и накопленной информации. Рассмотрим, например, программный модуль, реализующий управление подсистемой распределительных камер аэротенков в системе управления городской канализацией (ПРКА ГК, рисунок). Соответственно, сложность программной реализации модулей чрезвычайно сильно различается. В состав изображенной подсистемы исполнительных механизмов подсистемы входят 8 регулирующих затворов, контрольно-измерительными приборами являются датчики уровня стоков и датчики положения затворов. Основной функцией алгоритма управления ПРКА является автоматическое позиционирование затворов в зависимости от задания перепада уровней стоков в распределительных камерах. Задача подсистемы – поддержание заданного перепада уровней в распределительных камерах посредством регулирования положения. Математическая модель расчёта расхода стоков, протекающих через затвор:

stashov01.wmf

где B – ширина нижнего края затвора; L – уровень воды в распределительной камере; S – положение шибера (в мм). Значения L и S также оцениваются с использованием соответствующих математических моделей. Кроме того, для данного алгоритма задан комплекс условий разрешения работы. Сформированные задания поступают на регулятор положения, задачей которого является позиционирование шиберов.

Также программный модуль содержит обширное множество алгоритмов работы в нештатных ситуациях – при неисправности датчиков и исполнительных элементов.

Готовый программный модуль должен быть настроен. Далеко не полный перечень настраиваемых параметров приведен в таблице. Некорректный программный код любого из алгоритмов, реализованных в программном модуле, или некорректные значения параметров приводят к сбою в программном модуле и некорректной работе всей системы. Поскольку программный модуль, изображенный на рисунке, реализует вспомогательные функции системы, его отказ не приведет к немедленной аварии всей системы. В то же время, в той же рассматриваемой системе имеются чуть менее сложные модули, управляющие ее критически важными элементами. Отказ модуля может быть обнаружен соответствующими средствами мониторинга. В то же время, некорректная работа модуля (некорректная реализация математических моделей) приводит к работе системы в неоптимальном режиме, что приводит к быстрому износу, повышению риска аварийных ситуаций в иных частях системы, работающих в данном случае с повышенной нагрузкой, а в случае систем, подобных представленной на рисунке, к серьезным экологическим последствиям в среднесрочной перспективе. Обнаружение подобных неявных ошибок чрезвычайно затруднено.

В случае отказа программного модуля вследствие аппаратного сбоя средством повышения надежности системы, безусловно, является дублирование аппаратных ресурсов – датчиков, серверов, телекоммуникационных каналов. Нарушение же логики работы программы, не приводящее к ее остановке, будет повторяться на любом количестве ее копий.

pic_107.wmf

Структурная схема алгоритма управления ПРКА ГК (пример)

Параметры настройки алгоритма (пример)

Параметр

Описание

Значение

Q1ном, Q2ном

Номинальное значение задания расхода

150 мм

Q1 min, Q2 min

Минимальное значение задания расхода

50 мм

Q1 max, Q2 max,

Максимальное значение задания расхода

1000 мм

Тош.рег

Задержка сообщения об ошибке регулирования

120 с

S1 безоп, …, S8 безоп

Уставка безопасного положения затворов

50 мм

L1 авар. выс, L2 авар. выс

Аварийно высокий уровень в распр. камере

5800 мм

L1авар.низк, L2 авар. низк

Аварийно низкий уровень в распределительной камере

900 мм

Тзад.Lавар

Задержка формирования сообщения об аварийном уровне в распределительной камере

60 с

Методы мультиверсионного программирования и оценки вероятности возникновения ошибок

Технология высоконадежного мультиверсионного программирования традиционно применяется в военной, в основном – космической [9, 8] сфере. Наземные комплексы управления космическими аппаратами комплектуются программным обеспечением, отдельные модули которого дублируют функции друг друга. Версии модуля разрабатываются независимыми командами программистов, раздельно тестируются. Кроме того, часто используются различные средства разработки. Версии исполняются параллельно, результаты работы каждой из них передаются вспомогательному модулю, осуществляющему сравнение результатов. Если результаты (в пределах установленной погрешности) совпадают, исполнительному элементу передается результат одного из модулей. В случае несовпадения, например, управляющее воздействие выбирается «большинством голосов» (требуется нечетное число версий модулей). В любом случае применение мультиверсий позволяет выявить наличие проблемы в программном коде. Выявленная ошибка в программном коде может служить сигналом к переводу системы в особый аварийный режим работы, к остановке производства и т.д., до выявления причины ошибки и ее устранения. Таким образом, во многих случаях системы промышленной автоматики не требуют наличия нечетного количества мультиверсий. Наличие хотя бы двух независимо разработанных версий позволяет в большинстве случаев выявлять ошибку.

Пусть вероятность возникновения ошибки в i-й версии программного модуля равна pi. Тогда вероятность одновременного возникновения ошибки во всех модулях равна

stashov02.wmf

где N – число версий модуля, и вероятность обнаружения ошибки равна stashov03.wmf.

Очевидно, что данное значение стремится к 1 с ростом N. Поскольку программные модули проходят всестороннее тестирование, вероятность ошибки в каждой из версий модуля невелика. Например, если вероятность ошибки в каждой из двух версий модуля равна 0,001 %, вероятность одновременного возникновения ошибки сокращается до 0,0000001 %.

Для оценки предполагаемого числа ошибок используются разнообразные модели. Например, в [7] предлагается следующая оценка первоначального числа ошибок D0:

D0 = V/3000, (1)

где V – объем программы в бит информации. Объем, в свою очередь, оценивается как

V = N∙log2η,

где η = η1 + η2 – число уникальных операторов и операндов программы; N = N1 + N2 – число обращений к ним в ПО.

Число ошибок на m этапе тестирования модель Холстеда [13] оценивает как

stashov04.wmf (2)

где E – оценка сложности системы:

stashov05.wmf

Данные модели сложности и предполагаемого числа ошибок могут быть использованы в качестве грубых оценок. Пусть для каждого из M модулей имеется несколько версий, Vj для j-го модуля. Пусть Pji – вероятность безотказной работы i-й версии j-го модуля. Если отказ любого из модулей ведет к отказу всей системы, то вероятность P безотказной работы системы может быть выражена следующим образом:

stashov06.wmf

Оптимизационная модель надежности программного комплекса

В свою очередь, вероятность безотказной работы может быть оценена через число ошибок (1)–(2).

Сложность каждого из модулей можно считать приблизительно одинаковой вне зависимости от конкретной реализации. Таким образом, зная сложность единственной версии каждого модуля, может быть получена оценка вероятности безотказной работы системы в целом в зависимости от числа версий каждого из модулей и вероятности безотказной работы Pj единственной версии:

stashov07.wmf

В то же время увеличение числа версий каждого из модулей сопряжено с увеличением стоимости системы. Для систем промышленной автоматики будем считать приемлемым число версий модуля, не превышающее 2. Введем булевы переменные xj, равные 1, если предполагается дублирование j-го модуля и константы Cj – стоимость разработки j-го модуля. Тогда при заданном бюджете C на разработку всего программного комплекса имеем оптимизации:

stashov08.wmf (3)

Задачи псевдобулевой оптимизации подобного («рюкзачного») типа исследованы в работах А.Н. Антамошкина [11, 1, 2] и др. Созданы методы [5, 14], позволяющие получать субоптимальное (достаточно точное) решение подобных задач размерности до миллионов переменных, что позволяет решать задачи, подобные (3). Для задач с монотонной целевой функцией могут быть также успешно применены жадные эвристики [4] или специальные агломеративные жадные эвристики [6].

Заключение

Задача повышения надежности систем промышленной автоматики кроме дублирования функций аппаратных устройств требует в некоторых случаях дублирования также и программных модулей. Задача построения оптимальной конфигурации требуемых программных модулей может быть сведена к задаче псевдобулевой оптимизации.

Рецензенты:

Антамошкин А.Н., д.т.н., профессор, зав. кафедрой математического моделирования и информатики, ФГБОУ ВПО «Красноярский государственный аграрный университет», г. Красноярск;

Ступина А.А., д.т.н., профессор, зав. кафедрой «Экономика и информационные технологии менеджмента», ФГАОУ ВПО «Сибирский федеральный университет», г. Красноярск.