Причиной отказа ПО служит некоторая систематическая ошибка программы, после устранения которой программистом данный отказ исчезает, т.е. имеет место восстановление ПО.
Различают ошибки первичного и вторичного типа.
Ошибки первичного типа связаны с неточностями в текстах программ и возникают при подготовке носителей и документации ПО, при записях кодов на алгоритмических языках и трансляции программ на машинный язык. А также из-за неточностей алгоритмов и при неверных или некорректных постановках решаемых на УВМ вычислительных задач.
Ошибки вторичного типа во многом являются следствием первичных ошибок программ. К ним относят ошибки:
- вычислительные (неверная индексация и подсчет временных параметров, расхождение результата ручного и машинного счета, появление неустойчивых операций и т.п.);
- логические (пропуск логических условий, неверные краевые условия и др.)
- сопряжения интерфейсов (межмодульных, программно-технических, информационных).
Ошибки первичного и вторичного типов порождаются на этапах разработки спецификаций на ПО; проектирования ПО; реализации программ.
Устранение ошибок или восстановление программ осуществляется программистом на этапе отладки ПО, который заканчивается сдачей готовых программ в эксплуатацию. Однако, как показывает опыт исследования надежности сложных ПО, около половины ошибок программ не выявляется на стадии отладки и сдачи ПО в эксплуатацию. Эти ошибки (преимущественно вторичные) проявляют себя в процессе эксплуатации ПО в случайные моменты времени t и приводят к отказам программ.
Отказы ПО при его эксплуатации имеют ряд отличий от отказов технических элементов:
· Отказ ПО не приводит к разрушению или поломке программного элемента. Отказы ПО не связаны с физическим износом элемента (в частности носителя программ) .
· Отказ ПО не коррелирован с процессорным и, тем более, астрономическим временем (с процессорным временем или числом прогонов ПО программ пользователем).
· При длительной эксплуатации ПО все его ошибки могут быть устранены и программы становятся абсолютно надежными. Если обозначить через N(t) число не выявленных ошибок ПО в произвольный момент процессорного времени t, то формально имеет место соотношение limN(t) = 0, справедливое при условии, что в процессе восстановления программ в них не вносятся новые ошибки.
Опыт создания и эксплуатации ПО реального времени показывает, что при устранении одних ошибок вносятся другие. Поэтому, при длительной эксплуатации ПО, общее число ошибок может оставаться постоянным или даже возрастать.
Для описания надежности ПО используют такие же функциональные и числовые характеристики, как и при исследовании надежности технических элементов.
Основные показатели надежности ПО:
1. функция ненадежности или отказа ПО Q(t) = Вер {того, что отказ ПО появится до момента времени t};
2. функция надежности ПО P(t) = Вер {того, что отказ ПО появится после момента времени t);
3. интенсивность отказов ПОl(t) = dQ/dt:
4. средняя наработка на отказ ПО: t = òtf(t)dt = òP(t)dt
Программное обеспечение АСУТП состоит из большого числа программ, подпрограмм и модулей, находящихся под управлением операционной системы реального времени или программы-диспетчера. Выполнение каждой из этих программ осуществляется последовательно во времени на одном и том же процессоре. Если эти программы имеют взаимные информационные связи или предназначены для получения одного результата y (вычисление одной функции), то в надежностном отношении такой программный комплекс представляет собой простую систему без избыточности и вероятность его безотказной работы равна произведению вероятностей безотказной работы каждой i-ой программы:
где m – общее число программ.
Надежность такого ПО определяется надежностью отказов самой «ненадежной» программы, имеющей наибольшее значение l , i=1,m.
Для повышения надежности нерезервиированного ПО следует в первую очередь улучшить характеристики самых «ненадежных» программ (более жесткое динамическое тестирование «ненадежных» программ, расширяя при этом набор тестовых задач). Если тестирование не уменьшает интенсивность проявления ошибок, то переписывают «ненадежную» программу, стремясь усилить ее структурированность путем увеличения числа готовых и хорошо изученных программных модулей и стандартных подпрограмм и применения апробированных межмодульных интерфейсов. Понижению интенсивности l способствует и переход на другой более высокий язык программирования.
Другой путь повышения надежности ПО связано с резервированием и введением в программную систему некоторой избыточности.
Применительно к ПО АСУТП различают три вида резервирования:
1. временное;
2. информационное;
3. программное.
Временное резервирование ПО заключается в многократном прогоне одних и тех же «ненадежных» программ и сравнении результатов расчета. Такое нагруженное резервирование позволяет устранять влияние случайных сбоев и выявлять случайные ошибки, требующие восстановления программ.
Информационное резервирование ПО основано на дублированных исходных и промежуточных данных. Эти данные могут проходить дополни тельную обработку, например, усреднение, до ввода в ПО, где они обрабатываются один раз; или обрабатываться одной и той же программой дважды, т.е. информационное резервирование подкрепляется временным.
Программное резервирование предусматривает наличие в ПО двух или больше разных программ для получения одного и того же результата у или реализации одной функции. Здесь возможно нагруженное и ненагруженное резервирование.
Резервирование программного обеспечения распределенных АСУТП часто сопровождается аппаратурным резервированием. При отказе ПО какой-либо локальной технологической станции или при выходе из строя технических средств этой станции, операционная система РАСУ передает выполнение ответственных функций отказавшей ЛТС другой станции.
Рекомендуемая литература для дополнительного чтения:
1. Балакирев В.С., Бадеников В.Я. Надежность технических и программных средств автоматизации. Учеб. пособие для ВУЗов. – Ангарск.: Ангарский технологический институт, 1994, - 64 с.
2. Ястребенецкий М.А., Иванова Г.М. Надежность АСУТП. Учеб. пособие для ВУЗов. – М.: Энергоатомиздат, 1989. – 264 с.
3. Надежность АСУ: Учеб. пособие для ВУЗов/ Под ред. Я.А. Хетагурова. – М.: Высшая школа, 1979. – 287 с.
4. Курочкин Ю.А. Надежность и диагностирование цифровых устройств и систем. – М.: Энергоатомиздат, 1993. – 240 с.
5. Шураков В.В. Надежность программного обеспечения систем обработки данных. Учебник для ВУЗов. – М.: Финансы и статистика, 1987. – 272 с.
Автоматические системы, а также их отдельные элементы при эксплуатации находятся под воздействием различных факторов, которые будем называть нагрузками. Характерной особенностью электронных автоматических систем по сравнению с механическими системами является большое разнообразие нагрузок, воздействующих на систему.
По физической природе нагрузки можно разделить на следующие основные классы:
1) механические нагрузки — вибрации, удар, постоянно действующие ускорения;
2) климатические нагрузки — температура, влажность и влага, атмосферное давление, солнечная радиация, пыль, песок;
3) электрические нагрузки — ток, напряжение, рассеиваемая мощность;
4) радиоактивные нагрузки — поток нейтронов, гамма-лучей
Механические нагрузки воздействуют на автоматические системы, работающие на подвижных объектах: летательных аппаратах, электровозах, кораблях и др. Кроме того, механические нагрузки возникают при транспортировке, а также при эксплуатации оборудования.
В результате воздействия механических нагрузок отказы автоматических систем имеют следующий характер:
1) смещение скользящих и вращающихся деталей и узлов;
2) обрыв элементов;
3) разрушение паек;
4) разрушение нитей накала ламп;
5) стук контактов;
6) короткое замыкание близко расположенных проводников и деталей;
7) размыкание нормально-замкнутых контактов;
8) замыкание нормально-разомкнутыхконтактов;
9) повреждение обмоток трансформаторов;
10) разрушение элементов конструкции.
Климатические нагрузки, воздействующие на автоматические системы, зависят от географического места, в котором работает система, а также от условий работы системы (стационарные, полевые и т. д.).
В результате воздействия климатических нагрузок отказы автоматических систем имеют следующий характер
1) изменение значений электрических констант (R, L, Си т. д.);
2) размягчение изоляции;
3) снижение эластичности изоляции;
4) уменьшение поверхностного и объемного сопротивлений изоляции вплоть до коротких замыканий вследствие образования льда;
5) замерзание движущихся частей;
6) размыкание и замыкание контактов вследствие коробления;
7) изменение прочности конструкционных элементов;
8) потеря смазочных свойств, а следовательно, чрезмерный механический износ подвижных частей вследствие попадания пыли и песка;
9) короткие замыкания вследствие ухудшения изоляционных характеристик воздуха с изменением высоты.
Так же, как и в случае механических нагрузок, климатические нагрузки в отдельных местах системы могут в значительной степени отличаться от их значений в окружающей атмосфере.
Электрические нагрузки обычно определяются для элементов и реже для узлов. Величина электрической нагрузки зависит от принципиальной электрической схемы и конструкции системы. Электрическая нагрузка определяет режим работы элемента. Для большинства электрических элементов устанавливается номинальное значение электрической нагрузки.