Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Подскажите направление :)
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему
Страницы: 1, 2
wapanapa
Всем здравствуйте. В общем появилось желание и возможности приобрести опыт в проектировании АСУ систем.

Но не знаю какие есть уже для этого готовые составные части и как сделать так сказать быстрый старт. Чего я хочу по сути. Мне нужно понять как разрабатывать системы, которые могут собирать какие то данные, ну там частоту вращения с энкодеров, температуру с терморезисторов, давление с тензодатчиков, или там 1/0 с каких нибудь герконов и тп, делать эти данные доступными по сети Ethernet по IP протоколу, обрабатывать каким нибудь приложением.

я так понимаю сбором данных и их распространением занимается штука OPC сервер?

(где обычно идет обработка? на какой нибудь железяке или на обычном компе с виндой или линукс? )

и выводить/принимать управляющие команды на экран посредством веб приложения через браузер

может есть уже какие готовые программные и аппаратные средства которые можно скупить/скачать и разрабатывать уже с помощью них эту систему?

или это делается с помощью ардуины и например http://flprog.ru/ ?

вот например задача: снять с инкрементального энкодера скорость движения линии и вывести ее через веб приложение. как это сделать, какие нужны части для этой системы?
AlexandrY
Цитата(wapanapa @ Feb 1 2018, 09:47) *
вот например задача: снять с инкрементального энкодера скорость движения линии и вывести ее через веб приложение. как это сделать, какие нужны части для этой системы?

Зачем OPC?
OPC - это средство для больших SCADA программ чтобы подключаться к огромному парку оборудования с гигантским трафиком и связаннми с этим проблемами очередей, стеков и буферизации и пропускной способности.

Вам хватит и более простых решений. Очень удобны облачные технологии.
Например мой проект для облачной технологии - Открытый проект клиента MQTT

Т.е. ваше устройство посылает только MQTT пакеты, а их принимает либо локальный брокер MQTT на PC, планшете, Raspberry Pi или смартфоне и преобразует в WEB интерфейс.
Либо принимает облачный брокер. У них маперы MQTT в WEB уже готовые. Вы сможете смотреть за своим энкодером глобально и бесплатно.

В качестве устройства может быть применено и Arduino.
Но обычно выбирают более продвинутые контроллеры.
Поскольку IoT и M2M протоколы, которые вам требуются, требуют более мощных ресурсов и отладочных технологий чем имеет arduino.
Corvus
Цитата(wapanapa @ Feb 1 2018, 10:47) *
может есть уже какие готовые программные и аппаратные средства которые можно скупить/скачать и разрабатывать уже с помощью них эту систему?


Средства АСУТП много кто делает. От ОВЕН до Siemens.

Цитата(wapanapa @ Feb 1 2018, 10:47) *
вот например задача: снять с инкрементального энкодера скорость движения линии и вывести ее через веб приложение. как это сделать, какие нужны части для этой системы?


Например:
https://www.cta.ru/cms/f/459041.pdf

Это если нужно промышленное решение и бюджет позволяет.
HardEgor
Цитата(wapanapa @ Feb 1 2018, 14:47) *
Но не знаю какие есть уже для этого готовые составные части и как сделать так сказать быстрый старт. Чего я хочу по сути. Мне нужно понять как разрабатывать системы, которые могут собирать какие то данные, ну там частоту вращения с энкодеров, температуру с терморезисторов, давление с тензодатчиков, или там 1/0 с каких нибудь герконов и тп, делать эти данные доступными по сети Ethernet по IP протоколу, обрабатывать каким нибудь приложением.

Очень расплывчатое желание. Есть много вариантов реализации таких систем.

Цитата(wapanapa @ Feb 1 2018, 14:47) *
Вот например задача: снять с инкрементального энкодера скорость движения линии и вывести ее через веб приложение. как это сделать, какие нужны части для этой системы?

Есть две траектории - "сделать и забыть" или "использовать стандартные решения".
В первом случае вам хватит Ардуинки или STM32F1discovery с модулями расширения, во втором случае использовать промышленные сервера, платы, протоколы и т.д. (от ОВЕН до Siemens, как здесь писали)
wapanapa
А если я хочу что-нибудь с этой инфой потом делать, или генерировать какие нибудь отчеты в PDF, производить вычисления, рисовать графики? Все это надо будет делать самому или есть какие-нибудь мышко-программироемые системы, в которых можно было бы рисовать интерфейс пользователя или что то делать сэтой инфой..

например: на линии покраски завешивают и снимают группы деталей, т.е. ордера. Бригадир на завеске после завески очередного ордера сообщает системе (через веб-приложение) что ордер № такой-то завешан (например сканируя штрихкод из плана работ на смену). Система, учитывая скорость движения линии, вычисляет время прибытия ордера на участок съема деталей, и на другом мониторе (через другое веб приложение) выводится инфа, о том какой ордер будет следующий, через сколько минут он прибудет на участок, ну и еще какую то инфу.

так вот. может есть какие то программные средства чтобы можно было проектировать и создавать такие вещи не углубляясь сильно в программирование, в разработку устройств ввода-вывода инфы, написания драйверов для них.. чисто чтобы нарисовал блок схему, в крайнем случае какой нибудь простой язык программирования без углубления в то, как это все внутри работает. чтобы я работал непосредсвенно с теми данными которые мне нужны. не углублясь в протоколы передачи данных
Corvus
Цитата(wapanapa @ Feb 1 2018, 11:49) *
так вот. может есть какие то программные средства чтобы можно было проектировать и создавать такие вещи не углубляясь сильно в программирование, в разработку устройств ввода-вывода инфы, написания драйверов для них.. чисто чтобы нарисовал блок схему, в крайнем случае какой нибудь простой язык программирования без углубления в то, как это все внутри работает. чтобы я работал непосредсвенно с теми данными которые мне нужны. не углублясь в протоколы передачи данных


https://ru.wikipedia.org/wiki/SCADA
wapanapa
Цитата
Средства АСУТП много кто делает. От ОВЕН до Siemens

я так понимаю они совместимы только с их же оборудованием, нет какого то общепринятого стандарта ПО который бы подходил ко всему?
я думал что типа развесил датчики, подключил их по IP к сети, и давай прогой на компе собирай данные и выводи себе в веб приложение. а через браузер управляй\отображай
Цитата(Corvus @ Feb 1 2018, 08:59) *

а конкретнее? название программы?
Цитата
Вам хватит и более простых решений. Очень удобны облачные технологии.
Например мой проект для облачной технологии - Открытый проект клиента MQTT

вот это вроде похоже на то что я ищу..
AlexandrY
Цитата(wapanapa @ Feb 1 2018, 11:02) *
я так понимаю они совместимы только с их же оборудованием, нет какого то общепринятого стандарта ПО который бы подходил ко всему?
я думал что типа развесил датчики, подключил их по IP к сети, и давай прогой на компе собирай данные и выводи себе в веб приложение. а через браузер управляй\отображай

Почему же, стандарты есть. Общепринятых тулсов(т.е. программных инструментов) нет.
Скажем берете контроллер вводы-вывода одного производителя и ходите подключить к другому.
Протокол у них может быть один, скажем MODBUS или EtherCat,
но вот среду разработки которая бы без утомительного конфигурации адресов каждого битика, подгонки форматов представления данных и временных циклов вы не найдете.
Да, найдете некую SCADA которая все якобы может и подключает, но в детали реализации каждого модуля придется погружаться так, что мало не покажется.
Потому ардуинщики и процветают.

Да, модули систем программируемых логических контроллеров надо покупать одного производителя.
Там к ним будет идти среда разработки. В этой среде вы в реальном времени сможете видеть все измеряемые величины, но это будет не WEB интерфейс.
Чтобы их транслировать в WEB надо будет докупить SCADA c OPC и логический контроллер объединяющий все модули ввода-вывода в сеть.
Короче влетите на деньги и не малые.

Цитата(wapanapa @ Feb 1 2018, 11:02) *
..а через браузер управляй\отображай

Ориентация на броузер мне непонятна.
Я видел системы управления производством сделанные под броузеры на PHP, MySQL и прочем freeware.
А клиентские компьютеры по факту все равно покупают с Windows и кросплатформенность как бы не получает преимущества.
С другой стороны броузерный пользовательский интерфейс очень отстает по удобству и скорости от нативного Windows интерфейса который можно сделать скажем в RAD Studio.
В броузере вы не получаете полного доступа к аппаратуре компьютера.

Я делал системы управления производством на базе нативных Windows клиентов.
Но к сожалению все способы разработки по любому требуют высокой квалификации.
Поэтому программные пакеты ERP, CRM и прочих систем так дороги.
И да, логику производства и бизнес процессов SCADA осуществить не может, это делают ERP-CRM системы.
wapanapa
ориентация на браузер нужна. для кроссплатформенности. тогда любой телевизор, или планшет или смартфор можно превратить в панель управления/дисплей с инфой. в противном случае надо будет комп с виндой или еще хуже монитор подключенный к некой железке.

Цитата
И да, логику производства и бизнес процессов SCADA осуществить не может, это делают ERP-CRM системы.


а что бывают ерп и црм которые связаны с "железом"?
AlexandrY
Цитата(wapanapa @ Feb 1 2018, 12:09) *
тогда любой телевизор, или планшет или смартфор можно превратить в панель управления/дисплей с инфой.

Ну откройте страницу этого форума на смартфоне. Такое решение вы не продадите, а если продадите, то разоритесь на поддержке.
И это причем с желанием делать все без малейшего опыта.
Кидайте сразу это гиблое дело.
Жестко ставьте требование все делать на одной платформе либо сразу отказывайтесь. Мой вам совет.

Цитата(wapanapa @ Feb 1 2018, 12:16) *
а что бывают ерп и црм которые связаны с "железом"?

Ну как, на уровне COM или vCOM порта и TCP сокетов.
Есть программные мосты между SCADA и ERP, например через SQL серверы, но это если есть много денег.
wapanapa
Цитата
Ну откройте страницу этого форума на смартфоне.

ну просто конкретно этот форум не адаптирован под нужное разрешение. есть же такая штука как CSS, верстка с помощью div, эти вопросы уже давно решены вумными дядьками..


блин забыл название.. короче там как раз такая штука, генерит интерфейсы для умных домов iridiummobile чтоли.. не суть.

ну почему уж сосвем без малейшего опыта.. я по диплому системотехник)
значит надо копать в направлении ардуины...
mantech
Цитата(AlexandrY @ Feb 1 2018, 13:22) *
Ну откройте страницу этого форума на смартфоне. Такое решение вы не продадите, а если продадите, то разоритесь на поддержке.
И это причем с желанием делать все без малейшего опыта.
Кидайте сразу это гиблое дело.


Т.е. банальная веб-морда будет гораздо проблемнее ваших облаков, mqtt-серверов и т.д.??? Не смешите biggrin.gif

Цитата(wapanapa @ Feb 1 2018, 10:47) *
вот например задача: снять с инкрементального энкодера скорость движения линии и вывести ее через веб приложение. как это сделать, какие нужны части для этой системы?


Простейшая задача на МК типа стм32 и веб мордой.
AlexandrY
Цитата(mantech @ Feb 1 2018, 13:41) *
Т.е. банальная веб-морда будет гораздо проблемнее ваших облаков, mqtt-серверов и т.д.??? Не смешите biggrin.gif

Мое мнение, с "банальнаой веб-мордой" нынче пошлют куда подальше.
Если у вас там нет Vue или Angular-а, jQuery на худой конец и Google Material Design , то на вас будут смотреть как на гостя из прошлого.
wapanapa
AlexandrY, а как еще по вашему, если не через веб, обеспечить кроссплатформенность? кроме того, у многих производителей всяческой промышленной фигни есть возможность рулить ей через веб. не вижу ничего плохого. например у нас на работе компрессор и покрасочная линия, имеют веб-интерфейс и управляются через браузер.

как тогда например подключить большой экран к системе?

если нет браузера то надо или какую то железку которая бы: а) генерировала видео б) умела подключатся к IP сети

ну или персональный компьютер с программным обеспечением и операционной системой. короче это лишние точки отказа, лишние деньги за ПО, лищние расходы на эксплуатацию. а так.. веб браузер есть сейчас на любом тапке. кроме того мы получаем не просто дисплей а готовое устройство ввода-вывода из любого устройства с браузером, к тому-же способное подключатся к нашей системе из любой точки не то что предприятия а и вообще всей планеты.

а веб-морда она и в африке веб морда..
AlexandrY
Цитата(wapanapa @ Feb 1 2018, 14:57) *
AlexandrY, а как еще по вашему, если не через веб, обеспечить кроссплатформенность? кроме того, у многих производителей всяческой промышленной фигни есть возможность рулить ей через веб. не вижу ничего плохого. например у нас на работе компрессор и покрасочная линия, имеют веб-интерфейс и управляются через браузер.

Меня глобальный масштаб не интересует. Кто там на чем сделал - это их личное дело.

Вопрос я понимаю так - вызвался программер сделать в рукопашную управление бизнеспроцессами на мелком производстве для собственно самих работников производства.
И почему-то решил что это должно быть кросплатформенным и доступным из любой точки мира.
Ну ладно, мне то что.
Но по опыту скажу что это небезопасно, избыточно, излишне трудоемко и бесполезно именно с перспективы одного разработчика.

Тут я разделяю аналитику, менеджмент и поддержку с оперативным управлением.
Первое отлично уходит в облака, для второго WEB вреден.

Но подозреваю, что в виду ограниченности ресурсов вы будете делать все в одном. Это будет неверным путем.
syoma
В настоящий момент задачи ТС решается очень просто.

Если вопрос стоит в управлении АСУТП. Т.е. взять информацию с энкодера, сделать какие-то вычисления и включить какой-то клапан, то это контроллер. Контроллер в единственных экземплярах сейчас делается просто. Все I/O заводятся в контроллер через промышленную последовательную шину - Modbus TCP, EtherCAT, RS485 и пр.. Для этого существуют десятки тысяч датчиков для любых измерений и актуаторов для любых нагрузок.
В качестве контроллера может выступать практически любой компьютер с соответствующим ПО. ПО в данном случае - IC61131 - совместимая среда программирования и рантайм. Например Codesys, который работает даже на Raspberry Pi. Установили, подключили, нарисовали программу и оно работает. Там, кстати, уже есть встроенная Веб-морда для интерфейса оператора.

Если вопрос стоит в мониторинге процесса, то с появлением IoT, все стало очень просто. Фактически решение состоит из двух частей - так называемый "полевой агент" - железяка, которая собирает данные и отдает их в облако, и собственно самого облачного сервиса, который уже сохраняет информацию в базу данных, выводит красивые графики и т.д.

В качестве полевого агента опять же может выступить Raspberry PI, только уже с другим софтом, например Nodered, который может легко графически получать данные от любых датчиков по различным интерфейсам, преобразовывать их в MQTT и отправлять в облако. В качестве облачного сервера может быть ваш сервер с:
- MQTT брокер (ловит сообщения от полевых агентов)
- SQL база данных (соответственно, хранит данные с датчиков)
- Grafana рисует красивые графики

Или поставить MQTT брокер + OpenHAB - и получить тоже самое.

А можно вступить в ряды IBM BlueMix, Amazon AWS, Microsoft Azure и там тоже можно кучу всего наворотить, только за деньги.

wapanapa
syoma, спасибо за адекватный ответ)

