【发布时间】:2019-05-24 13:03:09
【问题描述】:
我的计算机上运行了一个 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
我希望有人可以帮助我找出问题出在哪里以及如何解决这个问题。
【问题讨论】:
-
PLC在哪里运行?
-
...(即在您最初也运行代理的计算机上,还是在单独的计算机上)?红色节点是否与 PLC 在同一台机器上运行?您是否尝试过完全关闭 PLC 上的防火墙?
标签: mqtt twincat structured-text