Автор | Сообщение |
---|---|
admin | |
Наткнулся на эту статью и коль скоро предмет беседы весьма интересен, позволю себе немного развить эту тему. Возьмем ту же схему (действительно, довольно корявую надеюсь автор простит мне ее использование) из упомянутого поста:
Легко представить, что оборванный кабель от этой самой кнопки приведет к тому, что оператор может нажимать ее до потери пульса, пока оборудование не встанет от перегрева, или пока циркулярная пила допиливает его коллегу, или дожимает его гидравлическим прессом. Давайте немного углубимся: При проектировании систем АСУ ТП, а особенно компонентов аварийного останова нужно руководствоваться не доводами «либо так, либо этак», а вполне себе четко написанными стандартами. Описывать их целиком — это не для Хабра, но давайте глянем мельком. — (0) неконтролируемый останов посредством немедленного отключения питания; Еще, согласно EN 418, различают аварийный останов и аварийное отключение. Проще всего разделять их по источнику опасности. Если что-то перемещается — значит стоп с аварийным остановом. Если опасность из-за удара электрическим током, — отключение с аварийным отключением (масло-масляное, ага). Наконец, командное устройство (в данном случае та самая кнопка), должно быть самоблокирующееся с деблокировкой сознательным действием «по месту». Уфф, четыре абзаца текста про один контакт... Перед тем, как открыть AutoCad и нарисовать схему, правильно было бы провести анализ рисков, учесть опыт аварийных ситуаций, почитать про систематические отказы, изменения нормативов, требований безопасности, определить SIL, итд, можно долго продолжать. Но в условиях какого-нибудь Челябинского металлургического завода это выглядит маловероятным, к сожалению. Поэтому мы пойдем от самого главного ограничения, — бюджета, определив, что главными приоритетами для нас являются: — целостность рук и ног нашего коллеги; Сейчас набежит Дихальт и скажет, что первые два пункта перепутаны местами... В статье, на которую я ссылаюсь, автор использует оборудование Siemens, тоже любимое мной по ряду причин. Продолжим с этим же оборудованием, но вместо странной кнопки SB1 возьмем правильную, т.е. грибовидный нажимной выключатель аварийного останова c фиксацией с двумя группами контактов. Использовать будем нормально-замкнутые. Кроме того, поменяем контроллер, и возьмем не 314, а например 315F. Буква F означает Failsafe. Вкратце, это отказоустойчивые контроллеры специально заточенные под безопасность. Конечно, такие контроллеры можно использовать и для обычных задач управления, разделяя безопасную и небезопасную часть железа и программмы. Подключим нашу кнопку S1 как один двухканальный датчик с оценкой 1оо1, как показано на схеме (сорри за пометки карандашом и почерк):
Для того, чтобы запрограммировать нашу функцию безопасности (аварийный останов), нам понадобится Step7 c установленным пакетом Distributed Safety. Главное отличие от программирования линейки «обычных контроллеров» — это отсутствие моего любимого языка STL, отсутствие некоторых операций с числами и вообще, урезание любого функционала, написание которого может вызвать у программиста затруднение или ошибку. В наличии у нас только F-LAD и F-FBD. Простейшая программа на 6 кнопок, 5 лампочек и 2 контактора с использованием Distributed Safety становится похожа вот на что:
Смысл отдельного, защищенного программного блока для обработки одной кнопки аварийного останова очень прост. Во-первых, программист не ошибется, а во-вторых, этот блок, ровно как и железо, в которое мы его загрузим, сертифицирован и гарантированно отработает так, как нужно. Интерфейс блока прост. Справка для него выглядит следующим образом:
Вызываем блок и привязываем адреса:
Сохраняем, компилируем, вызываем, заливаем и другие действия с окончанием -ем (сорри, обед близко), — вуаля. Готова система аварийного останова, которая выключит нашу пилу или пресс в случае нажатия кнопки, обрыва кабеля, диагностической ошибки, потери связи, питания, неисправности модуля, и еще много чего. Вот она, в виде готового стенда, который помогает разобраться в деталях безопасного проектирования и программирования:
1. Почему в вызове блока «F_ESTOP1» один адрес красный? Источник:https://habr.com/ru/post/274941/ |
|
Сообщения: 463 |