Цитата
Если вопрос стоит в мониторинге процесса, то с появлением IoT, все стало очень просто. Фактически решение состоит из двух частей - так называемый "полевой агент" - железяка, которая собирает данные и отдает их в облако, и собственно самого облачного сервиса, который уже сохраняет информацию в базу данных, выводит красивые графики и т.д.

вот что именно надо для того, чтобы эта самая железяка отдавала данные по протоколу IP?
syoma
Цитата(wapanapa @ Feb 2 2018, 15:40) *
вот что именно надо для того, чтобы эта самая железяка отдавала данные по протоколу IP?

Дык вроде чистый IP уже давно никто не использует. Сегодня все привыкли, что трафик шифруется, авторизация и т.д. Вдруг кто-нибуль левый трафик подсунет или еще что-то. Да и мощность железяк уже настолько высокая, что что-то и посерьезней замутить можно. Ну и это все уже реализовано, что ничего не надо изобретать.
Например, как уже выше сказали, используйте MQTT. Работает поверх IP, шифрование, авторизация, автоматический контроль связи, минимальный трафик, работает хоть через 3G. Поддерживается на любой железяке и облаке из коробки. Например в случае с Raspberry Pi нужно просто установить Node-Red и вы получите поддержку MQTT сразу. Точнее NodeRED помоему там даже в основной дистрибутив входит. Т.е. достаточно просто запустить его.
wapanapa
просто есть вопрос - как мне по далеко не мелкому производству быстро протянуть кабели?.. поэтому я и прицепился к IP. а Ethernet - IP сеть уже как бы есть. Левый трафик не пушшу ). закрою все в VLANы sm.gif и по мак адресам и так далее.) я считаю что универсальность это хорошо. одна и та же инфраструктура и для интернета и для телефонии и для видеонаблюдения и для данных..
AlexandrY
Цитата(wapanapa @ Feb 2 2018, 15:57) *
просто есть вопрос - как мне по далеко не мелкому производству быстро протянуть кабели?.. поэтому я и прицепился к IP. а Ethernet - IP сеть уже как бы есть. Левый трафик не пушшу ). закрою все в VLANы sm.gif и по мак адресам и так далее.) я считаю что универсальность это хорошо. одна и та же инфраструктура и для интернета и для телефонии и для видеонаблюдения и для данных..

Тогда придется изучать работу кучи ненужного, плохо документированного и глючного в совокупности хлама как: Raspberry Pi, Node-RED, Embedded Linux, JavsScript и проч.
Вот это я называю в "рукопашную"
Arduino само-собой тут придется забыть надолго. biggrin.gif
syoma
Цитата(wapanapa @ Feb 2 2018, 15:57) *
просто есть вопрос - как мне по далеко не мелкому производству быстро протянуть кабели?.. поэтому я и прицепился к IP. а Ethernet - IP сеть уже как бы есть. Левый трафик не пушшу ). закрою все в VLANы sm.gif и по мак адресам и так далее.) я считаю что универсальность это хорошо. одна и та же инфраструктура и для интернета и для телефонии и для видеонаблюдения и для данных..

Так а чем MQTT не устраивает? Он вашу сеть не угробит.
AlexandrY
Цитата(syoma @ Feb 2 2018, 17:31) *
Так а чем MQTT не устраивает? Он вашу сеть не угробит.

MQTT всего лишь транспорт.
А выше него надо делать прикладной сериализатор данных.
И вот этот прикладной уровень у всех разный: у IBM, у Amazon, у Microsoft и у Raspberry
Предложить человеку просто абстрактно MQTT - это все равно что передложить колеса вместо машины.

Если взять мой открытый проект клиента MQTT, то в нем прикладной уровень реализован на простейших JSON конструкциях совместимых с IBM Cloud.
А WEB сервер из него делается за пять минут.
Просто открываете палитру компонентов IntraWeb в RAD Studio и превращаете форму в интерактивную WEB страницу.
Не надо качать и ставить никаких Апачей, никаких зависимостей от jQuery и других фреймворков, никаких Node.js и прочих наворотов, никаких PHP и серверных скриптов.
Никаких инсталяций и развертываний. Даже без SQL можно обойтись. В палитре RAD Studio есть куча баз данных на локальных файлах.
Просто сгенерили exe-шник, запустили и имеете WEB сервер и MQTT-клиент в одном. Мой MQTT-брокер можете запустить на том же компе.
Мало того, открываете панель компонентов Cloud и делаете одним движением из своего exe-шника мост в облака Azure и Amazon.

Все что в этом деле требуется изучить - это RAD Studio.
Для встраиваемх микроконтроллеров MQTT качаете вместе с TCP стеком, SSL-ом и JSON-ом из проекта mbed.
Там огромный выбор плат, но советую брать на базе Kinetis. Под них обычно самые полные решения и BSP.

Так выглядит самая эффективная и универсальная технология.
wapanapa
Почитал немного по MQTT, думаю это именно то что я искал.. sm.gif
теперь появились более конкретные вопросы

как из любого аналогового датчика сделать MQTT издателя? делают ли сие с помощью ardduino?
AlexandrY
Цитата(wapanapa @ Feb 6 2018, 09:31) *
как из любого аналогового датчика сделать MQTT издателя? делают ли сие с помощью ardduino?

