Критические ошибки проектирования АСУ ТП и программирования ПЛК.

PLC
В промышленности внедряются автоматизированные системы управления технологическим процессом (АСУ ТП) на промышленных программируемых логических контроллерах (ПЛК) на объектах модернизации. Вновь поставляемое оборудование, уже по умолчанию содержит АСУ на ПЛК. Но качество проектирования АСУ ТП и программирования ПЛК иногда не соответствует логике и требований к надежной защите управляемого объекта. В этой статье я расскажу о типичной ошибке проектирования и программирования обычного промышленного оборудования.


Введение


Рассмотрим типичный объект, содержащий АСУ на ПЛК в промышленности. В горнообрабатывающей отрасли, на обогатительных фабриках (ОФ) на стадии измельчения полезных ископаемых (руды) применяются различного типа мельницы. Они бывают шаровые, стержневые, вертикальные тонкого измельчения и т.д. Основной функцией данных мельниц является измельчения руды до фракции необходимой в дальнейшем для химического извлечения полезного ископаемого. У такого оборудования есть свои слабые места в процессе эксплуатации. Победитовые коренные подшипники, редуктора и т.д. Они требуют к себе постоянного контроля температуры, наличия смазки и т.д. В случае перегрева или сухого хода АСУ должна отключить агрегат, пока состояние узлов не достигло критической точки. Программные реализации данных защит и блокировок типичны и стандартны для такого рода оборудования.

Какие бывают ошибки?


Давайте рассмотрим две основные ошибки при проектировании и программировании АСУ для оборудования такого типа. Первая ошибка – неправильное проектирование релейной части управления главного привода или критичного механизма. Вторая ошибка – недостаток программы в части обработки фатальных ошибок ПЛК.

Ошибки в схемах.


Рассмотрим случай с релейной частью. На рисунке приведен пример такой ошибки. В схеме показана только часть управления отключения главного привода оборудования.

На первый взгляд обычная релейная схема. Но если присмотреться к ней, то можно определить, что рано или поздно наступит такой момент, когда релейная схема не сможет отключить главный привод в случае возникновения аварийной ситуации. Присмотримся к схеме. Отключение главного привода осуществляется ПЛК дискретным выходом. В данной схеме он релейный, но может быть и транзисторным, суть от этого не поменяется. Так вот, если по какой то причине катушка реле К1 сгорит во время работы оборудования, то при возникновении аварии, контроллер даст сигнал на отключение главного привода, но сигнал дальше сгоревшей катушки реле не пойдет. Но ведь по технологии, при отключении главного привода, требуется и отключение вспомогательного оборудования, в данном случае это маслонасос. Так вод при аварии, маслонасос будет благополучно отключен, а главный привод останется молотить на «сухую». Благо система ко всему еще и оповещение включит, так, что противно кричащий звонок и моргающая красная лампа привлекут к себе внимание обслуживающего персонала и «катастрофы» не произойдет. После этого, местные электрики или КИПовцы, найдут причину сего безобразия, поменяют реле и все станет на свои места, быть может, кто нибудь и задумается, как этого избежать в будущем, но врядли.
Так что в этой схеме реле К1 слабое звено. Что можно сделать чтоб такого не случилось. Элементарно. Сигнал отключения ВВ посадить на нормально-закрытый контакт реле К1, а само реле притягивать во время пуска главного привода и в рабочем состоянии удерживать его притянутым. Кстати, кнопку аварийный стоп, тоже так включать не стоит. Либо контакты кнопки должны непосредственно отключать исполнительный механизм, либо, если таких механизмов несколько, разрывать цепь реле, контакты которого уже отключают исполнительные механизмы. Кстати, такое включение промежуточных реле управления критичными исполнительными механизмами рождает и ошибочную отработку при ошибках программирования ПЛК.

Ошибки программирования ПЛК.


При программировании ПЛК, некоторые программисты допускают ошибки, приводящие к аварийным ситуациям на производстве.
Недавно мне пришлось столкнуться с такой ситуацией. Схема релейной части отключения главного привода была такой как представлено выше. Ошибка при программировании привела к тому, что главный привод работал на «сухую» четыре часа, что привело к перегреву редуктора. В результате редуктор полностью вышел из строя, а это в данном оборудовании дорогостоящий элемент. Что же пошло не так?
При выявлении причины аварии, приведшей к большим материальным затратам, было установлено, что ПЛК перешел в режим «СТОП» по причине срабатывания сторожевого таймера. Соответственно, релейная схема отключила всё вспомогательное оборудование, кроме главного привода. Сторожевой таймер сработал по причине наличия тупиковой ветки в алгоритме, не приводящей к зацикливанию главной функции. А как известно, почти у всех фирм производящих ПЛК, переход ПЛК в режим «СТОП», сопровождается установкой дискретных выходов в безопасное состояние. В данном случае в состояние отключено. В данной АСУ программист совершил две ошибки:
  1. Разветвленный алгоритм имел тупиковую ветку, приведшую к срабатыванию сторожевого таймера.
  2. Обработка исключений в программе не производилась, тем самым ПЛК перешел в режим «СТОП».
Первую ошибку спишем на сложность программы, в которой трудно найти такого вида ошибку.
Вторую ошибку, списать можно только на отсутствие компетенции программиста.
Как известно, многие ПЛК имеют программные модули для отработки различных фатальных ошибок ПЛК. Рассмотрим такие модули на примере ПЛК от фирмы сименс.
Вот небольшой пример такой ошибки.

Здесь программист производит линеаризацию аналогового входа на основе библиотечной функции FC105. В основном цикле по включению бита М0.1 происходит масштабирование аналогового сигнала. Все бы хорошо, но если в ПЛК не загрузить тот самый FC105, то при выполнении данной строчки, ПЛК вывалится в «СТОП SF» если не задать обработчик программных ошибок, так называемый OB121. Если такой обработчик залит в ПЛК, то при таких ошибках индикация SF появится, но ПКЛ в режим «СТОП» не уйдет, и продолжит выполнять пользовательскую программу.

Подведем итоги.


Релейную схему необходимо проектировать так, что бы в любой аварийной ситуации, будь то технологическая авария или ошибка ПЛК, отключение исполнительных механизмов проводилось в обязательном порядке не зависимо от рода возникновения аварии. Подходить к программированию ПЛК со всей ответственностью, ведь оборудование, которое призвано защитить АСУ ТП от критичных условий эксплуатации, приводящим к разрушению механизмов, намного дороже самой АСУ.
В данной схеме необходимо было использовать следующее включение компонентов релейной схемы.

А в программном модуле OB121, выполнять какие-нибудь действия по архивированию случившегося отказа в ПЛК.

Видео, показывающее поведения ПЛК при программных ошибках и их обработках представлено ниже.



Вывод


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

P.S.
Оставлять просто пустые программные блоки обработки аппаратных или программных ошибок тоже не стоит. В них необходимо выполнять какие либо действия на детектирование таких ошибок или для сбора статистики отказов ПЛК и возможных причин.

P.S.S.
Оригинал схемы. Разборчивость вроде нормальная.
  • +4
  • 09 января 2016, 11:22
  • Helix

Комментарии (159)

