Показано с 1 по 10 из 46

Тема: Что почитать?

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Попробуйте для начала просто по видео повторить:
    https://youtu.be/3AGJbDp0aaU
    Я посмотрел внимательно видео. Вроде бы так и делаю. Попробовал максимально упростить задачу. И прямо в PLC_PRG написал так:
    mqtt.i_xEnable := TRUE;
    mqtt.i_sBrokerAddress := 'subdomain.domain.com';
    mqtt.i_uiPort := 1883;
    mqtt.i_sUsername := 'user';
    mqtt.i_sPassword := 'password';
    mqtt.i_sPayload := 'starting';
    mqtt.i_sTopicPublish := '/topic11/plc';
    mqtt.i_xPublish := TRUE;

    И после запуска ничего не происходит Я указываю те же данные в приложении MQTT Explorer, и все нормально подключается. То есть коннективити есть, логин/пароль верные.

    По netstat вижу подключения к Gateaway (localhost:1217). Но не вижу обращений к адресу mqtt-брокера.
    Последний раз редактировалось Stan_1; 30.04.2021 в 22:42.

  2. #2
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,649

    По умолчанию

    Цитата Сообщение от Stan_1 Посмотреть сообщение
    Я посмотрел внимательно видео. Вроде бы так и делаю. Попробовал максимально упростить задачу. И прямо в PLC_PRG написал так:
    mqtt.i_xEnable := TRUE;
    mqtt.i_sBrokerAddress := 'subdomain.domain.com';
    mqtt.i_uiPort := 1883;
    mqtt.i_sUsername := 'user';
    mqtt.i_sPassword := 'password';
    mqtt.i_sPayload := 'starting';
    mqtt.i_sTopicPublish := '/topic11/plc';
    mqtt.i_xPublish := TRUE;

    И после запуска ничего не происходит Я указываю те же данные в приложении MQTT Explorer, и все нормально подключается. То есть коннективити есть, логин/пароль верные.

    По netstat вижу подключения к Gateaway (localhost:1217). Но не вижу обращений к адресу mqtt-брокера.
    так на видео же CFC там сам квадрат ПОУ в ST обозначает что после такого кода должно стоять mqtt();
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  3. #3
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,822

    По умолчанию

    Цитата Сообщение от Stan_1 Посмотреть сообщение
    Я посмотрел внимательно видео. Вроде бы так и делаю. Попробовал максимально упростить задачу. И прямо в PLC_PRG написал так:
    mqtt.i_xEnable := TRUE;
    mqtt.i_sBrokerAddress := 'subdomain.domain.com';
    mqtt.i_uiPort := 1883;
    mqtt.i_sUsername := 'user';
    mqtt.i_sPassword := 'password';
    mqtt.i_sPayload := 'starting';
    mqtt.i_sTopicPublish := '/topic11/plc';
    mqtt.i_xPublish := TRUE;

    И после запуска ничего не происходит Я указываю те же данные в приложении MQTT Explorer, и все нормально подключается. То есть коннективити есть, логин/пароль верные.

    По netstat вижу подключения к Gateaway (localhost:1217). Но не вижу обращений к адресу mqtt-брокера.
    Попробуйте для начала просто по видео повторить.

    - используйте CFC
    - используйте в качестве брокера www.mqtt-dashboard.com
    - не используйте логин и пароль
    - воздействуйте на переменные, привязанные к входам i_xPublish и i_xSubscribe "вручную", а не с помощью кода

    Когда в такой связке заработает (а я считаю, что оно должно работать - только что проверил у себя, см. скрин), то поэтапно начинайте адаптировать к своей задаче, после каждого этапа проверяя, сохранилась ли работоспособность. Если после очередного изменения связь пропадет - надо приступать к анализу изменений. Так обычно происходит отладка проектов.

    01-05-2021 8-36-29.png

  4. #4

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Попробуйте для начала просто по видео повторить.

    - используйте CFC
    - используйте в качестве брокера www.mqtt-dashboard.com
    - не используйте логин и пароль
    - воздействуйте на переменные, привязанные к входам i_xPublish и i_xSubscribe "вручную", а не с помощью кода

    Когда в такой связке заработает (а я считаю, что оно должно работать - только что проверил у себя, см. скрин), то поэтапно начинайте адаптировать к своей задаче, после каждого этапа проверяя, сохранилась ли работоспособность. Если после очередного изменения связь пропадет - надо приступать к анализу изменений. Так обычно происходит отладка проектов.

    01-05-2021 8-36-29.png
    Да, спасибо! Вчера весь вечер возился, и как-то оно заработало. Но очень нечетко. И есть нюансы, смысла которых я не понимаю, а описание очень скудное
    1. Первое, что выяснил - нельзя вызывать mqtt() внутри FB Изначально была логика иметь в PLC_PRG настроеный экземпляр, передавать его в FB, где указывать топик, payload, устанавливать i_xPublish в TRUE, и вызывать mqtt(). Это не работало. Как только я вынес все указанное за пределы FB в PLC_PRG - я увидел факт передачи. Уже успех. Но почему это не работает внутри FB - не понимаю. Видимо, аналогия из моего пограммисткого опыта, что FB - это просто функция, неверна. У FB есть какие-то ограничения, на описание которых я не натыкался.
    2. Долго не мог понять, почему MQTT_Client режет json, который я подготовил. Потом понял - передаю строку более 80 символов. Как указать STRING(250) для i_sPayload - не нашел Это вообще возможно, или начинать смотреть в сторону платных бибилиотек? Там у библиотеки 3S длина 1024 символа.
    3. Хотя я вызываю функцию mqtt() раз в 2 секунды, отправка данных идет ОДИН раз за запуск. Видимо, есть опят какие-то базовые нюансы, которые нужно просто знать Я пробовал по разному: пробовал после вызова mqtt() вызывать i_xPublis = FALSE. Пробовал менять Payload (была версия, что отправляются только измененные данные, хотя в исходниках вроде не так). Но ничего не помогло. И здесь мыслей вообще нет. Видимо, есть какие-то особенности именно работы PLC, которые я фундаментально не понимаю

Похожие темы

  1. Посоветуйте что почитать, чтобы научиться программировать
    от OAS1606 в разделе Программируемые реле
    Ответов: 44
    Последнее сообщение: 16.04.2021, 13:17
  2. Что интересного почитать? Канал на Яндекс.Дзен от датчиков ОВЕН!
    от Алексей Сидорцев в разделе Трёп (Курилка)
    Ответов: 0
    Последнее сообщение: 06.12.2019, 21:59
  3. Описание по энкодерам. Где почитать?
    от TV13M в разделе Трёп (Курилка)
    Ответов: 3
    Последнее сообщение: 26.01.2018, 09:02

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •