Типовая и постоянно встречающаяся задачка: организовать передачу данных между двумя приборчиками.
В нашем случае - контроллер и тепловычислитель.
Смотрим ТТХ. Вычислитель имеет интерфейс Modbus RTU на "физике" RS-485. Докупаем блочок к контроллеру с поддержкой RS-485, убеждаемся в наличии в среде разработки поддержки Modbus RTU, параметрируем стандартную функцию общения на основании мануала на вычислитель. Все.
Если и то, и другое находится в одном шкафу - дел часа на три, включая монтаж.
Это как должно быть в некоей идеальной стране эльфов и порхающих розовых пони.
А мы возвращаемся в суровую зимнюю российскую действительнсть. В котельную, где нужно состыковать
контроллер Siemens S7-1214 и вычислитель Теплоком ВКТ-7.
Проделав вышеозначенные манипуляции - убеждаемся: связи между приборами нету.
(проделать их достаточно в уме, прочитав мануалы. Чтобы зря время не тратить, и поменьше на объекте работающем ковыряться).
Почему? Вот кусочек мануала на протокол обмена данными с ВКТ-7 (оригинал, pdf)

Помимо "почти стандартного" протокола, Теплоком весьма творчески подошел и к логическому обмену данными. Чтобы получить параметры - нельзя просто взять и прочитать их по соответствующему адресу. Вначале надо начать сеанс связи, потом запросить свойства, потом записать тип необходимых параметров и их перечень, полученный из активного списка, и только потом можно читать текущие параметры.
Чтобы выяснить, кто из нас тупой - "я" или "они" - поинтересуемся опытом других спецов на профильных форумах.
Видим хорошие новости - тупой не я. И плохие - объем работ несколько больше, чем кажется.
А именно:
- забываем про стандартные библиотеки, работаем с портом контроллера в режиме PtP (спасибо Сименсу, что не убрали такую возможность в новом семействе)
- ручками пишем на SCL нестандартный драйвер устройства, парсер пакетов и секвенсор обмена данными
- отлаживаем это на стенде (потому что контроллер работающей котельной посреди зимы - несколько неподходящее место для экспериментов с протоколами). Хорошо, если у нас под рукой завалялся контроллер для стенда. А если нет?
- оцениваем затраты времени (чтобы выставить счет заказчику). Я оценил в 20 часов; по факту получилось быстрее.
Для тех, кто не является спецом по промышленным стандартам коммуникации:
Протокол Modbus разработан компанией Modicon - изобретателем ПЛК (ныне подразделение Шнайдера). В далеком 1979 году. Протокол открытый и свободно доступный. По нынешним понятиям - простой до безобразия (вспомните, какие были вычислительные мощности дешевых однокристальных процессоров в 1979).
Свободно доступные библиотеки для Modbus имеются практически для всех семейств микропроцессоров.
Внимание, вопрос: почему в 21 веке нельзя было реализовать стандартный протокол Modbus RTU? Микроконтроллеры ныне стоят смешные копейки (не нужно на цены Чип-и-Дипа смотреть, смотрите на алиэкспрессе хотя бы), и их ресурсов для целей учета тепла + простенький древний интерфейс - хватает и остается с запасом.
Не умеете - давайте я вам сделаю за малую денежку, опыт программирования Modbus Master и Slave на 6 семействах от x51 до S7-300 - имеется.
Больше того, для ВКТ-7 есть плата Ethernet, но.... но там сделан вообще свой недокументированный протокол, и общаться плата может только с теплокомовской же программой, что делает ее для целей системной интеграции - бесполезной. Зачем так делать?
Есть OPC-сервер.... который является примером, как НЕ нужно документировать OPC-серверы (попробуйте по его мануалу поразбираться, какая переменная там за что отвечает).
Самое смешное - предыдущая модель того же производителя, ВКТ-5 - имела вполне себе стандартный протокол! Так что мы вместо развития - наблюдаем шаг назад.
К чему я на все это жалуюсь?
К тому, что есть такое правило: все, что технически сложно - экономически дорого. При любых расчетах - нужно не забывать про стоимость рабочего времени. Даже если взять абсолютно смешную по мировым понятиям цифру для РФ (порядка 500 рублей/час с налогами) - получается, что стоимость совершенно ненужной работы по программированию нестандартного протокола - превышает стоимость вычислителя!
При нормальной конкуренции производителей - этот прибор должен с треском вылететь с рынка, а производитель - либо одуматься, либо разориться.
(с вышеупомянутого форума: "времени не было разбираться поэтому поставил прибор ххххх". Повезло коллеге, что мог выбирать тип вычислителя.)
Однако в нашем не-идеальном мире - все, что касается учета ресурсов, особенно обязательного - является хорошей кормушкой. Применение тех или иных приборов учета - определается не их ТТХ, стоимостью, качеством техподдержки и прочая, а хотелками местных чиновников, имеющих, видимо, гешефт от производителя. И от заказчика мягко-ненавязчиво требуют поставить "вот этот прибор", и пофих, чего там спецы на эту тему говорят.
И пока эту систему не сломать - у производителей нет никакого стимула делать "как лучше". Ведь сделать по принципу "и так сойдет", прописать в закон и объявить сакральное импортозамещение - оно куда проще, и мозги включать не нужно.
А издержки... издержки это у потребителя. Какое до них дело? Все равно заставят купить, куда ему деваться?
Journal information