День ноль: всё работает, и это главная ловушка
Отправная точка выглядит благополучно. На объекте стоят приточные установки одной марки, холодильная машина другой, узел учёта третьей и щит, собранный местным подрядчиком в позапрошлом сезоне. Каждая система исправна, у каждой свой экран, свой сервисник и своя гарантия. Нужно всего лишь свести показания в одно место — задача звучит как монтажная, и берётся она как монтажная: закупить кабель, протянуть линию, посадить приборы на общую пару.
Дальше — не отчёт по конкретному объекту. Марки и адреса тут не важны; важен порядок, в котором вылезают неприятности, и то, что каждая следующая — прямое следствие предыдущей. Узнать свой объект проще всего по шагу, на котором вы сейчас находитесь.
Шаг первый: первый прибор ответил, второй уронил линию
Наладчик сажает на линию одно устройство — регистры читаются, значения похожи на правду, работа выглядит законченной. Сажает второе — пропадают оба. Дальше начинается перебор: меняют кабель, переобжимают клеммы, грешат на прибор.
Искать причину надо не в кабеле, а в заводских настройках, и она прямо вытекает из разнородности парка. Каждый производитель выбирал значения по умолчанию, ничего не зная о будущих соседях по шине: адрес устройства с завода у обоих может оказаться одинаковым, а параметры порта — скорость, чётность, число стоп-битов — разными. Одинаковые адреса дают наложение ответов, разные настройки порта означают, что приборы физически не могут находиться в одном сегменте, пока их не привели к общему знаменателю.
Шаг второй: адреса развели, связь стала плавающей
Адреса разведены, настройки порта приведены к одному виду, опрос пошёл. Через сутки появляется новый симптом: связь есть, но не всегда. Прибор то отвечает, то выпадает, тревога о потере связи приходит ночью и снимается сама.
Часть причин физическая и от марок не зависит — длина линии, отводы, экран, общая земля. Но разнородный парк добавляет свою, временную. На шине говорят по очереди: спросил тот, кто опрашивает, ответил прибор. Таймаут и число повторов — настройка опрашивающего, одна на весь сегмент, а отвечают приборы разных марок с разной задержкой. Выставить её приходится по самому медленному прибору сегмента: короче — и медленный числится не ответившим при исправной линии; длиннее — и на каждое его молчание уходит весь запас времени, а круг опроса удлиняется для всех остальных.
Отсюда и плавающая связь. Если у прибора есть собственный контроль обмена, он отсчитывает время от последнего обращения к себе и отрабатывает, когда обращений слишком долго не было. Порог этого контроля выставлен на заводе, ничего не знавшем о будущих соседях по паре. Пока круг опроса короткий, до порога дело не доходит; стоит посадить на ту же линию ещё приборы или увеличить таймаут ради медленного — и пауза между обращениями подбирается к порогу вплотную. Симптом от этого и получается плавающим: круг то укладывается в порог, то нет, а объявляет потерю связи сам прибор, не опрашивающий.
Поэтому у разнородного парка режим опроса — проектная величина, а не то, что подбирают на объекте. Считают её от состава сегмента: сколько приборов на паре, какой ответ у самого медленного, с какой частотой каждый параметр реально нужно снимать. Не сходится — линию делят на сегменты, по щитам или по производителям, и каждый сегмент опрашивают своим кругом.
Шаг третий: цифры читаются, но не те
Обмен устоялся, регистры отдаются, и тут выясняется, что температура на экране верхнего уровня не сходится с панелью самой установки, давление отрицательное, а авария висит постоянно. Железо тут ни при чём: расходятся не байты, а их толкование. Один производитель отдаёт десятые доли целым числом, другой упаковывает величину в два регистра и кладёт слова в своём порядке, третий сводит все неисправности в одну битовую маску, где значение бита описано в приложении к руководству.
Лечится это не покупкой очередной коробки, а согласованной картой параметров: адрес, тип, порядок слов, множитель, единица измерения и допустимый диапазон на каждую величину. Когда стороны не сходятся ещё и протоколом, между ними ставят переводчика — как выбрать его класс и не перепутать с прозрачным тоннелем, разобрано в статье преобразователь протокола Modbus: когда он нужен.
Шаг четвёртый: на линии обнаруживается второй хозяин
Этот шаг неприятен тем, что приходит уже после сдачи. Обмен работал неделями, а потом стал рассыпаться в рабочие часы и восстанавливаться к вечеру. Разбор показывает, что верхний уровень на шине не один.
Претендентов на ту же линию у разнородного парка набирается несколько:
- •Сервисный инженер производителя приезжает по регламенту и подключает свой ноутбук прямо к шине,
- •У части установок есть штатный модуль связи с облаком производителя, и он тоже опрашивает те же приборы,
- •В щите с прошлых лет остался забытый регистратор или преобразователь, про который никто не помнит,
- •Смежная система — учёт, пожарная автоматика, энергоучёт — заведена на общую линию тем же способом.
Это не техническая, а организационная неисправность: у линии нет владельца. Каждый производитель отвечает за своё изделие и о соседях не знает, а согласовывать доступ к общей паре проводов некому. Поэтому в проекте разнородного парка появляется скучный пункт, без которого шина остаётся ничьей: кто ведёт адресный план, кого предупреждают перед подключением к линии и какой сегмент отдан под сервисные работы.
Шаг пятый: приехала гарантия и увезла карту с собой
Проходит сезон, у одной установки меняют плату по гарантии или накатывают свежую прошивку. Сервисник своё изделие оживил и уехал — со своей стороны работа сделана честно. На верхнем уровне при этом пропадает часть параметров: новая ревизия отдала регистры по другим адресам, а конфигурация прибора сбросилась к заводской вместе с адресом на линии.
У однородного парка такое случается тоже, но там сервисный цикл один. Разнородный держит столько сервисных календарей, сколько в нём марок, и каждый живёт своей жизнью. Отсюда два практических следствия: карта параметров должна лежать у заказчика в редактируемом виде и проверяться после каждого гарантийного визита, а в заявке на сервис — стоять строка о том, что прибор включён в общий обмен и его адрес с настройками порта менять нельзя. Строка эта пишется один раз и живёт весь срок службы узла.
Шаг шестой: разъезжается время
Последний шаг вылезает при первом же серьёзном разборе. Ночью встала холодильная машина, нужно понять последовательность: что сработало раньше — падение давления, команда на останов или пропадание фазы. Графики есть, но события на них не выстраиваются в цепочку.
Часы у приборов разных марок идут вразнобой: у одного они синхронизируются с сетью производителя, у другого их выставляли при пусконаладке и с тех пор не трогали, у третьего отметки времени нет вовсе. Разумный выход простой и делается в самом начале: отметку времени ставит тот, кто опрашивает, а собственные часы приборов остаются справочной величиной. Тогда история сравнима, и разбор аварии становится чтением одного журнала, а не сведением четырёх.
Где хронику можно было оборвать
Все шесть шагов ловятся заранее — и ловятся описанием, а не монтажом. Порядок строк повторяет порядок шагов.
| Шаг хроники | Ранний признак | Чем закрывается до монтажа |
|---|---|---|
| Второй прибор роняет линию | настройки порта у приборов взяты из разных руководств | адресный план и общие параметры обмена на бумаге |
| Связь плавает | круг опроса не посчитан от состава сегмента | согласованный режим опроса, сегментирование линии |
| Значения неверные | параметры описаны словами, а не адресами | карта параметров с типом, порядком слов и множителем |
| Второй опрашивающий | у линии нет названного владельца | регламент доступа к шине и место под сервисный сегмент |
| Сервис сбросил настройки | адрес и настройки порта записаны только в самом приборе | карта параметров у заказчика, строка в заявке на сервис, проверка после визита |
| Время не сходится | источник времени не назначен | отметка времени ставится на опросе, часы приборов справочные |
Что из этого следует для подключения оборудования разных производителей
Главный вывод неудобный: подключение разнородного парка — это работа с описаниями, а не с проводами. Кабель и шлюз стоят денег один раз, а адресный план, карта параметров и правила доступа к линии определяют, доживёт ли обмен до второго сезона. Порядок, обратный хронике, выглядит так: опись установок, что каждая отдаёт наружу, адресный план, карта параметров, проверка на стенде и только потом монтаж.
Дальше собранные данные нужно куда-то положить и на что-то повесить тревоги — как устроен этот верхний уровень, разобрано в статье IoT-мониторинг оборудования. Отдельный вопрос — нужен ли этот общий слой вообще: пока объект один и дежурный обходит щиты, родных интерфейсов производителей может хватать, и выбор между ними и единой панелью разобран в статье одна панель на разнородный парк оборудования. Здесь же речь о слое ниже: как вообще собрать обмен, если решение строить его уже принято. Само подключение при этом не требует замены исправной техники — там, где узел вообще что-то отдаёт наружу, разные марки сводятся в общую картину как есть.
Осмотр парка и настройку самого обмена мы готовы взять на себя. Чем занимаемся и что после работ остаётся у заказчика — на странице что мы делаем.
Частые вопросы
С чего начинать подключение оборудования разных производителей?
С описи того, что уже стоит: марка, модель, какой порт выведен наружу, есть ли описание обмена. Дальше — адресный план на линию и карта параметров, которые нужно снимать. Железо покупается последним, когда уже видно, чего именно не хватает.
Обязательно ли заводить всё на одну общую шину?
Нет, и у одной пары на весь объект есть цена. Круг опроса на шине складывается из ответов всех приборов сегмента, поэтому один медленный прибор удлиняет опрос остальным, а таймаут выставляется по нему. Плюс любой, кто подключился к линии, влияет на обмен со всеми сразу. Поэтому линию делят на сегменты — по щитам или по производителям — и сводят наверх уже сетью: тогда медленный прибор тормозит только свой сегмент, а поиск обрыва идёт по одному щиту, а не по всему объекту.
Что делать с оборудованием, которое наружу не отдаёт ничего?
Такое встречается: только местный экран и пара сухих контактов. Тогда узел заводят по тому, что физически доступно, — факт аварии, положение реле, показания добавленных датчиков, — а причина остаётся в родном интерфейсе. Это выясняется осмотром щитов до проекта, а не на пусконаладке.
Нужно ли менять оборудование ради совместимости?
Подключение к этому не обязывает: приборы разных марок сводятся через шлюз или контроллер-медиатор, исправная техника остаётся на месте. Замена обсуждается в одном случае — наружу не выведено ничего и дооснастить узел нечем. Но и тогда это отдельное решение по деньгам, а не побочный итог интеграции.
Кто ведёт адресный план после сдачи объекта?
Названный человек со стороны заказчика: он держит актуальную таблицу адресов и настроек порта и решает, кого и когда пускают на шину. Производитель эту роль закрыть не может — его ответственность кончается на его же изделии, а адреса, параметры порта и режим опроса относятся к линии целиком. Пока такого человека нет, план расходится с линией с каждым визитом, после которого прибор вернулся с другим адресом: изменение произошло, а вносить его в таблицу некому.