Pull to refresh

Построение сложной SCADA (плохой пример)

Reading time 4 min
Views 11K
Подчас разработчик не всегда может участвовать в разработке проекта с нуля и вынужден работать с тем, что есть, не всегда есть адекватное техническое задание, но система в итоге должна выйти поддерживаемой.
«Проектирование, анализ полученного и очередная итерация, пока не добъемся допустимого результата».
Этот слоган не применим, в том случае, когда вы даже отдалено не представляете конечный результат работы. Заложенное изначально оборудование с 2-кратным запасом не выдерживает новых требований, а полная переработка неприемлема из-за накладных расходов на перемонтаж. В тексте будет пара скринов визуализации и редактора FDB схем для проекта (все наши внутренние продукты)…

Хмурый эксперт скажет: «Что за разработчик, если не понимает конечной цели своей работы...» — просто почитайте этапы.

Акт 1 «Технология» — (линия очистки продукта — она же и конечная цель)

Действующие лица:
— ПЛК — ICP -7188XA (icp das) (2 — 485 порта, 2 — 232 порта из них 1 для связи с ПК);
— Платы ввода/вывода DIO 4.3 — минус 485 порт ПЛК;
— Платы датчиков PDAT, PRKS — минус 485 порт ПЛК;
— Частотный привод Delta — 3 шт. (RS485);
— Весы Gelios (НПФ) -3 шт.;
— Плата расширения MOXA cp132 — 2 порта;
— Персональный компьютер, операционка Windows XP SP3;
Ограничения — не более 7 плат на порт (по 64 канала) с одним протоколом обмена

Управляемых машин — 66, клапанов и задвижек 84. Также датчики положения и наличия. Машины, клапана — на платы управления, датчики на платы датчиков.

Задачи:
  • организовать последовательный запуск по выбранному направлению,
  • отработать аварийные ситуации
  • организовать весовой учет

Уточняем работу частотников — просто иметь возможность регулировать частоту оператором. Значит можно не перегружать ПЛК, а добавить в верхний уровень такую возможность. Плата расширения принимает весы и частотники.
Далее все просто: клепаем логику (функционально блоковые диаграммы — среда RoboPlant), делаем визуализацию.

Получаем что-то подобное:

image

Тестируем
Пускаем в работу. Цикл работы 1.01 сек.

Отработали непрерывно 24 часа — проверили. Разработка с 0, вопросов нет. Решение, как минимум, неплохое.

Акт 2 «Технология» — (усложняем)

Отработали N время, решили оптимзировать производство. Как?

Задачи:
  • Привяжем частотные приводы к производительности весов, дабы весы не простаивали
  • Снизим потребление при простоях — будем гасить линию по истечению времени (если продукта нет больше заданного времени — эффективно даже с учетом пусковых токов)
  • Добавить несколько единиц оборудования в ПЛК — организовать подачу на неавтоматизированные линии:


Заводить весы и частотники в ПЛК — не вариант, в любом случае оператор должен видеть ЧТО происходит с линией,
автономная подстройка производительности, либо останов недопустимы — и в том и другом случае сопровождаются расходами: высокой нагрузкой на склад или недостатком продукта для склада.

Решено — привязываем к верхнему уровню, делаем обработку раз в секунду — производительность исчисляется за больший интервал (кг/ч), изменять параметры быстрее чем раз в секунду нет необходимости. Проверяем на практике данное решение — работает.

Добавляем новые машины, правим логику, визуализацию.

image

Ставим заказчику. Минус Завязываемся на персональный компьютер, выход его из строя выводит наши плюшки из игры. Не критично. Отработали непрерывно 24 часа — проверили. Цикл работы 1.35 сек.

Акт 3 «Фасовка» — (линия упаковки продукта, конечная цель увязать с предыдущим проектом)

Клиент поработал с системой, оценил прирост производительности, созрел до новой линии.

Действующие лица:
— ПЛК — ICP -7188XA (icp das) (2 — 485 порта, 2 — 232 порта из них 1 для связи с ПК);
— Платы ввода/вывода DIO 4.3 — минус 485 порт ПЛК;
— Платы датчиков PDAT, PRKS — минус 485 порт ПЛК;
— Весы Gelios (НПФ) — 12 шт.;
— Плата расширения MOXA cp132 — 2 порта;
— Персональный компьютер;

Задачи:
  • организовать последовательный запуск по выбранному направлению,
  • отработать аварийные ситуации
  • организовать весовой учет
  • использовать весы в качестве дозаторов
  • организовать взаимодействие между 2 проектами с общим оборудованием

Число машин 95, число задвижек 166, + 19 нестандартных трехпозиционных задвижек. Проблема: группировка и расположение плат не позволяют завести все на один ПЛК — организуем еще один — перемонтаж дороже.

Один отвечает за машины, второй за клапана и задвижки.

image

Взаимодействие между ними через ПК провальное решение и основная ошибка. Сроки работы не позволяли наладить взаимодействие между ICP напрямую. Дозакапываем себя еще глубже связь с «технологией» через ПК.

Проверяем работу как положено 24 часа непрерывно — идет.

Следующий неприятный момент — весы в оказались не в начале линии а в середине! Недоработка технолога, проектировщика — уже не важно — работаем с тем что есть. Длина рабочих линий и их вместимость разная — по достижению заданног веса на весах у нас еще в машинах есть K объем продукта. Делать нечего — вводим поправку на каждую линию, сколько весы должны не добрать. Тестируем — работает с точностью до 200 кг. на 6 тонн к примеру 3.3% на короткой линии, 450 кг на 6 тонн — 7.5% на длинной — заказчик согласен. Обработка в верхнем уровне SCADA. Отработали непрерывно 24 часа — проверили.

Стабильная работа до первого зависания

Как и положено системнику спустя некоторое время призадумлся он на «Фасовке» приостановилась работа. Местные быстро соориентировались — перезапустили — работает. Но осадочек остался.

Система, да уже система продолжила укрупнятся и включила в себя еще один проект из 2 ПЛК, + один общий ПЛК на аспирационную сеть + 1 ПЛК на новую линию упаковки.
Итого 7 относительно надежных ПЛК работающих друг с другом через относительно ненадежных посредников ПК.
С тех пор и до момента замены группы ПЛК на один — на базе intel atom NISE-105 было потрачено много нервов и сил на поддержку и модернизацию.

Резюме:
Для себя я отметил несколько важных пунктов.
  • для проектов, имеющих потенциал нужно закладывать оборудование, перекрывающее собой несколько подобных проектов. Проектов, а не число оборудования — должно хватать памяти и быстродействия для логической обвязки.
  • связка проектов даже небольшая не должна идти через столь слабое звено как персональный компьютер. Оператор может от скуки принести много порно видео и забить производительность бедняги
  • не браться реализовывать все, что желает заказчик. Пусть даже это и возможно, но тянет за собой завязку на слабые звенья
  • конечная цель работы заказчика — это решение тактических задач, в стратегии предприятия не было перехода на полную автоматизацию производства. Решением текущих задач и упрочнением позиций на рынке предприятие вышло на практически полную автоматизацию. Без последнего
Tags:
Hubs:
+9
Comments 12
Comments Comments 12

Articles