Легко.
Покупаете Raspberry с мостом типа AT -> MQTT и подключаете его к Arduino. biggrin.gif
Или ESP.
В любом случае это будет сделано не на самом Arduino, а на пристегиваемом модуле.


wapanapa
эмм.. ESP8266 ?

а можете мне написать более подробную структуру издателя?
например инкриментальный энкодер --->ESP8266 --> ip-сеть ?? так чтоли? мне надо максимально дешевый вариант издателя
AlexandrY
Цитата(wapanapa @ Feb 6 2018, 09:47) *
мне надо максимально дешевый вариант издателя...

С этого надо было начинать.
С ESP я не связываюсь. Очень ненадежное решение. Беспроводка - это всегда риски и усложненное администрирование.

Вот хорошая плата для MQTT - https://os.mbed.com/platforms/FRDM-K64F/
Имеет на борту квадратурный декодер.
Качаете пакет mbed и там найдете для этой платы готовый MQTT с TCP стеком lwip, там и WEB сервер будет и все драйвера для Ethernet и прочие.
Да и SNMP там будет на случае если придется к корпоративным менеджерам сетей подключаться.
syoma
Цитата
как из любого аналогового датчика сделать MQTT издателя? ... мне надо максимально дешевый вариант издателя

Не знаю совпадают ли мое понятие "максимально дешевый" с вашим, но в моем понимании цена решения включает не только железо, но и разовые затраты на изучение, разработку нужного программного обеспечения, его настройку и поддержку в течении всего жизненного цикла изделия, что особенно критично, если надо только попробовать какое либо решение чтобы решить в каком направлении двигаться дальше. Например для меня потеря времени на изучение Arduino или ESP, установка нужных тулов и библиотек не стоит результата, если я хочу чисто получить MQTT издатель.

Поэтому в случае разового изделия, или прототипа, где важен "быстрый старт" я бы предложил:
- Железо: Raspberry Pi + EtherCAT I/O - в вашем случае Каплер Beckhof EK1100 и нужный Input Terminal для энкодера, например что-то из EL5XXX.
- Софт: CODESYS Control for Raspberry Pi SL + MQTT библиотека Janz Tec MQTT library for CODESYS SL

На настройку и изучение всего этого у вас должно уйти не более одного дня до получения первых MQTT сообщений от энкодера. Если что, я такую систему уже не один раз собирал и использовал в качестве тестового стенда и логгера.
wapanapa
https://www.amebaiot.com/en/ameba-arduino-m...-upload-listen/


нашел вот что то.. это оно?



Цитата(syoma @ Feb 6 2018, 11:05) *
Поэтому в случае разового изделия, или прототипа, где важен "быстрый старт" я бы предложил:
- Железо: Raspberry Pi + EtherCAT I/O - в вашем случае Каплер Beckhof EK1100 и нужный Input Terminal для энкодера, например что-то из EL5XXX.
- Софт: CODESYS Control for Raspberry Pi SL + MQTT библиотека Janz Tec MQTT library for CODESYS SL

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



что здесь издатель что брокер а что подписчик?

кхм.. я хочу не просто получить издатель, я хочу с чего-то начать. начну с издателя.. потом нашел статьи как сделать брокер. и потом поищу как делать подписчик.

просто хочу как то распланировать действия..
syoma
Цитата
что здесь издатель что брокер а что подписчик?

Это издатель. Также он может подписываться на топики.

Брокер в MQTT это чисто технологическое устройство, не требующее практически никакой настройки и программирования. Это почти как свитч в Ethernet - подключился и забыл. Например в вашем случае для начала вы можете зайти и сделать эккаунт в облачном брокере - cloudmqtt.com. Вам там дадут реквизиты и адрес, который нужно будет прописать в издателях и подписчиках. На этом настройка брокера для вас закончится.
Как другой вариант, если надо, чтобы трафик не выходил за пределы своей сети - на той же Малине двумя командами устанавливаете MQTT брокер Mosquitto. И подключаетесь к нему.
wapanapa
Цитата(syoma @ Feb 6 2018, 11:29) *
... на той же Малине....



тоесть если я хочу создать издатель, из которых в последствии будет возможно построить распределенную (по IP-сети) систему издателей, тоесть грубо говоря (аналоговый датчик->АЦП-> запихивалка этой инфы в MQTT протокол & пулялка ее в IP сеть (например езернет или вайфай или медиаконвертер, не суть)), то мне следует приобрести:


Цитата
- Железо: Raspberry Pi + EtherCAT I/O - в вашем случае Каплер Beckhof EK1100 и нужный Input Terminal для энкодера, например что-то из EL5XXX.
- Софт: CODESYS Control for Raspberry Pi SL + MQTT библиотека Janz Tec MQTT library for CODESYS SL


и это единственно верный и максимально дешевый в плане затрат на железо вариант?

а если в роли датчика будет выступать к примеру геркон? или тумблер или датчик движения (контакт замыкается при наличии движения) или индуктивный датчик (контакт замыкается когда поднесешь металл) то идем по той же схеме?

RASPBERRY PI ZERO - будет достаточно для издателя и для брокера?
AlexandrY
Цитата(wapanapa @ Feb 6 2018, 12:57) *
RASPBERRY PI ZERO - будет достаточно для издателя и для брокера?

