MQTTClient (FB) ¶ FUNCTION_BLOCK MQTTClient EXTENDS CBML.LCon Function block to connect with a MQTT broker InOut: Scope Name Type Initial Comment Inherited from Input xEnable BOOL TRUE : Activates the defined operation FALSE : Aborts/resets the defined operation LCon Output xDone BOOL TRUE : Ready condition reached LCon xBusy BOOL TRUE : Operation is running LCon xError BOOL TRUE : Error condition reached LCon Input uiPort UINT Port of MQTT Broker Server xUseTLS BOOL TRUE: Crypted Connection, FALSE: Uncrypted Connection uiKeepAlive UINT 5 Keep Alive Time in Seconds (optional) pbWillMessage POINTER TO BYTE 0 Pointer to the ‘Last Will’ message (optional) uiWillMessageSize UINT 0 Size of ‘Last Will’ message (optional) xWillRetain BOOL TRUE: Saves the ‘Last Will’ message on server. If Client subscribes later, then it receives the last stack message from server. eWillQoS MQTT_QOS QoS Level of ‘Last Will’ message xCleanSession BOOL TRUE: Creates a new session, FALSE: Uses already existing session if available wsUsername WSTRING(255) “” User Name (optional) wsPassword WSTRING(1024) “” User Password (optional) wsWillTopic WSTRING(1024) “” Will Topic (optional) sClientId STRING(255) ‘’ Client ID, if empty then new ID is generated, allowed are only these characters 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ (optional) tPingInterval TIME TIME#2s0ms Interval time in seconds how often should be pinged, if Time<=0 then no pings hCert RTS_IEC_HANDLE RTS_INVALID_HANDLE Handle to the client certificate (optional) itfTLSContext NBS.ITLSContext 0 Encapsulates all the data neccecray to handle encrypted tcp connections Static initialization, as shown in the following code snippet. VAR commonName : STRING := 'MyRrasPi' ; ciCertInfo : NBS.CERT_INFO := ( psInfo := ADR ( commonName ), udiSize := LEN ( commonName )); myTLSContext : NBS.TLSContext := ( ePurpose := NBS.PURPOSE.CLIENT_SIDE , sUseCaseName := 'NBSTest' , sTLSVersion := '1.3' , ciCertInfo := ciCertInfo , udiVerificationMode := 2 ); END_VAR itfAsyncProperty NBS.IAsyncProperty 0 Runs the connect process in a own background task. Use this property if the connection setup takes longer than one task cycle (e.g. TLS connections) udiTimeOut UDINT 0 Defines the time (µs) after which the connection setup aborts with xError. eCommunicationMode COMMUNICATION_MODE COMMUNICATION_MODE.TCP Communication mode: TCP or WEB_SOCKET, default: TCP COMMUNICATION_MODE.TCP: Configure the connection via the inputs: sHostname, uiPort and itfTLSContext COMMUNICATION_MODE.WEB_SOCKET: Configure the connection via the inputs: sWebSocketUrl and itfTLSContext Additional WebSocket options can be set via the method SetWebSocketOptions . sWebSocketUrl REFERENCE TO STRING(1024) The uri of the websocket server. e.g ‘ws://localhost:8080’ ws-URI = “ws:” “//” host [ “:” port ] path [ “?” query ] wss-URI = “wss:” “//” host [ “:” port ] path [ “?” query ] The input is only relevant for eCommunicationMode = COMMUNICATION_MODE.WEB_SOCKET. eMQTTVersion MQTT_VERSION MQTT_VERSION.V3_1_1 MQTT protocol version, default: 3.1.1 mQTTConnectProperties REFERENCE TO MQTTConnectProperties Connection properties for MQTT V5 mQTTWillProperties REFERENCE TO MQTTWillProperties Will properties for MQTT V5 Inout Const sHostname STRING(80) Host name of Broker MQTT Server (is IPAddress) Output eMQTTError MQTT_ERROR MQTT Error Type xConnectedToBroker BOOL FALSE FALSE when there is no Connection to MQTT Broker Server, otherwise TRUE eReaonCode MQTT_REASON_CODE Reason code of the last operation (MQTT V5 only) mQTTConnackProperties MQTTConnackProperties Connection response properties (MQTT V5 only) Methods: ResetAction SendAuthPacket SetInitialValue SetWebSocketOptions Structure: ResetAction (Method) SendAuthPacket (Method) SetInitialValue (Method) SetWebSocketOptions (Method)
MQTTPublish (FB) ¶ FUNCTION_BLOCK MQTTPublish EXTENDS CBML.ETrigTo IMPLEMENTS IClientAction Function block to publish (send) messages to a MQTT broker Use the input udiTimeout (see CBML.ETrigTo) to set the time in µs in which an acknowledgement must be received (relevant for QoS1 and QoS2). Default: 1s InOut: Scope Name Type Comment Inherited from Input xExecute BOOL Rising edge: Starts defined operation FALSE : Resets the defined operation after ready condition was reached ETrigTo udiTimeOut UDINT Max. operating time for executing [µs], 0: No operating time limit ETrigTo Output xDone BOOL Ready condition reached ETrigTo xBusy BOOL Operation is running ETrigTo xError BOOL Error condition reached ETrigTo Input eQoS MQTT_QOS QoS Level of message xReDelivery BOOL TRUE: When packet got already send and now should got resend, FALSE: First time xRetain BOOL TRUE: Stores the message on server pbPayload POINTER TO BYTE Pointer to the message udiPayloadSize UDINT Size of message mQTTPublishProperties REFERENCE TO MQTTPublishProperties Optional publish properties (MQTT V5 only) Inout mqttClient MQTTClient Function block MQTTClient wsTopicName WSTRING(1024) Topic Name of message Output eMQTTError MQTT_ERROR MQTT Error type
MQTTSubscribe (FB) ¶ FUNCTION_BLOCK MQTTSubscribe EXTENDS CBML.LCon IMPLEMENTS ISubscriber Function block to subscribe (receive) messages from a MQTT broker InOut: Scope Name Type Initial Comment Inherited from Input xEnable BOOL TRUE : Activates the defined operation FALSE : Aborts/resets the defined operation LCon Output xDone BOOL TRUE : Ready condition reached LCon xBusy BOOL TRUE : Operation is running LCon xError BOOL TRUE : Error condition reached LCon Input eSubscribeQoS MQTT_QOS QoS-Level for Subscribe pbPayload POINTER TO BYTE Pointer to memory for incoming payload udiMaxPayloadSize UDINT Maximum Size of incoming payload eFilterMode FILTER_MODE FILTER_MODE.FILTER_ON Filter mode for incoming telegrams. Default: FILTER_MODE.FILTER_ON mQTTSubscribeProperties REFERENCE TO MQTTSubscribeProperties Subscribe proerties (MQTT V5 only) udiTimeout UDINT 1000000 Time in µs in which an subcription acknowledgement (SUBACK) must be received. Inout mqttClient MQTTClient Function block MQTTClient wsTopicFilter WSTRING(1024) Topic Filter Output eMQTTError MQTT_ERROR MQTT Error Type xReceived BOOL FALSE as long as there is no message, TRUE if a message got received, in new cyclus then again FALSE udiPayloadSize UDINT Size of the received message xSubscribeActive BOOL FALSE FALSE: When there is no active subscription, TRUE: Subscriber is listening wsLastTopic WSTRING(1024) The real topic value from the publish packet that is corresponding to this topic filter mQTTPublishProperties MQTTPublishProperties Last received publish properties Properties: FilterMode SubscribeActive Methods: ResetAction Structure: FilterMode (Property) ResetAction (Method) SubscribeActive (Property)
Params ¶ MQTTParam (ParamList)
MQTTParam (PARAMS) ¶ Attributes: qualified_only InOut: Scope Name Type Initial Comment Constant g_uiMaxTopicLevel UINT 10 The maximal count of levels per topic g_udiMaxQueuedPackets UDINT 1000 The maximal count of queued packets that are possible to store g_udiMaxPacketSize UDINT 6000 Maximum size of a MQTT packet byte array, MUST be smaller than 256 MB ! g_udiMaxReceiveBufferSize UDINT g_udiMaxPacketSize Maximum size of the receive buffer. This value should be large enough to store the packets to be received per one cycle. g_udiMaxPayloadSize UDINT 4096 Maximum size of a MQTT payload byte array, MUST be < than max. Packet Size ! g_udiMaxPublishersAndSubscribers UDINT 20 Maximum number of publishers + subscribers g_udiMaxUserProperties UDINT 10 Maximum number of user properties per packet (MQTT V5 only) g_udiMaxUserPropertyValueLength UDINT 80 Maximum length of the user property key and value (MQTT V5 only, Range: 1 - 1024)) g_udiMaxCorrelationDataSize UDINT 256 Maximum size of the correlation data (MQTT V5 only) g_udiMaxAuthDataSize UDINT 256 Maximum size of the authentication data (MQTT V5 only)
Structs ¶ MQTTV5 Properties MQTTAuthProperties (Struct) MQTTConnackProperties (Struct) MQTTConnectProperties (Struct) MQTTPublishProperties (Struct) MQTTStringPair (Struct) MQTTSubscribeProperties (Struct) MQTTWillProperties (Struct)
MQTTClient.SendAuthPacket (METH) ¶ METHOD SendAuthPacket : BOOL Method to send AUTH packets to the server (MQTT V5 only). This method can be called to send an AUTH response to the server if a AUTH packet has been received. see MQTTClient.mQTTConnackProperties.xAuthPacketReceived InOut: Scope Name Type Comment Return SendAuthPacket BOOL Input xSendAuthPacket BOOL A rising egde will send the AUTH packet eReasonCode MQTT_REASON_CODE The reason code to send. Inout mQTTAuthProperties MQTTAuthProperties AUTH properties Output eError MQTT_ERROR
MQTTClient.SetInitialValue (METH) ¶ METHOD SetInitialValue : BOOL InOut: Scope Name Type Initial Return SetInitialValue BOOL Input itfTLSContext NBS.ITLSContext 0 itfAsyncProperty NBS.IAsyncProperty 0 itfTSNContext NBS.ITSNContext 0
MQTTClient.SetWebSocketOptions (METH) ¶ METHOD SetWebSocketOptions : BOOL Method to set additional websocket options if eCommunicationMode = COMMUNICATION_MODE.WEB_SOCKET InOut: Scope Name Type Initial Comment Return SetWebSocketOptions BOOL Input tPingInterval TIME TIME#0ms Ping interval, T#0s: no ping httpProxySettings WEB_SOCKET.HttpProxySettings Optional http proxy settings
MQTTSubscribe.FilterMode (PROP) ¶ PROPERTY FilterMode : FILTER_MODE Returns the FILTER_MODE