ГОСТРМЭК 61511-2—2011
g) модификацию ППО и технических средств.
После проведения начальной установки и начала функционирования изменения а ППО и а техническом обес
печении проводятся строго по принятым на предприятии процедурам изменений.
0.2 ППО разработки логического решателя ПСБ
Как упомянуто ранее, в погическом решатепе ПСБ использован пакет разработки ППО. основанный на язы
ках (12). Эти программные средства поддерживают следующие три языка: язык структурированных текстов, язык
многоступенчатых диаграмм и язык функциональных блоков. Для каждого языка необходимы отдельные стандар
ты кодирования. Язык команд, аналогичный ассемблеру, не был включен, так как он не подходит для
прикладных программистов. Это согласуется с таблицей С.1 [16J.
На выбор языка в (12). что согласуется с требованиями, приведенными в 7.4.4 и таблице А.3 МЭК 61508-3 и в
С.4 (16). наложен ряд дополнительных ограничений, включая следующие:
a) в (12) определены 20 типов данных (BOOL. SINT. INT. DINT. LINT. USINT. UINT. UDINT. ULINT. REAL.
LREAL. TIME. DATE. TOD. DT. STRING. BYTE. WORD. DWORD. LWORD). Следует отметить, что существует восемь
отдельных типов целочисленныхданных. Чтобы поддерживать все эти типы данных, требуется поддержка большо го
количества функций преобразования и сокращения. Для применений, связанных с безопасностью, многие из
приведенных типов данных не требуются. Поэтому число поддерживаемых типов данных было сокращено до 11.
Для конкретного языка выбраны следующие типы поддерживаемых данных. BOOL. INT. DINT. DWORD. REAL.
LREAL. STRING. TIME. DATE. TOD и DT. Это решение согласуется с рекомендациями МЭК 61S08 по ограничению
подмножества языков (см. МЭК 61508-3. таблица 3):
b
) использование графических элементов управления исполнением (например, безусловные и условные пе
реходы. безусловные и условные возвраты), принятых в МЭК 61508-3. не поддерживается, так как они могут приво
дить к появлению циклов и непреднамеренному обходу элементов, которые следовало бы выполнить (см. С.4.6
(16)):
c) не поддерживается ряд операторов языка структурированных текстов, так как они могут приводить к появ
лению циклов (например. FOR... END
_
FOR. WHILE...END
_
WHILE и REPEAT...END
_
REPEAT).
d) было наложено ограничение на то. чтобы язык не допускал доступ по записи к одной и той же глобальной
переменной нескольких программ. Считывать значения глобальной переменной могут несколько программ, но для
предотвращения конфликтов записывать значения этой переменной может только одна программа. Кроме того,
если при программировании ППО будетслучайно запрограммирована запись значений глобальной переменной не
сколькими программами, то выдается соответствующее предупреждение;
e) программирование должно однозначно определять порядок выполнения всех элементов программы. Все
языки имеют алгоритм, который устанавливает порядок выполнения и реализует его на каждом выполняемом эле
менте;
f) программирование должно обеспечить разделение программ, критичных и некритичных к безопасности.
ПО предоставляет программисту возможность определить, какие программы связаны с безопасностью, а ка
кие — нет. Программист также имеет возможность определять переменные, связанные и не связанные с безопас
ностью. При этом программы, не связанные с безопасностью, не могут иметь доступ по записи к переменным
безопасности;
д) было признано, что использование переменных типа VAR
_
IN
_
OUT у многих прикладных пользователей
приводит к серьезным затруднениям. Поэтому использование переменных типа VAR
_
IN
_
OUT нуждается в тща
тельном документальном оформлении либо язык программирования не должен их поддерживать.
D.3 Стандарты кодирования для прикладного программиста
Для того чтобы обеспечить разработку ППО безопасности, для разработчиков прикладных программ должны
быть установлены стандарты кодирования. Ниже приведен ряд указаний для программистов, разрабатывающих
прикладные программы и использующих для этого конкретное ПО разработки:
a) разработчику прикладных программ следует для реализации функций безопасности ПСБ использовать
языки с ограниченной изменчивостью (язык функциональных блок-схем или язык многоступенчатых диаграмм).
Даже эти языки должны быть ограничены (см D.2 о подмножестве языков);
b
) язык структурированных текстов является языком с полной изменчивостью, и его использование, если
возможно, следует ограничить реализацией на нем функций и функциональных блоков. Такое ограничение было
принято для того, чтобы эксплуатирующий персонал, не обладая профессиональными навыками в программирова
нии. понимал программы безопасности.
c) размер программ следует ограничить до разумных пределов. Функции безопасности ПСБ. предназначен
ные для различных частей процесса, должны выполняться разными программами. В идеале одна программа дол
жна охватывать только небольшое число функций безопасности ПСБ одной части процесса;
<3) следует избегать смешивания имен. Например, если средства программирования поддерживают масси
вы. то программы, использующие массивы, должны проверять индексы массивов, чтобы убедиться, что они соот
ветствуют допустимому диапазону;
52