Нет конечно.
Сёма вас немного тролит.
Ключевая часть в его рассуждениях - "MQTT библиотека Janz Tec MQTT library for CODESYS SL"
Там скрыто кодирование верхнего уровня несовместимое с другими системами и возможно закрытое и даже Сёма не знает его формата.
Поэтому вибирая его путь вы намертво привязываетесь к CODESYS.

Такое же решение вы можете взять у любого производителя PLC.
Скажем недавно листал каталог Phoenix Contact
Берёте вот такой KIT
Там и подключение к облакам и WEB сервер и два Ethernet. И даже ПО на халяву даст сделать 8-мь HTML страниц с динамическим содержимым.
На освоение - один час.

syoma
Цитата
и это единственно верный и максимально дешевый в плане затрат на железо вариант?

Да боже упаси. Конечно нет. В плане минимальных затрат на железо можно найти и придумать множество вариантов, первые из пришедших на ум вам уже подсказали - Ардуино или ESP.
Цитата
а если в роли датчика будет выступать к примеру геркон? или тумблер или датчик движения (контакт замыкается при наличии движения) или индуктивный датчик (контакт замыкается когда поднесешь металл) то идем по той же схеме?

Абсолютно. Вы просто вдобавок к тому, что имеете, подключаете какой нибудь модуль из EL10XX. Мало того, если вы добавите блок MQTT подписчика в свой издатель(это пара кликов) и подключите модуль цифровых или аналоговых выходов - сможете управлять чем либо чере MQTT.
wapanapa
https://www.amebaiot.com/en/ameba-arduino-m...-upload-listen/

а это что за ардуино-амеба? это аналог?
syoma
Цитата
Ключевая часть в его рассуждениях - "MQTT библиотека Janz Tec MQTT library for CODESYS SL"
Там скрыто кодирование верхнего уровня несовместимое с другими системами и возможно закрытое и даже Сёма не знает его формата.

Ничего там скрытого нет. Библиотека принимает аргументы в виде топика и payload, куда публиковать и точно так же принимает название топиков, на которые подписываться. Никакого кодирования верхнего уровня там не предусмотрено и она ничем не отличается от других библиотек MQTT клиентов.
AlexandrY
Цитата(syoma @ Feb 6 2018, 14:53) *
Ничего там скрытого нет. Библиотека принимает аргументы в виде топика и payload, куда публиковать и точно так же принимает название топиков, на которые подписываться. Никакого кодирования верхнего уровня там не предусмотрено и она ничем не отличается от других MQTT клиентов.

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

Цитата(wapanapa @ Feb 6 2018, 14:15) *
а это что за ардуино-амеба? это аналог?

Это же аналог ESP.
Т.е. закрытые платформы где даже PWM сделать проблема из-за отсутствия документации.
Хотя написать там в IDE Arduino отправку MQTT сообщения будет в разы проще чем на Rasberry с CODESYS.
Вопрос только в том что дальше. Масштабирования никакого.
syoma
Цитата
И не знаете всех нюансов с топиками у других производителей.
Система и формат топиков может быть очень сложной.
MQTT это не только пару байтов переслать, но и менеджмент сети, управление апгрейдами и т.д.

Никогда в этом не было нужды и я думаю ТС это тоже не нужно.

Цитата
Хотя написать там в IDE Arduino отправку MQTT сообщения будет в разы проще чем на Rasberry с CODESYS.

Ха-ха
Нажмите для просмотра прикрепленного файла
AlexandrY
Цитата(syoma @ Feb 6 2018, 15:22) *
Ха-ха

Одну и туже статическую строку отправлять в один и тот же топик много ума не надо. laughing.gif
Где в инете мы можем ее увидеть на HTML сервере?
syoma
Цитата
Одну и туже статическую строку отправлять в один и тот же топик много ума не надо.

Да пожалуйста. Сделайте такое же на ардуине, вот и узнаем много там ума надо или нет. Строка не статическая, а значение переменной.

Цитата
Где в инете мы можем ее увидеть на HTML сервере?

Вопрос непонятен. Причем MQTT к HTML?
wapanapa
Цитата
MQTT это не только пару байтов переслать, но и менеджмент сети, управление апгрейдами и т.д.

эм.. всмысле? какой еще менеджемент сети? для менеджмента сети у меня есть маршрутизаторы и коммутаторы..L2 и L3. фаерволы, NAT, VLAN, маршрутизация, всякие там BGP, OSPF и пошло поехало.. это уже вообще не имеет отношения к mqtt.. менеджмент сети будет на более низком уровне..и это отдельная вообще тема достойная отдельного сайта..

что значит "не пару байтов" а сколько? ведь написано же в интернетах про него, что это мол легкий протокол, разрабатывался в ту эпоху когда сети были медленные и тп.
к примеру тот же энкодер.. что он передает? просто импульсы..
вот, нашел спецификацию пакетов mqtt
https://ipc2u.ru/articles/prostye-resheniya...tt/#osobennosti
про менеджмент сети ничего не нашел.. sad.gif
AlexandrY
Цитата(wapanapa @ Feb 6 2018, 18:54) *
эм.. всмысле? какой еще менеджемент сети?

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

