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

    Подчас разработчик не всегда может участвовать в разработке проекта с нуля и вынужден работать с тем, что есть, не всегда есть адекватное техническое задание, но система в итоге должна выйти поддерживаемой.
    «Проектирование, анализ полученного и очередная итерация, пока не добъемся допустимого результата».
    Этот слоган не применим, в том случае, когда вы даже отдалено не представляете конечный результат работы. Заложенное изначально оборудование с 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 было потрачено много нервов и сил на поддержку и модернизацию.

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

    Comments 12

      +1
      А собственно чем определялся изначальный выбор аппаратной платформы? Просто «подъем» логики управления с уровня ПЛК на уровень HMI, обычно до добра не доводит. Все-таки ПЛК это системы реального времени, а ПК — нет. Отсюда и проблемы с меняющимися циклами, в зависимости от загрузки ПК.
        0
        Аппаратная платформа исторически использовалась в нашей фирме до текущего времени, была привлекательна ценой для клиента (около 15000 за ПЛК). Для небольших задач типа мельницы и элеватора вполне достаточно. Для крупоцеха на предприятии, где активно экспериментируют с процессом, как оказалось, в N раз недостаточно.
        Перевод всей системы на NICE и вывод логики из HMI — это уже результат печального опыта и длительных переговоров с заказчиком.
        ICP (Flash 512 кБ, EEPROM: 2 кБ) просто бы не потянул обработку весов и взаимодействие с 6 сотоварищами.
          0
          Попробую предвосхитить вопрос о другом ПЛК, мы помимо прочего занимаемся поддержкой старых проектов. Разрастание зверинца контроллеров может несколько притормозить процесс.
          +1
          В целом беда российского рынка, что до заказчика трудно донести что стоимость адекватной АСУ может составлять до 30% от стоимости всего производственного железа. В качестве примера приведу проект одного элеватора, в котором при наличии довольно дорогих норий и конвейеров (Skandia), нашлось место каким-то самопальным поделиям наших китайских братьев, в качестве ПЛК, которые с завидным постоянством уходили в «стоп» и теряли Profibus. В итоге заказчику пришлось заказать переделку всего уровня ПЛК с использованием более менее адекватного железа, что соответственно обошлось гораздо дороже, чем заказ изначально адекватного проекта и средсв автоматизации.
            +1
            «Что за разработчик, если не знает что правильно писать FBD (Function Block Diagram)...»
              0
              А по-русски перевода нет?))) Одобрил коммент в качестве бреда, часто на хабре встречаю таких перцев — по делу есть что?
                0
                Итого — первичный выбор ужасной аппаратной платформы привел к полной переделке впоследствии. Кстати тоже на не лучшую.
                  0
                  а я писал про детали переделки? откуда такой вывод? у клиента полным ходом идет работа — не могут время на дополнение выделить, а значит аппаратная платформа с той же нагрузкой работает. Тот же крендель, что и demshyn или так написать нечего было?
                    0
                    судя по всему человек далек от реалий как минимум моей предметной области.
                      0
                      Второй момент — есть разница между ПЛК и внедряемым компьютером. Все о чем говорится выше — это внедряемые системы, причем не использующие системы реального времени, с программной эмуляцией работы ПЛК.
                      Если кому интересны действительно хорошие ПЛК решения, можно посмотреть в гугле PLC market share.
                        0
                        Еще замечу что с вашим секундным циклом пробовать реализовать дозирование — тухлый номер. Точность будет отвратительная, недопустимая для заказчика. Нормальное время цикла с целью учета прогнозирования предостановки я бы оценил в 50-100 мс.

                        Для показанного элеватора вы еще можете «выкрутиться», но для комбикормового завода, близкого по технологии, рецептура уже будет непоправимо нарушена.
                          –1
                          Ясно, читай внимательно и читай не концовку + комментарии, а текст. «Элеватор и дозирование» — и то и другое ты мимо и не о тексте (проходные весы — это не дозаторы, но могут дать флаг прекращения подачи). Дозатор как минимум ставится в точку выхода продукта и имеет автономные режимы дозирования «Грубо», «Точно».
                          P.S. не понял текст — перечитай, а что такое хороший ПЛК? Хорошее решение — оно только для конкретного случая и если есть неготивный опыт использования software plc из практики — приведи пример.
                          И, да, клиент работает и это самое главное.

                    Only users with full accounts can post comments. Log in, please.