В марте 2022 года вышел указ о запрете приобретения, а в последующем и использование, импортного программного обеспечения (ПО) для его использования на объектах критической информационной инфраструктуры (КИИ). Одновременно с этим с отечественного рынка начали уходить международные компании изготавливающие и поставляющие различные программные средства для разработки и проектирования ПО (например, CODESYS).
В соответствии с этим многие изготовители программируемых логических контроллеров и другого оборудования, столкнулись с проблемой недоступности продуктов ПО для своего оборудования.
В сертификационный центр «Эндьюренс» часто обращаются с вопросом, как сертифицировать ПЛК по SIL2/SIL3 с точки зрения программного обеспечения, нужно ли проверять операционную систему, пользовательские интерфейсы на соответствие функциональной безопасности.
Согласно ГОСТ IEC 61508-2018 стандарт предъявляет требования к любому программному обеспечению, являющемуся частью системы, связанной с безопасностью, либо используемому для разработки системы, связанной с безопасностью. Программное обеспечение, связанное с безопасностью, включает в себя операционные системы, системное программное обеспечение, программы, используемые в коммуникационных сетях, интерфейсы пользователей и обслуживающего персонала, встроенные программно-аппаратные средства, а также прикладные программы.
Сертификацию операционной системы и других элементов ПО можно проводить как отдельно, так и в составе конечного оборудования (например, контроллера). Процедура сертификации и требования и в том, и другом случае идентичные. Процесс разработки ПО (жизненный цикл) должен соответствовать требованиям ГОСТ IEC 61508-3-2018. Большинство разделов стандарта имеют связанные с ними структурирование таблицы с требованиями (таблицы в приложениях А и B) для соответствия конкретному уровню полноты безопасности. Каждый метод или средство, требуемое стандартом подробно описан в ГОСТ Р МЭК 61508-7-2012.
В общем случае всё начинается с задания спецификаций и анализа требований функциональной безопасности. Как правило, делается это с помощью HAZOP программного обеспечения. Выделяются важные для функциональной безопасности требования, остальные требования либо подлежат исключению, либо отделяются от процесса разработки функциональной безопасности. Далее происходит проектирование, интеграция и тестирование программных модулей. Каждый этап включает свои методы и средства, требуемые стандартом. Например, на этапе проектирование ПО, одним из методов является использование соответствующих языков программирования. Для уровня SIL3 требуется использовать языки с ограниченной изменчивостью (например, ассемблер). Если используется языки с полной изменчивостью, такие как C/С++, то требуется дополнительный статический анализ кода и подмножество, например, MISRA-C.
Всё указанное относится и к среде разработки и к операционной системе, и к пользовательским программам. Как мы можем заметить, это достаточно трудоемкий процесс, который требует серьёзной подготовки и работы. Поэтому для начала необходимо проработать требования ГОСТ Р МЭК 61508-3 и составить четкий план дальнейших действий и этапов разработки ПО.
На текущий момент как мы указывали выше, как никогда актуальные отдельные элементы ПО, сертифицированные по ГОСТ Р МЭК 61508, которые может приобрести конечный изготовитель и встроить в своё изделие. К особо актуальным элементам относятся операционные системы (на данный момент нет сертифицированных отечественных), среды разработки (ушёл с рынка codesys safety и другие продукты).
Если Вам хочется более детально разобраться в данном вопросе, наш сертификационный центр «Эндьюренс» ответит на все интересующие вас вопросы (Info@sil3.ru).
Сертификация по функциональной безопасности SIL2/SIL3: https://endce.ru/sil2
Обучение по функциональной безопасности: https://endce.ru/kurs-funktsionalnaja-bezopasnost