菜单

功能介绍

功能块FB_IotMqttClient介绍

  • 输入参数
参数名称 参数类型 描述说明
sClientId String mqtt的客户端Id,必须是唯一标识,不填有程序自动分配
sHostName String mqtt的服务器的IP地址,默认为本机IP
nHostPort UINT mqtt服务器的端口,默认为1883
sTopicPrefix String 消息通道的前缀,订阅或者发布消息的时候需要添加这个前缀,可不填
nKeepAlive UINT 心跳报文发送时间,默认为60秒
sUserName String 设置连接mqtt服务器用户名。如果Broker需要提供用户名和密码连接。
sUserPassword String 设置连接mqtt服务器密码。如果Broker需要提供用户名和密码连接。
stWill 结构体ST_IotMqttWill mqtt遗嘱消息,如果mqtt客户端发生异常断开,服务端会向指定的topic发送消息
stTLS 结构体ST_IotMqttTls mqtts 连接的时候,需要设置一些证书和密钥文件的路径,必须保证路径存在
ipMessageQueue 指针 消息队列的指针,订阅消息时需要指向消息队列
  • 输出参数
参数名称 参数类型 描述说明
bError Bool 是否报错,True为有错误,False为正常
hrErrorCode UINT 错误码
eConnectionState UINT mqtt的连接状态,枚举类型
bConnected Bool 是否建立连接,True为连接,False为没有连接

方法FB_IotMqttClient.Execute()介绍

Void Execute(BOOL bConnect);

接口 类型 说明
bConnect BOOL TRUE表示建立连接

方法FB_IotMqttClient.Publish()介绍

Bool Publish(String sTopic,POINTER TO UDINT pPayload,UDINT nPayloadSize,TcIotMqttQos eQoS,Bool bRetain,Bool bQueue);

接口 类型 说明
sTopic String 发布消息的主题
pPayload PVOID 指针指向发布消息内容
nPayloadSize UDINT 发布消息内容长度
eQoS 枚举类型TcIotMqttQos AtMostOnceDelivery := 0, //最多一次AtLeastOnceDelivery :=1, //至少一次ExactlyOnceDelivery := 2 //确切一次
bRetain Bool TRUE表示发布保留消息
bQueue Bool 保留勿用
返回值 Bool 发送是否成功,TRUE成功,FALSE不成功

方法FB_IotMqttClient.Subscribe()介绍

Bool Subscribe(String sTopic,TcIotMqttQos eQoS);

接口 类型 说明
sTopic String 订阅消息的主题
eQoS 枚举类型TcIotMqttQos AtMostOnceDelivery := 0, //最多一次AtLeastOnceDelivery :=1, //至少一次ExactlyOnceDelivery := 2 //确切一次
返回值 Bool 订阅是否成功,TRUE成功,FALSE不成功

方法FB_IotMqttClient.Unsubscribe()介绍

Bool Unsubscribe(String sTopic);

接口 类型 说明
sTopic String 取消订阅消息的主题
返回值 Bool 取消订阅是否成功,TRUE成功,FALSE不成功

方法FB_IotMqttMessageQueue.Dequeue()介绍

Bool Dequeue(POINTER TO FB_IotMqttMessage fbMessage);

接口 类型 说明
fbMessage POINTER TO FB_IotMqttMessage 指针,指向FB_IotMqttMessage 从当前的消息队列里面获取一条消息,并赋值给FB_IotMQttMessage消息的对象
返回值 Bool 获取消息是否成功,TRUE成功,FALSE不成功

方法FB_IotMqttMessageQueue.ResetQueue()介绍

Bool ResetQueue();

接口 类型 说明
返回值 Bool 清空当前消息队列里面的所有消息,TRUE成功,FALSE不成功

方法FB_IotMqttMessage.CompareTopic()介绍

Bool CompareTopic(String sTopic);

接口 类型 说明
sTopic String 比较输入的Topic
返回值 Bool 比较输入的Topic与当前消息的Topic 是否一致,TRUE为一致,FALSE不一致

方法FB_IotMqttMessage.GetTopic()介绍

Bool GetTopic(POINTER TO STRING pTopic,UINT nTopicSize);

接口 类型 说明
pTopic POINTER TO STRING 指针指向主题消息内容
nTopicSize UINT 主题消息长度
返回值 Bool 获取消息的Topic,TRUE获取成功,FALSE获取失败

方法FB_IotMqttMessage.GetPayload()介绍

Bool GetPayload(PVOID pPayload,UDINT nPayloadSize,BOOL bSetNullTermination);

接口 类型 说明
pPayload PVOID 指针指向负载消息内容
nPayloadSize UDINT 负载消息内容长度
bSetNullTermination Bool 消息是否以NULL字符结束(即‘\0’),TRUE为是,FALSE为否
返回值 Bool 获取消息的负载,也就是订阅收到的消息内容,TRUE获取成功,FALSE获取失败
最近修改: 2025-04-17