Menyu
article thumbnail

Установка системы мониторинга

Осенью, в дождливый серый день,
Проскакал по городу олень.
Он летел над гулкой мостовой
Рыжим лесом пущенной стрелой
.

 Вот и к нам прилетела стрела пущенная лесом просьба от отдела энергетики CrystalHall-а сделать их счастливыми обладателями системы мониторинга и учёта расхода электрической энергии. CrystalHall, к тому моменту, уже обладал необходимой для построения данной системы материальной базой, и, как нам казалось, достаточно было проложить пару десятков метров кабеля дабы объединить промышленные счетчики Schneider Electric по шине ModbusRTU и написать небольшую систему, что по первоначальным прикидкам должно было занять от силы пару недель. Но не тут-то было!

Поскольку мы решили использовать уже имеющимися в наличии CrystalHall-а элементы, а на их складе пылился неизвестно откуда появившийся там NPort Express DE-211производства компании «Moxa», то именно этим устройством мы решили воспользоваться для передачи информации на сервер. И тут нас поджидал первый подвох: после установки ПО приложенного в комплекте к этому устройству, на сервере появился виртуальный COM-порт, но ни один из трёх счётчиков, что были к тому моменту подключены к шине и сконфигурированы, не отвечал! Путём долгих поисков в просторах Интернета, а также методом «научного тыка» мы выяснили:

а) версия установленного ПО не соответствовала необходимой для нормального функционирования сервера устройств;

б) у двух из трёх счётчиков имелся брак модуля, отвечающего за «общение» девайса по интерфейсу RS-485.

В дальнейшем, на эту же шину, были подключены остальные счётчики, а на замену бракованным заказаны аналогичные новые.

Казалось бы, все устройства подключены, можно и к разработке приступить. Но и здесь всё оказалось не столь просто. Необходимо было определить, какие данные и с какой частотой энергетики хотят получать от счётчиков, и как долго хотят хранить их в базе для дальнейших отчётов. Кроме того, нужно было выбрать SCADA-систему, функционал которой удовлетворял бы всем пожеланиям энергетиков. Изначально выбор пал на CitectSCADA от SchneiderElectric, как на активно развивающийся и обладающий достаточно мощным функционалом продукт. Спустя небольшой промежуток времени (неделю, или около того) была запущена первая версия, обладавшая базовым функционалом – отображением показаний счётчиков в реальном времени и сохранением этих показаний в БД. Со временем, система начала обретать определённую форму и цвета – появились схематические изображения, отображающие с какой из линий в данный момент времени поступает питание, запущены ли генераторы, в каком состоянии находятся AVR; были определены границы скачков напряжения и прочие условия, при которых необходимо отправлять оповещения тревоги; ну и естественно то, чего энергетики жаждали получить сильнее всего – отчёты.

Доступ к отчётам стало возможно получать двумя путями – через автоматическую рассылку запланированных отчётов, а также через Web-интерфейс, в котором можно выбрать тип отчёта и указать временные рамки. Автоматически рассылаемые отчёты делятся на 2 типа: отчёты о потреблении электроэнергии и отчёты о пиках/падениях напряжения/нагрузок. Они рассылаются ежедневно, еженедельно и ежемесячно. Отчёты же, доступные через Web-интерфейс более гибки, и предоставляют возможность увидеть детальную информацию о происходящем в каждый произвольный момент времени.

И тут произошло непоправимое! Руководство CrystalHall-а решило отказаться от приобретения лицензии для CitectSCADA, и обратиться к российскому производителю, в лице компании ИнСАТ, и приобрести продукт MasterSCADA. Должен признать, что это привело к более чем двукратной экономии на стоимости лицензий, но, к сожалению, нельзя так просто взять и импортировать проект Citect в MasterSCADA. А это означало, что нам пришлось начинать всё сначала. Нам повезло, что изначально модули отчётов и оповещений писались отдельно, без использования функционала самой SCADA, а вся информация забиралась напрямую из самой БД. Потому, нам пришлось переписывать лишь визуальную часть SCADA-системы, что заняло не так уж и много времени, хотя при переносе выявились также и некоторые особенности данного ПО..

Не могу не похвалить производителя, выпустившего на рынок столь простую и понятную SCADA-систему; в то же время, считаю необходимым отметить, абсурдность того факта, что в XXI веке, для нормального отображения интерфейса MasterSCADA, его необходимо устанавливать на Windows с русским интерфейсом. В случае же установки MasterSCADAна операционную систему с английским интерфейсом, даже при условии последующей русификации посредством MUI, и выбора русского языка для non-Unicode программ, в интерфейсе MasterSCADA вы получаете следующий результат – горячо любимые нами «кракозябры», известные с тех времен, когда ещё никто не знал о UTF, а в ходу были CP866, KOI8-Rи Windows 1251. Ещё один неприятный нюанс с этой SCADA-системой заключался в том, что модуль MasterSCADA, отвечающий за коммуникации с Modbus- устройствами (и не только с ними), в отличие от той же CitectSCADA, не развивается уже на протяжение последних семи лет. При этом, производитель рекомендует использовать OPC серверы, что в свою очередь привело нас к решению приобрести OPC-сервер этого же производителя Modbus Universal MasterOPC Server U. Какого же было наше удивление, когда после добавления устройств и тегов в установленный ОРС-сервер, мы стали получать заведомо ложную информацию. В ходе дальнейшего debug-а выяснилось, что MasterOPC, при отправлении запроса на устройство, использует смещение = 1, что и приводит к данном результату. В остальном же, весь перенос прошел достаточно гладко.

В конечном результате клиент получил систему онлайн-мониторинга и отчётов, благодаря которой ему на данный момент уже удалось снизить расходы на электроэнергию на 15%, а также, равномерно распределить нагрузку на трансформаторы. Но, как это часто и бывает, аппетит приходит во время еды. А потому, разработка всё ещё не завершена, так как заказчик, увидев успех и очевидную пользу этой системы, решил централизовать все системы здания (HVAC, система пожарной сигнализации и эвакуации), и использовать для этой цели ту же MasterSCADA…