Речь то вроде шла о масштабировании, подключении кучи разнородных источников данных на производстве и ERP системы.
Вот это и есть сеть (не TCP сеть и не Ethernet)
Ей нужен менеджмент, т.е. развертывание, добавление, удаление узлов, смена их режимов, поддержка отложенных действий и недошедших сообщений, апгрейд, контроль версий, контроль работоспособности и т.д. и т.п.
Просто переслать байты можно и через голый IP/UDP отлично дойдут и куда надо.

Потом же шла речь о мапинге MQTT в HTML. Сами же хотели все видеть в броузере. Облака IBM и Amazon делают мапинг автоматом.
А как его этак легко сделает CODESYS мне интересно, когда это вообще не их специализация.

Я MQTT применяю только лишь потому, что он де факто стандарт для облаков. Если нет облаков, то MQTT никаким боком не нужен.
В локальной сети это совершенейшее извращение.
wapanapa
AlexandrY,

по поводу:
Цитата
подключить один несчастный энкодер

я же писал :
Цитата
я хочу создать издатель, из которых в последствии будет возможно построить распределенную (по IP-сети) систему издателей,

А насчет:
Цитата
нужен менеджмент, т.е. развертывание, добавление, удаление узлов, смена их режимов, поддержка отложенных действий и недошедших сообщений, апгрейд, контроль версий, контроль работоспособности и т.д. и т.п.

причем тут все это к MQTT непосредсвенно? этим всем я знаю как заниматься.. я системный администратор и это в общем моя работа и есть. (как выяснилоcь это просто один из битов заголовка в MQTT, который определяет QoS) и это никак не относится к MQTT, так как он идет поверх TCP/IP
Цитата
Если нет облаков, то MQTT никаким боком не нужен


скажите пожалуйста, что такое в вашем понятии "облако"?
мне кажется вы до конца не понимаете что это такое.. я лично не увидел никакой непосредственной связи MQTT с облачными технологиями. это вообще тут не причем.. все равно что соотсести.. ну я не знаю.. транспортную компанию и правила дорожного движения. sm.gif



может быть есть какие то непонятки в том что я хочу и что я понял... попробую объснить чтобы никто не тратил зря слова.

мне не обязательно чтобы веб сервер непосредсвенно был брокером или подписчиком MQTT, он может быть лишь интерфейсом пользователя. (ну вы же как специалист понимаете что такое интерфейс).

что я хочу: собственно раз я остановился на MQTT, то хочу собрать всю эту цепочку участников MQTT, а именно - издатель-брокер-подписчик.

1) Издатели это различные датчики которые собирают какую либо инфу, преобразовывают ее (с помощью чего то (? ардуино/малина) ) в формат MQTT и кидают постоянно в режиме реального времени эту инфу в сеть. обратной связи у них нет, они могут только кидатся инфой.

2) брокер - это типа менеджера, который "знает" какому подписчику нужна какая инфа (топик) и по запросу отдает ее подписчику

3) подписчик - это тот кто эту инфу в итоге кушает. и потом что хочет то с ней и делает. например отдает дальше кому-то (железке или проге), или сам является частью той самой железки/проги, которая уже создает веб сервер, пишет эту инфу в базу и так далее..


где тут де-факто для облаков? да, я знаю что в инете есть сервисы которые могут помочь в создании пунктов 2 и 3 за деньги (возможно о них вы и говорите, когда упоминаете об облаках..), но кто мешает создать мне их в своей локальной сети?

облако это не просто тупо сервис который доступен через интернет или локальную сеть. облако в принципе это.. что то, об устройстве чего то вы не имеете и не должны иметь представления, а знаете только как с ним общаться, что у него спросить и понимаете что оно ответит.. Грубо говоря это черный ящик, внутри которого может быть целый космос.. простой пример облака это интернет. для вас это облако. Ну или сайт google.com . вы не задумывались сколько людей в мире вводят запросы в гугл каждую секунду? никакой сервер не способен обработать так быстро столько запросов и дать столько сервисов сколько на нем есть.. это сеть вычислительных центров раскиданных по всему миру, которые работают как одно целое, одна большая система и видны для вас в виде одного единсвенного сайта.. вот примерно что такое облако.

я же хочу просто: издатели - один брокер - один (пока) подписчик. все будет в локальной сети на моих серверах. если надо - смогу дать доступ другим участникам сети через интернет..

вот к примеру одна из статей про то как сделать из датчика издателя MQTT но уже на ардуино
http://e.verything.co/post/61576413925/pub...rough-mqtt-over
AlexandrY
Цитата(wapanapa @ Feb 7 2018, 08:49) *
причем тут все это к MQTT непосредсвенно? этим всем я знаю как заниматься.. я системный администратор и это в общем моя работа и есть.

Нет, все не так.
Вы не в теме, поэтому и превлекаете ненужные смыслы.
Тут давно сложился свой слэнг.
Для разработчиков IoT облака имеют однозначное определение - это менеджеры сети IoT работающие по нескольким известным протоколам - MQTT, CoAP, XMPP, REST и проч.
Сеть IoT управляется по тем же протоколоам по которым получает данные.
Поэтому будь вы даже ассом администрирования своей локалки можете не знать о работе менеджера по протоколу MQTT.
Потому как менеджмент по MQTT является отдельной прослойкой поверх MQTT, у каждого крупного поставщика облаков менеджер свой.
О чем я тут вам безрезультатно потаюсь донести.
Мало того, спецификации MQTT которые вы можете найти по всяким нецелевым сайтам почти никогда не реализованы реальными брокерами в полном объеме.
Но в каком объеме они реализованы вам предстоит узнавать кровью и потом, образно говоря.
А потому это оправдано только если в облака очень надо.