RSS свернуть / развернуть
Рассмотрите вариант дублирования цепей управления и контроля состояния электродвигателя разными модулями I/O, плюс алгоритмической проверкой состояния перед отключением зависимых от агрегата систем. И все станет проще.
0
Дублирование и контроль состояния всех и вся — это излишество. Можно обойтись правильным включением реле. И алгоритм не усложнен, и защита на всех уровнях.
0
Экономически это вполне оправдано (модули дискретного ввода-вывода самые дешевые из всего набора для ПЛК), а надежность здорово повышается.
0
Конечно, если есть такая необходимость, но в данном случае — обычная мельница в технологии измельчения. Не критичное оборудование в технологической цепочки. Усложнять АСУ для управления главным приводом и двумя насосами с контролем температуры, давления и уровня не стоит.
0
Оборудование то не критичное, а вот редуктор дорогой очень! Вообще на практике при эксплуатации оборудования многие датчики дублируют (уже в ходе эксплуатации) для повышения надежности системы (и то что издох редуктор копейки по затратам по сравнению с убытками от простоя самой мельницы, а если еще заказ к концу подходит… то нужно бешеных неустоек заплатить).
Если брать хим.пром, то там принято ставить три датчика и принимать результат по срабатыванию двух датчиков из трех.
Теперь тратим пару сотен баксов на датчики, еще пару сотен на модуль цифрового ввода и повышаем надежность всей системы!
З.Ы. А вообще если экономить на некоторых вещах нельзя! как там? «Скупой платит дважды»?
0
В данном случае, дублирование сигналов состояния или контроль исправности ни к чему лучшему не привел бы. В случае, если реле сгорело, то хоть за контролируйся и за дублируйся, отключить привод будет не «кому».
0
отключить вводной? нет не суждено?
0
Ну что? отключили вводной? а «кто» команду даст на выключение ВВ привода?
0
Автоматика Вам зачем? или Вы не АСУ тут расписываете воду? Хотя в большинстве случаев речь идет о малой доле самого АСУ как такового…
Вот и на лицо основная проблема! Вся система начиная с программного заканчивая электроникой (про механику такое же впечатление складывается) спроектировано и смонтировано в корне не верно! И затыкание палками и глиной дыр в ней ни какого результата существенного не дадут…
0
Так вот в данной статье и показана ошибка автоматики, которая не сможет в некоторых случаях этого сделать (аварийно остановить).
0
Выдуманная ошибка полного неуча — чтобы её не было достаточно соблюдать правила консистентной (целостно-непротворечивой) загрузки всей программы и всей конфигурации
0
А если, во время пуско-наладке, программист добавил что то, и обновил только основной блок и забыл до залить модуль библиотечный. Человеческий фактор и здесь никто не отменял.
0
Ну за забывчивость бить надо розгами… Просьба не выдумывать абсурдные оправдания — это как Пилот полетел из Москвы в Хабаровск и забыл заправить самолёт…
Если ты программист-забывчивый, то выбирай в настройках проекта режим загрузки PCS7.
0
Действительно оправданий здесь быть не должно. Но такая ситуация, случившаяся, говорит, что это возможно.
0
Такая ситуация возможно у неучей и людей со слабым характером… когда я после 3-х суток НИОКР на ногах говорю «ВСЁ… эксперименты прекращаем… идём спать...» то меня уже не заставишь… я говорю, что если продолжать, то я могу совершить неисправимые ошибки… это вам надо?
Надо ответственно относиться к своей работе — вот ты отнёсся к своей просветительской деятельности халтурно… чего не сделал?
1. Навязал неверную методологию создания программы и загрузки чистого ПЛК.
2. После загрузки не проверил в режиме подключения состояние ПЛК в HW Config.
и соответственно
3. Не посмотрел Буфер диагностики ПЛК
4. Не обратил внимание на индикатор ошибки.
0
вот ты отнёсся к своей просветительской деятельности халтурно…
Это скорее всего, недостаток опыта на данном поприще.
1. Навязал неверную методологию создания программы и загрузки чистого ПЛК....
Здесь и не планировалось описывать правильные действия, как туториал. Показал ситуёвину, которая может случиться пусть и не со всяким, но с многими.
0
Тогда люди что сдавали объект и люди что принимали его должны быть наказаны! Программист уволен, наладчики лишены премий, руководители понижены по должности! При пусконаладке должны проверяться все системы (так же в аварийных режимах работы), если у вас тормоза откажут в автомобиле, Вы поймаете столб… начнете разбираться а Вам ответят:«та то так… при сборке механик трубку повредил, а когда менял ее вторую не закрепил как полжено… ну человеческий фактор… извините» И Вы с поломанным бедром (в лучшем случае) говорите в ответ «Окай буде теперь на костылях гонять»
0
Это уже не в моей компетенции. Но уверен, что санкции на производстве будут.
0
Нам проще жить: у заказчика все в НТД расписано, что надо делать именно так.
«Без выдержки времени:
— визуальная и звуковая сигнализация, оперативное сообщение о срабатывании защиты в операторной, диспетчерам;
— передача сигнала «Невыполнение команды отключения ВВ» в АСТУЭ.
Через 3 секунды:
— повторяемое отключение ВВ (до отключения ВВ);
— АВР отсутствует.
При получении команды на отключение ВВ системой
энергоснабжения:
— отключение ввода ЗРУ системой УРОВ.
При неполучении команды на отключение ВВ системой энергоснабжения:
— ручное отключение ВВ оперативным персоналом.»
0
будет не «кому».
Еще существуют в природе люди, их операторами установок называют, так вот им бабки платят за то что они следят за ходом дела и своим глазом могут вовремя все определить даже если автоматика не сработала. Если оператор не увидел этого, значит его или не было, или никаких ошибок, аварий ему система не показала (а должна). + мог он и облениться да дрыхнуть пять часов где нибудь в темном уголке
0
Человеческий фактор никто не отменял. В данном случае, система не только релейной частью не блещет надежностью, но и скада тоже оставляет желать лучшего.
0
Там как бы… того… СКАДЫ как таковой я не увидел…
замена, глупая очень замена, релейноконтакторной схемы на ПЛК. И все!

Вот Вы опять понятиям смысл другой даете:
SCADA (аббр. от англ. supervisory control and data acquisition, диспетчерское управление и сбор данных) — программный пакет, предназначенный для разработки или обеспечения работы в реальном времени систем сбора, обработки, отображения и архивирования информации об объекте мониторинга или управления. SCADA может являться частью АСУ ТП, АСКУЭ, системы экологического мониторинга, научного эксперимента, автоматизации здания и т. д. SCADA-системы используются во всех отраслях хозяйства, где требуется обеспечивать операторский контроль за технологическими процессами в реальном времени. Данное программное обеспечение устанавливается на компьютеры и, для связи с объектом, использует драйверы ввода-вывода или OPC/DDE серверы. Программный код может быть как написан на языке программирования (например на C++), так и сгенерирован в среде проектирования.

Иногда SCADA-системы комплектуются дополнительным ПО для программирования промышленных контроллеров. Такие SCADA-системы называются интегрированными и к ним добавляют термин SoftLogic.

Термин «SCADA» имеет двоякое толкование. Наиболее широко распространено понимание SCADA как приложения[1], то есть программного комплекса, обеспечивающего выполнение указанных функций, а также инструментальных средств для разработки этого программного обеспечения. Однако, часто под SCADA-системой подразумевают программно-аппаратный комплекс. Подобное понимание термина SCADA более характерно для раздела телеметрия.

Значение термина SCADA претерпело изменения вместе с развитием технологий автоматизации и управления технологическими процессами. В 80-е годы под SCADA-системами чаще понимали программно-аппаратные комплексы сбора данных реального времени. С 90-х годов термин SCADA больше используется для обозначения только программной части человеко-машинного интерфейса АСУ ТП.
0
Для полного обесточивания используются «Реле Безопасности»
пример PILZ — внутри схема контроля входов от аварийных кнопок и 2 реле, соединённых последовательно

Их можно выключить по размыканию цепи кнопки аварийного стопа и по команде от ПЛК
как на представленной схеме Siemens SK11**


Helix — не рисуй такие схемы в популистких целях — я из твоей схемы ничего не понял
0
Про реле безопасности, это отдельная песня, которая должна быть. На счет схемы, это пример. Кусок одного реле. По-моему все понятно.
0
+1
обычный УМЗЧ из РАДИО, а вот разместить кауюнито схему карманного приемника с стопицот индуктивностей это да (я их так и не одуплил всякие там гетеродины)
+3
0
А это что? Рацайка с цифровым управлением? Тоже скорее всего по большей части из типовых схем состоит, да включенных по даташиту микросхем.
0
Знакомая схема. Я собирал по ней усилитель в детстве. Тогда я знал функцию каждого транзистора и диода в этой схеме.
0
Тогда я знал функцию каждого транзистора и диода в этой схеме.
В некоторых усилках, с хитрыми цепями ОС, бывает куда сложнее понять функции резисторов и конденсаторов, чем транзисторов)
0
Ну и в принципе, эта схема анализируется за пять минут, ничего сложного в ней действительно нет. Отмечу только, что противофазные сигналы для половин усилителя получаются довольно оригинальным способом.
0
Им платят в том числе и за то, что при серьезной аварии есть шансы домой вернуться по частям или ногами вперед.Ачинск, 2014
0
Вот здесь лучше видно То же Ачинск
0
Как человек работающий в похожей области (DDC HVAC) слегка офигел — что значит
в ПЛК не загрузить тот самый FC105
и при этом программа как то будет работать…
Это кабздец…
Как минимум должн быть стопицот предупрждений или невозможность работы не?

зы У нас все не несколько проще оно туда не загрузится если что то не так ну и в худшем случае если не совпадет прошивка — контроллер просто не будет работать
0
Будет работать, еще и как. И загрузится. И даже может и не ругнется не разу. Посмотрите видео, там видно как и что загружается, и какие при этом предупреждения или еще что вываливаются.
0
На сайте Сименса есть русская документация «Первые шаги», где по шагам подробно описано как правильно составлять конфигурацию и правильно написать программу и затем правильно её загрузить в контроллер (выбрав в дереве проекта правильное место) и правильно отладить с поиском ошибок.

