Вопрос наверное прежде всего к специалистам компании ОВЕН. Можно ли на ПЛК100 реализовать обмен на базе протокола MQTT? Есть ли какие-то библиотеки на эту тему?
Вид для печати
Вопрос наверное прежде всего к специалистам компании ОВЕН. Можно ли на ПЛК100 реализовать обмен на базе протокола MQTT? Есть ли какие-то библиотеки на эту тему?
Ну если верить гуглу, то уже есть реализации. В том числе oscat сделал.
А уже есть устройства с этим протоколом?
да, есть задача с MQTT протоколом. Спасибо за подсказку
Не могли бы вы натолкнуть на библиотеку оската в которой есть реализация заддного протокола, а то что-то не могу на сайте их найти.
https://github.com/kmpm/OSC-MQTT
Мопед не мой, я только нагуглил.
Если нужна помощь в адаптации https://github.com/FieldFox/Codesys-Mqtt-lib к ПЛК100, то могу помочь..
протокол MQTT клиент для ПЛК323 (только пока посылка, подписки нет)
да вроде адаптировать не сложно. Опыт в реализации модбас ТСР мастера и слейва есть. Вот только возникла проблема. создаю сокет после этого отправляю серверу запрос CONNECT на подключение к брокеру и он не отправляется, однако если поставить точку останова перед отправкой этого запроса и после остановки сразу продолжить исполнение программы, то он отправляется и подключается к брокеру. Не понимаю почему не работает в рантайме. в чем проблема. Пробовал ставить таймер 1-2-3-5 секунд между открытием сокета и отправкой запроса - не помогает. Только если сделать кратковременную остановку брейкпойнтом, работает. С модбас ТСР такой проблемы нет, хотя непонятно в чем в данном случае разница то. Что там после открытия отправляется серверу набор байт, что тут.
Ты мой проект используешь?
там есть фичи с работой с сокетами, я в oscat подсмотрел... попробуй тот архив, что выше в ветке этой лежит..
А может кто-нибудь более детально рассказать или показать как сделать mqtt на ПЛК110? Или ткнуть носом в какую-нибудь статью?
Привет всем.
Подскажите есть ли у кого подвижки по этой теме? Удалось ли сделать подписку на сообщения? Я пробовал https://github.com/kmpm/OSC-MQTT - сообщения публикует, но там есть несколько багов и подписки нет. А https://github.com/FieldFox/Codesys-Mqtt-lib мне не удалось портировать из-за специфической Wago библиотеки.
Библиотека wago вовсе не специфична, построена с использованием все тойже syslibSockets. Есть свидетельства Ее работы на плк100. http://www.owen.ru/forum/showthread.php?t=8994
В библиотеке WAGO нет ничего специфического, основана на стандартной SysLibSockets проблема в том что ПЛК 1XX поддерживает ее частично, поэтому ваговская библиотека не работает. Прикладываю допиленную библиотеку взамен ваговской с клиентом TCP. Проверена на ПЛК100. в проекте mqtt заменить ваговскую на эту.
В предыдущем топике перезалита библиотека, выложил с ошибкой. Дополнительно прикладываю проект.
Mqtt c подпиской и публикацией. Библиотеки + проект, проверено на ПЛК100.
для ПЛК323 тоже самое
Господа, требуется Ваша помощь: в данном случае на какой брокер делается публикация в топик /plc? Я так понимаю, что на сам контроллер, тогда подскажите, пожалуйста, настройки конфигурации mqtt spy, тк он у меня не соединяется с плк100.
А как быть в случае, если необходимо взаимодействие с онлайн-брокером, то есть нужны подписки и публикации в топики на брокере по адресу www.....?
делается на mosquitto broker например.. где он расположен не важно.. главное что бы пинговался с ПЛК и всякие там фаерволы были настроены правильно.
это понятно, вопрос в том, где указывается параметры удаленного брокера (к примеру mosquitto.org) для дальнейшей связи с ним? И при чтении сообщений из топика /plc (как в примере) например программой mqtt spy- какие параметры соединения должны быть? (ip- контроллера, 1883-порт и тд..) Дело в том, что ни один из клиентов (например wise-5231 или же mqtt spy не могут соединиться с плк100)
mosquitto.org - в IP прописывается.. ПЛК не является сервером MQTT. Те логика работы такая ПЛК подключился к masqito серверу и подписался на топик. Другой клиент подключился к masqito и запостил в тот же топик на который подписан ПЛК. ПЛК получил данные. И так же ПЛК может постить данные в другие топики и или в тот же на который подписан, не важно.
ну как то ip 85.119.83.194 (mosquitto.org) - 16#557753C2 как то так.. это если ты про ПО для Codesys V2 в версии для V3 там просто Sting '85.119.83.194'
Огромное спасибо за консультацию!
Подскажите а библиотека с github-а Codesys-Mqtt-lib умеет только публиковать или подписка тоже работает?
Для чего то там же есть Subscribe?
подписка тоже работает в последней в теме версии
> подписка тоже работает в последней в теме версии
Последняя версия в теме я так понимаю для PLC Owen.. а у меня так уж сложилось другой контроллер с библиотекой Eth от wago.
кстати словил неприятную ошибку. Если записывать TRUE на Pub и не задавать значение Payload - контроллер виснет наглухо до ручной перезагрузки.
Про оригинальную версию не подскажите?
Вашу версию (projectarchive MQTT_V2.projectarchive)я даже открыть не могу (Codesys 2.3).. расширение незнакомое
Вроде все настроил. Все без ошибок компелиться. Но вот соединятся не хочет.
Вот эта ошибка.
16#8007 => SysSockSend() fails
И выход xBusy тоже TRUE через 5-7 секунд. А потом уже и ошибка появляется.
У меня ПЛК110.
Вопрос. Мне вобще нужно добавлить интерфейс в плк изернет в конфигурации? Или он и так в сети?
Я проверил и я локально конект делаю с МКТТ клиентом, так же пробовал ТеслаСкада и проект на другом устрйстве (сотке) в локальной сети тоже работает. Это значит что сам сервер МКТТ москито разрешает соединения. Видимо что то в настроках контроллера.
Я проверил PLCInfo и айпи, маска и гейтвей все правильные, в моей подсети все.
Дополнение.
Проверил соедитенние wireshark. Очень странный результат.
http://www.owen.ru/forum/attachment....1&d=1500214123
Почему там какойто TCP ретрансмишен с 1685 на 23303. При чем тут эти порты? Я вообще на 1883 пытаюсь соедениться.
Всем добрый вечер.
Скажите пожалуйста, появилась ли библиотека mqtt для ПЛК110 (Codesys 2.3)?
http://www.owen.ru/forum/showthread....l=1#post227644
Это не работает ?
А какие конкретно библиотеки нужны?
Есть mqtt_publish.lib
и есть mqtt_v1.0.lib
Что из них?
И с каким периодом необходимо запускать эту программу, что бы mqtt работал стабильно?
Господа, подскажите как выполнтиь реконнект при потере связи?
Библиотека MQTT_OwenPLCv1
MQTT отправка работает, все отлично ... до сбоя связи с сервером. При потере связи с сервером подключение MQTT обрывается и не пытается восстановиться, зависает.
При этом xError показывает ошибку 32772 "Is returned when FB_SocketReceive is called, if the client socket is no longer connected with the server.",
xPublish в true.
Как я понимаю сокет не сбрасывается, MQTT пытается долбиться по несуществующему на сервер
Сам себе отвечу и поделюсь решением (кривым, я .Net-чик):
В библиотеке MQTT_OwenPLCv1 при потеои связи с сервером TcpClient переходил в состояние STATE_TX и, если время WatchDog выходит, скидывает в STATE_ERROR_TRAP откуда нет выхода
В общем в состоянии STATE_TX поставил заглушку типа Return при условии ошибки m_diReturn
Теперь сокету приходится бесконечно ждать возможности отправки
Также в библиотеке MQTT_OwenPLCv1 добавил возможность указания извне идентификатора клиента sOwner
Прикрепляю проект со всеми библиотеками для Овен ПЛК100
Указанное мной решение выше - бред
Люди, помогите!
Проблема восстановления связи после сбоя
Кому пива?
По итогу решился начать с нуля
В приложении проект на стандартных библиатеках
Реализована стабильная связь клиента по MQTT, восстановление подключения при обрыве связи
Но, было лень реализовывать для меня ненужное - отсутствует авторизация по логину и паролю, указание параметров, ... кому нужно сможет доработать по спецификации
ПЛК100-24R.M