Еще немного об ошибках проектирования АСУ ТП и программирования ПЛК — АСУ ТП: сообщество инженеров

Еще немного об ошибках проектирования АСУ ТП и программирования ПЛК

Коротко о статье

Статья разбирает ошибки проектирования АСУ ТП на примере схемы аварийного останова и показывает, как исправить их с помощью стандартов EN 60204 и EN 418, отказоустойчивого контроллера Siemens 315F и блока FB 215 «F_ESTOP1» в Step7 с Distributed Safety.

Главное
  • В исходной схеме ошибка: надпись «Аварийный стоп» на нормально-открытом контакте кнопки SB1, что при обрыве кабеля делает кнопку бесполезной.
  • При проектировании аварийного останова следует руководствоваться стандартами EN 60204 (категории останова 0, 1, 2) и EN 418 (различие аварийного останова и аварийного отключения).
  • Командное устройство должно быть самоблокирующимся с деблокировкой сознательным действием «по месту».
  • Вместо кнопки SB1 предлагается грибовидный нажимной выключатель аварийного останова с фиксацией и двумя нормально-замкнутыми группами контактов.
  • Контроллер 314 заменяется на 315F (Failsafe), кнопка S1 подключается как двухканальный датчик с оценкой 1oo1.
  • Для программирования функции безопасности используется Step7 с пакетом Distributed Safety, доступны только F-LAD и F-FBD, применяется стандартный блок FB 215 «F_ESTOP1».
  • После срабатывания кнопки требуется подтверждение сброса отдельной кнопкой, ключом или через HMI.
Термины и технологии
  • EN 60204
  • EN 418
  • Failsafe
  • Step7
  • Distributed Safety
  • F-LAD
  • F-FBD
  • FB 215 «F_ESTOP1»

Кому полезно: Инженерам АСУ ТП и программистам ПЛК, занимающимся проектированием и программированием систем безопасности.

По теме на сайте

Выжимка составлена редакцией сайта с помощью ИИ по тексту статьи.

Наткнулся на эту статью и коль скоро предмет беседы весьма интересен, позволю себе немного развить эту тему.

Возьмем ту же схему (действительно, довольно корявую надеюсь автор простит мне ее использование) из упомянутого поста:

HGY9MZs_7co.jpg
Первое слабое звено этой схемы, которое бросилось мне в глаза, совсем не реле К1, конечно тоже достойное упоминания, а надпись «Аварийный стоп» на нормально-открытом контакте кнопки SB1.

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

Давайте немного углубимся:

При проектировании систем АСУ ТП, а особенно компонентов аварийного останова нужно руководствоваться не доводами «либо так, либо этак», а вполне себе четко написанными стандартами. Описывать их целиком — это не для Хабра, но давайте глянем мельком.
EN 60204 описывает три категории аварийного останова:

— (0) неконтролируемый останов посредством немедленного отключения питания;
— (1) останов с сохранением питания, пока привод не остановится;
— (2) контролируемый останов.

Еще, согласно EN 418, различают аварийный останов и аварийное отключение. Проще всего разделять их по источнику опасности. Если что-то перемещается — значит стоп с аварийным остановом. Если опасность из-за удара электрическим током, — отключение с аварийным отключением (масло-масляное, ага).

Наконец, командное устройство (в данном случае та самая кнопка), должно быть самоблокирующееся с деблокировкой сознательным действием «по месту».

Уфф, четыре абзаца текста про один контакт…

Перед тем, как открыть AutoCad и нарисовать схему, правильно было бы провести анализ рисков, учесть опыт аварийных ситуаций, почитать про систематические отказы, изменения нормативов, требований безопасности, определить SIL, итд, можно долго продолжать. Но в условиях какого-нибудь Челябинского металлургического завода это выглядит маловероятным, к сожалению.

Поэтому мы пойдем от самого главного ограничения, — бюджета, определив, что главными приоритетами для нас являются:

— целостность рук и ног нашего коллеги;
— целостность оборудования;
— минимум вмешательства в бюджет.

Сейчас набежит Дихальт и скажет, что первые два пункта перепутаны местами…

В статье, на которую я ссылаюсь, автор использует оборудование Siemens, тоже любимое мной по ряду причин. Продолжим с этим же оборудованием, но вместо странной кнопки SB1 возьмем правильную, т.е. грибовидный нажимной выключатель аварийного останова c фиксацией с двумя группами контактов. Использовать будем нормально-замкнутые.

Кроме того, поменяем контроллер, и возьмем не 314, а например 315F. Буква F означает Failsafe. Вкратце, это отказоустойчивые контроллеры специально заточенные под безопасность. Конечно, такие контроллеры можно использовать и для обычных задач управления, разделяя безопасную и небезопасную часть железа и программмы.

Подключим нашу кнопку S1 как один двухканальный датчик с оценкой 1оо1, как показано на схеме (сорри за пометки карандашом и почерк):

uCokFuCVsN4.jpg
А теперь плавно перейдем к второй части повествования, т.е. программированию ПЛК и ошибкам.

Для того, чтобы запрограммировать нашу функцию безопасности (аварийный останов), нам понадобится Step7 c установленным пакетом Distributed Safety. Главное отличие от программирования линейки «обычных контроллеров» — это отсутствие моего любимого языка STL, отсутствие некоторых операций с числами и вообще, урезание любого функционала, написание которого может вызвать у программиста затруднение или ошибку. В наличии у нас только F-LAD и F-FBD.

Простейшая программа на 6 кнопок, 5 лампочек и 2 контактора с использованием Distributed Safety становится похожа вот на что:

7zu9ISWCC6o.jpg
Однако для данного примера, мы рассмотрим один стандартный программный блок FB 215 «F_ESTOP1»: Emergency STOP up to Stop Category 1.

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

Интерфейс блока прост. Справка для него выглядит следующим образом:

t2cP_eFifeQ.jpg
Принцип действия описан на скрине, однако для тех, кто не знает английского, поясню вызов этого блока в нашем примере. 
Итак, кнопка, модуль ввода 4/8 FDI, модуль вывода и контакторы K1, K2. Внизу вы найдете красивую картинку с нашим примером «в железе».

Вызываем блок и привязываем адреса:

KwMx6i1dSuI.jpg
Здесь главное это вход #e_stop_i — это сигнал от нашей кнопки. Срабатывание любого из ее контактов приведет к единице на этом входе. Выход #e_stop_q далее привязывается к модулю вывода и к контакторам. Главное позади. Кроме этого, есть необходимость в подтверждении, то есть после срабатывания кнопки, оператор не просто должен отжать ее в начальное положение поворотом «по месту», но и подтвердить сброс другой кнопкой, ключом, или нажатием мышкой на HMI-интерфейсе.

Сохраняем, компилируем, вызываем, заливаем и другие действия с окончанием -ем (сорри, обед близко), — вуаля. Готова система аварийного останова, которая выключит нашу пилу или пресс в случае нажатия кнопки, обрыва кабеля, диагностической ошибки, потери связи, питания, неисправности модуля, и еще много чего.

Вот она, в виде готового стенда, который помогает разобраться в деталях безопасного проектирования и программирования:

2yIXnMGOw8Y.jpg
Поскольку я люблю комментарии вот вам пару вопросов на внимательность и сообразительность:

1. Почему в вызове блока «F_ESTOP1» один адрес красный?
2. Как бы вы подключили контакторы K1 и К2?
Спасибо!

Источник:https://habr.com/ru/post/274941/

Оставьте комментарий

Войти

Зарегистрироваться

Сбросить пароль

Пожалуйста, введите ваше имя пользователя или эл. адрес, вы получите письмо со ссылкой для сброса пароля.

Прокрутить вверх