А теперь по «ошибкам» — надо быть полным неучем, чтобы придумывать такие «ошибки» на пустом месте и затем усугублять их.
В случае возникновения ошибки на морде контроллера или симулятора Сименса начинают светиться соответствующие индикаторы Ошибки программы SF — System Fault или Ошибки связи BF — Bus Fault.
Причина ошибки ищется в буфере диагностики контроллера.

Система продолжает работать не смотря на наличие ошибки… по факту не подключен коммуникационный модуль, который не влияет на выполнение основной программы управления


На форуме Сименса в последнее время появилось много просьб научить «чайников» за 3 дня всем знаниям за курс средней школы и специализированного ВУЗа и курса работы подмастерьем на производстве…
Прошу несведующих не удивляться некоторым домыслам и вымыслам в блогах и форумах… к сожалению в отечественную промышленную автоматику была внедрена группа диверсантов :(
Потом диверсанты с умным видом начинают учить других диверсантов...
Всем привет.
С понедельника выхожу работать на должность Инженер КИПиА.
Буду обслуживать и программировать Siemens s7. Которого в глаза не видел.
Мне очень нужна эта работа, а точнее зарплата, потому как содержу себя сам.
Представление о ПЛК имею, но не знаю с чего начать.
В чем программировать контроллер?
Интересует подключить например ТСМ 50 и вывести температуру на экран.
Дайте что то почитать, у меня 3 дня...
Честно говоря боюсь представить, что нас ждет в будущем. Уже сейчас с кадрами огромные проблемы: наш университет выпускает каких то бакалавров недоделанных. 15 лет не был в университете, тут пришлось по случаю столкнуться: зп преподавателя на 1 ставку не приличная, вместо процесса обучения нужно заниматься бумажками. Науки нет. Красивые слова, типа территория опережающего развития, бизнес-инкубатор и прочаяя дребедень.
Книжку типа Simatic для чайников нужно будет вместе с автором закопать. Если ее еще нет, то возможно она уже пишется, каким нибудь доцентом. Рано или поздно наверняка подобный труд нарисуют.

Жена врач, если перенести ситуацию на медицину, то получится такая тема на форуме врачей: здравствуйте, я медсестра, докторов нет, но начальство хочет чтобы я могла удалить гланды и сделать операцию на головном мозге.
Дайте пожалуйста книгу Хирургия для чайников.
Температуру я уже научилась измерять, колоть в вену не приходилось, но представление имею.


И уже не до смеха, т к в медецине тоже с кадрами катастрофа
+1
думаю в свое время вы были таким же диверсантом :)
0
Я начинал работу в КБ… делал от релейки до микропроцессорных систем управления… ещё на 580… затем на 1816
чайником себя никогда не называл
0
А я и не говорил что вы чайник :)
Имеется ввиду что пусть вы даже работали хоть гугле главным где и были чудом из чудес — всегда при переходе на другую платформу набивается много шишек в связи с особенностями, а уж про переходы между версиями и новые «исправленные» прошивки это наше все — только не говорите что всего этого у вас нет.
Хотя спорить не буду основные — правила они похожи у многих платформ.
+1
Тут меня возмутило только одно! Чайник, не чайник… все мы в разных областях чайники…
Но когда более опытные люди говорят что так не делается, а чайник в ответ три этажа оспорений что эта система имеет право на жизнь и т.д… вот тут бомболейло…

Работал с фирмой продающей оборудование для железки, испытательное оборудование, вот если выходила деталь из строя подвижного состава и приводило к аварии (не приведи господь человеческие жертвы...) проводится расследование где выясняется кто что как… результат расследования — сроки большие людям по чьей вине…
Вот там меня научили ответственности! Когда пол месяца все предприятие сидит и кирпичами срет в ожидании вердикта, чтоб это не испытанная нашим оборудованием деталь развалилась, а испытание показало не верные значения…
После нескольких валидольных недель понял, надо делать все по правилам, без отклонения и самоуправства и слушаться более опытных! Иначе шаг в право, шаг влево — расстрел!!!
0
Все это прекрасно. И в процессе разработки и пусковой наладке обязательным считается все это проверять и отлаживать. Но такие ошибки имеют место быть даже у крупных фирм. Это не единичный случай, как программных, так и релейных с которыми мне приходилось сталкиваться.
0
Книги есть написанные для студентов по эксплуатации наладке и ремонту. Там расписано все по пунктикам что кто должен и как это должно делаться… если есть отклонения — кто-то должен за них отвечать!
0
И в процессе разработки и пусковой наладке обязательным считается все это проверять и отлаживать...
Ну вот дверь немного отладили… никогда не догадаетесь как…
0
Не томите… Что с дверью случилось?
+1
Автор как то уж больно широко заклеймил всю промышленность, привел какие-то детские рисунки, не представил ни схемотехнических ни программных решений.
У себя на производстве я такого не встречал, опять пустой треп эмбедерщика…
0
Ставлю ПИЩАЛКИ и ЗВОНКИ ГРОМКОГО БОЯ, которые разбудят любого оператора
s7detali.narod.ru/Other/Buzer.html
0
Звонки громкого боя может и разбудят, когда звенят, но в при данной ошибки они просто предательски будут молчать, что и произошло на производстве.
0
Я не знаю какое у Вас производство, но если по копаться, то всегда можно найти ошибки, может не такие критичные. А то, что я привел «детские» рисунки, так они предназначены для показа локальной схемотехнической ошибки, так же как и пример описания программной. Таких программных ошибок может быть куча. Если Вам интересно, то я могу выложить ксерокопии той схемотехники проекта которыми располагаю на основе которой написана статья, правда после 11 числа, а конкретную программную ошибку показать не смогу, исходников у меня нет и эксплуатация мне их не даст.
0
Не надо ничего приводить, одно подключение аварийной кнопки параллельно контактам ПЛК говорит о любительском исполнении.
0
Я привел конкретную выдержку из электрической схемы оборудования. Так как ксерокопии, которыми я располагаю, низкого качества, решил этот участок перерисовать.
0
Автор гордо исправил ситуацию с реле, при этом обрек бедного оператора смотреть как мельница наматывает кишки его напарника на вал, потому как кнопка аварийного останова то нифига и не рабочая, да и не кнопка аварийного останова это вовсе…
И вот странно… Помоему еще не то что в технарях и универах, а даже в училищах электромонтерам объясняют, почему в промавтоматике сигналы остановов, сигнализаций и т.п. подаются низким уровнем…
+1
  • avatar
  • N1X
  • 09 января 2016, 16:19
