AWSIoTClient (FB)

FUNCTION_BLOCK AWSIoTClient

Function block to connect to the AWS IoT Core Service.

InOut:

Scope

Name

Type

Initial

Comment

Input

xEnable

BOOL

TRUE: Opens a connection, FALSE: Close connection

uiKeepAlive

UINT

30

Keep alive interval in seconds (default: 30s)

sClientId

STRING(255)

The clientId (Name of the thing in AWS IoT Core)

sHostname

STRING(1024)

API Endpoint (e.g. xxxxxxyyyyyyy.iot.eu- central-1.amazonaws.com)

uiPort

UINT

8883

MQTT port (default: 8883)

wsWillTopic

WSTRING(1024)

„“

Last will topic (optional)

pbWillMessage

POINTER TO BYTE

0

Pointer to the ‚Last Will‘ message (optional)

uiWillMessageSize

UINT

0

Size of ‚Last Will‘ message (optional)

eLastWillQoS

QOS

Quality of Service of the last will message

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)

sCertCNPrefix

STRING

‚‘

Prefix for the Common Name (CN) of the certificate.

The prefix should be used if the ClientId is identical to the host name. This prevents loading of a wrong certificate (e.g. from the WebServer).

Example: sCertCNPr := ‚AWSClient‘, sClientId := ‚MyHostname‘

=> The Common Name (CN) of the certificate will be AWSClient@MyHostname

xCleanSession

BOOL

TRUE

TRUE: Creates a new session, FALSE: Uses already existing session if available

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

Output

xError

BOOL

TRUE, if an error occurred

xBusy

BOOL

TRUE, while the function block is active

eError

MQTT.MQTT_ERROR

The error id

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)