Да, и перестаньте уже применять эти "подписчик" "издатель", есть только клиенты MQTT и брокер MQTT.
То что вы не создаете подписок еще не озачает что их не будет делать слой менеджера в вашем дивайсе.
Брокер есть сервер TCP/IP. Клиенты соотвественно первыми должны открывать соединение.
Брокер причем только один может быть и это тоже минус если речь о локалке.
wapanapa
что скажете о Mosquitto?
почему если брокер один то это минус? хотите сказать он будет критической точкой отказа? ну.. это решаемо. у меня к примеру шлюз тоже один. никто не мешает его резервировать, сделать несколько каналов в интернет, использовать динамическую маршрутизацию.. короче это не по вашей теме опять ..
AlexandrY
Цитата(wapanapa @ Feb 7 2018, 10:26) *
что скажете о Mosquitto?

А что о нем говорить.
Запасайтесь Wireshark, Visual studio постарее (где то версии 14-ой) и вперед в отладку.
Времени у вас наверно вагон. laughing.gif
wapanapa
ну как сказать. каждый находит время для того чего он хочет. я не могу купить тот КИТ набор что вы мне посоветовали. там какая то узкоспециализированная редкая и дорогая штука.. я хочу пойти в ближайший радиоларек, купить там пару плат ардуино, подключить все к компу и прошить. заодно попробовать себя в этой отрасли IOT и занятся чем то интересным. а если это еще и есть где примениить, т.е на работе.. чем плохо?
какие еще отладки.. пусть ими занимаются разработчики Mosquitto и MQTT..
я не слушаю людей когда они мне говорят что что то сложно невозможно и тп
wapanapa
del
AlexandrY
Цитата(wapanapa @ Feb 7 2018, 11:35) *
я хочу пойти в ближайший радиоларек, купить там пару плат ардуино, подключить все к компу и прошить. заодно попробовать себя в этой отрасли IOT и занятся чем то интересным. а если это еще и есть где примениить, т.е на работе..

Меня всегда привлекал феномен ардуинщиков.
Почему ардуино, а не mbed?
Потому что в mbed упоминается некая OS, а профессиональные админы как огня боятся других OS?
Или потому что самое дешевое ардуино стоит 2 бакса( хотя то что реально будет применено ардуиносовместимое будет гораздо дороже и не будет в ближайшем ларьке)?
Или потому что про mbed мало статей на русском языке на хабре? biggrin.gif

В mbed даже IDE качать не надо. Прямо в облаках выбрали плату, сгенерили проект на основе экзэмпла, в main файл записали строчку отсылки данных и там же в облаках скомпилили.
Но за-то есть неограниченные перспективы роста.
Все в исходниках.
Есть пошаговая отладка, профайлинг и даже трассировка.
Вся периферия доступна. Гарантировано можно подключить любой энкодер с любым быстродействием. Оцифровать тучу сигналов, гораздо больше чем в ардуино. и т.д. и т.п.
Так что такого привлекает в ардуино, если считать, что человек готов развиваться?
syoma
AlexandrY, а почему не Codesys, а mbed? А может быть вообще Predix? Вы развиваете холивар, который ТС в этой теме нафиг не нужен.

Цитата
Видите ли, если вы хотите MQTT только для того чтобы подключить один несчастный энкодер, то мне такая тема не интересна.

ИМХО Вам следовало бы остановиться после этой фразы.
AlexandrY
Цитата(syoma @ Feb 7 2018, 13:48) *
AlexandrY, а почему не Codesys, а mbed? А может быть вообще Predix? Вы развиваете холивар, который ТС в этой теме нафиг не нужен.

Вы бы поделились своим Codesys и было бы вам уважение.
Или объяснили бы нафига вы сюда вкинули Predix?


wapanapa
Цитата
Так что такого привлекает в ардуино


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

и реально. не надо тут развивать холивар и троллить. я английский знаю на хорошем уровне. может вы подскажете хорошую книгу по mbed c нуля или может какой нибудь сайт с уроками? про mbed я слышал только от вас. был бы очень благодарен.. А главное - ну посудите сами, должен ли какой то несчастный датчик иметь на борту мощную железку? его задача снять какую то величину (одну!) и отдать ее в сеть. ну неужели для этого надо мощаа?? тупо для одной кнопки?.

не смог найти ни одной статьи про mbed где написано какую железку купить, как к датчику прикрутить и как в ethetnet отправить данные и как их словить..

So.. can you help me with this? sm.gif

а ели я хочу пульс снимать к примеру. датчиком.. и отправлять в интернет. мне тоже надо к человеку большую плату прикручивать? такими темпами интернет вещей никуда не уйдет если все будет настолько большое и энергожрущее

p.s. а что такое nodemsu? а все нашел это тоже из области ESP8266 ..
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.