В данной ситуации, я с Вами не соглашусь. НО кнопки аварийного останова в данной схеме имеет место быть. Механическая прочность такой копки (циклов работы за все время эксплуатации и 1000 не наберется) обеспечить прохождение сигнала на отключение ВВ главного привода. И не стоит для кнопки городить релейную схему.
-2
Эм, ну тогда я не понял вашу схему. Я то думал вы нормальную схему сделали, и цепь после промежуточного реле тоже подает сигнал разрывом, ан нет, оказывается замыканием. Поэтому я и подумал, что грибок не рабочим стал, а так да, работает, только через жопу.
0
Если Вы про первую схему? То да, через жопу. А если уже про исправленную? То помогите понять, чем она то плоха.
0
Тем что нормальноразомкнутый грибок это в корне не верное решение.
0
почему в промавтоматике сигналы остановов, сигнализаций и т.п. подаются низким уровнем…
А можно литературу какую, где все это можно почитать?
+1
О чём почитать? О том, что обрыв провода есть «низкий уровень» сигнала?
Из-за неправильных формулировок возникают недоразумения.
0
Собственно я выпускник кафедры АТПиП, однако же тех самых элементарных вещей, данных как в самой статье так и в комментариях нам не рассказывали. Посему хотелось бы почитать какую-либо литературу, в которой все эти нюансы подробно изложены. Вы не знаете такую?
+1
Вот релейная защита существует гораздо дольше чем АСУТП, РЗА появилась как появилось электроснабжение вообще и подстанции в часности. В релейной защите НИКОГДА!!!, слышите, НИКОГДА не осуществляют отключение оборудования нормально-замкнутыми контактами, а все почему? А потому что ложное отключение ничем не лучше чем аварийное НЕотключение. При пропадании опертока (24В), при неисправности (зависании) контроллера или терминала защиты не должно происходить отключения силового оборудования. Ложное отключение чревато простоями технологического процесса, огромными убытками и дикими звездюлями начальнику подстанции и службе РЗА.
0
Данная ситуация как раз из рода аварийного не ОТКЛЮЧЕНИЯ, повлекшее дорогостоящий ремонт и простой оборудования не минуты, а скорее всего месяцы. А ложное отключение, от сгоревшей реле, технологию не сильно покоробит. Дабы опер. персонал будет оповещен и т.д. Время простоя после этого составит десятки минут.
0
Десятки часов… оперативному персоналу никто не разрешит включать оборудование без выяснения обстоятельств (создание комисии и.т.д), а найти сгоревшее реле не так то просто.
0
а найти сгоревшее реле не так то просто.
это вопрос уже к уровню квалификации обслуживающего персонала. К тому же в таких системах, искать ничего и не надо. Проект скады, должен показать конкретную причины отказа, вплоть до сгоревшего реле.
0
Оперативный персонал не обязан и не будет искать сгоревшее реле, этим занимается служба РЗА, а реальность такова, что релейщиков на подстанциях как таковых нет, всех посокращали.
0
Служба РЗА на подстанциях к данной ситуации ни имеет ни малейшего отношения. Это поприще КИП или участка АСУ на производстве.
0
А ведь есть технологическое оборудование у которого число пусков-остановов ограничено, например газовые турбины, там время до повторного запуска это часы, и раньше запускать её нельзя.
0
Критичное оборудование и проектироваться должно с повышенными коэффициентами надежности, безотказности, и «лже срабатываний». В данном случае, критичным технологическим оборудованием назвать нельзя, и АСУ проста и выполняет свои минимальные функции, но такие ошибки гробят даже такие простые системы.
0
Согласен, ошибок при проектировании невероятно огромное количество, последний нормальный проект по релейной защите видел 6 лет назад, от Новосибирского Энергосетьпроекта. После этого ничего хорошего не было
0
Не нужно путать теплое с мягким. То РЗА в энергетике, а это промавтоматика. И здесь всегда такие цепи сделаны нормально разомкнутыми.
0
В релейной защите НИКОГДА!!!, слышите, НИКОГДА не осуществляют отключение оборудования нормально-замкнутыми контактами, а все почему?
Ещё один учитель-неуч — изучи любую схему Старт-Стоп движка или просто включения силового контактора…
Отключение любого оборудования происходит размыканием нормально-замкнутого контакта схемы управления… при этом цепь разрывается и нагрузка отключается… иначе можно наломать редукторов.
Аналогично Кнопки Аварийного Стопа имеют Нормально-Замкнутые контакты… будь то нажатие на кнопку с фиксатором!!! или обрыв провода кем то или чем то, то схема не соберётся до устранения причин обрыва цепи
+1
Кнопка аварийного останова конечно имеет НЗ контакт, но это совсем не «аналогично» отключению от защиты. По вашему что нужно останавливать половину какого завода при пропадании опер тока защиты или сгорании обмотки реле?
0
Вот потому и не понимаете, что не ваша область, и не поймете не изучив. В промоборудовании нет «опер тока защиты». Есть питание цепей управления, которое берется от силовых цепей. И если оно пропало, значит или сила пропала, или БП сдох. В компактном оборудовании (станки, роботы) это однозначное отключение. К технологических линиях — контроллер решит, т.к. каждый случай имеет свою специфику.
Еще раз повторюсь — это не энергетика. Это как придти в мечеть и рассказывать им про библию.
+2
Кнопка «Стоп» или «Выключить» всегда имеет НЗ контакт — её цель разорвать питание в цепи управления…
Почему?
По опыту, нажитому за 300 лет применения электричества.
Если для остановки использовать сигнал =24В или 220В, то в случае обрыва провода сигнал команды остановки от кнопки никогда не дойдет по назначению.
0
Исключение подтверждают правило. У нас НО контакт отключает ВВ агрегата через реле в ячейке, в то же время НЗ контакт этой же кнопки идет в АСУТП и показывает исправность цепи.
0
Так как некоторые комплектные кнопочные посты Аварийного стоп укомплектованы 1 НЗ и 1 НО,
то у нас всегда НЗ идёт в релейную часть (ну то есть управление контакторами) и из релейки ещё идёт контроль в АСУ,
а НО идёт в АСУ для индикации местоположения одной из десятков кнопок.
Если НО не сработает из-за обрыва провода, то релейная часть в любом случае сработает и на экране появится надпись «Где то нажата аварийная кнопка» «Сработала релейная защита».
0
Принцип «катушка реле под током, пока параметр в норме», а не наоборот, настолько элементарен и очевиден, что не придерживаться его может только совсем не умеющий думать проектировщик.
+1
  • avatar
  • vert
  • 09 января 2016, 17:43
