MQTT с использованием TC3_IoT_Communication; нет связи с брокером MQTT, но нет ошибки - PullRequest
0 голосов
/ 24 мая 2019

На моем компьютере работает брокер mqtt, и я могу подключиться к нему с помощью twincat.Я переместил брокера mqtt на сервер в той же сети.

Я могу подключиться к нему с помощью Node-RED (поэтому имя хоста, хост-порт, имя пользователя и пароль должны быть правильными), но TwinCAT не подключается к нему.Это код, который я использую для подключения к моему MQTT-брокеру.

Мои переменные:

fbMqttClient    : FB_IotMqttClient; // MQTT client
bSetParameter   : BOOL := TRUE; // set parameters once at start up
bConnect    : BOOL := TRUE; // if TRUE it will trigger MQTT client cyclically

Мой код:

// set parameters once when connecting to the mqtt broker
IF bSetParameter THEN
    bSetParameter               := FALSE;
    fbMqttClient.sHostName      := '172.16.1.51';
    fbMqttClient.nHostPort      := 1883;
    fbMqttClient.sTopicPrefix   := ''; 
    fbMqttClient.sUserName      := 'User';
    fbMqttClient.sUserPassword  := 'TopSecret'; 
    fbMqttClient.ipMessageQueue := fbMessageQueue;
END_IF

// MQTT client must be triggered cyclically
fbMqttClient.Execute(bConnect);

Я ожидаю подключениямежду моим брокером и TwinCAT.Вместо этого у меня нет соединения, и я получаю эти данные от fbMqttClient:

bError = FALSE <br>
hrErrorCode = 16#00000001 <br>
eConnectionState = MQTT_ERR_NO_CONN

Я надеюсь, что кто-то может помочь мне выяснить, в чем проблема и как решить эту проблему.

Ответы [ 4 ]

0 голосов
/ 29 мая 2019

Проблема была в брандмауэре на сервере и проблема решена.Я все еще не могу соединиться с публичными брокерами MQTT, но я могу соединиться со своим собственным брокером MQTT на сервере, чего я и хотел:).

0 голосов
/ 24 мая 2019

Попробуйте подключиться к публичному брокеру . Если это работает, это должен быть ваш сервер.

0 голосов
/ 24 мая 2019

Это работает для меня, и я использую ваш же код. Дважды проверьте вашу лицензию mqtt и убедитесь, что она не истекла.

Снимок экрана моего подключения к общедоступному серверу с вашим кодом

0 голосов
/ 24 мая 2019

Убедитесь, что у вас есть активированная лицензия mqtt и конфигурация в вашей среде исполнения Beckhoff.

...