Как я СКАДу писал. Часть пятая

    Ночи доброй всем текущим и утра пятничного всем, кто в пятницу начинает рабочий день с Хабра…
    Снова я.
    Вот, выбрался, вернее сказать — чутка урвал часок от сна на тему: надо маленько написать (да и с умыслом шкурным тоже), как дела обстоят и как оно идет вообще по моей разработке. Для тех, кто не в теме, далее ссылки на предыдущие статьи:
    Часть№1: habrahabr.ru/post/124427
    Часть№2: habrahabr.ru/post/138874
    Часть№3: habrahabr.ru/post/150196
    Часть№4: habrahabr.ru/post/156573

    Ну, а кто уже в теме — продолжим.


    Опять пропал, но пропажа моя обусловлена не высасываниями из пальца тем для продолжения диалога, а по большей части тем, что мне стало малость не хватать 24-х часов на все дела, а их почему-то становится все больше и больше вокруг моей разработки.
    Вкратце крупным планом, а потом чутка детально:
    1) Система перешла в «рабочую» стадию, под которой я подразумеваю: она начала спасать и реально спасает ж(п)опы тех, кто увяз ими по самые… гланды в маркетинговых уловках брендовых производителей скада-систем. Уже третья система за 1 год! И это только начало…
    2) Мой отдел уже второй год не работает на брендах — мы уже плотно сидим на моей разработке и мои инженеры только этому рады. Честно скажу: люблю огонь в глазах инженера, когда он видит, что работает на результат и этим результатом он может управлять, а не находится в состоянии крайнего и зависимого потребителя. Особенно их подогревает, что мы работаем на реальные потребности рынка, а не на маркетинговое фуфло, чтобы легче было впаривать нечто кому-то и пофиг для чего.
    2) Я таки преступил к разработке следующей версии скады по новым технологиям. Из текущих пользователей системы, которым я показывал свои прототипы слышал только один вопрос: «Когда?».
    3) 2013-й год у меня начался и продолжается в сплошных кульбитах цирка Дю Солей.
    4) В апреле у меня выставка. Одна из компаний, которая со мной работала ранее — предложила свой стенд на выставке для взаимного пиара: я им делаю демо-стенд на базе своей скады, а они мне свою площадку для пиара и рекламы.
    5) Меня уже приглашают крупные компании в лице их генеральных на «поговорить» и я возвращаюсь домой с контрактами в кармане в объемах средне 10 лямов только за то, что я «понравился» сначала их инженерам за то, что они поработали и попробовали мою скаду, а теперь теребят руководство со словами «мы хотим его». Забавно, но все это дело сейчас надо еще и грамотно обрабатывать, моя компания, глядя на все это решила, что пора уже «дочку» ставить на рельсы. Чем сейчас попутно и занимаюсь тоже. Хочу сделать грамотное производство, разработку и поддержку с системной интеграцией, оно того стоит.

    Теперь немного о работах. Хочу слегка подвести итог ушедшего и текущего года: на сегодняшний день на базе моей скады запущено и работает уже два серьезных объекта:
    1) на 8500 точек ввода/вывода со следующими функциями:
    — горячее резервирование серверов с временем восстановления работоспособности системы в период не более 30 секунд
    — динамическое переключение АРМ оперативного персонала между серверами и даигностика сетевого оборудования по качеству каналов связи. Кстати, эта функция позволила показать, что мы не верблюды, и современные ИТ-компании делают решения из рук вон плохо.На объекте даже прецедент был, когда система просто легла наглухо из-за сетевого оборудования, и только имея на руках логи я мог доказать, что не верблюд
    — динамическое предоставление функций и информации в зависимости от прав доступа оперативного персонала с регистрацией всех их действий в едином журнале системы с последующим отчетам по с диагностикой по АРМу и действию
    — предварительная буферизация данных от контроллеров, чтобы система могла работать даже в полном «дауне» (только на ПЛК и УСО), а потом предоставить пользователю после восстановления все логи журналов и архивов как она себя вела и, что с ней делали, пока она не работала и ее насиловали ручками
    — синхронизацию меток времени по всем узлам системы по единой метке времени с качеством не хуже 20мс по всем узлам и оборудованию. Применял стандарт SNTP, а для ОС WinCE даже пришлось разработать мне самому свой собственный стандарт SNTP, который смог обеспечить приемлемое качество погрешности.
    — сопряжение до 30 подсистем сторонних производителей в рамках одной АСУ

    Сейчас, за почти год работы этой системы, ее архивы технологических параметров достигают примерно 40-50Гигабайт данных на сервере архива, и с ними вполне спокойно живут журналы, тренды и отчеты, формируемые системой по запросам оперативного персонала.

    Кстати, по этой системе я прошел уже серьезную комиссию по «гос.приемке» — много серьезных дяденек ее тыркало, написали много замечаний, которые в основном попали в разряд «косметических» улучшений. Так что, для меня даже что-то вроде внутреннего эго было, когда мне сказали, что система очень неплохо выглядит и может конкурировать вполне серьезно на уровне мировых брендов.
    Не зря старался, и стараемся до сих пор.

    2) на 24500 точек ввода/вывода со следующими функциям:
    — сопряжение низового оборудования проекта с системой верхнего уровня на базе WinCC
    — алгоритмическая обработка транзакций сетевого обмена между моей скадой и контроллером S7-400 от Siemens по сети Ethternet (на 24500 точек в среднем уходит около 800мс без особого напряга на цикл обмена (хотя, мне пришлось малость попотеть, чтобы такую фишку у себя в скаде сделать). Контроллер транслирует сигналы от моей системы в WinCC в протокол Profibus/ProfiNet.

    3) Примерно 3 сторонних разработчика постучались, взяли систему и реально внедрили проекты для сторонних заказчиков, но они не очень большие по точкам, но реально значимые были для меня. Главное — обратная связь, людям понравилось, пусть и с косяками, которые я оперативно правил. Но, в отличии от брендов, я слушал, внимал и вносил правки, а не писал отписки…

    Буквально 2 недели назад оповестили об очередной «попе» — и вот, развевая плащом «скада-мэна» прямо сейчас мой инженер сидит на объекте, который внедряет в супер-пупер кратчайший срок: в одиночку он делает и запускает на базе моей скады проект в почти 5000 точек ввода/вывода прямо на объекте за 3 недели. Уже 2-я заканчивается и результаты вполне позитивные. До нас его пытались делать 1 год силами гораздо более превосходящими текущие мощности по голова-человеко-рукам. Но, главное, чтобы голова-руки у человеков из нужных мест росли, тогда все сделать можно…

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

    P.S. Насчет выставки — чуть позже выложу здесь инфу, она пройдет в апреле этого года (с 15-го по 18-е) так что, все желающие, кто хочет встретиться со мной лично и просто поговорить со мной, пощупать мою систему (не меня), обсудить — приходите! Буду только рад. :)

    UPDATE: Вот ссылки на пригласительные материалы компании, которая меня на свой стенд приютит:
    promo.tssec.ru/asutp

    Адрес стенда: ВВЦ, павильон 75, B335, зал Б

    Будем демонстрировать небольшую установку по надуванию шариков с функциями взаимодействия с системой видеонаблюдения.

    Там же есть координаты их стенда, так что приходите, пообщаемся в живую, а я покажу свою разработку в деле и вообще.
    Share post
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 28

      +1
      Прошу прощения за портянку, но я умудрился не только скаду написать, которая ломает все стереотипы, но еще и статью, которая поломала Хабр: тэги не отработались, а почему — я хз… Даже уже их копировал с действующих статей, результата все равно нет.
        +2
        Лошара я, в 4 утра мозг видимо уже спал. На утро понял свою ошибку, поправил. Еще раз прошу прощение за портянку.
        +1
        Ваша система может вывести график параметра (допустим давление) за месяц? А несколько параметров на этом графике? Как там по быстродействию? А если полистать на пару месяцев назад?
        Я к тому что объёмом БД на 40-50Гигабайт гордиться несколько преждевременно. Данные лучше сжимать, и я говорю о математическом сжатии, когда множество строк «дата-параметр-значение» превращаются в «формула, аргументы, интервал дат»
          0
          Да, архивный тренд позволяет бегать по всему диапазону данных (по требованиям отрасли он минимум год). По количеству кривых — от 1 до 3-5 в зависимости от подсистемы. Конечно же архив не 1 файлом Субд хранится, данные разбиты на таблицы по типам данных, подсистемам, всего около 50 где-то таблиц.
          По динамике — реально на объекте наблюдали такие показатели:
          — выборка на тренд 1 параметра за 1 месяц при обращении по сети занимает от 1 до 2 минут.
          — оно же, но за произвольные сутки — до 30 секунд.
          Отчеты строятся от 5 до 30 секунд (суточные).
          Сейчас намеренно не загрублял потоки в базу хотел как раз на больших показателях поиграть и понаблюдать поведение.
            0
            Наши операторы на 1-2 минуты жаловались что тормозит. Есть софт, использующий вышесказанное сжатие и выдающий график за несколько секунд. Я лично в нём выводил годовой график. Это killer-фича. Если реализуете данный способ (как опцию хотя бы), конкуренты вообще плакать будут.
              +1
              Честно говоря мне трудно представить задачу, где требуется вывести график за целый месяц, обычно такие задачи как раз и выполняются путем прореживания данных, иначе — даже простой математический расчет соотношения точек в выборке и пиксельного разрешения панели тренда покажет насколько много данных просто тупо потеряются визуально при таком выводе. В нашем случае 1-2 минуты — это реальный тест, чтобы показать, что система не туфту показывает, а по-настоящему может выборки делать даже такие из архива, чисто комиссии показать — на деле никто конечно же такого не использует.
              По поводу killer-фич: мои друзья уже почти год, видимо вдохновленные моими результатами, сейчас занимаются разработкой специализированной системы для промышленной архивации на базе реляционной СУБД MS SQL. Они как раз решили вопросы упаковки данных, организации быстрого кэшированного одновременного доступа на чтение и запись больших объемов (ими разработан собственный native сетевой интерфейс с открытым API для подключения к разным скада-системам и не только), горячего резервирования с поддержкой синхронизации баз данных, встроенными средствами по отображению трендов, организации корпоративного доступа информации через интранет/интернет через WEB прямо из браузера. Сейчас они доделывают ReportBuilder, с помощью которого можно будет создавать и редактировать уже существующие отчеты в системе. В общем, они создали почти что полный аналог такой серьезной платформы как iHistorian, которая является основой для подобных задач в некоторых западных скада-брендах. Сейчас вот жду от них рабочих версий, чтобы начать совместно испытывать и гонять их решение с моей скадой у нас на полигноне… Если сделаем все грамотно и как задумываем — это будет действительно killer-фича для многих конкурентов.
                0
                Мы у себя в скада используем opentsdb.net/ Крайне мощная штука, хотя вся мощь от HBase исходит…
                  0
                  Спасибо за материал, обязательно пощупаю.
            0
            Для грубых значений достаточно брать данные из rrdgraph.
            +1
            Хватит уже писать как писал, дай пощупать!!!
              0
              Сейчас до офиса доберусь и скину в личку, а то из электрички по телефону не очень удобно. Кстати, желающие пощупать уже давно ко мне обращались и я всем давал для тестирования.
              0
              Я сам со СКАД'а системами никогда не работал и особо не интересовался, но после ваших статей действительно появилось желание. Мотивируете )
              • UFO just landed and posted this here
                  +2
                  Протокол Modbus поддерживается у меня в скаде во всех его видах (RTU и TCP/IP), а также его режимах (Master и Slave). Как уже в посте указал -в одном из решений именно через контроллер S7-400 с моей скадой взаимодействует скада WinCC. Изначально обменивались по ModbusTCP/IP, но скорость не удовлетворяла, и я сделал штатную поддержку пользовательского обработчика пакетов tcp/ip прямо в скаде, теперь разработчик прямо в проекте может написать свой собственный протокол сетевого обмена. Вы лучше напишите мне на мыло — конкретику обсудим. В общем — решения Вашей задачи у меня есть.
                  0
                  Добавил информацию по выставке. Приходите!
                    0
                    А сколько стоит?
                    Лицензия разработчика и рантайм отдельно…
                      0
                      Среда разработчика у меня бесплатная и будет таковой оставаться. Я считаю, что инструмент не должен стоить денег, а денег должен стоить результат работы в этом инструменте, который конечный пользователь будет готов запустить уже в работу.
                      По стоимости рантаймов я пока ценника не формировал, по тем проектам, что сейчас выходили на коммерческие договоры — цену обсуждали с заказчиком, я обычно предлагал на 50% меньшую стоимость, чем им предлагали под их задачи бренды, иногда и больше процент договаривался.
                        0
                        Полностью согласен насчёт бесплатности среды разработчика. Особенно удивляет немалая стоимость инструментов разработчика для опять же недешёвых контроллеров. Они ведь не имеют смысла друг без друга.
                        Как можно ознакомиться с вашей средой? Пощупать так сказать. Пробежался по Вашим статьям, но к сожалению не нашёл ссылок.
                          0
                          Закинул в ЛС Вам ссылку.
                      0
                      Хотелось бы узнать как у Вас обстоят дела с «многомониторностью». Сам являюсь разработчиком на ПО Wonderware. Там есть некоторые проблемы с этим делом.
                        0
                        У меня в скаде у свойств графического экрана можно задать логический номер монитора, на который он будет выводиться по умолчанию. Это как оконных, так и всплывающих экранов касается. Таким образом можно сразу оперировать мониторами, а не координатами общего рабочего стола да еще и с бубном плясать как в других скада-системах.
                          0
                          Это очень хорошо! А как ведёт себя скада, если запустить её:
                          1 с меньшим количеством мониторов, чем предполагалось при разработке
                          2 с другим разрешением экрана, чем предполагалось при разработке
                            0
                            1) Он те, которые заданы на несуществующие поместит на основной (0-й в системе), хотя эту штуку вообще можно сделать динамически управляемой — чтобы разработчик прямо из проекта мог управлять этим параметром по своей логике.
                            2) Вот это самый краеугольный камень был у нас до моей скады — очень часто приходилось реально убиваться на перерисовки экранов. В своей скаде я разработал собственный движок векторной графики, который учитывает преобразования по масштабированию без потерь в качестве, поэтому то, что нарисовано на одном разрешении в любой момент может быть в рантайме смасштабировано под новое. В рантйме даже есть горячая комбинация Ctrl+S по нажатию которой он в любой момент времени растянет графику по размеру окна рантайма.
                            Вот как пример в инстурменталке: www.youtube.com/watch?v=y0KfANVDjXc (правда малость уже старенький ролик)
                            А вот аналогичная функция по такому же экрану в скада-системе Trace Mode 6: www.youtube.com/watch?v=xdzw0AixFHM (почувствуйте разницу)
                            На самом деле тема больная для многих скада-систем и на сегодня единицы из них умеют делать это более менее грамотно для разработчика и конечного пользователя.
                        0
                        Честно говоря непонятно — это Ваша скада или как-то так получилось что фирма где вы работаете получает все бабки за внедрение?
                          0
                          Моя, а вот насчет денег не совсем понял, или может я пока не так выразился в статьях, деньги получают все, только я кроме денег еще и очень серьезный опыт и площадки для ее развития. Очень много вещей было сделано именно в боевых условиях, когда наступал момент осознания, что именно вот такая функция нам сейчас будет нужна. И конечно же — эти функции добавлялись и тут же проверялись в деле. Хорошо, когда владеешь ситуацией, а не зависим от кого-то.

                          Но некоторые проекты делались не мной и не моей фирмой, а сторонними интеграторами или конечными пользователями.
                          +1
                          Несколько фото.

                          Сам стенда на выставке:
                          www.scadaplus.ru/images/mips2013/mips2013_01.jpg

                          Установка под управлением моей Scada+ с сопряжением с подсистемой видеонаблюдения:
                          www.scadaplus.ru/images/mips2013/mips2013_02.jpg
                          www.scadaplus.ru/images/mips2013/mips2013_03.jpg

                          Позади видно воздушный шарик, в случае падения давления в нем ниже уставки — посылается команда в систему видеонаблюдения, она позиционирует камеру на шарик и начинает запись с генерацией аварии в своем журнале. Параллельно моя система включает насос и как только давление становится нормальным — подсистеме видеонаблюдения отправляется сигнал об остановке видеозаписи и завершении аварийного события.
                            0
                            Приглашаю всех на стенд нашей компании на предстоящей выставке «ПТА-2014», которая состоится с 7 по 9 октября 2014 года в Москве по адресу: ЦВК «Экспоцентр», павильон 5.
                            На стенде будет демонстрироваться система SCADA+. Можно будет пообщаться с разработчиками и задать свои вопросы, а также попробовать систему в работе.
                            www.pta-expo.ru/news/020914.htm

                            Это будет первый выход моей скады на рынок автоматизации как коммерческого продукта и компании, которая будет заниматься ее разработкой, сопровождением и выполнением проектов на ней.
                              0
                              Ура!!! Наконец-то прошли все согласования в ПАО «Газпром» по маркетинговым материалом для презентации системы нашего системного интегратора, который успешно провел в 2015 году испытания и внедрил в эксплуатацию систему линейной телемеханики газопровода на базе моей SCADA+!
                              Теперь информацию по этому решению, а также отзывы компании о системе SCADA+ можно прочитать на сайте скады в разделе внедрений: система линейной телемеханики «ЭЛТА-ТМ.2»

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