Я аж прослезился. На мой взгляд, автор поднимает две актуальные проблемы. И по моему опыту пуско-наладчика скажу, что эти проблемы реально имеют место, особенно часто встречаются в больших проектах.
1) Часто реле (несмотря на очевидность) цепляют таким способом, который описал автор. Потому-что их, похоже, рисуют исходя из ЛОГИКИ запуска установки (словесного описания И, ИЛИ, НЕ), без анализа надёжности.
2) В программе ПЛК не прописывают обработчиков ошибок.
Практически все оппоненты, накинувшиеся на автора, считают, что это делают профессионалы. Но реалии таковы, что это делают как правило самоучки (особенно в больших проектах, где организация-проектировщик нанимает всякий сброд с улицы, лишь бы уложиться в срок и не платить неустойку заказчику). В свою очередь заказчик сам себе не враг задерживать сроки пуска из-за проведения проверки надёжности, которая сама по себе весьма трудозатратная процедура, а объёмы огромные и на неё с принимающей стороны кладут болт.
Автору, огромное спасибо, за то, что он обратил на эти типичные и глупые ошибки внимание, может люди-«проектировщики с улицы» прочитают это и учтут.
Винить ему можно только то, что примеры носят несколько надуманный характер
+4
И вылазит вся эта «радость» только когда объект сдан, с недоделками, за откат принимающему начальству. И устранять её приходится «нашим ребятам за ту же зарплату». Например, автономные котельные-вагончики — это целая эпопея, не видел ещё ни одного, который бы работал на 100% согласно проекту.
0
vert, проблема есть и её нужно искоренять, всеми возможными способами. Одну неумелую попытку искоренения проблемы уровня «жесть, не знаем азов» автор поста предпринял. Мы можем бесконечно возмущаться, а можем пытаться что-то делать. В последнем случае появляется хоть какая-то вероятность, что-то изменить в лучшую сторону. Мне самому эти два явления (что в статье) в проектах остачертели до такой степени, что хоть волком вой. Но статью написать я почему-то не отважился. А если разобраться, то неумехи ведь в первую очередь в интернет полезут искать инфу как правильно делать. Может кто и наткнётся…
0
Да разве ж я против?
0
А если разобраться, то неумехи ведь в первую очередь в интернет полезут искать инфу как правильно делать. Может кто и наткнётся…
Как показывает огромнейшее число живых примеров неумехи бьют себя кулаком в грудь (самодурство) рассказывая о своем профессионализме и верности их суждений. А более менее адекватный человек стремящийся к профессионализму перед решением многократно перепроверит себя и выбранный способ реализации, проконсультируется, в книги зароется и т.д.
0
Иногда с завода такая лажа делается, что хоть стой, хоть падай.
Пример: нормально-открытый отсечный клапан на газопроводе — взводится вручную, отсекается импульсом напряжения 24-40 вольт. Вопрос: зачем? кто это придумал? кому это взбрело в голову?
В случае отключения электроэнергии клапан должен закрыться, а для этого блок управления должен сформировать запирающий импульс. А если не сумеет? а если провода оборваны?
0
он может быть заточен под узкую задачу… но во времена маркетинга и туповатых снабженцев с эконом.образованием спрос держится такого уровня что клапаны эти клепаются… и будут клепать и покупаться…
0
Нет, это именно газовый клапан, со всеми бумажкам по сертификации, безопасности и т.д.
Единственное объяснение в рамках нормальности, которое приходит мне на ум, это современная мода на энергосбережение. Это же не экономно, постоянно держать соленоид под током.
0
мне кажется единственное объяснение в рамках нормальности: кто-то кому-то дал бабла за сертификацию…
Если мне память не изменяет, то при сертификации оборудования оно должно подпадать определенному ряду требований (предъявляемых допустим тем же клапанам запорным), иначе это уже оборудование из другой оперы и другого назначения.
0
Да потребителю-то какая разница, кто там что дал.
Важно, что нашёлся уникум-изобретатель, способный на такой изврат. Я очень хотел бы посмотреть на этого человека.
0
Клапан не ОС-2М1, случаем? У меня был вообще очень примечательный случай, характеризующий степень непонимания заказчика и то, на сколько всё дремучо в этой части. Налаживаем клапана-отсекатели на скважинах, показываем, что все сигналы проходят, мол, чуть что, должно сработать, подписываем акты о выполнении работ, после чего заказчик откидывает провода от клапана.
На мой вопрос — А зачем вы их отключаете?,
получаю ответ — ты что, а вдруг сработает?!
Так и живём…
+1
Нет, КЗГЭМ-У, вот полюбуйтесь www.vdgu.ru/downloads/documents/sign/kzgem/kzgem_u.pdf если интересно.
Испокон веку отсекающие клапаны были нормально-закрытыми: пропало напряжение — клапан закрылся. Но нет, это же несовременно…
0
Плохо обьяснили, нормально-открытым этот клапан становится только после взвода вручную, т.е. он нормально-закрытый. Можно купить нормальный клапан типа ВН, стоит он в ~3,5 раза дороже. а тот кто подписывает документы… И т.д и т.п.
0
Для автоматики безопасности, в момент отключения электроснабжения, он нормально-открытый. И для человека, по возможным печальным последствиям, тоже.
0
Я согласен, управление клапаном сделано по уродски, через дополнительный блок БУК, но практически этого хватает чтобы при пропадании питания на блоке он успел за счет конденсаторов послать импульс отключения на клапан. Иначе сертификат РосТехНадзора он не получил бы.
Другое дело, вы пробовали его взвести вручную? Это секунд 15 усрачки…
0
Есть одна маленькая проблема: не везде он используется с блоком, способным выдать остатки заряда конденсатора в момент пропадания электричества. Ну и обрыв проводов к клапану, уже упомянутый.
Всё же «принцип горячего реле» мне нравится больше. Даже в этом случае бывают проблемы — электроника и электромеханика сработали, а дальнейшие, чисто механические звенья, иногда отказывают. Зачем же добавлять ещё и дополнительных проблем?
0
Нормально-открытый клапан как раз должен в случае чего открыться. Такие обычно ставят на сбросные трубопроводы (свечные). А Вы скорее всего имеете ввиду нормально закрытый клапан с ручным взводом.
0
О терминологии мы здесь уже вчера поговорили с двумя товарищами. :)
Как ни называй дурость, она не перестаёт ею быть.
0
Для больших организаций в автоматике этих вагончиков слишком мало денег, вот они за них и не берутся. Сами же эти вагончики (не котельные, но блок-боксы с щитовым и АВОК) субчикам заказываем. Качество вполне приличное.
0
Поддерживаю.
Большинство заказчиков не имеет представителя который разбирается в предметной области и естественно жмутся на консультанта или даже сделав проект за деньги смешают в нем все что можно и нельзя.
0
Под словом «профессионалы» я подразумеваю людей, закончивших специальность «Автоматизация технологических процессов и производств». Опять-таки в этой области работает много других профессионалов, но в смежных областях, которые своим ходом допирают до премудростей АСУ ТП.
0
Спасибо. В качестве примера — да, надуманная ошибка, которая призвана показать, что произойдет с ПЛК, когда ошибка может возникнуть приводящая ПЛК в СТОП. Релейная же схема — реальная часть работающего оборудования.
0
Helix, ещё раз спасибо за поднятие такого вопроса. Но я также не догнал, что делает релейная схема исходя из рисунка. Возможно, это вызвано тем, что приводится только участок схемы и пояснения остались в другом месте. Если как Вы утверждаете, это кусок реальной документации, то меня в первую очередь уже бы насторожило то, что она выполнена не по стандарту, а так, как разработчик посчитал ему удобней.
0
Оригинал схемы выложу 11 числа, как попаду на рабочее место. Как показало «вскрытие», изучение того листа электрической принципиальной схемы, данный разработка относится к буржуям, которые поставляют оборудование с СУ на ПЛК в комплекте. А лист схемы, полупереведенный оригинал на русский язык. А то что не по ГОСТ оформлена схема — это да. Здесь я рисовал на скорую, для примера. Хотя в оригинале наши ГОСТы тоже не выдерживал.
0
Хотя в оригинале наши ГОСТы тоже не выдерживал.
Опечатка, «В оригинале ГОСТы тоже не выдерживали». Сам себя поправляю, что бы не возникло недопонимания.
0
А на схеме отображена релейная схема отключения главного привода мельницы. Также показан пускатель маслонасоса, для примера, что остановка ПЛК вызовет остановку маслонасоса, но не отключит главный привод.
0
Не место в промышленной автоматике не умеющим читать документацию самоучкам — винить надо за то, что показывает неправильную методологию программирования, на основании которой делает ложные выводы.
Зайди на сайт документации Сименса и почитай «Первые шаги» — там всё по полочкам разложено


Примеры поиска причин ошибок ошибок

0
Здесь и не планировалось описывать правильные действия, как туториал. Показал ситуёвину, которая может случиться пусть и не со всяким, но с многими.
Пытался объяснить ранее.
0
Ты показал в качестве Заключения как правильно надо заливать ПЛК, чтобы избежать выдуманных самим же проблем?
0
На правильность в последней инстанции не претендовал. Но для данного случая такого порядка действий вполне достаточно.
0
Выдуманная ошибка полного неуча — чтобы её не было достаточно соблюдать правила консистентной (целостно-непротворечивой) загрузки всей программы и всей конфигурации
Если же взять за образец, Ваш метод. То и он не всегда приемлем. Если необходимо дописать программный блок уже на работающем оборудовании, то такая заливка однозначно переведет ПЛК в режим стоп во время «теплого» рестарта, а это практически никогда не уместно. К тому же, если хардвейная конфигурация не изменятся, то и трогать её лишний раз не стоит. Так что заливаем только программные блоки и не всегда все в куче.
0
Я всегда думаю прежде чем перезаписать существующий блок — Степ7 спрашивает уверен ты в том, что ты хочешь сделать?

Галочку не гашу, так как иногда реально устаёшь занимаясь и программированием и монтажом… есть несколько мгновений на «подумать»…
если вспоминаю, что добавил новые подпрограммы, то отменяю загрузку этого блока и перехожу к загрузке ещё незагруженных,
а затем загружаю вызывающий их…
как бы данная последовательность должна быть в мозгах всегда — это гарантирует, что не будет неожиданных неприятностей.
Загрузка изменений происходит на лету без остановки контролера.
Если хочешь быть уверенным в непротиворечивости текущей программы залитому в ПЛК, то делаешь полную заливку с остановкой.
0
Но и это не 100% защитит от такой, пусть и надуманной, ошибки. Организация самого человека играет большую роль. Никогда еще IDE не имело 100% защиты от дурака.
0
Предложи Сименсу, чтобы в 14-ый Портал они встроили сканер проверки непротиворечивости при загрузке изменений и тогда будет всплывать подобное окно
0
На счет портала, то это отдельная жестокая песня. Ничего еще более медленного не встречал. Аж приезжать на него не хочется.
0
Лучший способ выстрелить себе в ногу. Unity такой проект даже собирать откажется. Хотя в EFB (функции пользователя, написанные на Си и вкомпилированные в проект — для скорости) там контроллер таким раком можно поставить, что он вообще насмерть будет виснуть после первого скана. Причем, спорадически.
0
исправить ошибку ощибкой?
0
Народ, в чем ошибка? Что сделано в данном конкретном примере не так? Что я упустил при таком исправление ошибки?
0
Выше неоднократно уже писали!
0
Ты не можешь понять?
Это пример неправильной методики программирования или способ поиска причин ошибок?
Как ты понял, что именно ОВ121 не хватает?
Почему ты её не заполнил для выяснения причин её вызова, а оставил пустой?
Как ты понял, что именно FC105 не залита?
Посмотрел буфер диагностики на 4-ой минуте?
Зашёл в собственно в контроллер и посмотрел, на его дерево?

Ты экстрасенс?
Почему ты не используешь тактовый меркер с адресом МВ0 по умолчанию?
То есть ты показал, что ты не разбираешься в программировании в принципе.
0
Как ты понял, что именно ОВ121 не хватает?
Я же намеренно допустил программную ошибку, поэтому именно этого обработчика и не хватает.
Почему ты её не заполнил для выяснения причин её вызова, а оставил пустой?
Статья не туториал, а возможность донести, что такие ошибки имеют место быть.
Как ты понял, что именно FC105 не залита?
Да, в диагностический буфер не заходил, на трех «строчках» кода ясно где ошибка.
Почему ты не используешь тактовый меркер с адресом МВ0 по умолчанию?
Для чего он тут? В данном примере?
0
Как бы ты искал ошибку в чужой программе?
Потому, что сам понял что накосячил?
А мог бы прочитать в Руководствах и сделать как надо
Диагностика и отладка
Из-за неправильного управления, неправильного подключения или неправильного
конфигурирования аппаратуры могут появиться ошибки, которые CPU отображает после сброса памяти светодиодом групповой ошибки SF.
Как диагностировать эти ошибки и сообщения, вы можете найти в руководствах:
Hardware and Installation [Аппаратное обеспечение и монтаж]; раздел 8.3.2 и
Programming with STEP 7 V5.* [Программирование с помощью STEP 7 версии 5.*];
глава 21.

