Показать сообщение отдельно
Старый 18.07.2017, 12:15   #2
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Работа с MQTT

Цитата:
Сообщение от Sergey Romanov Посмотреть сообщение
Протокол MQTT становится стаднартов в IoT а технологии IoT переходят в автоматизацию. Лично мое мнение что MQTT полностью вытеснит OPC сервера. Так как он потребляет на много меньше ресурсов, его внедрение занимает минимум места, работает в реальном времени, не основан на HTTP, позволяет не только передавать данные не сервер, но и обмениваться данными между устройствам, имеет внедренную поддрежку QoS или по русски гаранитрованую доставку сообщений и многое другое.

Сегодя уже существует десятки тысяч устройств с поддержкой MQTT. Если бы какой контроллер поддерживал это, то он стал бы автоматически частью интернета вещей и можно было бы использовать разные уже готовые приборы, даже типа ввода голосовыми командами.

Например контроллеры Ваго и Бекхов уже включают очень удобную библиотеку MQTT.

Внимание вопрос!

Возможно как то реализовать это в контроллерах сигнеткс? Добавить библиотеки MQTT в прошивку и сделать пару функциональных блоков?

Скоро (я надеюсь) Амазон Эко выпустит поддержку русского языка. Представьте, вы дома, и говорите "Алекса, я иду спать". И тут жалюзи на окнах закрываеются, вентиляция в спальне увеличивается, свет везде выключается кроме спальни или переходит в тусклый режим, и в ответ вы слышите "Спокойной ночи. До завтра. Хотите что бы я вас разбудила утром?" ну продолжение вы уже поняли. Или просто говорите "Алекса, включи музыку", "Что то конктретное или самой выбрать?" и т.д.

Все это, голосовой ввод, упралвение жалюзями, светом и другими девайсами будет не возможно без MQTT. То есть будет возможно по старому или как это делается сейчас, но будующее которое уже наступило, другое.

В КДС есть библиотека SysLibSocket и на ней уже сделано несколько реализаций MQTT.

Если нельзя сделать блоки непосредственно MQTT можно хотябы какиенибудь сетевые для работы с сокетами?
Давайте разберёмся сначала по "букве" написанного вами, а затем и по существу.

1) Протокол OPC не используется в работе контроллеров. Это упрощённый DDE для взаимодействия одной компьютерной программы с другой. Поэтому MQTT не может заменить протокол OPC, у них разное назначение и разные области применения.

2) QoS всегда обеспечивает драйвер, а не протокол. Построение QoS возможно в рамках практически любого буферизированного протокола. Да того же Modbus-TCP, например. Кстати, LON получил QoS раньше ещё в прошлом веке.

3) По поводу назначения QoS вы также заблуждаетесь. Это "технология" предоставления приоритетного доступа к трафику, не более того. Никакой гарантированной доставки она не подразумевает. Этим, опять же, занимается драйвер. Например, если драйверу TCP сказать, что время жизни пакета равно бесконечности, этот пакет рано или поздно дойдёт по адресата.

4) "Передача на сервер и одновременно между устройствами" - это вообще, пользуясь компьютерным сленгом, "адский баян". Данными возможностями обладают очень многие протоколы и устройства. Наши SMH2G(i), Trim5 и SMH4 умеют по Mosbus-TCP всё это. И данные на десяток серверов отправлять и одновременно с этим между собой работать.

4) Не хотелось вас расстраивать, заигрывать в такой картине будущего с прекрасной, но малолетней девушкой Алексой пока не стоит. Есть же не менее прекрасная девушка Сири, которая уже достигла совершеннолетия и не первый год уже прекрасно работает так, как вы написали. Причём не на базе MQTT.


В сухом остатке получается, что MQTT это всего лишь ещё один протокол. Скорее всего оптимизированный для LP-устройств и сетевой инфраструктуры типа P2P. И при этом бесплатный. Поэтому и набирает распространение.

--------------

Теперь по существу написанного. Дмитрий правильно сказал, что драйвер протокола для Linux уже наверняка существует. Но с вашей оценкой "сделать пару блоков" я очень не согласен. Как протокол, MQTT ничего особенного из себя не представляет. Но по нему не команды типа "Лёха, закрой нафиг шторы" летают. По нему летают данные, собранные во вполне конкретные структуры. Это означает, что нужно по одному блоку на каждое из упомянутых вами многих тысяч устройств.

Мы знаем о существовании этого протокола. Но считаем, что реализовывать пока рановато.

К сокетам у вас и так доступ есть. Делать в FBD его бессмысленно потому что этот язык не позволяет обрабатывать данные нужным образом. Только языки низкого уровня.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием