1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | (* _Client : MQTT.MQTTClient; // Function block to establish a connection to a MQTT broker _ClientEnable : BOOL; _ConnectionState : SparkplugSessionStateType := SparkplugSessionStateType.OFFLINE; _ClientDone : BOOL; _ClientBusy : BOOL; _ClientError : BOOL; _ClientCleanSession : BOOL; _ClientId : STRING(255) := 'ClientID'; _ClientPingInterval : TIME := T#15S; _ItfTLSContext : MQTT.NBS.ITLSContext; //Encapsulates all the data neccecray to handle encrypted tcp connections // // 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 _Client( xEnable := _ClientEnable, xDone => _ClientDone, xBusy => _ClientBusy, xError => _ClientError, uiPort := _ServerPort, xUseTLS := _UseTLS, uiKeepAlive := _KeepAlive, pbWillMessage := _LastWillMessage, uiWillMessageSize := _LastWillMessageSize, xWillRetain := _LastWillRetain, eWillQoS := _LastWilQos, xCleanSession := _ClientCleanSession, wsUsername := _Username, wsPassword := _Password, wsWillTopic := _LastWillTopic, sClientId := _ClientId, tPingInterval := _ClientPingInterval, hCert := _hCert, itfTLSContext := _ItfTLSContext, itfAsyncProperty := _ItfAsyncProperty, sHostname := _ServerUrl, eMQTTError => _ClientMQTTError, xConnectedToBroker => _ClientConnectedToBroker );' udiMaxPayloadSize := SIZEOF( _Subscriber_Message ), mqttClient := _Client, wsTopicFilter := _Subscriber_TopicFilter, xDone => _Subscriber_Done, xBusy => _Subscriber_Busy, xError => _Subscriber_Error, eMQTTError => _Subscriber_MQTTError, xReceived => _Subscriber_Received, udiPayloadSize => _Subscriber_PayloadSize, xSubscribeActive => _Subscriber_Active, wsLastTopic => _Subscriber_LastTopic ); TerminateString( ADR( _Subscriber_Message ), _Subscriber_PayloadSize ); // Diagnose Diag(); |