Просто на примере использования адреса по умолчанию тактового меркера ты уже закладываешь ещё кучу критических ошибок… интересный результат ты бы получил, если бы он был активирован… это тема для другого разговора.
0
plcist, в статье я думаю, ценная информация не о том, что реализовано это в корне не правильно, а то что имеет место быть отсутствие обработчиков ошибок в работающих ПЛК на производстве. Я с Вами соглашусь, что приведённый пример несуразен, но зачем так нападать на автора? Так желание, что-то писать пропадёт вовсе. А судя по количеству комментариев, тема затронута актуальная и нужная.
0
>> судя по количеству комментариев
По количеству комментариев можно судить что говнокодеры на производсте не приветствуются.
К сожалению автор мало чем от них отличается.
0
Пусть мотивируется на повышение уровня навыков и изложения информации! Это уже не первый пост автора в котором я возмущаюсь о главном: Результаты! Адекватное обоснование результатов в выводах!

По поводу:
Я с Вами соглашусь, что приведённый пример несуразен, но зачем так нападать на автора?
Так этот пример сейчас расташут все кому не лень бездумно… а потом будут доказывать так же в инетиках что данная идея вернее всех ибо стырена с источника супер истинного!
Дал пример ошибок? Прекрасно! Но не давай с ошибками примеров решения ошибки!
0
Нападаю на него потому, что чувствую тёмную друидскую силу..., которая вместо пользы может принести много вреда.
он привёл свою неправильную методику написания программ
вместо чёткой методологии поиска причин ошибки

я на панели оператора специально делаю несколько экранов для оперативного и наглядного направления эксплуататора для поиска причин возникновения проблем… и да — с каждым объектом наполнение пополняется, так как не все ситуации не всегда можно заранее предугадать и предуcмотреть как быть в случае чисто механических проблем или отказа части оборудования, возникающих впервые в практике.
знаменитая гирлянда S7… реально критическая ошибка

Так желание, что-то писать пропадёт вовсе.
И не надо засорять интернет и мозги — есть очень подробные методички Сименса с наглядными примерами, пояснениями и картинками.
0
Нападаю на него потому, что чувствую тёмную друидскую силу

Причем здесь какие-то друиды, тем более никакой силы у него и нет.

Диагноз был бы ясен, если бы ТС пояснил что о себе: какое он получал образование, каким образом он связан по работе с промавтоматикой, опыт работы.

Манией писанины таких и им подобных (а-ля «Курс по основам… бла-бла-бла „чего-то новомодного (TM)“») статей в инторнет обычно страдают самообучающиеся новички — чем его торкнуло недавно, что вкурил — надо срочно поделиться. Правда через год-полтора (максимум два) это желание у них постепенно пропадает ПОЧЕМУ-ТО, и сия бурная графоманская деятельность спадает вплоть до нуля.
-1
со всем уважением к вашему опыту, но автор действительно нашел косяк, причем весьма конкретный: Отключать девайсину методом включения реле с помощью открытой кнопки, в надежде, что кнопка еще жива, реле еще фунциклирует, нет нигде обрывов проводов и питание соответствующее… Это конечно нонсенс.
0
А вообще в ответственных системах нужно ставить как минимум — диодно-конденсаторые накачки, типа этой:
0
А он и был активирован, только как МВ10.
0
Новичкам на будущее:
— первым делом активируйте меркерный таймер по адресу с умолчанием MB0 — как предлагает Сименс в конфигураторе.
— в МВ1 организуйте служебные биты: Всегда_0, Всегда_1,… аналогично как это сделано по умолчанию в ТИА Портале для S7-1500


Нападаю на него потому, что чувствую тёмную друидскую силу
Причем здесь какие-то друиды, тем более никакой силы у него и нет.
ну не я же так сайт назвал ДРУиД ( Дом Рационально-Умный и Душевный) — по этому словосочетанию уже можно судить об выдумавшем его.
0
При программировании ПЛК, некоторые программисты допускают ошибки, приводящие к аварийным ситуациям на производстве.

Говнокодеры (т.е. самоучки, не_инженеры — «творцы» и полуграмотные ремесленники, но с апломбом — я же в принципах программирования говнокодирования в свое время разобрался!) понабежали уже везде. Раньше все эти релейные схемы составляли/программировали инженеры-автоматчики, а щас вполне возможно, что IT-быдло или бывшие пхп-кодеры.
0
Та ладно, напали на человека, лажа везде бывает. И все тонкости не проверишь при приемке работ. У нас на предприятии когда запускали станции КНС, то программист + наладчик на мои звонки с описаниями сбоев хором отвечали: «Этого не может быть, потому что, этого не может быть никогда», но приехав пару раз на то «чего быть не может» потом говорили «Мы посмотрим, проверим, разберемся». Тоже из этой серии переполнился счетчик наработки насосов, по наработке должны менять торцевое уплотнение, и вместо количества отработанных часов отлично отображало "####". И вот казалось бы причем программист сброс счетчика возможен, ресурс наработки торцевых чуть меньше максимального значения счетчика, на 1000 часов вроде. Должны были поменять торцевые и сбросить счетчик, только вот торцевые пока заказали, пока они приехали, пока собрались менять…
И подобных историй море, кстати часто проблемы в апаратке бывают.
0
Нужно уметь признавать свои ошибки! А не выспрашивать где не правильно а потом доказывать что не это имел ввиду, и там все правильно и вообще система имеет право на жизнь! У меня на такие вещи обидка большая, много лет только тем и занимаюсь, что исправляю вот такие чужие косяки… а самое обидное то что таким людям невозможно потом доказать что они не правы… привыкли вариться в своем мирке правильности, стандартов, названий, способов…
З.Ы. не хочу ничем обидеть автора, просто надо все таки начать выходить с собственного мирка СКАДА и АСУТП… люди иногда ведь дельные вещи советуют и критика от них может спасти как проект, а может и жизни…
0
Кому интересно, может почитать этот шедевр на Хабре.
По моему там ему и место, автор зря и сюда перепостил. ИМХО.
0
Скажу по своему опыту. Два года работаю в сфере автоматизации, порой очень трудно все предусмотреть. Обкатываем с коллегами всевозможные ситуации (и не возможные) на бумаге. Создаем железо, пишем код, переделываем. И то, после всех этих этапов порой находим баги. С нами работает парнишка — кодер, на переформат ему понадобилось около года, что бы смог въехать в суть работы металлолома напичканого в шкаф управления. А так в АСУ порой твориться такой трешь, можно понаблюдать на форумах такого же Овна. Люди не различают транзисторные выходы с релейными, не понимают, как работают аналоговые входы-выходы. Не знают как работают датчики со стандартными выходами (0-10, 4-20 и т.д.), на линию RS232 сажают два слейв девайса =), на RS485 сажают два мастера сети и тд… По поводу алгоритмов, та же шняга — например система: два насоса, ротация насосов по времени например 6 через 6 часов. Тут произошла аварийная ситуация, насос остановился, а таймер остановить забыли. И сидят люди несколько часов без воды — пока таймер не оттикает положенные ему 6 часов. Я после одного кулибина так в его ПР110 исправлял повсеместные костыли.
+1
  • avatar
  • Jman
  • 10 января 2016, 20:47
Добавил оригинал схемы.
0
Долго сидел и смотрел, сравнивал схемы… тот что Вы нарисовали и оригинал, чего то я не пойму — сходства «0»
0
Хотябы опишите что делает второй контакт кнопки стоп, тот который нормально замкнутый. и в программе за что он отвечает
0
Софта у меня нет. Чем он занимается в программе, акромя архивирования факта нажатия, не знаю. Но суть от этого релейной ошибки не поменяется.
0
0
Не хватает части схемы с управлением собственно силового контактора привода… хотя и так видно, что
Схема неправильная — имеет нарушения по технике безопасности, в случае обрыва провода или неисправности контакта в кнопке аварийной остановки привод не выключится.
У меня была инверсная проблема — пескоструйщики напылили песчаной пыли в кнопочный пост и в сам НЗ-контакт, после отжатия кнопки контакт не восстанавливался, так как в него набилась песчаная пыль… пришлось заменять контактные группы.
В принципе тут не требуется второй контакт на выключение — как и для лампочки достаточно иметь 1 контакт — в замкнутом положение Включено, в разомкнутом Выключено… соответственно НЗ-контакт аварийной кнопки установить в разрыв этой цепи. Даже при выгорании предохранителя цепь разорвётся.
0
При программировании ПЛК, некоторые программисты допускают ошибки, приводящие к аварийным ситуациям на производстве.


Да почему «некоторые» — все допускают ошибки, не только программисты ПЛК, от ошибок нельзя зарекаться.

Меня честно говоря удивило то, что эта (достаточно, как я понимаю, примитивная) ошибка попала в рабочую систему. Понятно, что стиль разработки «хуяк, хуяк и в продакшин» — искоренить тяжело. Но я, честно говоря, думал что хоть в АСУ ТП такого нет. Получается, что код, написанный программистом, никто не ревьювил, никто не тестировал, никто не проверял как это все было залито в ПЛК… Даже для прикладного программирования сейчас такой подход выгладит странным, а для АСУ ТП, где риски намного больше, и подавно.

Может кто то из коллег, кто в теме, напишет как происходит разработка и внедрение программ в АСУ ТП (в плане методологии), а то описанное в топике выглядит как-то слишком странно (или это автор специально привел такой надуманый пример?).
0
я вам больше скажу — асутп это в большинстве случаев сам&ля без ансамбля.
В лучшем случае тебе опишут что хотят видеть в худшем просто накидают конфигурацию оборудования на бабка любись… и ведь заказчик он всегда прав!
Задание писать заказчик как правило не хочет (за очень редким исключением за 14 лет работы видел -пяток может и меньше) — сам не знает, на стороне деньги возьмут, поэтому нанимают человека например из электрики — он общается с тобой делает какие то себе выводы и получается что то типа задания без массы нюансов. Чем отличается BACnet от Modbas и почему не стоить делать Lon вообще редко кто задумывается.
Мало кто хочет вникать в специфику оборудования- главное шоб робило и да желательно бесплатно и к сроку.
Да иногда делают проект — в середине что то поменяют затем думают как сдать.
Про общую энергоэффективность и грамотное взаимодействие оборудования… очень редко кто заикается а если и заикается как понимает что такая наладка стоит денег сразу тухнет (и не важно что контора потом за год отобьет).
Ну и конечно порог вхождения очень снизился и на рынке присутствуют все кому не лень — и исчезают также быстро как появляются.
+2
Чуть от себя добавлю, с чем сталкивался:
— очень часто оборудование подбирает человек далекий от всего єтого… и приходится женить синью на коне…
— попадалось что модернизацией занималась какая-то институтская кафедра по хоз.договору (вот тут вилы вообще) в основном варятся на сугубо ограниченном оборудовании и дальше ногодрыга не вникают в него…
— бывало попадались проекты склепанные студобой, тут все уныло и по методичке, правда более качественно чем в пункте выше
— ну и суперпупер фирмочек с громким именем и огромнейшим портфолио, которые нанимали в качестве програмистов всяких питоншиков да сисськиных админов, быстропереучивавшихся в железо… со всемы вытекающими
— конторы с нормальными специалистами и соответственно большими ценами за работу, которые клепали все с нуля с проектами да тех.поддержкой.
— иностранцы со всяких италий да германий (еще дороже) с практически вылизанными программами и алгоритмами, но косячными местными конторами занимавшимися от их имени монтажом и пусконаладкой
+1
За воблу зачет =)
0
0. Ждёшь поездки на объект…
1. Если подключился на стадии рабочки, то приходится первым делом изучить схему… поплеваться, поматюгаться, перемонтировать схему…
2. Если участвовал на стадии разработки, то переходишь к пункту 3.
3. Не спеша делаешь наклейки на короба с подписанием назначения автоматов и контакторов… а смысл торопиться… механика не собрана, лепездричество обещают дать на следующей неделе…
4. Кинули времянку… монтажники кидают кабели между шкафами и коробками… механизмы ещё не смонтировали…
5. На компе набираешь конфигурацию уже смонтированного оборудования… заливаешь в процессор… если есть ошибки по сети, то проверяешь монтаж…
6. Снаружи всё ещё не смонтирована механика… дырки не те…
Подключаешь датчики прямо в шкаф… набиваешь программу проверки датчиков… бесконтактных и энкодеров

5. Снаружи всё ещё не смонтирована механика… дырки те… механика не та…
отпускаешь монтажников на рыбалку… иначе гарантированы косяки, так как мысли не о монтаже…

6. Снаружи всё ещё не смонтирована механика… дырки те… механика та… но чего то не то между дырками и механикой…
Есть время для души… декриптовал навороченную защиту…

7. Теперь все личные задачи решены… буду щёлкать контакторами и рисовать ЧМО… рабочее многокиловаттное электричество обещают на следующей неделе…
8. Не спеша за пару дней пишешь программу с отображением на ЧМО. Запускаешь симуляцию работы установленных механизмов и срабатывания датчиков… монтажники по команде замыкают железякой бесконтактные датчики и обычные выключатели для освещения взамен отсутствующих… На экране всё нормально — тест прогнан несколько раз.

9. Установили треть оборудования… остальное будет в следующем году… не раньше апреля…
Начинаю угрожать, что уеду если не будет силы…
10. Пока кидают временное силовое электричество монтируем датчики, ставлю проволочные и программные перемычки… и там и там вешаю заметные наклейки — ЖУЧОК!!!
11. Дали силу…
проверяю движки по одиночке без нагрузки (муфты обеспальчены)
один движок не крутится… программный косяк?
Проверяю подписи на автоматах контакторах, смотрю напругу и ток…
тычу носом

Подпаяли… движок работает.
11. Собралось всё начальство. Нажимаю на пульте «Поехали...» контакторы защёлкали, релюшки заклацали, электроны молча побежали, частотники завентелировались, движки плавно мощно вышли на рабочую скорость с очень приятным звуком уууУУУУУУУ…
Все смонтированные механизмы работают штатно… Рабочий цикл отработан несколько раз… Все довольны…
На поезд… через 5 дней новый год… 3 дня в пути…

То есть после первого объекта приходит понимание, что нет смысла в офисе писать и вылизывать программу, так как по ходу пусконаладки приходится многое менять из-за неготовности объекта в полном объёме… потому что даже себе не всегда понятно, что тут селёдка лежала и поэтому это играть не надо…
На некоторых объектах бывает потруднее, так как механика или гидравлика ведут себя не совсем так, как рассчитывали механики или гидравлики… НИОКР годами может идти пока смежники не найдут решение своих проблем у себя… задача программиста убедить их искать именно у себя, а не в программе.

По нескольким проектам Экспертиза просила представить код… отдаёшь им истинный STL/AWL (текстовый язык) без имён и комментариев… талмут на несколько сотен листов… ещё ни разу никто не звонил и ничего не уточнял :)
Почему? Смотри копипасту:
Я например AWL вообще в глаза не видел.
На уроках сказали что есть такой язык но он вам не нужен!
Приехал в Германию, а они только на awl всё делают!
Вот и засада… хотя если чесн по логике мне проще SCL, ничего не выдумывая так и пишешь IF (условие) then (действие) else (не удача) по FUP или даже KOP проще во много раз делать такие вещи как таймеры или такие функции как И ИЛИ и так далее… потому что в AWL я уже после 3 скобки не могу уловить что там за логика типо
U db.dbx20.0
U (db.dbx10.0
O E101.0
U( A101.0
ON db.dbx34.0
)
UN db.dbx34.1
)
T db.dbw50


и вот эта жесть в FUP выглядела бы в 100 раз проще =) жаль нельзя в FC или FB сразу 3 языка использовать в разных Netzwerk.
или это автор специально привел такой надуманый пример?
У автора пример не выдуманный — он только начинает изучать ПЛК и выкладывает свои эксперименты по неправильному написанию программ… просто не имеет опыта.
0
там пунктик затерялся как вариация:
— написал программу оттестил все работает, уехал домой в ожидании когда до собирают механики, через месяц звонят с объекта кроя жудкими матами, механники проебались, сказали что пока ты не доделал там чего-то(выдуманое понятие, значение, кусок программы) им монтаж продолжать бессмысленно… шлешь всех на хуй даешь пизды механикам… они продолжают монтаж, проебуют сроки… сваливают всю вину на тебя…

З.Ы. мож мне так везло? но постоянно проебывали механики и спихивали на других! У них движок не там присобачен, а виноват электронщик, редуктор не с тем передаточным числом? алле! отбили датчик планшайбой -ау! течет труба? ну все поняли…
0
Бывает и такое: мы к тебе в электронику не лезем и ты к нам в механику/гидравлику не лезь…
Приходится вежливо напоминать о своих заслугах по введению объектов, находить общих знакомых, вежливо сказать: «Если объект не пойдёт, то достанется всем — давайте искать варианты проб :)»
вежливо заставить разобрать движки и тормоза/насосы/гидравлику «новые прямо с завода» и выкинуть их на ту же свалку где они были взяты


Был у меня случай с гидравликами — 2 цилиндра — по одиночке работают, вместе только один и сразу в перекос…
программа перепроверена, с монтажниками электрика перепроверена… из шкафов нужные сигналы уходят… на совещаниях гидравлики валят на нас…
вечером когда никого нет рядом закрываю некоторые краны некоторых магистралей… включаю систему… оба цилиндра идут просто идеально…
Переключаю краны в исходное положение и иду спать.
Утром созываю комиссию… включаю систему и демонстрирую, что ничего у меня не работает… перекос…
гидравлики стоят с улыбочкой…
иду и переключаю краны, по рации прошу оператора нажать на кнопку… цилиндры работают идеально…
поднимаю ручки и говорю: а ручки то вот они… дело не в программе и не в электрике...
Приехал автокран, демонтировали распределительную плиту и обнаружили заводской брак — пересверлили и попали в другой канал, при определённом положении кранов масло для из одного цилиндров перетекало сразу на слив.
Больше на объекте гидравлики никогда не выступали.

Хорошо работать, когда все понимают, что у них общее дело и не смысла искать виноватых, а надо обязательно найти решение общей проблемы.
0
За воблу зачет! =)
0
Соглашусь с коллегой. Из своего 2х летнего опыта в АСУ (системы водоснабжения, водоподготовки, водоотведения, КНС и тд.), ТЗ практически никто не пишет. В основном на словах оговаривают, что хотят увидеть на выходе. А уже команда девелоперов начинает думать над всеми алгоритмами (тут пригодиться опыт, как проектировщиков, так в нашем случае, и инженеров по гидравлике). Формируем сами себе ТЗ, расписываем входные-выходные сигналы, данные, алармы и тд. Проектируем железо. Начинаем думать всем отделом или группой над алгоритмом, прорисовывая на бумажках и всяких МС Визио. Собираем шкаф. Пишем код. Ставим на стенд (в нашем случае не так все сложно, насосы, клапана, датчики давления, уровня и прочая периферия системы). Начинаем обкатывать систему, поэтапно пофиксивая баги, фичи-костыли, схемотехнику, дефектное железо. Но самый торт — это уже пусконаладка на объекте. Стенд, стендом (это практически идеальные условия), а объект дело совсем другое. Но! Стенд это практически 80% уверенности, что на объекте взлетит… Конечно, для сложных систем, и управления убермашинами стенд создать порой не реально, и обкатка идет уже на производстве заказчика.
0
Тема статьи полезная, нужная. Но есть у вас одна критическая ошибка, которая перечеркивает всю статью. И вы клонировали эту статью на хабре. Ошибка — нормально-открытые контакты кнопки «Аварийный стоп». Берем в качестве примера предприятие по переработке пластмасс или изготовлению изделий из пластмасс. Постоянный атрибут таких предприятий — пыль от пластиков, пластмасс. Возникла аварийная ситуация, оператор нажимает кнопу, а ответ тишина. Потому что пыль забила контакты кнопки аварийного стопа. И если будет порча оборудования или что гораздо хуже, травма или смертельный исход, то при разбирательстве вина разработчика очевидна и грустна последствиями.
Я надеюсь, что указанная в схема кнопка аварийная кнопка — одна из групп контактов одной аварийной кнопки. Другая группа контактов при нажатии кнопки должна аппаратно прерывать цепи питания исполнительных механизмов.
+1
Аварийные кнопки и цепи должны работать только на размыкание — на контакты может всякой ерунды попасть и контакт никогда не замкнётся


Тема статьи полезная, нужная
но называться она должна по другому «Как я не имея опыта начал совершать критические ошибки в схемотехнике и программировании АСУ ТП»
+1
Аварийные грибки только с НЗ контактами и продаются.
0
Само собой, всегда ставлю грибки именно так. ЗЫ: Хотя встречал и грибки двух контактные NO-NC;
0
Лично видел как аварийную кнопку с нормально-открытыми контактами поставили на сброс микроконтроллера. И это была серия станков. Также видел как аварийную кнопку садят на вход ПЛК и все. Такие вот «спецы» бывают. И плодят свои статьи на хабре…
0
Такие вот «спецы» бывают. И плодят свои статьи на хабре…
А ты кто такой ?!

До 2006 года больше 10 лет работал автоэлектриком… С 2006 года работаю в сфере пром электроники !!!


Со столба слез, «когти» снял, тут и хвост сам отвалился :DDD

Походу в «белых штанах» в этом топике только ПЛКист (plcist), хотя… если приподнять завесу может оказаться, что он бывший «ядерный_физик»(чудом не умерший с голоду в 90-е) или еще какой «каменщик» а-ля Веня Кейвер :DDD

Надев монокль и сделав серьезное лицо:
Походу в условиях дикого капитализма можно уже забыть о таком понятии, как «кадровые_офицеры_белой_армии, начинавшие с юнкерского училища». В поисках еды и где получше/потеплее, трудовые единицы хаотично и быстро мигрируют из одной отрасли человеческой деятельности в другую: вчера он пхп-кодер — завтра запускает автоматику на хим.заводе, сегодня он строитель — завтра разрабатывает MCU-устройства для товаров народного потребления.

ВЫВОД: Как к этому относиться? А ни как — просто принять как ДАННОСТЬ и ОБЪЕКТИВНУЮ РЕАЛЬНОСТЬ жЫзни в XXI веке, а посему — значит ТАК… э-э, ПРАВИЛЬНО все идет, kamerades :D

В самом деле: юркий и хитрожопый бывший пхп-говнокодер щас работает Вернером_Брауном/С.П.Королевым. А задрот-школоло создал огромную корпорацию и в итоге обвел вокруг пальца IBM с их беловоротничковым корпоративно-цеховым чванством и высокомерием.
-1
Автоэлектриком я стал работать в силу обстоятельств. Такова реальность перестройки и 90-х в нашей стране. С детства увлекался электроникой. Азам меня учил человек окончивший два высших образования. И работая автоэлектриком я делал различную электронику, неоднократно ремонтировал различное оборудование. Попутно изучал схемотехнику. Когда стал работать на предприятиях, изучал все, до чего мог дотянуться и что касается пром. оборудования. И таких ошибок как в этой статье никогда не совершал. Сколько бы мне не тыкали «автоэлектриком». Сначала я занимался ремонтом оборудования. Модернизацией и разработкой стал заниматься уже позже. Когда более-менее вник.
0
Метко подмечено…
0
Jman — твой кусок схемы вызывает вопросы
Как бы сигнал идёт сверху вниз и катушка является последним элементом цепи
0
В данном куске схемы я отключаю грибком катушку ЭМ контактора ввода 380В, что бы обесточить шкаф полностью в критических ситуациях. На входе также стоит реле контроля фаз, если все ок, то через НЗ контакт грибка запускаем контактор и питаем шкаф, если перекос или нажатие на грибок то шкаф отключается от сети.
0
Немного о языках ПЛК — мнимых/выдуманых достоинствах и мнимых/выдуманых недостатках.
Пример отображения одной ветки программы на 3-х основных языках ПЛК — контактно-релейной логики, функциональных блоков и текстовом.
За наглядность при пусконаладке предпочитаю контактно-релейной логику, так как на ней очень наглядно можно найти «критическую ошибку программирования»… если не зеленеет бит, то через перекрёстные ссылки по правой кнопке мыши можно быстро найти место где он должен был взвестись…

Функциональные блоки это как в старине рисовали схемы на 155-ой серии или как с чёрноящичными микропроцессорами (чего там внутри блока творится не понять пока не влезешь в блок) — схема визуально занимает больше места… как вертикальная съёмка на ютубе
FBD — Functional Block Diagram
CFC — Continuous Function Chart
SFC — Sequential Function Chart
Текстовый язык ассемблер… на нём тоже можно написать компактно…
Есть Паскаль и Си(для некоторых типов контроллеров)…
Я могу использовать все языки…
Но некоторые языки менее наглядны при отладке в особо трудных производственных условиях, когда за спиной стоят винящие тебя механики/гидравлики, а времени на раздумья и копанья нет…
а на LADе я показываю недоброжелателям на зелёный узел катушки в программе и сработавшее реле в шкафу и говорю:
что программа отрабатывает штатно… пойдём искать причину в гидравлике/механике… заодно и клапана проверим и давление посмотрим...
0
У нас все предпочитают ST;
0
У нас все предпочитают ST;
так это по приведённой схеме видно — вход справа… выход вверх :(
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.