0% found this document useful (0 votes)
569 views

Libraries Comm Controller DOC V1 0 0 en

This document provides information about libraries for communication for SIMATIC controllers. It describes the LCom library which contains components for communication between SIMATIC controllers and other systems. The library includes functions for sending and receiving data, and defines data types for PLC variables. Instructions are provided on integrating the LCom library into a user project to enable communication capabilities.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
569 views

Libraries Comm Controller DOC V1 0 0 en

This document provides information about libraries for communication for SIMATIC controllers. It describes the LCom library which contains components for communication between SIMATIC controllers and other systems. The library includes functions for sending and receiving data, and defines data types for PLC variables. Instructions are provided on integrating the LCom library into a user project to enable communication capabilities.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 97

Libraries for

Communication for
SIMATIC Controllers
Siemens
SIMATIC Controllers, TIA Portal Industry
Online
https://support.industry.siemens.com/cs/ww/en/view/109780503 Support
Legal information

Legal information
Use of application examples
Application examples illustrate the solution of automation tasks through an interaction of several components in
the form of text, graphics and/or software modules. The application examples are a free service by Siemens AG
and/or a subsidiary of Siemens AG (“Siemens”). They are non-binding and make no claim to completeness or
functionality regarding configuration and equipment. The application examples merely offer help with typical
tasks; they do not constitute customer-specific solutions. You yourself are responsible for the proper and safe
operation of the products in accordance with applicable regulations and must also check the function of the
respective application example and customize it for your system.
Siemens grants you the non-exclusive, non-sublicensable and non-transferable right to have the application
examples used by technically trained personnel. Any change to the application examples is your responsibility.
Sharing the application examples with third parties or copying the application examples or excerpts thereof is
permitted only in combination with your own products. The application examples are not required to undergo the
customary tests and quality inspections of a chargeable product; they may have functional and performance
defects as well as errors. It is your responsibility to use them in such a manner that any malfunctions that may
occur do not result in property damage or injury to persons.

Disclaimer of liability
Siemens shall not assume any liability, for any legal reason whatsoever, including, without limitation, liability for
the usability, availability, completeness and freedom from defects of the application examples as well as for
related information, configuration and performance data and any damage caused thereby. This shall not apply in
cases of mandatory liability, for example under the German Product Liability Act, or in cases of intent, gross
negligence, or culpable loss of life, bodily injury or damage to health, non-compliance with a guarantee,
fraudulent non-disclosure of a defect, or culpable breach of material contractual obligations. Claims for damages
arising from a breach of material contractual obligations shall however be limited to the foreseeable damage
typical of the type of agreement, unless liability arises from intent or gross negligence or is based on loss of life,
bodily injury or damage to health. The foregoing provisions do not imply any change in the burden of proof to
 Siemens 2021 All rights reserved

your detriment. You shall indemnify Siemens against existing or future claims of third parties in this connection
except where Siemens is mandatorily liable.
By using the application examples you acknowledge that Siemens cannot be held liable for any damage beyond
the liability provisions described.

Other information
Siemens reserves the right to make changes to the application examples at any time without notice. In case of
discrepancies between the suggestions in the application examples and other Siemens publications such as
catalogs, the content of the other documentation shall have precedence.
The Siemens terms of use (https://support.industry.siemens.com) shall also apply.

Security information
Siemens provides products and solutions with industrial security functions that support the secure operation of
plants, systems, machines and networks.
In order to protect plants, systems, machines and networks against cyber threats, it is necessary to implement –
and continuously maintain – a holistic, state-of-the-art industrial security concept. Siemens’ products and
solutions constitute one element of such a concept.
Customers are responsible for preventing unauthorized access to their plants, systems, machines and networks.
Such systems, machines and components should only be connected to an enterprise network or the internet if
and to the extent such a connection is necessary and only when appropriate security measures (e.g. firewalls
and/or network segmentation) are in place.
For additional information on industrial security measures that may be implemented, please visit
https://www.siemens.com/industrialsecurity.
Siemens’ products and solutions undergo continuous development to make them more secure. Siemens strongly
recommends that product updates are applied as soon as they are available and that the latest product versions
are used. Use of product versions that are no longer supported, and failure to apply the latest updates may
increase customer’s exposure to cyber threats.
To stay informed about product updates, subscribe to the Siemens Industrial Security RSS Feed at:
http://www.siemens.com/industrialsecurity.

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 2
Table of Contents

Table of Contents
Legal information .............................................................................................................................. 2
1 Introduction ............................................................................................................................. 5
2 LCom ........................................................................................................................................ 7
2.1 Overview .................................................................................................................... 7
2.2 Components of the Library ...................................................................................... 10
2.3 Interface Description ................................................................................................ 11
2.3.1 LCom_Communication ............................................................................................ 11
2.3.2 PLC Data Types ...................................................................................................... 13
2.4 Integration into the User Project .............................................................................. 16
2.5 Error Handling.......................................................................................................... 17
2.5.1 Status Outputs ......................................................................................................... 17
2.5.2 Status Messages ..................................................................................................... 19
3 LHTTP..................................................................................................................................... 28
3.1 Overview .................................................................................................................. 28
3.2 Components of the Library ...................................................................................... 29
3.3 Interface Description ................................................................................................ 30
3.3.1 LHTTP_Get.............................................................................................................. 30
 Siemens AG 2021 All rights reserved

3.3.2 LHTTP_PostPut ....................................................................................................... 33


3.3.3 LHTTP_FindStringInArray ....................................................................................... 36
3.3.4 LHTTP_ExtractStringFromArray.............................................................................. 37
3.3.5 LHTTP_ExtractStringFromArrayExt ........................................................................ 38
3.3.6 PLC Data Types ...................................................................................................... 39
3.4 Error Handling.......................................................................................................... 39
4 LMQTT .................................................................................................................................... 42
4.1 Overview .................................................................................................................. 42
4.2 Components of the Library ...................................................................................... 43
4.3 Interface Description ................................................................................................ 44
4.3.1 LMQTT_Client ......................................................................................................... 44
4.3.2 LMQTT_ConvertToUtf8 ........................................................................................... 46
4.3.3 PLC Data Types ...................................................................................................... 47
4.4 Integration into the User Project .............................................................................. 48
4.5 Error Handling.......................................................................................................... 48
5 LOpcUa .................................................................................................................................. 51
5.1 Overview .................................................................................................................. 51
5.2 Components of the Library ...................................................................................... 53
5.3 Interface Description ................................................................................................ 54
5.3.1 LOpcUa_PubUdp .................................................................................................... 54
5.3.2 LOpcUa_SubUdp .................................................................................................... 56
5.3.3 PLC Data Types ...................................................................................................... 57
5.4 Integration into the User Project .............................................................................. 60
5.5 Error Handling.......................................................................................................... 60

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 3
Table of Contents

6 LSNMP ....................................................................................................................................61
6.1 Overview .................................................................................................................. 61
6.2 Components of the Library ...................................................................................... 63
6.3 Interface Description ................................................................................................ 64
6.3.1 LSNMP_Get............................................................................................................. 64
6.3.2 LSNMP_GetBulk ..................................................................................................... 65
6.3.3 LSNMP_Set ............................................................................................................. 67
6.3.4 LSNMP_SendTrap .................................................................................................. 68
6.3.5 PLC Data Types ...................................................................................................... 69
6.4 Integration into the User Project .............................................................................. 70
6.5 Error Handling.......................................................................................................... 71
7 LSyslog .................................................................................................................................. 72
7.1 Overview .................................................................................................................. 72
7.2 Components of the Library ...................................................................................... 73
7.3 Interface Description ................................................................................................ 74
7.3.1 LSyslog_Send.......................................................................................................... 74
7.3.2 PLC Data Types ...................................................................................................... 75
7.4 Integration into the User Project .............................................................................. 76
7.5 Error Handling.......................................................................................................... 76
 Siemens AG 2021 All rights reserved

8 OUC Master Copies .............................................................................................................. 77


8.1 Overview .................................................................................................................. 77
8.2 Components ............................................................................................................ 77
8.3 Interface Description ................................................................................................ 78
8.3.1 IsoOnTcpTemplate for S7-1200/1500 ..................................................................... 78
8.3.2 IsoOnTcpTemplate for S7-300/400 ......................................................................... 80
8.3.3 TcpTemplate for S7-1200/1500 ............................................................................... 82
8.3.4 TcpTemplate for S7-300/400 ................................................................................... 84
8.3.5 TcpSecTemplate for S7-1200/1500 ........................................................................ 86
8.3.6 UdpTemplate for S7-1200/1500 .............................................................................. 88
8.3.7 UdpTemplate for S7-300/400 .................................................................................. 90
8.4 Error Handling.......................................................................................................... 92
9 Useful Information ................................................................................................................ 93
9.1 Library in the TIA Portal ........................................................................................... 93
9.2 Diagnostics .............................................................................................................. 94
10 Appendix ................................................................................................................................ 96
10.1 Service and support ................................................................................................. 96
10.2 Industry Mall ............................................................................................................ 97
10.3 Links and literature .................................................................................................. 97
10.4 Change documentation ........................................................................................... 97

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 4
1 Introduction

1 Introduction
Overview
The Libraries for Communication are a collection of blocks for various communication tasks,
functions, and protocols for SIMATIC Controllers.

Figure 1-1

TCP/IP

OPC UA
SNMP SNTP

MQTT
UDP
HTTP
ISO-on-TCP

HTTPS syslog

MindSphere
 Siemens AG 2021 All rights reserved

Range of functions
The following libraries are included:
• LCom:
This library enables communication based on TCP/IP and provides additional
communication functionalities using its own protocol (see chapter 2).
• LHTTP:
This library enables data exchange with a web server in the local network or on the internet
via HTTP or HTTPS (see chapter 3).
• LMQTT:
This library enables the communication of a controller as MQTT client (see chapter 4).
• LOpcUa:
This library provides function blocks for OPC UA PubSub communication (see chapter 5).
• LSNMP:
This library can be used to monitor and control SNMP-enabled network components from a
controller or to send messages to a network management system (see chapter 6).
• LSyslog:
This library allows sending syslog messages to a syslog sever over UDP or TCP with
optional TLS encryption (see chapter 7).

In addition, the library provides master copies for Open User Communication, with which you
can easily implement your own communication functions via TCP, UDP, and ISO-on-TCP (see
chapter 8).

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 5
1 Introduction

Applies to
These libraries are available for TIA Portal V16.
All included libraries are valid for SIMATIC S7-1500 and S7-1200 controllers. If the respective
library is also valid for other controllers, this is described in the chapter for the corresponding
library.
 Siemens AG 2021 All rights reserved

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 6
2 LCom

2 LCom
2.1 Overview
Possible applications for the use of the Library LCom
The "LCom_Communication" function block of the LCom library is used to establish a point-to-
point full duplex connection via Industrial Ethernet, based on the TCP standard.
The function block can be used for standard TCP communication to other devices (e.g. camera,
controller).
Since the range of functions of the TCP transport protocol is not sufficient for many applications
in the automation sector, a separate protocol (LCom protocol) has been defined and
implemented in the LCom block library. The LCom protocol enables additional communication
functionalities.

Figure 2-1: Application scenarios

Camera
CPU

Application
 Siemens AG 2021 All rights reserved

S7-1500 CPU
LCom_Communication

IDB
IDB

Ethernet
Interface

Switch

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 7
2 LCom

Some scenarios for a possible use of the LCom library are shown below:

Scenario 1
The "LCom_Communication" function block is used for standard TCP communication. The TCP
transport protocol ensures that a continuous flow of data is transferred. TCP is not packet-
oriented and, therefore, does not permit the transmission of data records with a defined overall
length.

Figure 2-2: LCom_Communication – Standard TCP communication

Camera
CPU

Application

LCom_Communication

IDB
IDB
 Siemens AG 2021 All rights reserved

Ethernet
Interface

Switch

The LCom library offers the following advantages:


• The user does not need to know and program the OUC system function to establish,
send/receive, and terminate a connection
• In the event of errors/faults, the function block automatically closes the connection and
attempts to reestablish it
• Cyclic data transmission, the user defines the cycle time
• One time data transmission
• Response from sender/receiver about successfully transmitted data at application level
• The function block contains a data structure for diagnostics

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 8
2 LCom

Scenario 2
When using the LCom protocol, data records of a defined total length can be sent and received
consistently by the partner. In order to quickly detect a connection failure, cyclic vital signs are
sent. The cycle time of the periodic vital signs is specified by the user.
To synchronize the time of two controllers, the current time of one controller can be sent to the
partner and transferred there as the system time.
To use the additional communication functionalities, the communication partner (e.g. S7-1500
CPU) must support the LCom protocol.

Figure 2-3: LCom_Communication – LCom protocol

CPU

Application

S7-1500 CPU
LCom_Communication

IDB
IDB
 Siemens AG 2021 All rights reserved

Ethernet
Interface

Switch

The LCom library offers the following advantages:


• The user does not need to know and program the OUC system function to establish,
send/receive, and terminate a connection
• In the event of errors/faults, the function block automatically closes the connection and
attempts to reestablish it
• Cyclic data transmission, the user defines the cycle time
• One time data transmission
• Consistent data transmission
• Synchronizing the communication parameters
• Monitoring of the communication link by cyclically sending vital signs (fast response times in
case of link failure). For pure TCP communication, this is typically in the range of seconds.
• Data records with defined length up to 64 kB with LCom protocol V1
• Data records with defined length up to 16 MB with LCom protocol V2
• Response from sender/receiver about successfully transmitted data at application level
• Simple time synchronization
• The function block contains a data structure for diagnostics

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 9
2 LCom

Applies to
• SIMATIC S7-1500 Controller as of firmware V1.8.0
• SIMATIC S7-1200 controller as of firmware V4.1.1

2.2 Components of the Library


The "LCom" library contains the following objects.

Function blocks
Table 2-1: Function blocks of the library
Name Version Description
LCom_Communication V 2.0.7 Controls the communication between the
controller and the partner.

PLC Data Types


Table 2-2: PLC library data types
Name Version Description
LCom_typeConfig V 2.0.0 Contains the necessary communication
parameters.
 Siemens AG 2021 All rights reserved

LCom_typeDiagnostics V 2.0.0 Provides a detailed diagnostic structure.

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 10
2 LCom

2.3 Interface Description


2.3.1 LCom_Communication

Parameter
Figure 2-4: LCom_Communication
LCom_Communication

Bool enable connected Bool

Bool send sending Bool


sendData
UDInt dataReceived Bool
Length
receivedData
UDInt readDataLength UDInt
Length
"LCom_typeConfig" configuration busy Bool

error Bool

status Word
sendBuffer
Variant Variant
receiveBuffer
Variant Variant
diagnostics
"LCom_typeDiagnostics" "LCom_typeDiagnostics"
 Siemens AG 2021 All rights reserved

Table 2-3: Parameters of LCom_Communication


Name P type Data type Comment
enable IN Bool • TRUE: Starts the FB with a rising edge. The
connection to the partner is established
automatically.
• FALSE (default): With a falling edge, the
connection is broken.
send IN Bool • TRUE: Sends the data connected to the
"sendBuffer" input parameter.
• FALSE (default): Data that is connected at the
"sendBuffer" input parameter is not sent.
sendDataLength IN UDInt Data length to be sent in bytes.
(default: 4294967295)
readDataLength IN UDInt Without LCom protocol,
("configuration.connection.comService" =
"LCOM_TCP_CONNECTION"):
• 0: Data from the TCP buffer is not read. FB,
therefore, does not receive any data from the
partner.
• 1..4294967294: Number of bytes that must be
received by the interface before the output tag
"dataReceived" = TRUE.
• 4294967295, 16#FFFFFF (default):
All data available at the interface is read (ad hoc
mode).

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 11
2 LCom

Name P type Data type Comment


configuration IN "LCom_typeConfiguration With LCom protocol,
("configuration.connection.comService" =
"LCOM_LCOM_CONNECTION"):
• 0: Data from the TCP buffer is not read. The FB
therefore does not receive any data from the
partner.
• 1..4294967295: Not relevant for the receiving
behavior.
connected OUT Bool Without LCom protocol,
("configuration.connection.comService" =
"LCOM_TCP_CONNECTION"):
• TRUE: The TCP connection to the partner is
established.
• FALSE: The TCP connection to the partner is not
established.
sending OUT Bool • TRUE: Sends the data connected to the
"sendBuffer" input parameter. Do not change
send data.
• FALSE: Data that is connected at the
"sendBuffer" input parameter is not sent.
dataReceived OUT Bool • TRUE: New data was received. The value is
present for one cycle.
• FALSE: No data is available for the user.
 Siemens AG 2021 All rights reserved

receivedDataLength OUT UDInt • Returns the received data length in bytes.


busy OUT Bool • TRUE: The block processing is done
automatically. No intervention is required from the
user.
• FALSE: There is no block processing.
Intervention is required from the user. Passing
parameters may be incorrect. More detailed
information is provided by the output parameter
"status" or the diagnostic buffer.
error OUT Bool • TRUE: An error has occurred. More detailed
information is provided by the output parameter
"status" or the diagnostic buffer.
• FALSE: No error has occurred.
status OUT Word Status of the FB, see chapter 2.5.2
sendBuffer IN_OUT Variant Send data (array of bytes)
receiveBuffer IN_OUT Variant Receive data (array of bytes)
diagnostics IN_OUT LCom_typeDiagnostics Diagnostics information

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 12
2 LCom

2.3.2 PLC Data Types

LCom_typeConfig
The following table shows the structure of the PLC data type "LCom_typeConfig".

Table 2-4: PLC data type LCom_typeConfig


Name Type Start Comment
value
connection Struct
interfaceID HW_ANY 64 Hardware identifier of the local interface
connectionID CONN_ANY 16#0FFF Reference to the connection
16#0001..16#0FFF
comService USInt 2 Configuration of the communication protocol:
• 1: The standard TCP protocol is used.
• 2 (default): The LCom protocol is used. With
the LCom protocol, additional communication
functionalities are enabled
isClient Bool FALSE • TRUE: Active connection establishment as
TCP client.
• FALSE: Passive connection establishment as
TCP server.
localPort UInt 3456 Local port, see system function TCON.
 Siemens AG 2021 All rights reserved

partnerPort UInt 3456 Only when the connection is active


("configuration.connection.isClient" = TRUE):
Port of the partner-side, see system function
TCON.
partnerIP IP_V4 - IP address of the partner
acceptUnknownPartner Bool TRUE Only for passive connection establishment
("configuration.connection.isClient" = FALSE):
• TRUE: Previously not configured connection
partner is accepted
• FALSE: Only the configured connection
partner is accepted
lifeSignCycleTime Time T#1s Vital signs cycle
T#1ms..T#24d20h30m20s630ms
sender Struct
cycleTime Time T#1s Send cycle
T#0ms..T#24d20h30m20s630ms
ackTimeout Time T#1s Only relevant when using the LCom protocol
("configuration.connection.comService" = 2):
The tag "ackTimeout" determines the monitoring
time after which an acknowledgement of the sent
packet is expected at the latest. If this period is
exceeded, the connection is closed and re-
established.
T#1ms..T#24d20h30m20s630ms
timeSync struct Only relevant when using the LCom protocol
("configuration.connection.comService" = 2)
usePartnerTimestamps Bool FALSE • TRUE: The received time is taken over as
system time
• FALSE: Received time telegrams are ignored

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 13
2 LCom

Name Type Start Comment


value
sendMode USInt 0 Send mode time synchronization:
• 0: Inactive
• 1: Cyclic time synchronization
• 2: Time when the time synchronization should
take place
cycleTime Time T#1h Only relevant if "sendMode" = 1;
Send cycle time of the timestamps
T#1ms..T#24d20h30m20s630ms
sendAtTimeOfDay Time_Of_Day TOD#05:0 Only relevant with "sendMode" = 2;
0:0.000 Time at which a time synchronization telegram is
sent.

LCom_typeDiagnostics
The following table shows the structure of the PLC data type "LCom_typeDiagnostics".

Table 2-5: PLC data type LCom_typeDiagnostics


Name Type Comment
localConfig Struct
connection Struct
 Siemens AG 2021 All rights reserved

interfaceID HW_ANY Hardware identifier of the local interface


connectionID CONN_ANY Reference to the local connection
comService USInt • 1: The standard TCP protocol is used
• 2: The LCom protocol is used
isClient Bool • TRUE: Active connection establishment as TCP client
• FALSE: Passive connection establishment as TCP
server
localPort UInt Local port
localIP IP_V4 Local IP address
partnerPort UInt Partner-side port
partnerIP IP_V4 IP address of the partner
acceptUnknownPartner Bool • TRUE: Previously not configured connection partner
is accepted
• FALSE: Only the configured connection partner is
accepted
useLComProtocol Bool • TRUE: The LCom protocol is used
• FALSE: The LCom protocol is not used
lifeSignCycleTime Time Local vital signs cycle.
sender Struct
cycleTime Time Local send cycle
ackTimeout Time The tag ackTimeout determines the local monitoring time
after which an acknowledgement of the sent packet is
expected at the latest. If this time is exceeded, the
connection is closed and re-established.
timeSync Struct
usePartnerTimestamps Bool • TRUE: The received time is adopted as the system
time.
• FALSE: Received time telegrams are ignored.

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 14
2 LCom

Name Type Comment


sendMode USInt Send mode time synchronization:
• 0: Inactive
• 1: Cyclic time synchronization
• 2: Time when the time synchronization should take
place
cycleTime Time Send cycle time of the timestamps
sendAtTimeOfDay Time_Of_Day Time at which a synchronization telegram is sent
sizeOfSendBuffer UDInt Size of the local send buffer in bytes
sizeOfReceiveBuffer UDInt Size of the local receive buffer in bytes
partnerConfig Struct
connnection Struct
lifeSignCycleTime Time Partner vital signs cycle
sender Struct
cycleTime Time Partner send cycle
ackTimeout Time The tag ackTimeout determines the partner monitoring
time after which an acknowledgement of the sent packet is
expected at the latest. If this time is exceeded, the
connection is closed by the partner and re-established.
timeSync Struct
usePartnerTimestamps Bool • TRUE: The received time is taken over as system
 Siemens AG 2021 All rights reserved

time
• FALSE: Received time telegrams are ignored
sendMode USInt Send mode time synchronization:
• 0: Inactive
• 1: cyclic time synchronization.
• 2: Time when the time synchronization should take
place
sizeOfSendBuffer UDInt Size of the send buffer in bytes of the partner
sizeOfReceiveBuffer UDInt Size of the receive buffer in bytes of the partner
statistics Struct Statistics
avgCallCycle Real Mean value between two FB calls [ms]
avgReceiveMsgCycle Real Mean value in which cycle data was received [ms]
maxReceiveMsgCycle Time Maximum occurred receive cycles
LComProtocolUsed Bool • TRUE: The LCom protocol is used. With the LCom
protocol additional communication functionalities are
enabled
• FALSE: The TCP transport protocol is used

activeLComVersion USInt Active LCom protocol version


avgMsgSendingTime Real Average value of how long a sending process (sending =
TRUE) takes [ms]
maxMsgSendingTime Time Maximum value of a sending process (sending = TRUE)
[ms]
avgMsgReceivingTime Real Mean value of how long a receiving process takes [ms]
maxMsgReceivingTime Time Maximum value of a receiving process [ms]
numberOfSentMessages UDInt Number of messages sent, since the L/H edge at the
enable input
numberOfReceivedMessages UDInt Number of received messages, since the L/H edge at the
enable input

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 15
2 LCom

Name Type Comment


totalAckTimeouts UInt Number of times the monitoring time was exceeded
(diagnostics.localConfig.sender.ackTimeout)
totalSendCycleViolations UInt Number of times the send cycle is exceeded
(diagnostics.localConfig.sender.cycleTime)
totalReceiveCycleViolations UInt Number of times the receive cycle is exceeded
(diagnostics.partnerConfig.sender.cycleTime)
totalReconnects UInt Number of times the FB has reestablished the TCP
connection
lastConnect DTL Time when the connection was successfully established to
the partner
lastTimeSync DTL Time of the last time synchronization
bufferIndex USInt Index to the last diagnostic entry
buffer Array[0..63] of Diagnostic buffer
Struct
status Word Status message from FB
timestamp DTL Timestamp at appearance of the message
isActive Bool • TRUE: State is still available
• FALSE: State is no longer available
subFunctionErrorID Word If necessary, Return value of a system function
additionalValue1 Real Additional value 1
 Siemens AG 2021 All rights reserved

additionalValue2 Real Additional value 2


additionalValue3 Real Additional value 3
additionalValue4 Time Additional value 4

2.4 Integration into the User Project


You will find a detailed application example for the integration of the library into your user project
in the Siemens Industry Online Support:
https://support.industry.siemens.com/cs/ww/en/view/48955385

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 16
2 LCom

2.5 Error Handling


2.5.1 Status Outputs

An error is indicated by setting the boolean tag "error". A distinction must be made between
whether the cause of the error can be remedied by the user or by the block. If it is an error that
can be corrected by the block, "busy" remains set. If an error occurs that must be corrected by
the user, "busy" is reset (block processing deactivated).

The following figure shows the two scenarios as a signal flow diagram.

Figure 2-5 Signal flow diagram error/busy

5) 6)
enable 1
(IN) 0
1)

1
busy
(OUT)
 Siemens AG 2021 All rights reserved

2) 3) 4)
error 1
(OUT) 0

1. "busy" is set with a rising edge of "enable".


2. An error occurs and "error" is set. Since this is an error that can be corrected by the block
itself, "busy" remains set.
3. After correcting the cause of the error (e.g. re-establishing the connection), "error" is reset.
4. An error that can only be corrected by the user occurs. Here "error" is set and "busy" is
reset.
5. The pending error, which must be remedied by the user, can only be cleared with a falling
edge at "enable".
6. The block is started again with a rising edge of "enable".

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 17
2 LCom

Output parameters diagnostics


In the output parameter "diagnostics", there are different substructures that are defined by the
PLC data type "LCom_typeDiagnostics". The diagnostic buffer is discussed below. The
complete description of the PLC data type "LCom_typeDiagnostics" can be found in chapter
2.3.2.
Various status and error messages are entered in the diagnostic buffer. The array is set to 64
entries. This array operates as a ring buffer. The tag "bufferIndex" points to the last (current)
entry.
Each entry consists of the following elements:
• Status or error number
• Date and time of occurrence
• Current state of the error

The state when entering the buffer is always active. When resetting the error, the status in the
buffer is set to inactive. The structure contains the return value of the system function as well as
four additional values that can contain detailed information depending on the error that
occurred.

Table 2-6 Structure of the diagnostic buffer


Parameter Data type Description
bufferIndex USInt Index to last entry
 Siemens AG 2021 All rights reserved

buffer Array [0..63] of Struct Diagnostic buffer


status Word Status from FB
timestamp DTL Timestamp at appearance of
the message
isActive Bool TRUE: State is still present.
FALSE: State is no longer
present.
subFunctionErrorID Word If necessary, Return value of a
system function
additionalValue1 Real Additional value 1
additionalValue2 Real Additional value 2
additionalValue3 Real Additional value 3
additionalValue4 Time Additional value 4

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 18
2 LCom

2.5.2 Status Messages

Table 2-7: Status Messages


Status Meaning
16#7000 No job in process.
Diagnostic entry:
timestamp: Time of the event
isActive: State
subFunctionErrorID: 16#0
additionalValue1..3: 0.0
additionalValue4 T#0ms
16#7001 First call after receipt of a new job (rising edge at enable).
Diagnostic entry:
timestamp: Time of the event
isActive: State
subFunctionErrorID: 16#0
additionalValue1..3: 0.0
additionalValue4 T#0ms
16#7002 Follow-up call during active FB processing.
Diagnostic entry:
timestamp: Time of the event
 Siemens AG 2021 All rights reserved

isActive: State
subFunctionErrorID: 16#0
additionalValue1..3: 0.0
additionalValue4 T#0ms
16#7003 FB tries to connect as TCP client.
Diagnostic entry:
timestamp: Time of the event
isActive: State
subFunctionErrorID: 16#0
additionalValue1..3: 0.0
additionalValue4 T#0ms
16#7004 FB is configured as TCP server and waits for a TCP client request.
Diagnostic entry:
timestamp: Time of the event
isActive: State
subFunctionErrorID: 16#0
additionalValue1...3: 0.0
additionalValue4 T#0ms
16#7005 The TCP connection to the partner is established.
Diagnostic entry:
timestamp: Time of the event
isActive: State
subFunctionErrorID: 16#0
additionalValue1..3: 0.0
additionalValue4 T#0ms

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 19
2 LCom

Status Meaning
16#7006 The FB has successfully exchanged configuration data with the partner via LCom protocol
V1.
The maximum possible data length is 64 KByte.
Diagnostic entry:
timestamp: Time of the event
isActive: State
subFunctionErrorID: 16#0
additionalValue1..3: 0.0
additionalValue4: T#0ms
16#7007 The FB has successfully established the connection and exchanged the configuration
data (LCom protocol V2) with the partner.
The maximum possible data length is 16 MByte.
Diagnostic entry:
timestamp: Time of the event
isActive: State
subFunctionErrorID: 16#0
additionalValue1..3: 0.0
additionalValue4: T#0ms
16#7008 The FB terminates the connection.
Diagnostic entry:
timestamp: Time of the event
 Siemens AG 2021 All rights reserved

isActive: State
subFunctionErrorID: 16#0
additionalValue1..3: 0.0
additionalValue4 T#0ms
16#7008 The FB terminates the connection.
Diagnostic entry:
timestamp: Time of the event
isActive: State
subFunctionErrorID: 16#0
additionalValue1..3: 0.0
additionalValue4 T#0ms
16#7600 The specified send length (sendDataLength) is too large and is automatically limited by
the FB.
The maximum possible send length is determined by the size of the own send buffer
(sendBuffer).
Diagnostic entry:
timestamp: Time of the event
isActive: State
subFunctionErrorID: 16#0
additionalValue1: sendDataLength
additionalValue2: sendBuffer
additionalValue3: 0.0
additionalValue4: T#0ms

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 20
2 LCom

Status Meaning
16#7610 The specified time (configuration.connection.lifeSignCycleTime) for connection monitoring
is too large and is automatically limited to 65535 ms.
Diagnostic entry:
timestamp: Time of the event
isActive: State
subFunctionErrorID: 16#0
additionalValue1: Limitation to 65535
additionalValue2..3: 0.0
additionalValue4: Value of the user
16#7611 The specified time for the send cycle (configuration.sender.cycleTime) is too large and is
automatically limited to 65535 ms.
Diagnostic entry:
timestamp: Time of the event
isActive: State
subFunctionErrorID: 16#0
additionalValue1: Limitation to 65535
additionalValue2..3: 0.0
additionalValue4: Value of the user
16#7612 The configured monitoring time (configuration.sender.ackTimeout) is too large and is
automatically limited to 65535 ms.
Diagnostic entry:
 Siemens AG 2021 All rights reserved

timestamp: Time of the event


isActive: State
subFunctionErrorID: 16#0
additionalValue1: Limitation to 65535
additionalValue2..3: 0.0
additionalValue4: Value of the user
16#7613 The configured send cycle (configuration.sender.CycleTime) cannot be kept because the
previous sending process has not yet been completed.
Diagnostic entry:
timestamp: Time of the event
isActive: State
subFunctionErrorID: 16#0
additionalValue1: Value of the user
additionalValue2..3: 0.0
additionalValue4: Previous time of the previous send job

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 21
2 LCom

Status Meaning
16#7614 When using the LCom protocol (configuration.connection.comService = 2):
The specified send length (sendDataLength) is larger than the receive buffer of the
partner.
Diagnostic entry:
timestamp: Time of the event
isActive: State
subFunctionErrorID: 16#0
additionalValue1: sendDataLength
additionalValue2: Receive buffer of the partner-side
additionalValue3: 0.0
additionalValue4: T#0ms
Without using the LCom protocol (configuration.connection.comService = 1):
The specified readDataLength at the FB is larger than the specified receive buffer
(receiveBuffer). The readDataLength is limited to the size of the specified receive buffer.
Diagnostic entry:
timestamp: Time of the event
isActive: State
subFunctionErrorID: 16#0
additionalValue1: User-defined receive buffer
additionalValue2: readDataLength
additionalValue3: 0.0
 Siemens AG 2021 All rights reserved

additionalValue4: T#0ms
16#7615 No time synchronization is performed.
Diagnostic entry:
timestamp: Time of the event
isActive: State
subFunctionErrorID: 16#0
additionalValue1..4: 0.0
16#8200 The specified communication service
(configuration.connection.comService) is invalid → see system function TCON.
Diagnostic entry:
timestamp: Time of the event
isActive: State
subFunctionErrorID: 16#0
additionalValue1 Value of the user
additionalValue2...3: 0.0
additionalValue4: T#0ms
16#8201 The specified connection reference (configuration.connection.connectionID) is invalid →
see system function TCON.
Diagnostic entry:
timestamp: Time of the event
isActive: State
subFunctionErrorID: 16#0
additionalValue1 Value of the user
additionalValue2..3: 0.0
additionalValue4: T#0ms

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 22
2 LCom

Status Meaning
16#8202 The specified hardware identifier for the local interface
(configuration.connection.interfaceID) is invalid → see system function TCON.
Diagnostic entry:
timestamp: Time of the event
isActive: State
subFunctionErrorID: 16#0
additionalValue1 Value of the user
additionalValue2..3: 0.0
additionalValue4: T#0ms
16#8203 The specified local port
(configuration.connection.localPort) is not allowed → see system function TCON.
Diagnostic entry:
timestamp: Time of the event
isActive: State
subFunctionErrorID: TCON status
additionalValue1 Value of the user
additionalValue2..3: 0.0
additionalValue4: T#0ms
16#8204 The specified partner IP address (configuration.connection.partnerIP) is invalid → see
system function TCON.
Diagnostic entry:
 Siemens AG 2021 All rights reserved

timestamp: Time of the event


isActive: State
subFunctionErrorID: TCON status
additionalValue1 Value of the user
additionalValue2..3: 0.0
additionalValue4: T#0ms
16#8205 The specified mode for time synchronization (configuration.timeSync.sendMode) is
invalid.
Dianostics entry:
timestamp: Time of the event
isActive: State
subFunctionErrorID: 16#0
additionalValue1 Value of the user
additionalValue2..3: 0.0
additionalValue4: T#0ms
16#8206 The specified cycle time for time synchronization
(configuration. timeSync.cycleTime) is invalid.
Dianostics entry:
timestamp: Time of the event
isActive: State
subFunctionErrorID: 16#0
additionalValue1..3 0.0
additionalValue4: Value of the user

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 23
2 LCom

Status Meaning
16#8207 The specified time for the time
synchronization(configuration.timeSync.sendAtTimeOfDay) is invalid.
Diagnostic entry:
timestamp: Time of the event
isActive: State
subFunctionErrorID: 16#0
additionalValue1..3 0.0
additionalValue4: T#0ms
16#8208 The value passed to the input tag sendBuffer is not of type ARRAY of BYTE and is
invalid.
Diagnostic entry:
timestamp: Time of the event
isActive: State
subFunctionErrorID: 16#0
additionalValue1..3 0.0
additionalValue4: T#0ms
16#8209 The value passed to the output tag receiveBuffer is not of type ARRAY of BYTE and is
invalid.
Diagnostic entry:
timestamp: Time of the event
isActive: State
 Siemens AG 2021 All rights reserved

subFunctionErrorID: 16#0
additionalValue1..3 0.0
additionalValue4: T#0ms
16#8210 The specified time (configuration.connection.lifeSignCycleTime) for connection monitoring
is invalid:
Diagnostic entry:
timestamp: Time of the event
isActive: State
subFunctionErrorID: 16#0
additionalValue1..3 0.0
additionalValue4: Value of the user
16#8211 The specified send cycle (configuration.sender.cycleTime) is invalid.
Diagnostic entry:
timestamp: Time of the event
isActive: State
subFunctionErrorID: 16#0
additionalValue1..3 0.0
additionalValue4: Value of the user
16#8212 The configured monitoring time (configuration.sender.ackTimeout) is invalid.
Diagnostic entry:
timestamp: Time of the event
isActive: State
subFunctionErrorID: 16#0
additionalValue1..3 0.0
additionalValue4: Value of the user

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 24
2 LCom

Status Meaning
16#8600 An error has occurred when using the TCON system function, see subFunctionErrorID in
the diagnostic buffer and system documentation. The connection is reestablished.
Diagnostic entry:
timestamp: Time of the event
isActive: State
subFunctionErrorID: TCON status
additionalValue1: 0.0
additionalValue2: 0.0
additionalValue3: 0.0
additionalValue4: T#0ms
16#8601 An error has occurred when using the TCON system function, see subFunctionErrorID in
the diagnostic buffer and system documentation. The connection is reestablished.
Diagnostic entry:
timestamp: Time of the event
isActive: State
subFunctionErrorID: TCON status
additionalValue1: Local port
additionalValue2: 0.0
additionalValue3: 0.0
additionalValue4: T#0ms
16#8602 An error occurred while using the system function TSEND, see subFunctionErrorID in the
 Siemens AG 2021 All rights reserved

diagnostic buffer and system documentation. The connection is reestablished.


Diagnostic entry:
timestamp: Time of the event
isActive: State
subFunctionErrorID: TSEND status
additionalValue1: 0.0
additionalValue2: Length of send data
additionalValue3: 0.0
additionalValue4: T#0ms
16#8603 An error has occurred when using the TRCV system function, see subFunctionErrorID in
the diagnostic buffer and system documentation. The connection is reestablished.
Diagnostic entry:
timestamp: Time of the event
isActive: State
subFunctionErrorID: Status of TRCV
additionalValue1..3: 0.0
additionalValue4: T#0ms
16#8604 An error has occurred when using the TDISCON system function, see
subFunctionErrorID in the diagnostic buffer and system documentation. The connection is
reestablished.
Diagnostic entry:
timestamp: Time of the event
isActive: State
subFunctionErrorID: Status of TDISCON
additionalValue1..3: 0.0
additionalValue4: T#0ms

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 25
2 LCom

Status Meaning
16#8610 The vital signs of the partner were not received in time. The connection is reestablished.
Diagnostic entry:
timestamp: Time of the event
isActive: State
subFunctionErrorID: 16#0
additionalValue1: Vital signs cycle
additionalValue2..3: 0.0
additionalValue4: Time in which the FB has not received any data
from the partner.
16#8611 The monitoring time of a sent data packet has expired without an acknowledgement being
received from the partner. The connection is reestablished.
Diagnostic entry:
timestamp: Time of the event
isActive: State
subFunctionErrorID: 16#0
additionalValue1: Monitoring time
additionalValue2..3: 0.0
additionalValue4: Time in which the FB has not received any data
from the partner.
16#8612 An invalid acknowledge number was received from the partner, the connection will be re-
established.
 Siemens AG 2021 All rights reserved

Diagnostic entry:
timestamp: Time of the event
isActive: State
subFunctionErrorID: 16#0
additionalValue1: Received acknowledge
message number
additionalValue2: Send acknowledge message number
additionalValue3: 0.0
additionalValue4: T#0ms
16#8613 The LCom (protocol) versions of the library LCom do not match the partner or an invalid
(protocol) version was received. The connection is reestablished.
Diagnostic entry:
timestamp: Time of the event
isActive: State
subFunctionErrorID: 16#0
additionalValue1: received version
additionalValue2: local, active version
additionalValue3: 0.0
additionalValue4: T#0ms
16#8614 A telegram was received which has an ID that was not expected. The connection is
reestablished.
Diagnostic entry:
timestamp: Time of the event
isActive: State
subFunctionErrorID: 16#0
additionalValue1: received ID
additionalValue2..3: 0.0
additionalValue4: T#0ms

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 26
2 LCom

If errors occur during parameterization (16#8200 to 16#83FF), intervention by the user is


required. The user must replace the faulty value with a permissible value and restart the
function block with a rising edge at the "enable" input.
In case of an internal error (16#8600 to 16#87FF) the function block will automatically close the
connection and try to re-establish it. A new rising edge at the "enable" input is not necessary.
 Siemens AG 2021 All rights reserved

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 27
3 LHTTP

3 LHTTP
3.1 Overview
The Hypertext Transfer Protocol (HTTP) is a data transfer protocol used primarily to load Web
pages from the World Wide Web.
Due to the increasing networking of plants and the advancement of the Internet of Things (IoT),
HTTP and HTTPS also play an increasingly important role in automation technology.
The library for HTTP communication (LHTTP) enables the data exchange of a
SIMATIC S7-1200/1500 CPU via the integrated Ethernet interface with another device in the
local network or a web server in the internet via HTTP respectively HTTPS.

Figure 3-1: Overview


 Siemens AG 2021 All rights reserved

The LHTTP library provides function blocks with which the most conventional HTTP request
methods can be implemented in the user program:
• GET
• POST
• PUT

Due to the integrated certificate management in the TIA Portal, it is also possible to transfer
data securely with HTTPS using the same blocks.

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 28
3 LHTTP

Applies to
The library is valid for:
• SIMATIC S7-1500 Controller as of firmware V2.0
• SIMATIC S7-1200 Controller as of firmware V4.4
• SIMATIC ET 200SP Open Controller as of firmware V2.5
• SIMATIC S7-1500 Software Controller as of firmware V2.5

3.2 Components of the Library


Function blocks and functions
Table 3-1: Function blocks and functions of the Library
Name Type Version Description
LHTTP_Get FB V 2.0.0 Realizes the HTTP method GET
LHTTP_PostPut FB V 2.0.0 Realizes the HTTP methods POST and PUT
LHTTP_FindStringInArray FC V 1.0.0 Searches an array of chars for a given string
LHTTP_ExtractString FC V 1.0.0 Extracts a string between two specified text
FromArray parts from an array of chars.
LHTTP_ExtractString FC V 1.0.0 Same function as
FromArrayExt "LHTTP_ExtractStringFromArray" with
 Siemens AG 2021 All rights reserved

advanced options

PLC Data Types


Table 3-2: PLC library data types
Name Version Description
LHTTP_typeTLS V 1.0.0 Data type for transferring certificates for
secure communication via HTTPS

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 29
3 LHTTP

3.3 Interface Description


3.3.1 LHTTP_Get

Description
The block implements the HTTP method GET to fetch data from a web server.

Parameter
Figure 3-2: LHTTP_Get
LHTTP_Get

Bool execute connected Bool

HW_ANY hwID done Bool

CONN_OUC connID busy Bool

String url error Bool

String data status Word


Array[0..#UPPER_USER_FIELDS] of
userFields diagnostics "typeDiagnostics"
Char
"LHTTP_typeTLS" tls responseCode UInt
keep
 Siemens AG 2021 All rights reserved

Bool length UDInt


Connection
Time timeOut
responseData
Array[*] of Char Array[*] of Char

Table 3-3: Parameters of LHTTP_Get


Name P type Data type Description
execute IN Bool With a positive edge, a connection to the
web server is established and the HTTP
request is sent.
hwID IN HW_ANY Hardware identifier of the PN/IE interface for
establishing the connection.
If "0" is selected, a suitable one is selected
automatically.
connID IN CONN_OUC Unique connection ID
url IN String URL, e.g. "http://httpbin.org/get"
data IN String Optional parameters appended to the URL,
e.g. "lang=en&text=test"
userFields IN Array[0..#UPPER_USER_ Additional user-defined header fields
FIELDS] of Char The header fields must be formatted
according to HTTP and terminated with the
"$00" character.

tls IN "LHTTP_typeTLS" TLS certificates for secure data transmission


(HTTPS), see chapter 3.3.6.
For unsafe data transmission (HTTP) leave
unconnected.

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 30
3 LHTTP

Name P type Data type Description


keepConnection IN Bool TRUE: Keeps the connection established
after the job has been executed
timeOut IN Time Time after which a job should be
automatically canceled
connected OUT Bool TRUE: Connection to the web server is
established
done OUT Bool TRUE: Job finished
busy OUT Bool TRUE: Job is being executed
error OUT Bool TRUE: An error has occurred
status OUT Word Status and error codes (see chapter 3.4)
diagnostics OUT "typeDiagnostics" Advanced diagnostic information (see
chapter 9.2)
responseCode OUT UInt Received HTTP status code (see chapter
3.4)
length OUT UDInt Length of the received user data
responseData IN_OUT Array[*] of Char Received user data. The array must start at
"0".

Principle of Operation
The user specifies the requested resource in the form of a URL, e.g. "http://httpbin.org/get" or
"https://192.168.0.1:80/index.html", at the "url" parameter.
 Siemens AG 2021 All rights reserved

Optional parameters can be passed with two variants:


• Appended to the URL at the parameter "url" with a "?" in front, e.g.
"http://httpbin.org/get?lang=de&country=de"
• At the separate parameter "data", e.g. "lang=en&country=en"

With a rising edge at the "execute" parameter, the block requests the IP address belonging to
the host at the configured DNS server if necessary and establishes a connection to the web
server.
If the specified URL starts with "https", a secure connection is established. In this case, the
certificate of the requested web server must be referenced at the "tls" parameter (see chapter
3.3.6). If the web server requires client authentication, the PLC's certificate must also be
referenced.
The block creates the HTTP request from the specified URL and sends it to the web server.
The user data of the web server's response is output at the "responseData" parameter. The
received HTTP status code is output at the "responseCode" parameter.
If the web server responds with an error (HTTP status code 4xx), no data is output.
Depending on the parameter "keepConnection", the block terminates the connection to the web
server after all telegrams have been successfully received or keeps it established for further
requests.

Note The block outputs the HTTP status code received from the server with the first received
telegram and writes the user data of each received telegram directly into the memory area
connected to the parameter "responseData". Evaluate the user data only after the output
"done" has been set.

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 31
3 LHTTP

Note The block does not support redirections. If the server responds with a redirection (HTTP
status code 3xx), the block issues an error (see chapter 3.4).
Check the URL and correct it if necessary.

User-defined header fields


The "userFields" input allows the user to insert additional header fields into the request. The
user has 256 characters available in the form of an Array of Char.
The data must be formatted according to HTTP: Two header fields are separated by an end-of-
line ("$R$L"). The end of the user-defined header fields is signaled to the FB with the character
"$00". A closing line end is not necessary.
For example, the “Accept Language” and “Authorization” header fields can be inserted as
follows:
Accept-Language: en$R$LAuthorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==$00

If no user-defined header fields are required, the input is not switched.

If 256 characters are not enough, the array can be increased by adjusting the local constant
Note "UPPER_USER_FIELDS".
 Siemens AG 2021 All rights reserved

Keep connection established


If the parameter "keepConnection" is set, the connection is not broken after the completion of a
job and can be used for further requests. Especially if there are many requests to the same web
server over HTTPS, this shortens the required duration of subsequent requests.
The connection is then broken by resetting "keepConnection".

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 32
3 LHTTP

3.3.2 LHTTP_PostPut

Description
The block implements the HTTP methods POST and PUT to transfer data to a web server.

Parameter
Figure 3-3: LHTTP_PostPut
LHTTP_PostPut

Bool execute connected Bool

HW_ANY hwID done Bool

CONN_OUC connID busy Bool

USInt method error Bool

String url status Word

Variant data diagnostics "typeDiagnostics"


Array[0..#UPPER_USER_FIELDS] of
userFields responseCode UInt
Char
"LHTTP_typeTLS" tls length UDInt
keep
Bool
Connection
 Siemens AG 2021 All rights reserved

Time timeOut
responseData
Array[*] of Char Array[*] of Char

Table 3-4: Parameters of LHTTP_PostPut


Name Declaration Data type Description
execute IN Bool With a positive edge, a connection to the
web server is established and the HTTP
request is sent.
hwID IN HW_ANY Hardware identifier of the PN/IE
interface for establishing the connection.
If "0" is selected, a suitable one is
selected automatically.
connID IN CONN_OUC Unique connection ID
method IN USInt HTTP method
0: POST
1: PUT
url IN String URL, e.g. "http://httpbin.org/post"
data IN Variant message body
Valid data types: String and Array of
Char
In the case of Array of Char, the data
must be terminated with the character
"$00".
userFields IN Array[0..#UPPER_USER_ Additional user-defined header fields
FIELDS] of Char The header fields must be formatted
according to HTTP and terminated with
the "$00" character.

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 33
3 LHTTP

Name Declaration Data type Description


tls IN "LHTTP_typeTLS" TLS certificates for secure data
transmission (HTTPS), see chapter
3.3.6.
For unsafe data transmission (HTTP)
leave unconnected.
keepConnection IN Bool TRUE: Keeps the connection
established after the job has been
executed
timeOut IN Time Time after which a job should be
automatically canceled
connected OUT Bool TRUE: Connection to the web server is
established
done OUT Bool TRUE: Job finished
busy OUT Bool TRUE: Job is being executed
error OUT Bool TRUE: An error has occurred
status OUT Word Status and error codes (see chapter 3.4)
diagnostics OUT "typeDiagnostics" Advanced diagnostic information (see
chapter 9.2)
responseCode OUT UInt Received HTTP status code (see
chapter 3.4)
length OUT UDInt Length of the received user data
 Siemens AG 2021 All rights reserved

responseData IN_OUT Array[*] of Char Received user data. The array must
start at "0".

Principle of Operation
The user specifies the requested resource in the form of a URL, e.g. "http://httpbin.org/post" or
"https://192.168.0.1:80/index.html", at the "url" parameter.
The user data can be passed as a string or, if 254 characters are not sufficient, as an array of
chars at the "data" parameter. If Array of Char is used, the user data must be terminated with
the character "$00".
The format of the payload depends on the web server. For web forms, the payloads are usually
described as key-value pairs, e.g. "usr=admin&pwd=12345".
Via the "method" parameter the user chooses whether the HTTP method POST or PUT should
be used.
With a rising edge at the "execute" parameter, the block requests the IP address belonging to
the host at the configured DNS server if necessary and establishes a connection to the web
server.
If the specified URL starts with "https", a secure connection is established. In this case, the
certificate of the requested web server must be referenced at the "tls" parameter (see chapter
3.3.6). If the web server requires client authentication, the PLC's certificate must also be
referenced.
The block creates the HTTP request from the specified URL and sends it to the server.
The user data of the server's response is output at the "responseData" parameter. The received
HTTP status code is output at the "responseCode" parameter.
If the web server responds with an error (HTTP status code 4xx), no data is output.
Depending on the parameter "keepConnection", the block terminates the connection to the
server again after all telegrams have been successfully received or keeps it established for
further requests.

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 34
3 LHTTP

Note The block outputs the HTTP status code received from the server with the first received
telegram and writes the user data of each received telegram directly into the memory area
connected to the parameter "responseData". Evaluate the user data only after the output
"done" has been set.

Note The block does not support redirections. If the server responds with a redirection (HTTP
status code 3xx), the block issues an error (see chapter 3.4).
Check the URL and correct it if necessary.

User-defined header fields


The "userFields" input allows the user to insert additional header fields into the request. The
user has 256 characters available in the form of an Array of Char.
The data must be formatted according to HTTP: Two header fields are separated by an end-of-
line ("$R$L"). The end of the user-defined header fields is signaled to the FB with the character
"$00". A closing line end is not necessary.
For example, the “Accept Language” and “Authorization” header fields can be inserted as
follows:
Accept-Language: en$R$LAuthorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==$00
 Siemens AG 2021 All rights reserved

If no user-defined header fields are required, the input is not switched.

If 256 characters are not enough, the array can be increased by adjusting the local constant
Note "UPPER_USER_FIELDS".

Keep connection established


If the parameter "keepConnection" is set, the connection is not broken after the completion of a
job and can be used for further requests. Especially if there are many requests to the same web
server over HTTPS, this shortens the required duration of subsequent requests.
The connection is then broken by resetting "keepConnection".

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 35
3 LHTTP

3.3.3 LHTTP_FindStringInArray

Description
The function "LHTTP_FindStringInArray" searches an Array of Char for a string and returns its
position as return value.

Parameter
Figure 3-4: LHTTP_FindStringInArray
LHTTP_FindStringInArray

String searchFor
searchIn
Array[*] of Char Array[*] of Char

Table 3-5: Parameters of LHTTP_FindStringInArray


Name Declaration Data type Description
searchFor Input String Text to search for.
searchIn InOut Array[*] of Char Array of Char to be searched.
Ret_Val Return DInt Position (index) of the searched string in the array.
-1: String was not found.
 Siemens AG 2021 All rights reserved

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 36
3 LHTTP

3.3.4 LHTTP_ExtractStringFromArray

Description
The LHTTP_ExtractStringFromArray function extracts a string between two specified text parts
from an array of chars.

Parameter
Figure 3-5: LHTTP_ExtractStringFromArray
LHTTP_ExtractStringFromArray
extracted
String textBefore String
String
String textAfter
searchIn
Array[*] of Char Array[*] of Char

Table 3-6: Parameters of LHTTP_ExtractStringFromArray


Name Declaration Data type Description
textBefore Input String Text part before the text that is to be extracted
textAfter Input String Text part after the text that is to be extracted
 Siemens AG 2021 All rights reserved

extractedString Output String Extracted Text


searchIn InOut Array[*] of Array of Char to be searched
Char
Ret_Val Return Word Return value:
16#0000: Successful, Text was found
16#9001: Only text before was found. String is output
with max. length
16#9002: Neither text before nor after was found

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 37
3 LHTTP

3.3.5 LHTTP_ExtractStringFromArrayExt

Description
The function "LHTTP_ExtractStringFromArrayExt" extracts a string between two specified text
parts from an array of char with extended options.

Note The function is part of the library to allow easy parsing of the received data, but is not used by
the library blocks themselves.

Parameter
Figure 3-6: LHTTP_ExtractStringFromArrayExt
LHTTP_ExtractStringFromArrayExt
extracted
String textBefore String
String
String textAfter position DInt
includeBeforeAf
Bool length Int
ter
DInt startPos
searchIn
 Siemens AG 2021 All rights reserved

Array[*] of Char Array[*] of Char

Table 3-7: Parameters of LHTTP_ExtractStringFromArrayExt


Name Declaration Data type Description
textBefore Input String Text part before the text that is to be extracted
textAfter Input String Text part after the text that is to be extracted
includeBeforeAfter Input Bool If TRUE, the text parts before and after are
extracted as well
startPos Input DInt Position in the array from which the search is to be
started
extractedString Output String Extracted Text
position Output DInt position (index) of the extracted text within the array
length Output Int Length of the extracted text
searchIn InOut Array[*] of Array of Char to be searched
Char
Ret_Val Return Word Return value:
16#0000: Successful, Text was found
16#9001: Only text before was found. String is
output with max. length
16#9002: Neither text before nor after was found

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 38
3 LHTTP

3.3.6 PLC Data Types

LHTTP_typeTLS
The PLC data type "LHTTP_typeTLS" references the certificates required for secure
connections via HTTPS.

Table 3-8: Parameters of LHTTP_typeTLS


Name Data Description
type
validateServerIdentity Bool A set bit means that the client validates the subjectAlternateName in
the server's X.509 V3 certificate to verify the server's identity. The
certificates are checked when the connection is established.
serverCert UDInt ID of the X.509 V3 certificate (usually a CA certificate) used by the
TLS client to validate the TLS server authentication.
If this parameter is "0", the TLS client uses all (CA) certificates
currently loaded in the client's Certificate Store to validate the server
authentication.
clientCert UDInt ID of your own X.509 V3 certificate.
This is only relevant if the TLS server requires client authentication
and can otherwise remain set to "0".
 Siemens AG 2021 All rights reserved

Note You will find an application example for the usage of certificates in TIA Portal in the Siemens
Industry Online Support:
https://support.industry.siemens.com/cs/ww/en/view/109769068

3.4 Error Handling


General information about the status outputs and the diagnostics of the blocks of these libraries
can be found in chapter 9.2.
The following are the status and error codes specific to the "LHTTP" library.
The function blocks "LHTTP_Get" and "LHTTP_PostPut" output internal status and error codes
describing the state of the function block as well as the HTTP status code received from the
partner.

Status/error codes
Table 3-9: Internal status/error codes

Status Meaning
16#0000 Job completed without errors
16#0003 Connection broken
16#7000 No job active
16#7001 First call of the command
16#7002 Follow-up call of the command
16#7003 Connection is broken
16#7004 Connection is established and monitored. FB is waiting for job.
16#7005 Request has been sent, response pending

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 39
3 LHTTP

Status Meaning
16#8201 The array at the parameter "responseData" does not begin with "0".
16#8202 Invalid URL. Check the spelling.
16#8203 The host name in the URL is different from the host to which the current connection
exists. Reset "keepConnection" and run the job again.
16#8206 The end of the user-defined header fields could not be detected. Terminate the header
fields with the "$00" character.
16#8210 The internal send buffer is too small for the request to be transmitted. Adjust the size of
the send buffer at the local constant "UPPER_REQUEST_ARRAY".
16#8220 The size of the array at the parameter "responseData" is not sufficient to store the
received user data. The array was completely filled and the length of the received user
data is output at the parameter "length".
16#8403 The web server responded with a redirection. Redirections are not supported by the
LHTTP library.
16#8404 The web server responded with an error message. The received HTTP status code is
output at the "responseCode" output.
16#8405 The header of the response telegram is invalid.
16#8408 Request timeout. Check the Ethernet connection of the PLC and the URL.
16#84C4 The connection to the web server was interrupted. Check the network connection.
16#84C5 Connection to the web server has broken.
16#8600 The FB is in an invalid state.
16#8601 Error in subordinate command "TSEND_C"
 Siemens AG 2021 All rights reserved

The error code of the command is output to "diagnostics.subfunctionStatus". For the


meaning of the respective error code, refer to the TIA Portal information system.
16#8603 Error of subordinate command "TRCV"
The error code of the command is output to "diagnostics.subfunctionStatus". For the
meaning of the respective error code, refer to the TIA Portal information system.
16#8612 Error in subordinate command "MOVE_BLK_VARIANT" when inserting user-defined
header fields.
The error code of the command is output to "diagnostics.subfunctionStatus". For the
meaning of the respective error code, refer to the TIA Portal information system.
16#8620 Encoding of the received message could not be detected or is not supported.
16#8630 Error of subordinate command "MOV_BLK_VARIANT" in region "TE_IDENTITY".
The error code of the command is output to "diagnostics.subfunctionStatus". For the
meaning of the respective error code, refer to the TIA Portal information system.
16#8640 Chunk-coded message could not be decoded.
16#8641 Error of subordinate command MOV_BLK_VARIANT in region "TE_CHUNKED".
The error code of the command is output to "diagnostics.subfunctionStatus". For the
meaning of the respective error code, refer to the TIA Portal information system.

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 40
3 LHTTP

HTTP status codes


The following table lists common HTTP status codes:

Table 3-10: Common HTTP status codes


status code Message Meaning
2xx - Successful operation
200 OK The request was processed successfully.
3xx - Redirection
301 Moved The requested resource is now available at the address specified
Permanently in the "Location" header field. The old address is no longer valid.
304 Not Modified The content of the requested resource has not changed since the
last request from the client and is therefore not transferred.
4xx – Client error
400 Bad Request The request message was structured incorrectly.
401 Unauthorized The request cannot be performed without valid authentication.
403 Forbidden The request was not executed due to lack of client authorization.
404 Not Found The requested resource is not available in the required form.
5xx – Server error
500 Internal Server Unexpected service error.
Error
 Siemens AG 2021 All rights reserved

502 Bad Gateway The server could not fulfill its functionality as a gateway or proxy
because it received an invalid response.
503 Service The server is temporarily unavailable.
Unavailable
504 Gateway The server could not perform its function as a gateway or proxy
Timeout because it did not receive a response from the servers or
services it was using within a specified period of time.

Further HTTP status codes can be found on Wikipedia, for example:


https://de.wikipedia.org/wiki/HTTP-Statuscode

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 41
4 LMQTT

4 LMQTT
4.1 Overview
The library "LMQTT" provides you with a function block to implement the MQTT protocol in
SIMATIC S7-1200/1500 controllers. The FB allows you to submit MQTT messages to a broker
(Publisher role) and to create subscriptions (Subscriber role). The communication can be
secured via a TLS connection.

Schematic diagram for secure MQTT communication (MQTT over TLS)


The following figure shows the most important relationships between the components involved
and the steps required for secured MQTT communication (MQTT over TLS).

Figure 4-1

Engineering MQTT broker

Cert_xy
STEP 7 (TIA Portal) MQTT-Server
2

Certificate Store
idx Cert_Name 1
 Siemens AG 2021 All rights reserved

1 Cert_xy

Topic x Topic z
3
S7 CPU Message Message
Topic y
(MQTT client) Message

Topic y
Message
Publish

(Un)Subscribe

Connection LMQTT_ MQTT over TLS


parameters Client
4

Table 4-1: Necessary steps for secure MQTT communication


Step Description
1. Determine the CA certificate of the MQTT broker.
2. Importing the third-party certificate into STEP 7 (TIA Portal). The certificate is now in the
global certificate manager of STEP 7.
3. You must assign the imported certificate to the S7 CPU. To recognize the certificate as
valid, the time of the S7-CPU must be current.
4. The function block "LMQTT_Client" assumes the following roles:
• Publisher to send MQTT messages to the MQTT broker
• Subscriber to subscribe to MQTT messages or end subscriptions
The MQTT message is encrypted via a secure connection (MQTT over TLS).

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 42
4 LMQTT

Applies to
The library is valid for:
• SIMATIC S7-1500 Controller as of firmware V2.0
• SIMATIC S7-1200 Controller as of firmware V4.4
• SIMATIC ET 200SP Open Controller as of firmware V2.5
• SIMATIC S7-1500 Software Controller as of firmware V2.5

4.2 Components of the Library


The "LMQTT" library contains the following objects.

Function blocks and functions


Table 4-2: Function blocks and functions of the Library
Name Type Version Description
LMQTT_Client FB V 3.0.0 Implements the MQTT client function and
allows to submit MQTT messages to a
broker (Publisher role) and create
subscriptions (Subscriber role).
LMQTT_ConvertToUtf8 FC V 3.0.0 Implements a function to convert a WCHAR
to UTF-8 compliant formatting.
 Siemens AG 2021 All rights reserved

PLC Data Types


Table 4-3: PLC library data types
Name Version Description
LMQTT_typeConnParam V 3.0.0 Contains all information to establish a
connection with the MQTT broker.

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 43
4 LMQTT

4.3 Interface Description


4.3.1 LMQTT_Client

Functional description
The function block "LMQTT_Client" integrates the MQTT client function and allows you to
submit MQTT messages to a broker (Publisher role) and to create subscriptions (Subscriber
role). The communication can be secured via a TLS connection.

Parameter
Figure 4-2: LMQTT_Client
LMQTT_Client

Bool enable valid Bool

Bool retain done Bool

USInt qos busy Bool

Bool publish error Bool

Bool subscribe status Word

Bool unsubscribe diagnostics "LMQTT_typeDiagnostics"


receivedMsg
UDInt publishMsgLen USInt
 Siemens AG 2021 All rights reserved

Status
receivedMsg
UInt willMsgLen UDInt
DataLen
Time timeOut
connParam
"LMQTT_typeConnParams" "LMQTT_typeConnParams"
clientIdentifier
WString WString
username
WString WString
password
WString WString
willtopic
WString WString
willMsgPayload
Array[*] of Byte Array[*] of Byte
mqttTopic
WString WString
publishMsgPayload
Array[*] of Byte Array[*] of Byte
receivedTopic
WString WString
receivedMsgPayload
Array[*] of Byte Array[*] of Byte

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 44
4 LMQTT

Table 4-4: Parameters of LMQTT_Client


Name P type Data type Comment
enable IN Bool Control parameters
TRUE: The connection to the MQTT broker is
established and maintained.
FALSE: The connection is broken.

retain IN Bool TRUE: The data is sent with the “retain” flag.
FALSE: The data is sent without the “retain” flag.
qos IN USInt 0: Messages are sent or subscribed with Quality of
Service 0.
1: Messages are sent or subscribed with Quality of
Service 1.
2: Messages are sent with Quality of Service 2.

publish IN Bool With existing connection to MQTT broker:


Rising edge: Publish is executed.
subscribe IN Bool With existing connection to MQTT broker:
Rising edge: Subscribe is executed.
unsubscribe IN Bool With existing connection to MQTT broker:
Rising edge: Unsubscribe is executed.
publishMsgLen IN UDInt Current length of valid data in the
“publishMsgPayload” array parameter.
 Siemens AG 2021 All rights reserved

willMsgLen IN UInt Current length of valid data in the array parameter


“willMsgPayload”.
timeOut IN Time Optional parameter to configure time monitoring.
After the time has expired, the current job will be
considered as failed.
valid OUT Bool TRUE if the connection is established to the MQTT
broker.
done OUT Bool TRUE if the current job
(publish/subscribe/unsubscribe) was successful.
busy OUT Bool TRUE, if the block is currently being processed.
error OUT Bool True if there is an error
status OUT Word Status code of the current error (see chapter 4.5)
diagnostics OUT “typeDiagnostics” Advanced diagnostic information (see chapter 9.2)
receivedMsgStatus OUT USInt Indicates for one cycle at a time when a new
message has been received (subscription)
0: No new message received.
1: New valid message received.
2: New message received, but the message is
invalid or received data is larger than the memory
area of the receive topic or the receive message

ReceivedMsgData OUT UDInt Number of valid data in the “receivedMsgPayload”


Len array parameter.

connParam IN_OUT "LMQTT_typeConnParams" Parameters to establish a connection to MQTT


broker.
clientIdentifier IN_OUT WString Client identifier used when establishing a
connection.
username IN_OUT WString Optional: Username for connection establishment
password IN_OUT WString Optional: Password for connection establishment

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 45
4 LMQTT

Name P type Data type Comment


willtopic IN_OUT WString Optional: Topic to which the "Last Will" message is
sent
willMsgPayload IN_OUT Array [*] of Byte Optional: Message sent as "Last Will".
mqttTopic IN_OUT WString MQTT Topic used for
publish/subscribe/unsubscribe.
publishMsgPayload IN_OUT Array [*] of Byte MQTT message that is transmitted as payload
during the publish.
receivedTopic IN_OUT WString MQTT Topic on which a message about the
subscription was received.
receivedMsgPayload IN_OUT Array [*] of Byte User data received in the message about a
subscription.

While a job is being processed, the block does not accept any other jobs. Wait until the
Note existing job is completed and then generate a new edge at the respective input.

4.3.2 LMQTT_ConvertToUtf8

This FC converts a WChar into a UTF-8 compliant format, which is necessary for correct
transmission in MQTT Topics.
 Siemens AG 2021 All rights reserved

Figure 4-3: LMQTT_ConvertToUtf8


LMQTT_ConvertToUtf8

WChar character convertedUtf8 DWord

bytesUsed USInt

error Bool

status Word

Table 4-5: Parameters of LMQTT_ConvertToUtf8


Name P type Data type Comment
character IN WChar Character to be transformed.
convertedUtf8 OUT DWord Single UTF-8 compliant bytes.
Byte 0 - 2 are used.
Byte 3 is not used.
bytesUsed OUT USInt Number of bytes occupied by the conversion.
error OUT Bool Error in execution.
status OUT Word Status code for editing.

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 46
4 LMQTT

4.3.3 PLC Data Types

LMQTT_typeConnParam
This data type stores all information required to establish the MQTT connection. You can set
these parameters according to your specifications.

This data type contains all information about TCP and MQTT, e.g:
• IP address or DNS name for establishing the connection
• Logon information at the broker
• Certificates for encrypted TLS connection
The following table shows the structure of the "LMQTT_typeConnParam" data type.

Table 4-6
Parameter Data type Meaning
hwId HW_ANY Hardware identifier of the PN/IE
interface for establishing the
connection.
If "0" is selected, a suitable one is
selected automatically.
connId CONN_OUC Connection ID for establishing the
 Siemens AG 2021 All rights reserved

connection.
mqttBrokerAddress Struct Structure for the connection
information of the MQTT broker.
mqttBrokerAddress.qdnAddress String Name (e.g. DNS name) of the MQTT
broker. If this parameter is used, the IP
address entry can be omitted.
mqttBrokerAddress.ipAddress IP_V4 IP address of the MQTT broker
mqttBrokerAddress.port UInt MQTT-Port
tls Struct Structure for the secured connection
information
tls.enableTls Bool TRUE: Connection is secured with
TLS.
FALSE: Unsecured connection.
tls.validateServerIdentity Bool TRUE: The certificate of the MQTT
broker is validated when the
connection is established.
FALSE: No validation.
tls.brokerCert UDInt Certificate ID of the MQTT broker
certificate.
tls.clientCert UDInt Certificate ID of the MQTT client
certificate.
keepAlive UInt Keep-Alive mechanism of MQTT in
seconds.
0: No Keep-Alive.

You will find an application example for the usage of certificates in TIA Portal in the Siemens
Industry Online Support:
Note
https://support.industry.siemens.com/cs/ww/en/view/109769068

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 47
4 LMQTT

4.4 Integration into the User Project


You will find a detailed application example for the integration of the library into your user project
in the Siemens Industry Online Support:
https://support.industry.siemens.com/cs/ww/en/view/109748872

4.5 Error Handling


The following explanations describe the diagnostics of the FB "LMQTT_Client".

Block outputs without error


Send messages
Messages can be sent when the block has been successfully connected.
The following table explains the values of the "status" parameter in relation to "valid", "done",
and "busy" when there is no error:

Table 4-7
status valid busy done Description
16#7000 FALSE FALSE FALSE Block not in process/not connected.
 Siemens AG 2021 All rights reserved

16#7001 TRUE TRUE FALSE First call after "enable" = TRUE.


16#7002 TRUE TRUE FALSE Block processes job.
16#7003 TRUE TRUE FALSE MQTT is connected.
16#7004 TRUE TRUE FALSE MQTT client connected and ready for
job.
16#7005 TRUE TRUE FALSE Ping to the broker is sent.
16#7006 TRUE TRUE FALSE Publish job is executed.
16#7008 TRUE TRUE FALSE Subscribe job is executed.
16#7010 TRUE TRUE FALSE Unsubscribe job is executed.
16#0000 TRUE TRUE TRUE Last job (publish/subscribe/unsubscribe)
successfully executed.

Receive messages
Messages can only be received if the block is successfully connected and at least one topic has
been subscribed.
The following table explains the values of the "receivedMsgStatus" parameter depending on
"done" and "busy" if there is no error.

Table 4-8
receivedMsgStatus valid busy status Description
0 TRUE TRUE 16#7004 Block connected, but no message
received.
1 TRUE TRUE 16#7004 Block connected, a new valid
message has been received.
receivedTopic,
receivedMsgPayload, and
receivedMsgDataLen can be
evaluated.

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 48
4 LMQTT

receivedMsgStatus valid busy status Description


2 TRUE TRUE 16#7004 Block connected, a new invalid
message was received.
receivedTopic,
receivedMsgPayload, and
receivedMsgDataLen contain
incomplete or invalid data.

Block outputs in case of error


Via the interface parameters "error", "status", and "diagnostics" you diagnose the block. If an
error is pending, "error" is set. The output "status" provides you with the associated error source
of the FB. The extended diagnostic information can be found in the "diagnostics" output (see
chapter 9.2).

Errors that require a new edge at "enable"


The following table explains the error sources for the status codes of the "status" output:

Table 4-9
status code error valid busy Error source Subfunction StatusCode
16#7000 FALSE FALSE FALSE Client not connected. -
16#8600 TRUE FALSE FALSE Undefined state in the state -
machine.
 Siemens AG 2021 All rights reserved

16#8200 TRUE FALSE FALSE Client ID is null – client -


identifier must be at least 1
character long.
16#8210 TRUE FALSE FALSE Invalid array size at the -
"willMsgLen" parameter.
16#8220 TRUE FALSE FALSE Invalid value at the "keepAlive" -
parameter.
16#8230 TRUE FALSE FALSE Invalid value at parameter -
"qos".
16#8601 TRUE FALSE FALSE Error establishing connection. TCON status code
16#8620 TRUE FALSE FALSE Connection establishment -
timeout.
If necessary, increase the
"timeOut" value.
16#8700 TRUE FALSE FALSE Invalid length in received -
MQTT packet – new
connection required.
16#8710 TRUE FALSE FALSE Invalid QoS in received MQTT -
packet – new connection
required.
16#8720 TRUE FALSE FALSE Existing session at the MQTT -
broker. New connection
required.

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 49
4 LMQTT

status code error valid busy Error source Subfunction StatusCode


16#8730 TRUE FALSE FALSE Connection rejected by MQTT 1: The MQTT Broker does
broker. New connection not support the MQTT
required. protocol 3.1.1
2: The MQTT broker has
rejected the client identifier.
3: The MQTT service at the
MQTT broker is not
reachable.
4: The data in the Username
or Password field is
corrupted.
5: The client is not
authorized to connect
(username or password
incorrect)
6-255: unknown error.

Errors that are automatically corrected by the FB


The following table explains the error sources for the status codes of the "status" output:
Table 4-10
status code error valid busy Error source Subfunction StatusCode
16#9000 TRUE FALSE TRUE Connection to the MQTT broker -
 Siemens AG 2021 All rights reserved

lost. Automatic reconnection in


progress.
16#8210 TRUE FALSE TRUE Invalid array size at the -
"publishMsgLen" parameter.
16#8230 TRUE FALSE TRUE Invalid value at parameter "qos". -
16#8740 TRUE FALSE TRUE MQTT packet was -
acknowledged by the broker
with invalid packetID.
16#8750 TRUE FALSE TRUE MQTT Subscription was rejected -
by the broker.
16#8001 TRUE FALSE TRUE Simultaneous input (rising edge) -
at publish/subscribe/unsubscribe
inputs
16#8300 TRUE FALSE TRUE Publish Topic empty or invalid. -
16#8310 TRUE FALSE TRUE Subscribe Topic empty or -
invalid.
16#8320 TRUE FALSE TRUE Unsubscribe Topic empty or -
invalid.
16#8650 TRUE FALSE TRUE Timeout during the processing -
of the job.
16#8670 TRUE FALSE TRUE Timeout during MQTT -
connection setup with the MQTT
broker.

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 50
5 LOpcUa

5 LOpcUa
5.1 Overview
General
Part 14 of the OPC UA specification introduced the "PubSub" communication mechanism. This
mechanism is not based on the Client-Server principle as in conventional OPC UA
communication (OPC 10000-4), but uses a "publish/subscribe" principle.
PubSub OPC UA applications, with their roles as "Publisher" (sender) and/or "Subscriber"
(receiver), are decoupled from each other, which deviates from the Client-Server principle. The
number of Subscribers is not important for the Publisher. Publishers and Subscribers also do
not need to connect directly to each other, allowing not only uni- but also multi- or broadcasts.
The Publisher is implemented by the function block "LOpcUa_PubUdp" and the Subscriber by
the block "LOpcUa_SubUdp", which are provided by the library "LOpcUa":
Figure 5-1

S7-1500 OPC UA Publisher


(e.g. S7-1500 or Cloud)

OPC UA PubSub
via UDP
 Siemens AG 2021 All rights reserved

LOpcUa_
PubUDP

Publisher Subscriber

S7-1500 OPC UA Publisher


(e.g., S7-1500 or Sensor)

OPC UA PubSub
via UDP

LOpcUa_
SubUDP

Subscriber Publisher
PROFINET / IE

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 51
5 LOpcUa

Schematic representation
The following figure shows the most important relationships between the components involved
in sending data from a Publisher to a Subscriber:
Figure 5-2

Publisher
WriterGroup
1..n
1
PubUDP_
Data DataSetWriter
1..n
1

PublishedDataSet
1 1
LOpcUa_
PubUDP

1..n

DataSetMessage DataSetField
 Siemens AG 2021 All rights reserved

1..n

LOpcUa_ 1 1
SubUDP SubscribedDataSet

1
1..n
DataSetReader

SubUDP_ 1
Data
1..n
ReaderGroup
PubSub via UDP
Subscriber

To map one or more "WriterGroups" or "ReaderGroups", both the Publisher and the Subscriber
function blocks require a data block in which the PubSub data (metadata and process data) are
provided according to the schema shown above.
To implement the individual components in data blocks, the library provides you with suitable
PLC data types that map the required structures. If a component is required more than once
("1..n"), it must be created as an array in the data block.
The block "LOpcUa_PubUdp" accesses the "WriteGroups" and serializes the
"DataSetMessage" from the data contained therein and sends ("Publish") this with the help of
the system function block "TUSEND" to the Subscribers.
The block "LOpcUa_SubUdp" receives the "DataSetMessage" via the system function block
"TURCV" and de-serializes the data to the data structure of the created "ReaderGroup".

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 52
5 LOpcUa

Applies to
The library is valid for SIMATIC S7-1500 controllers as of firmware V2.0.

5.2 Components of the Library


The "LOpcUa" library contains the following objects.

Function blocks and functions


Table 5-1: Function blocks and functions of the Library
Name Type Version Description
LOpcUa_PubUdp FB V 1.0.0 Implements the OPC UA PubSub Publisher and
enables process data to be transmitted to a
Subscriber.
LOpcUa_SubUdp FB V 1.0.0 Implements the OPC UA PubSub Subscriber and
allows to receive process data from a Publisher.
LOpcUa_PubUdp_Boolean FC V 1.0.0 Encoding for "LOpcUa_PubUdp": Boolean to send
buffer (byte array).
LOpcUa_PubUdp_Byte FC V 1.0.0 Encoding for "LOpcUa_PubUdp": Byte to send buffer
(byte array).
LOpcUa_PubUdp_Double FC V 1.0.0 Encoding for "LOpcUa_PubUdp": Double to send
buffer (byte array).
 Siemens AG 2021 All rights reserved

LOpcUa_PubUdp_Float FC V 1.0.0 Encoding for "LOpcUa_PubUdp": Float to send buffer


(byte array).
LOpcUa_PubUdp_Guid FC V 1.0.0 Encoding for "LOpcUa_PubUdp": GUID to send buffer
(byte array).
LOpcUa_PubUdp_Int16 FC V 1.0.0 Encoding for "LOpcUa_PubUdp": Int16 to send buffer
(byte array).
LOpcUa_PubUdp_Int32 FC V 1.0.0 Encoding for "LOpcUa_PubUdp": Int32 to send buffer
(byte array).
LOpcUa_PubUdp_Int64 FC V 1.0.0 Encoding for "LOpcUa_PubUdp": Int64 to send buffer
(byte array).
LOpcUa_PubUdp_SByte FC V 1.0.0 Encoding for "LOpcUa_PubUdp": SByte to send buffer
(byte array).
LOpcUa_PubUdp_String FC V 1.0.0 Encoding for "LOpcUa_PubUdp": String to send buffer
(byte array).
LOpcUa_PubUdp_UInt16 FC V 1.0.0 Encoding for "LOpcUa_PubUdp": UInt16 to send
buffer (byte array).
LOpcUa_PubUdp_UInt32 FC V 1.0.0 Encoding for "LOpcUa_PubUdp": UInt32 to send
buffer (byte array).
LOpcUa_PubUdp_UInt64 FC V 1.0.0 Encoding for "LOpcUa_PubUdp": UInt64 to send
buffer (byte array).

Note The block "LOpcUa_SubUdp" supports only one "ReaderGroup".

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 53
5 LOpcUa

PLC Data Types


Table 5-2: PLC library data types
Name Version Description
LOpcUa_typeDataSetWriter V 1.0.0 Maps an OPC UA "DataSetWriter".
LOpcUa_typeDataSetReader V 1.0.0 Maps an OPC UA "DataSetReader".
LOpcUa_typeGuid V 1.0.0 Implements the "GUID" data type.
LOpcUa_typePublishedData V 1.0.0 Implements the send buffer of the Publisher.
LOpcUa_typePublishedDataSet V 1.0.0 Maps an OPC UA "PublishedDataSet". Contains the
Publisher process values to be sent.
LOpcUa_typePublisherID V 1.0.0 Maps an OPC UA "PublisherID". Serves to identify
the Publisher.
LOpcUa_typeString V 1.0.0 Implements the "String" data type.
LOpcUa_typeVariant V 1.0.0 Implements the "Variant" data type and maps a
"DataSetField".
LOpcUa_typeWriterGroup V 1.0.0 Maps an OPC UA "WriteGroup".
LOpcUa_typeReaderGroup V 1.0.0 Maps an OPC UA "ReaderGroup".
LOpcUa_typeSubscribedDataSet V 1.0.0 Maps an OPC UA "SubscribedDataSet". Contains the
received process values of the Publisher.

5.3 Interface Description


 Siemens AG 2021 All rights reserved

5.3.1 LOpcUa_PubUdp

Description
The block "LOpcUa_PubUdp" sends ("Publish") the PubSub data via UDP to the Subscribers.
The block requires a data block in which the components "WriterGroup", "DataSetWriter",
"PublishedDataSet", and "PublishedWriterGroup" are predefined.
In an internal sequencer of the block, the data packets are coded and sent via UDP with the
help of the system function blocks "TCON", "TUSEND", and "TDISCON".

To ensure a consistent send clock, we recommend to call the block in a cyclic interrupt OB.
Note The "PublishingInterval" is defined in the "WriterGroups".

Parameter
Figure 5-3: LOpcUa_PubUdp
LOpcUa_PubUdp

Bool enable valid Bool


numWriter
DInt error Bool
Groups
"LOpcUa_typePublisherID" publisherID status Word
conn
TCON_IP_v4 diagnostics "typeDiagnostics"
Param
writerGroup
Array[*] of "LOpcUa_typeWriterGroup" Array[*] of "LOpcUa_typeWriterGroup"
Array[*] of publishedDataSet Array[*] of
"LOpcUa_typePublishedDataSet" "LOpcUa_typePublishedDataSet"

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 54
5 LOpcUa

Table 5-3: Parameters of LOpcUa_PubUdp


Name P type Data type Comment
enable IN Bool Control parameters
TRUE: Cyclic publishing active.
FALSE: Publishing disabled.
numWriterGroups IN DInt Number of "WriteGroups" to be published.
publisherID IN "LOpcUa_type "PublisherID" to uniquely identify the publisher.
PublisherID"
connParam IN TCON_IP_v4 UDP connection parameters.
valid OUT Bool TRUE, if publishing is active at the block and no error
occurs.
busy OUT Bool TRUE, if publishing is active at the block.
error OUT Bool TRUE: An error has occurred. More detailed
information is provided by the output parameter
"status" or the diagnostic buffer.
FALSE: No error occurred.
status OUT Word Status display
Information about the error that occurred in FB
"LOpcUa_PubUdp" (see chapter 5.5).
diagnostics OUT "typeDiagnostics" Advanced diagnostic information (see chapter 9.2)
writerGroup IN_OUT Array[*] of "LOpcUa_type Data structure for mapping one or more
WriterGroup" "WriterGroups". Contains metadata for PubSub
communication.
 Siemens AG 2021 All rights reserved

publishedDataSet IN_OUT Array[*] of "LOpcUa_type Data structure for mapping one or more
PublishedDataSet" "PublishedDataSets". This structure contains one
process tag each, which is published.

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 55
5 LOpcUa

5.3.2 LOpcUa_SubUdp

Description
The block "LOpcUa_SubUdp" receives ("Subscribe") the PubSub data via UDP from a
Publisher. The block requires a data block in which the "ReaderGroup" components are
predefined.
In an internal sequencer of the block, the data packets are received and decoded via the
system function blocks "TCON", "TURCV", and "TDISCON" using UDP.
To receive the data with minimum delay we recommend to call the block in a cyclic OB.

Parameter
Figure 5-4: LOpcUa_SubUdp
LOpcUa_SubUdp

Bool enable valid Bool


numDataSet
DInt busy Bool
Reader
conn
TCON_IP_v4 error Bool
Param
status Word

diagnostics "typeDiagnostics"
readerGroup
 Siemens AG 2021 All rights reserved

"LOpcUa_typeReaderGroup" "LOpcUa_typeReaderGroup"

Table 5-4: Parameters of LOpcUa_SubUdp


Name P type Data type Comment
enable IN Bool Control parameters
TRUE: Cyclic receiving active.
FALSE: Receive disabled.
numDataSetReader IN DInt Number of "DataSetReaders" which should receive the
data of the "DataSetWriters" of a Publisher.
connParam IN TCON_IP_v4 UDP connection parameters.
valid OUT Bool TRUE if subscribing is active on the block and no error
occurs.
busy OUT Bool TRUE if subscribing is active on the block.
error OUT Bool TRUE: An error has occurred. More detailed
information is provided by the output parameter
"status" or the diagnostic buffer.
FALSE: No error occurred.
status OUT Word Status display
Information about the error that occurred in FB
"LOpcUa_SubUdp" (see chapter 5.5).
diagnostics OUT "typeDiagnostics" Advanced diagnostic information (see chapter 9.2)
readerGroup IN_OUT "LOpcUa_type Data structure for mapping a "ReaderGroup". Contains
ReaderGroup" the structures of the "DataSetReader".

Note The block "LOpcUa_SubUdp" supports only one "ReaderGroup".

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 56
5 LOpcUa

5.3.3 PLC Data Types

The following descriptions explain the PLC data types that the PubSub components map for
communication.

LOpcUa_typePublisherID
The PLC data type "LOpcUa_typePublisherID" is used to identify the Publisher.

Table 5-5: Parameters of LOpcUa_typePublisherID


Name Data type Description
type UDInt Selects the data type to be used for the Publisher ID to be
sent:
• 3: id8
• 5: id16
• 7: id32
• 12: idString
id8 USInt The tag selected with "type" contains the Publisher ID that
identifies your Publisher. You can choose the ID freely.
id16 UInt
Example: "type" = "7" corresponds to "id32 (UDInt)"
id32 UDInt
idString "LOpcUa_typeString"
 Siemens AG 2021 All rights reserved

LOpcUa_typeWriterGroup
The PLC data type "LOpcUa_typeWriterGroup" implements the WriterGroups.

Table 5-6: Parameters of LOpcUa_typeWriterGroup


Name Data type Description
name String The name of the "WriterGroup" (optional, will not be
transferred).
priority USInt The priority for sorting (higher value = higher priority).
publishingInterval USInt The publishing interval for the configuration of the send
clock. The transmission rate is given by the following
formula:
Send clock = OB cycle time * PublishingInterval
resetInterval USInt Must contain the same value as the "PublishingInterval".
numDataSetWriter USInt Number of "DataSetWriters" you want to use.
dataSetWriter Array [0..X] of Implements the "DataSetWriter" per "WriterGroup".
"LOpcUa_
typeDataSetWriter"

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 57
5 LOpcUa

LOpcUa_typeDataSetWriter
The PLC data type "LOpcUa_typeDataSetWriter" implements the DataSetWriter.

Table 5-7: Parameters of LOpcUa_typeDataSetWriter


Name Data type Description
name String The name of the "DataSetWriter" (optional, will not be
transferred).
id UInt Identification number of the "DataSetWriter" (any).
sequenceNumber UInt Is not filled in (required by FB "LOpcUa_PubUdp").
dataSet UInt Reference to the index of the "PublishedDataSet". Each
"DataSet" refers to a different index of the
"PublishedDataSets".

LOpcUa_typePublishedDataSet
The PLC data type "LOpcUa_typePublishedDataSet" implements the PublishedDataSets.

Table 5-8: Parameters of LOpcUa_typePublishedDataSet


Name Data type Description
name String The name of the "PublishedDataSet" (optional, will not be
transmitted).
 Siemens AG 2021 All rights reserved

fieldCount UInt Number of "DataSetFields" in the "PublishedDataSet" to be


published.
dataSetField Array [0..X] of Implements the "DataSetFields" which contain the
"LOpcUa_ individual process tags to be sent.
typeVariant"

LOpcUa_typeVariant
The PLC data type "LOpcUa_typeVariant" implements the data type "Variant" for PubSub
communication.

Table 5-9: Parameters of LOpcUa_typeVariant


Name Data type Description
encodingMask USInt Specifies the data type of the process value to be sent or
received.
value Dependent on Used field according to the "encodingMask". Take the
"encodingMask" assignment between "encodingMask" and "Value" from the
comments in the data type "LOpcUa_typeVariant". The
corresponding field contains the process value that you
can describe in your user program for sending.
Example: "encodingMask" = "1" corresponds to "boolean"

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 58
5 LOpcUa

LOpcUa_typeReaderGroup
The PLC data type "LOpcUa_typeReaderGroup" implements the ReaderGroup.

Table 5-10: Parameters of "LOpcUa_typeReaderGroup"


Name Data type Description
name String The name of the "ReaderGroup" (optional).
dataSetReader Array [0..X] of Implements the "DataSetReader" per "ReaderGroup".
"LOpcUa_
typeDataSetReader"

LOpcUa_typeDataSetReader
The PLC data type "LOpcUa_ typeDataSetReader " implements the DataSetReader.

Table 5-11: Parameters of "LOpcUa_typeDataSetReader"


Name Data type Description
name String The name of the "DataSetReader" (optional).
publisherID "LOpcUa_type The received PublisherID.
PublisherID"
dataSetWriterID UInt The received DataSetWriterID.
 Siemens AG 2021 All rights reserved

sequenceNumber UInt Sequence number of the received PubSub packets


subscribedDataSet "LOpcUa_type Contains the "DataSetFields" of type
SubscribedDataSet" "LOpcUa_typeVariant" in which the received process
values are stored.

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 59
5 LOpcUa

5.4 Integration into the User Project


You will find a detailed application example for the integration of the library into your user project
and further information about OPC UA PubSub in the Siemens Industry Online Support:
https://support.industry.siemens.com/cs/ww/en/view/109782455

5.5 Error Handling


General information about the status outputs and the diagnostics of the blocks of these libraries
can be found in chapter 9.2.
The following are the status and error codes specific to the "LOpcUa" library.

Table 5-12: Block output "status"


Status Description
16#7000 No error; block ready for execution.
16#7002 No error; publishing/subscribing via UDP active.
16#8600 Configuration error: Check whether enough "WriterGroups", related to the block input
"numWriterGroups", have been created. In addition, check whether the fields of the
structures are assigned correctly.
 Siemens AG 2021 All rights reserved

16#8601 Connection error for TCON: Check the parameters at the "connectParameter" block
input. For more information, refer to the "diagnostics" block output.
16#8602 Receive error for TURCV: For more information, refer to the "diagnostics" block output.
16#8603 Send error for TUSEND: For more information, refer to the "diagnostics" block output.
16#8604 Error while encoding the data: Check the metadata in the “WriterGroup” structure.
16#8605 Error decoding the data: Received data type is not supported. Extend the function block
or use a different data type with the Publisher.

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 60
6 LSNMP

6 LSNMP
6.1 Overview
The status of SNMP-capable network components can be monitored and, if necessary,
controlled via SNMP (Simple Network Management Protocol) by network management systems,
such as SINEC NMS.
The blocks of the "LSNMP" library also allow a SIMATIC Controller with a PROFINET interface,
acting as a simple SNMP manager, to query information from the network components and, if
necessary, to control them as well, or to send SNMP traps to an SNMP manager as an SNMP
agent.

The following functions are implemented in the library:


• Send SNMP GetRequests and output response
• Send SNMP GetNextRequests and output response
• Send SNMP GetBulkRequests and output response
• Send SNMP SetRequests
• Send SNMP traps

Note The blocks of this library support sending and receiving SNMP messages that do not exceed
 Siemens AG 2021 All rights reserved

486 bytes in total length.

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 61
6 LSNMP

Diagram
The following figure shows a possible constellation in which you can use the SNMP blocks of
the "LSNMP" library.

Figure 6-1

Network Management
System
e.g.
SINEC NMS

SNMP-Traps

S7-1200/1500
 Siemens AG 2021 All rights reserved

SCALANCE W

SCALANCE X

TIM 1531
S7-300/400 IRC

SCALANCE M

Applies to
The library is valid for:
• SIMATIC S7-1500 Controller as of firmware V2.0
• SIMATIC S7-1200 controller as of firmware V4.2
• SIMATIC ET 200SP Open Controller as of firmware V2.0
• SIMATIC S7-1500 Software Controller as of Firmware V2.0
• SNMPv1/SNMPv2c

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 62
6 LSNMP

6.2 Components of the Library


The "LSNMP" library contains the following objects:

Function blocks and functions


Table 6-1: Function blocks and functions
Name Type Version Description
LSNMP_Get FB V 5.0.0 Request of an SNMP tag from an
SNMP agent (SNMPv1) (GetRequest
or GetNextRequest)
LSNMP_GetBulk FB V 5.0.0 Requesting large amounts of data
from an SNMP agent with only a
single response telegram (SNMPv2c)
LSNMP_Set FB V 5.0.0 Changing an SNMP tag of an SNMP
agent (SNMPv1)
LSNMP_SendTrap FB V 5.0.0 Sends user-defined traps to an
SNMP manager (SNMPv1)
LSNMP_CalcCnt FC V 1.0.0 Used to calculate the number of
bytes a BER encoded length takes in
the packet (not relevant for the user)
LSNMP_DecodeLen FC V 1.0.0 Decodes a BER encoded length (not
relevant for the user)
LSNMP_EncodeLen FC V 1.0.0 Encodes a length according to BER
 Siemens AG 2021 All rights reserved

and inserts it into the packet (not


relevant for the user)

PLC Data Types


Table 6-2: PLC Data Types
Name Version Description
LSNMP_typeConnParam V 1.0.0 Describes the connection parameters
for all LSNMP blocks
LSNMP_typeDataSendTrap V 5.0.0 Describes the data that is sent with
“LSNMP_SendTrap”
LSNMP_typePacket V 1.0.0 Structures parameters that are
necessary for building the SNMP
package within the blocks (not
relevant for the user)
LSNMP_typeVarBind V 1.0.0 Describes a tag binding to be sent or
received

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 63
6 LSNMP

6.3 Interface Description


6.3.1 LSNMP_Get

Functional description
SNMP provides different data packets to request tags of an SNMP agent. Two of them are
implemented in this block:
• GetRequest to request a specific tag
• GetNextRequest to request the next tag in the MIB tree

For this purpose, the block sends either an SNMP GetRequest or SNMP GetNextRequest
command for a tag by means of an Object Identifier (OID) to an SNMP agent. The SNMP agent
responds with an SNMP GetResponse telegram containing the requested data or an error
message.

Parameter
Figure 6-2: LSNMP_Get
LSNMP_Get

Bool execute done Bool


 Siemens AG 2021 All rights reserved

Bool abort busy Bool

Bool getNext aborted Bool

String[20] community error Bool

String oID status Word

Time timeOut diagnostics "typeDiagnostics"


connParam
"LSNMP_typeConnParam" "LSNMP_typeConnParam"
varBinding
"LSNMP_typeVarBind" "LSNMP_typeVarBind"

Table 6-3: Parameters of LSNMP_Get


Name P type Data type Comment
execute IN Bool The job is started with a positive edge.
"abort" must be FALSE.
abort IN Bool With a positive edge, the current job is canceled.
The command is only accepted if the block is
currently busy.
getNext IN Bool FALSE: Requests the tag for the specified OID
TRUE: Requests the next tag in the MIB tree for
the specified OID
community IN String[20] Community
oID IN String Object Identifier of the requested tag according
to dot notation, e.g. '1.3.6.1.2.1.1.5.0'
timeOut IN Time Time after which a job should be automatically
canceled
done OUT Bool TRUE: Job successfully executed. The received
data is available at the "varBinding" parameter.

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 64
6 LSNMP

Name P type Data type Comment


busy OUT Bool TRUE: Job is being executed
aborted OUT Bool TRUE: Job was canceled
error OUT Bool TRUE: An error has occurred
status OUT Word Status and error codes (see chapter 6.5)
diagnostics OUT "typeDiagnostics" Advanced diagnostic information (see chapter
9.2)
connParam IN_OUT "LSNMP_typeConnParam" Connection parameters (see chapter 6.3.5)
varBinding IN_OUT "LSNMP_typeVarBind" Received tag binding (see chapter 6.3.5)

6.3.2 LSNMP_GetBulk

Functional description
The block "LSNMP_GetBulk" is used to read out large amounts of data with only one response
telegram.
The block "LSnmp_GetBulk" uses the SNMP GetBulk request command and requires SNMPv2
for this – an extension of SNMPv1.
The GetBulk command performs several GetNext queries in the SNMP agent. The maximum
number of GetNext commands can be specified via a parameterizable repetition factor in the
GetBulk telegram.
 Siemens AG 2021 All rights reserved

The return values of all queried objects are compiled in a single response telegram and
transferred. The block "LSNMP_GetBulk" then outputs the received data stream divided into the
individual tags.

Parameter
Figure 6-3: LSNMP_GetBulk
LSNMP_GetBulk

Bool execute numObjects USInt

Bool abort done Bool

String[20] community busy Bool

String oID aborted Bool

USInt maxRepetitions error Bool

Time timeOut status Word

diagnostics "typeDiagnostics"
connParam
"LSNMP_typeConnParam" "LSNMP_typeConnParam"
varBindings
Array[*] of "LSNMP_typeVarBind" Array[*] of "LSNMP_typeVarBind"

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 65
6 LSNMP

Table 6-4: Parameters of LSNMP_GetBulk


Name P type Data type Comment
execute IN Bool The job is started with a positive edge.
"abort" must be FALSE.
abort IN Bool With a positive edge, the current job is
canceled.
The command is only accepted if the block
is currently busy.
community IN String[20] Community
oID IN String Object Identifier of the first requested tag
according to dot notation, e.g.
'1.3.6.1.2.1.1.5.0'
maxRepetitions IN USInt Max. number of objects to be returned
timeOut IN Time Time after which a job should be
automatically canceled
numObjects OUT USInt Number of objects received
done OUT Bool TRUE: Job successfully executed. The
received data is available at the
"varBindings" parameter.
busy OUT Bool TRUE: Job is being executed
aborted OUT Bool TRUE: Job was canceled
error OUT Bool TRUE: An error has occurred
 Siemens AG 2021 All rights reserved

status OUT Word Status and error codes (see chapter 6.5)
diagnostics OUT "typeDiagnostics" Advanced diagnostic information (see
chapter 9.2)
connParam IN_OUT "LSNMP_typeConnParam" Connection parameters (see chapter
6.3.5)
varBindings IN_OUT Array[*] of Received tag bindings (see chapter 6.3.5)
"LSNMP_typeVarBind"

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 66
6 LSNMP

6.3.3 LSNMP_Set

Functional description
The "LSNMP_Set" block sends a write job to an SNMP agent via the SNMP SetRequest
command for an SNMP tag.
In the SetResponse telegram the block receives the result of the write request from the SNMP
agent. If the tag read in does not match the written value, an error will be read out. The Write job
must be set again.

Parameter
Figure 6-4: LSNMP_Set
LSNMP_Set

Bool execute done Bool

Bool abort busy Bool

String[20] community aborted Bool

Time timeOut error Bool

status Word

diagnostics "typeDiagnostics"
 Siemens AG 2021 All rights reserved

connParam
"LSNMP_typeConnParam" "LSNMP_typeConnParam"
varBinding
"LSNMP_typeVarBind" "LSNMP_typeVarBind"

Table 6-5: Parameters of LSNMP_Set


Name P type Data type Comment
execute IN Bool The job is started with a positive edge.
"abort" must be FALSE.
abort IN Bool With a positive edge, the current job is canceled.
The command is only accepted if the block is
currently busy.
community IN String[20] Community
timeOut IN Time Time after which a job should be automatically
canceled
done OUT Bool TRUE: Job successfully executed
busy OUT Bool TRUE: Job is being executed
aborted OUT Bool TRUE: Job was canceled
error OUT Bool TRUE: An error has occurred
status OUT Word Status and error codes (see chapter 6.5)
diagnostics OUT "typeDiagnostics" Advanced diagnostic information (see chapter
9.2)
connParam IN_OUT "LSNMP_typeConnParam" Connection parameters (see chapter 6.3.5)
varBinding IN_OUT "LSNMP_typeVarBind" Tag binding to be sent (see chapter 6.3.5)

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 67
6 LSNMP

6.3.4 LSNMP_SendTrap

Functional description
SNMP agents (e.g. an S7 CPU) send messages to the network management system via SNMP
traps to display changes in the network status.
The "LSNMP_SendTrap" block is a parameterizable function block for sending SNMP traps.

Note The SNMP agents do not receive acknowledgement for sent traps.

Parameter
Figure 6-5: LSNMP_SendTrap
LSNMP_SendTrap

Bool execute done Bool

busy Bool

error Bool

status Word
 Siemens AG 2021 All rights reserved

diagnostics "typeDiagnostics"
connParam
"LSNMP_typeConnParam" "LSNMP_typeConnParam"
data
"LSNMP_typeDataSendTrap" "LSNMP_typeDataSendTrap"

Table 6-6: Parameters of LSNMP_SendTrap


Name P type Data type Comment
execute IN Bool The job is started with a positive edge.
done OUT Bool TRUE: Job successfully executed
busy OUT Bool TRUE: Job is being executed
error OUT Bool TRUE: An error has occurred
status OUT Word Status and error codes (see chapter 6.5)
diagnostics OUT "typeDiagnostics" Advanced diagnostic information (see chapter 9.2)
connParam IN_OUT "LSNMP_ Connection parameters (see chapter 6.3.5)
typeConnParam"
data IN_OUT "LSNMP_ Data to be sent with the SNMP trap (see chapter
typeDataSendTrap" 6.3.5)

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 68
6 LSNMP

6.3.5 PLC Data Types

LSNMP_typeConnParam
The PLC data type "LSNMP_typeConnParam" contains parameters that are required to
establish a connection to the partner.

Table 6-7: Parameters of LSNMP_typeConnParam


Name Type Comment
hwIdentifier HW_ANY Hardware identification of the Ethernet interface
connID Word Connection ID
ipAddress IP_V4 IP address of the partner
localPort UInt Local port

If you want to run multiple blocks of the library or instances of the same block at the same
Note time, the parameters "connID" and "localPort" must be unique for each instance.

LSNMP_typeDataSendTrap
The PLC data type "LSNMP_typeDataSendTrap" contains all parameterizable data that can be
 Siemens AG 2021 All rights reserved

sent to an SNMP manager with "LSNMP_SendTrap".

Table 6-8: Parameters of LSNMP_typeDataSendTrap


Name Type Comment
community String[20] Community
oID String Object Identifier of the agent generating the trap, in dot
notation, e.g. '1.3.6.1.2.1.1.5.0'
ipAgent IP_V4 IP address of the agent generating the trap
genericTrap Int General Trap ID
• 0: Cold start (coldStart)
• 1: Warm start (warmStart)
• 2: Link Down (linkDown)
• 3: Link Up (linkUp)
• 4: Authentication failure (authenticationFailure)
• 5: EGP neighbor lost (egpNeighborLoss)
• 6: company-specific (enterpriseSpecific)
specificTrap Int Company specific trap ID
If the general trap ID "6" is selected, a company-specific
trap ID can be sent with this parameter. Otherwise, the
company-specific trap ID is "0".
varBinding "LSNMP_typeVarBind" Optional tag binding to be sent with the trap. In this case,
the trap ID is considered sufficient information.

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 69
6 LSNMP

LSNMP_typeVarBind
With SNMP, tags are transmitted as "tag bindings". A tag binding consists of the Object
Identifier of the tag and the actual value. The PLC data type "LSNMP_typeVarBind" defines
such a tag binding. So that the block or the user can interpret the value correctly, the data type
and the length are also specified.

Table 6-9: Parameters of LSNMP_typeVarBind


Name Type Comment
oID String Object Identifier of the tag in dot notation, e.g.
'1.3.6.1.2.1.1.5.0'
type Byte Data type of the tag
Common data types:
16#02: Integer
16#04: String
16#41: Counter
16#43: Timeticks
length Int Tag length
value Array[0..255] of byte Value of the tag

6.4 Integration into the User Project


 Siemens AG 2021 All rights reserved

You will find a detailed application example for the integration of the library into your user project
in the Siemens Industry Online Support:
https://support.industry.siemens.com/cs/ww/en/view/57249109

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 70
6 LSNMP

6.5 Error Handling


General information about the status outputs and the diagnostics of the blocks of these libraries
can be found in chapter 9.2.
The following are the status and error codes specific to the "LSNMP" library.

Table 6-10: Status and error codes


Status Meaning
16#0000 Job completed successfully
16#0FFF Job was canceled
16#7000 No job active
16#7001 First call of the command
16#7002 Follow-up call of the command
16#7003 Cancels the job
16#8107 The received value is too large for the memory area at the "tagBinding" or "tagBindings"
parameter.
16#8109 The received packet is too large for the internal reception area.
16#8408 Time-out: The job could not be completed within the specified time.
Possible reasons for a time-out:
• Partner is not available
 Siemens AG 2021 All rights reserved

• Community is wrong
16#8501 SNMP error: Reply telegram is too large
16#8502 SNMP error: Invalid OID
16#8503 SNMP error: Invalid value
16#8504 SNMP error: No write access
16#8505 SNMP error: General error
16#8600 The FB is in an invalid state.
16#8601 Error in subordinate command "TCON"
The error code of the command is output to "diagnostics.subfunctionStatus". For the
meaning of the respective error code, refer to the TIA Portal information system.
16#8602 Error in subordinate command "TUSEND"
The error code of the command is output to "diagnostics.subfunctionStatus". For the
meaning of the respective error code, refer to the TIA Portal information system.
16#8603 Error in subordinate command "TURCV"
The error code of the command is output to "diagnostics.subfunctionStatus". For the
meaning of the respective error code, refer to the TIA Portal information system.

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 71
7 LSyslog

7 LSyslog
7.1 Overview
With the simply designed syslog protocol, applications can send messages, warnings, or error
conditions to a syslog server. syslog is typically used for computer system management and
security monitoring and has now established itself as a standard (RFC 5424) in logging.
This library emulates the syslog protocol and offers the possibility to send messages via UDP or
TCP with optional TLS encryption to a syslog server, such as SINEC INS.

Figure 7-1

syslog server

Server
PC

syslog
 Siemens AG 2021 All rights reserved

telegrams
S7-400

S7-1500 S7-300
Open
S7-1200 Controller
SIMATIC
Stations
LSyslog_Sen d LSyslog_Sen d LSyslog_Sen d LSyslog_Sen d LSyslog_Sen d

Alarms,
Warnings, Process
Messages

Applies to
The library is valid for:
• SIMATIC S7-1500 Controller as of firmware V2.0
• SIMATIC S7-1200 Controller as of firmware V4.4
• SIMATIC ET 200SP Open Controller as of firmware V2.5
• SIMATIC S7-1500 Software Controller as of firmware V2.5

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 72
7 LSyslog

7.2 Components of the Library


The "LSyslog" library contains the following objects.

Function blocks
Table 7-1: Function blocks
Name Version Description
LSyslog_Send V 2.0.0 Organizes the transmission and
creation of the telegrams.

PLC Data Types


Table 7-2: PLC Data Types
Name Version Description
LSyslog_typeMessage V 1.1.0 This data type describes all tag data of
a syslog message.
 Siemens AG 2021 All rights reserved

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 73
7 LSyslog

7.3 Interface Description


7.3.1 LSyslog_Send

Functional description
The FB "LSyslog_Send" establishes a connection to the syslog server via UDP or TCP with
optional TLS encryption and sends syslog messages to the syslog server upon request.
Afterwards, the connection is automatically broken again.

Parameter
Figure 7-2: LSyslog_Send
LSyslog_Send

Bool execute done Bool

busy Bool

error Bool

status Word

diagnostics "typeDiagnostics"
connParam
TCON_IP_V4_SEC TCON_IP_V4_SEC
message
"LSyslog_typeMessage" "LSyslog_typeMessage"
 Siemens AG 2021 All rights reserved

Table 7-3: Parameters of LSyslog_Send


Name P type Data type Comment
execute IN Bool With a positive edge, the connection to the
syslog server is established and the syslog
message is sent.
done OUT Bool TRUE: The send job was successfully executed
busy OUT Bool TRUE: The block is executed
error OUT Bool TRUE: An error has occurred
status OUT Word Status and error codes (see chapter 7.5)
diagnostics OUT "typeDiagnostics" Advanced diagnostic information (see chapter
9.2)
connParam IN_OUT TCON_IP_V4_SEC Connection parameters
message IN_OUT "LSyslog_ syslog message to be sent (see chapter 7.3.2)
typeMessage"

In the FB the octet stuffing method for syslog is implemented over TCP by appending a line
feed to the end of the message.

Note The octet counting method is also implemented, but commented out.
If you want to use the octet counting method for your application instead, you can adjust the
comments in the build message region accordingly.

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 74
7 LSyslog

You will find an application example for the usage of certificates in TIA Portal in the Siemens
Industry Online Support:
Note
https://support.industry.siemens.com/cs/ww/en/view/109769068

7.3.2 PLC Data Types

LSyslog_typeMessage
The PLC data type describes all parameters of the syslog message to be sent.

Table 7-4: Parameters of LSyslog_typeMessage


Name Type Comment
facility Int Facility (origin of the message)
• 0: kernel messages
• 1: user-level messages
• 2: mail system
• 3: system daemons
• 4: security/authorization messages
• 5: messages generated internally by syslogd
• 6: line printer subsystem
 Siemens AG 2021 All rights reserved

• 7: network news subsystem


• 8: UUCP subsystem
• 9: clock daemon
• 10: security/authorization messages
• 11: FTP daemon
• 12: NTP subsystem
• 13: log audit
• 14: log alert
• 15: clock daemon (note 2)
• 16-23: local0-local7
severity Int Severity (severity of the message)
• 0: Emergency
• 1: Alert
• 2: Critical
• 3: Error
• 4: Warning
• 5: Notice
• 6: Informational
• 7: Debug
hostname String Host name that identifies the machine that originally sent the syslog
message, e.g. FQDN, IP address, or PLC name.
If no host name is used, the tag must be set to "-".
appName String Application name that identifies the device or application that generated
the message.
If no application name is used, the tag must be set to "-".
msgID String Message ID that identifies the type of message.
If no message ID is used, the tag must be set to "-".
message String Message text in free form

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 75
7 LSyslog

7.4 Integration into the User Project


You will find a detailed application example for the integration of the library into your user project
in the Siemens Industry Online Support:
https://support.industry.siemens.com/cs/ww/en/view/51929235

7.5 Error Handling


General information about the status outputs and the diagnostics of the blocks of these libraries
can be found in chapter 9.2.
The following are the status and error codes specific to the "LSyslog" library.

Table 7-5: Status and error codes


Status Meaning
16#0000 Job completed successfully
16#7000 No job active
16#7001 First call of the command
16#7002 Follow-up call of the command
16#8408 Time-out: The job could not be completed within the specified time.
Possible reasons for a time-out:
 Siemens AG 2021 All rights reserved

• Partner is not available


16#8600 The FB is in an invalid state.
16#8601 Error in subordinate command "TCON"
The error code of the command is output to "diagnostics.subfunctionStatus". For the
meaning of the respective error code, refer to the TIA Portal information system.
16#8602 Error in subordinate command "TUSEND"
The error code of the command is output to "diagnostics.subfunctionStatus". For the
meaning of the respective error code, refer to the TIA Portal information system.
16#8603 Error in subordinate command "TSEND"
The error code of the command is output to "diagnostics.subfunctionStatus". For the
meaning of the respective error code, refer to the TIA Portal information system.

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 76
8 OUC Master Copies

8 OUC Master Copies


8.1 Overview
TCP/IP-based Open User Communication (OUC) has become the standard for communication
with SIMATIC Controllers.
In SIMATIC Controller OUC is implemented on the basis of commands (e.g. TCON, TSEND,
TRCV, and TDISCON). The user parameterizes the commands in their user program and calls
them in a error-tolerant manner.
To facilitate this, we offer function blocks in SCL as master copies.
The FBs call the OUC commands in the order and manner recommended in the manuals. In
addition, FBs already contain the following mechanisms:
• Connection management with the commands "TCON" and "TDISCON"
• Send data to a partner
• Receive data from a partner

You can use the FBs as a template for your own communication projects or the implementation
of other IP-based protocols.

Applies to
The master copies are valid for:
 Siemens AG 2021 All rights reserved

• SIMATIC S7-1500 Controller (secured communication as of firmware V2.0)


• SIMATIC S7-1200 Controller as of firmware V4.2 (secured communication as of firmware
V4.4)
• SIMATIC ET 200SP Open Controller (secured communication as of firmware V2.5)
• SIMATIC S7-1500 Software Controller (secured communication as of firmware V2.5)
• SIMATIC S7-300 Controller (no secured communication)
• SIMATIC S7-400 Controller (no secured communication)

8.2 Components
The following FBs are available as master copies.

Master copies for S7-1200/1500


Table 8-1: Master copies for S7-1200/1500
Name Description
IsoOnTcpTemplate Master copy to implement communication via ISO-on-TCP protocol
TcpTemplate Master copy to implement communication via TCP protocol
TcpSecTemplate Master copy to implement secured communication via TCP protocol
UdpTemplate Master copy to implement communication via UDP protocol

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 77
8 OUC Master Copies

Master copies for S7-300/400


Table 8-2: Master copies for S7-300/400
Name Description
IsoOnTcpTemplate Master copy to implement communication via ISO-on-TCP protocol
TcpTemplate Master copy to implement communication via TCP protocol
UdpTemplate Master copy to implement communication via UDP protocol

8.3 Interface Description


8.3.1 IsoOnTcpTemplate for S7-1200/1500

Functional description
The FB "IsoOnTcpTemplate" implements a complete ISO-on-TCP communication relation to a
partner. It encapsulates all OUC commands in a user-friendly shell to perform the following
functions:
• Connection establishment and termination via the input "enable"
• Send user data of length "sendLen" to the partner via the "sendData" input as soon as the
"send" input detects a positive edge.
• Receive data from a partner and output it in the receive area at the "rcvdData" parameter.
 Siemens AG 2021 All rights reserved

• Output the status of transmission and connection at the output parameter "status".

Note If the received data is stored in an optimized data block, the input parameter "rcvLen" must
contain the value 0. For a standard data block, this input parameter must contain the number
of bytes to be received.

Parameter
Figure 8-1: IsoOnTcpTemplate
IsoOnTcpTemplate

Bool enable valid Bool

Bool send ndr Bool

UInt rcvLen done Bool

UInt sendLen busy Bool

TCON_IP_RFC connParam error Bool

rcvdLen UDInt

status Word

diagnostics "typeDiagnostics"
sendData
Variant Variant
rcvdData
Variant Variant

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 78
8 OUC Master Copies

Table 8-3: Parameters of IsoOnTcpTemplate


Name P type Data type Comment
enable IN Bool Release signal for connection setup and data
exchange
send IN Bool Triggering the send job
rcvLen IN UInt Receive data length
If the receive data is stored in an optimized DB, then
rcvLen = 0.
sendLen IN UInt Maximum number of bytes sent with the job
connParam IN TCON_IP_RFC Connection parameters
valid OUT Bool TRUE: The block executes its function without error
ndr OUT Bool TRUE: New data has been received
done OUT Bool TRUE: The send job was successfully executed
busy OUT Bool TRUE: The block is executed
error OUT Bool TRUE: An error has occurred
rcvdLen OUT UDInt Length in bytes of the previously received data
status OUT Word Status and error codes (see chapter 8.4)
diagnostics OUT "typeDiagnostics" Advanced diagnostic information (see chapter 9.2)
sendData IN_OUT Variant Transmit data range
rcvdData IN_OUT Variant Receive data range
 Siemens AG 2021 All rights reserved

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 79
8 OUC Master Copies

8.3.2 IsoOnTcpTemplate for S7-300/400

Functional description
The FB "IsoOnTcpTemplate" implements a complete ISO-on-TCP communication relation to a
partner. It encapsulates all OUC commands in a user-friendly shell to perform the following
functions:
• Connection establishment and termination via the input "enable"
• Send user data of length "sendLen" to the partner via the "sendData" input as soon as the
"send" input detects a positive edge.
• Receive data from a partner and output it in the receive area at the "rcvdData" parameter.
The reception range is determined by the following two values:
– Pointer to the start of the area
– Length of the area
• Output the status of transmission and connection at the output parameter "status".

Note With ISO-on-TCP, the length of the area is defined either by the parameter rcvLen (if rcvLen
<> 0) or the length specification of the parameter "rcvData" (rcvLen = 0).
 Siemens AG 2021 All rights reserved

Parameter
Figure 8-2: IsoOnTcpTemplate
IsoOnTcpTemplate

Bool enable valid Bool

Bool send ndr Bool

Int rcvLen done Bool

Int sendLen busy Bool

TCON_PAR connParam error Bool

rcvdLen Int

status Word

diagnostics "typeDiagnostics"
sendData
Any Any
rcvdData
Any Any

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 80
8 OUC Master Copies

Table 8-4: IsoOnTcpTemplate


Name P type Data type Comment
enable IN Bool Release signal for connection setup and data exchange
send IN Bool Triggering a send job
rcvLen IN Int Receive data length
• rcvLen = 0 (recommended):
The length of the receive area is defined by the
receive data area "rcvData".
• rcvLen <> 0:
Receive data length
sendLen IN Int Maximum number of bytes sent with the job
connParam IN TCON_PAR Connection parameters
valid OUT Bool TRUE: The block executes its function without error
ndr OUT Bool TRUE: New data has been received
done OUT Bool TRUE: The send job was successfully executed
busy OUT Bool TRUE: The block is executed
error OUT Bool TRUE: An error has occurred
rcvdLen OUT Int Length in bytes of the previously received data
status OUT Word Status and error codes (see chapter 8.4)
diagnostics OUT "typeDiagnostics" Advanced diagnostic information (see chapter 9.2)
sendData IN_OUT Any Transmit data range
 Siemens AG 2021 All rights reserved

rcvdData IN_OUT Any Receive data range

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 81
8 OUC Master Copies

8.3.3 TcpTemplate for S7-1200/1500

Functional description
The FB "TcpTemplate" implements a complete TCP communication relationship to a partner. It
encapsulates all OUC commands in a user-friendly shell to perform the following functions:
• Connection establishment and termination via the input "enable"
• Send user data of length "sendLen" to the partner via the "sendData" input as soon as the
"send" input detects a positive edge.
• Receive data from a partner and output it in the receive area at the "rcvdData" parameter.
• Output the status of transmission and connection at the output parameter "status".

Note Activate the Adoc mode to receive telegrams with dynamic data length. In this case the input
parameter "rcvLen" is irrelevant.
Deactivate the Adhoc mode to receive telegrams with fixed data length. In this case you
have to specify the number of bytes to be received at the input parameter "rcvLen".

Parameter
Figure 8-3: TcpTemplate
 Siemens AG 2021 All rights reserved

TcpTemplate

Bool enable valid Bool

Bool send ndr Bool

UDInt rcvLen done Bool

UDInt sendLen busy Bool

Bool adhocMode error Bool

TCON_IP_v4 connParam rcvdLen UDInt

status Word

diagnostics "typeDiagnostics"
sendData
Array[*] of Byte Array[*] of Byte
rcvdData
Array[*] of Byte Array[*] of Byte

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 82
8 OUC Master Copies

Table 8-5: Parameters of TcpTemplate


Name P type Data type Comment
enable IN Bool Release signal for connection setup and data exchange
send IN Bool Triggering the send job
rcvLen IN UDInt Receive data length
• S7-1500 CPUs: maximum 65536 bytes
• S7-1200 CPUs maximum 8192 bytes
Note
Parameter is irrelevant when Adhoc mode is enabled. As
much data is read as is currently available. The max. data
length is defined by the length of the receive area
referenced by rcvData.
sendLen IN UDInt Maximum number of bytes sent with the job.
• S7-1500 CPUs: maximum 65536 bytes
• S7-1200 CPUs maximum 8192 bytes
adhocMode IN Bool 1 (ad hoc enabled):
• The data is available immediately.
• Data reception with dynamic data length
0 (ad-hoc disabled):
• The data is available as soon as the data length
specified at parameter LEN has been received
completely.

 Siemens AG 2021 All rights reserved

Data reception with specified data length.


connParam IN TCON_IP_v4 Connection parameters
valid OUT Bool TRUE: The block executes its function without error
ndr OUT Bool TRUE: New data has been received
done OUT Bool TRUE: The send job was successfully executed
busy OUT Bool TRUE: The block is executed
error OUT Bool TRUE: An error has occurred
rcvdLen OUT UDInt Length in bytes of the previously received data
status OUT Word Status and error codes (see chapter 8.4)
diagnostics OUT "typeDiagnostics" Advanced diagnostic information (see chapter 9.2)
sendData IN_OUT Array[*] of Byte Transmit data range
rcvdData IN_OUT Array[*] of Byte Receive data range

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 83
8 OUC Master Copies

8.3.4 TcpTemplate for S7-300/400

Functional description
The FB "TcpTemplate" implements a complete TCP communication relationship to a partner. It
encapsulates all OUC commands in a user-friendly shell to perform the following functions:
• Connection establishment and termination via the input "enable"
• Send user data of length "sendLen" to the partner via the "sendData" input as soon as the
"send" input detects a positive edge
• Receive data from a partner and output it in the receive area at the "rcvdData" parameter.
The reception range is determined by the following two values:
– Pointer to the start of the area
– Length of the area
• Output the status of transmission and connection at the output parameter "status"

Note Activate the Adoc mode to receive telegrams with dynamic data length. In this case the input
parameter "rcvLen" is irrelevant.
Deactivate the Adhoc mode to receive telegrams with fixed data length. In this case you
have to specify the number of bytes to be received at the input parameter "rcvLen".
 Siemens AG 2021 All rights reserved

Parameter
Figure 8-4: TcpTemplate
TcpTemplate

Bool enable valid Bool

Bool send ndr Bool

Int rcvLen done Bool

Int sendLen busy Bool

Bool adhocMode error Bool

TCON_PAR connParam rcvdLen DInt

status Word

diagnostics "typeDiagnostics"
sendData
Array[1..32767] of Byte Array[1..32767] of Byte
rcvdData
Array[1..32767] of Byte Array[1..32767] of Byte

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 84
8 OUC Master Copies

Table 8-6: Parameters of TcpTemplate


Name P type Data type Comment
enable IN Bool Release signal for connection setup and data exchange
send IN Bool Triggering the send job
rcvLen IN Int Length of the receive data, max. 32767 bytes at the
following CPUs:
• CPUs 31x-2 PN/DP as of firmware V3.1
• CPUs 31x-3 PN/DP as of firmware V3.2
• CPUs 412-2 PN
• CPUs 41x-3 PN/DP
• CPUs 41x-5H PN/DP
Note
Parameter is irrelevant if Adhoc mode is enabled. As
much data is read as is currently available. The max.
data length is defined by the length of the receive area
referenced by rcvData.
sendLen IN Int Maximum number of bytes that are sent with the job, For
the following CPUs the maximum number is 32767
bytes:
• CPUs 31x-2 PN/DP as of firmware V3.1
• CPUs 31x-3 PN/DP as of firmware V3.2
• CPUs 412-2 PN
• CPUs 41x-3 PN/DP
 Siemens AG 2021 All rights reserved

• CPUs 41x-5H PN/DP


adhocMode IN Bool 1 (ad hoc enabled):
• The data is available immediately.
• Data reception with dynamic data length
0 (ad-hoc disabled):
• The data is available as soon as the data length
specified at parameter LEN has been received
completely.
• Data reception with specified data length.
connParam IN TCON_PAR Connection parameters
valid OUT Bool TRUE: The block executes its function without error
ndr OUT Bool TRUE: New data has been received
done OUT Bool TRUE: The send job was successfully executed
busy OUT Bool TRUE: The block is executed
error OUT Bool TRUE: An error has occurred
rcvdLen OUT DInt Length in bytes of the previously received data
status OUT Word Status and error codes (see chapter 8.4)
diagnostics OUT "typeDiagnostics" Advanced diagnostic information (see chapter 9.2)
sendData IN_OUT Array[1..32767] of Transmit data range
byte
rcvdData IN_OUT Array[1..32767] of Receive data range
byte

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 85
8 OUC Master Copies

8.3.5 TcpSecTemplate for S7-1200/1500

Functional description
The FB "TcpSecTemplate" implements a complete TCP communication relationship to a
partner.
With the FB "TcpSecTemplate" and with S7-1200 CPUs as of firmware V4.4 and S7-1500 CPUs
from firmware V2.0, it is possible to parameterize the communication connections at TCP via
IPv4 by means of Secure Communication.
It encapsulates all OUC commands in a user-friendly shell to perform the following functions:
• Connection establishment and termination via the input "enable"
• Send user data of length "sendLen" to the partner via the "sendData" input as soon as the
"send" input detects a positive edge
• Receive data from a partner and output it in the receive area at the "rcvdData" parameter.
• Output the status of transmission and connection at the output parameter "status"

Note Activate the Adoc mode to receive telegrams with dynamic data length. In this case the input
parameter "rcvLen" is irrelevant.
Deactivate the Adhoc mode to receive telegrams with fixed data length. In this case you have
to specify the number of bytes to be received at the input parameter "rcvLen".
 Siemens AG 2021 All rights reserved

Parameter
Figure 8-5: TcpSecTemplate
TcpSecTemplate

Bool enable valid Bool

Bool send ndr Bool

UDInt rcvLen done Bool

UDInt sendLen busy Bool

Bool adhocMode error Bool

TCON_IP_V4_SEC connParam rcvdLen UDInt

status Word

diagnostics "typeDiagnostics"
sendData
Array[*] of Byte Array[*] of Byte
rcvdData
Array[*] of Byte Array[*] of Byte

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 86
8 OUC Master Copies

Table 8-7: Parameters of TcpSecTemplate


Name P type Data type Comment
enable IN Bool Release signal for connection setup and data exchange
send IN Bool Triggering the send job
rcvLen IN UDInt Receive data length
• S7-1500 CPUs: maximum 65536 bytes
• S7-1200 CPUs maximum 8192 bytes
Note
Parameter is irrelevant when Adhoc mode is enabled.
As much data is read as is currently available. The max.
data length is defined by the length of the receive area
referenced by rcvData.
sendLen IN UDInt Number of bytes sent with the job.
• S7-1500 CPUs: maximum 65536 bytes
• S7-1200 CPUs maximum 8192 bytes
Note
If the adhoc mode is activated, the total length of the
telegram is transmitted in the first 4 bytes. These
additional 4 bytes must be taken into account at the
"sendLen" parameter, i.e.
sendLen = 4 byte + user data
adhocMode IN Bool 1 (ad hoc enabled):
• The data is available immediately.

 Siemens AG 2021 All rights reserved

Data reception with dynamic data length


0 (ad-hoc disabled):
• The data is available as soon as the data length
specified at parameter LEN has been received
completely.
• Data reception with specified data length.
connParam IN TCON_IP_V4_SEC Connection parameters (see TIA Portal information
system)
valid OUT Bool TRUE: The block executes its function without error
ndr OUT Bool TRUE: New data has been received
done OUT Bool TRUE: The send job was successfully executed
busy OUT Bool TRUE: The block is executed
error OUT Bool TRUE: An error has occurred
rcvdLen OUT UDInt Length in bytes of the previously received data
status OUT Word Status and error codes (see chapter 8.4)
diagnostics OUT "typeDiagnostics" Advanced diagnostic information (see chapter 9.2)
sendData IN_OUT Array[*] of Byte Transmit data range
rcvdData IN_OUT Array[*] of Byte Receive data range

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 87
8 OUC Master Copies

8.3.6 UdpTemplate for S7-1200/1500

Functional description
The FB "UdpTemplate" implements a complete UDP communication relation to a partner. It
encapsulates all OUC commands in a user-friendly shell module to perform the following
functions:
• Connection establishment and termination via the input "enable"
• Send user data at the "sendData" input with the length "sendLen" to the partner as soon as
the "send" input detects a positive edge
• Receive data from a partner and output it in the receive area at the "rcvdData" parameter
• Output the status of transmission and connection at the output parameter "status"

Parameter
Figure 8-6: UdpTemplate
UdpTemplate

Bool enable valid Bool

Bool send ndr Bool

UInt rcvLen done Bool


 Siemens AG 2021 All rights reserved

UInt sendLen busy Bool

TCON_IP_v4 connParam error Bool

TADDR_Param addrTurcv rcvdLen UDInt

TADDR_Param addrTusend status Word

diagnostics "typeDiagnostics"
sendData
Variant Variant
rcvdData
Variant Variant

Table 8-8: Parameters of UdpTemplate


Name P type Data type Comment
enable IN Bool Release signal for connection setup and data exchange
send IN Bool Triggering the send job
rcvLen IN UInt Length of the receive area in bytes:
Value range: 0 (recommended) or 1 to 1472 (as of
firmware version V2.5 of the S7-1500 CPUs with Unicast
or Multicast: 1 to 2048)
sendLen IN UInt Number of bytes that are to be sent with the job
Value range: 1 to 1472 (as of firmware version V2.5 of the
S7-1500 CPUs with Unicast or Multicast: 1 to 2048)
connParam IN TCON_IP_v4 Connection parameters
Detailed information can be found in the TIA Portal
information system.

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 88
8 OUC Master Copies

Name P type Data type Comment


addrTurcv IN TADDR_Param Address information of the communication partner for the
"TURCV" command
Detailed information can be found in the TIA Portal
information system.
addrTusend IN TADDR_Param Address information of the communication partner for the
"TSEND" command
Detailed information can be found in the TIA Portal
information system.
valid OUT Bool TRUE: The block executes its function without error
ndr OUT Bool TRUE: New data has been received
done OUT Bool TRUE: The send job was successfully executed
busy OUT Bool TRUE: The block is executed
error OUT Bool TRUE: An error has occurred
rcvdLen OUT UDInt Number of actually received data in bytes
status OUT Word Status and error codes (see chapter 8.4)
diagnostics OUT "typeDiagnostics" Advanced diagnostic information (see chapter 9.2)
sendData IN_OUT Variant Transmission range, contains address and length
The address refers to:
• A data block
• A marker

 Siemens AG 2021 All rights reserved

The process image of inputs


• The process image of outputs
When structures are transmitted, the structures on the
transmit and receive sides must be identical.
rcvdData IN_OUT Variant Receive area
The address refers to:
• A data block
• A marker
• The process image of inputs
• The process image of outputs
When structures are transmitted, the structures on the
transmit and receive sides must be identical.

Note When sending more than 1472 bytes, you must ensure that your receiver supports more than
1472 bytes. If this is not the case, you will not notice the failed reception on the transmitter
side.

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 89
8 OUC Master Copies

8.3.7 UdpTemplate for S7-300/400

Functional description
The FB "UdpTemplate" implements a complete UDP communication relation to a partner. It
encapsulates all OUC commands in a user-friendly shell module to perform the following
functions:
• Connection establishment and termination via the input "enable"
• Send user data at the "sendData" input with the length "sendLen" to the partner as soon as
the "send" input detects a positive edge
• Receive data from a partner and output it in the receive area at the "rcvdData" parameter.
The reception range is determined by the following two values:
– Pointer to the start of the area
– Length of the area
• Output the status of transmission and connection at the output parameter "status"

Note The length of the receive area must be at least as large as the length of the receive data.

Parameter
 Siemens AG 2021 All rights reserved

Figure 8-7: UdpTemplate


UdpTemplate

Bool enable valid Bool

Bool send ndr Bool

Int rcvLen done Bool

Int sendLen busy Bool

TCON_PAR connParam error Bool

TADDR_PAR addrTurcv rcvdLen Int

TADDR_PAR addrTusend status Word

diagnostics "typeDiagnostics"
sendData
Any Any
rcvdData
Any Any

Table 8-9: Parameters of UdpTemplate


Name P type Data type Comment
enable IN Bool Release signal for connection setup and data exchange
send IN Bool Triggering the send job
rcvLen IN Int Length of the received data (in bytes): 1 to 1472
sendLen IN Int Maximum number of bytes sent with the job
connParam IN TCON_PAR Connection parameters
Detailed information can be found in the TIA Portal
information system.

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 90
8 OUC Master Copies

Name P type Data type Comment


addrTurcv IN TADDR_PAR Address information of the communication partner for the
"TURCV" command
Detailed information can be found in the TIA Portal
information system.
addrTusend IN TADDR_PAR Address information of the communication partner for the
"TSEND" command
Detailed information can be found in the TIA Portal
information system.
valid OUT Bool TRUE: The block executes its function without error
ndr OUT Bool TRUE: New data has been received
done OUT Bool TRUE: The send job was successfully executed
busy OUT Bool TRUE: The block is executed
error OUT Bool TRUE: An error has occurred
rcvdLen OUT Int Length in bytes of the previously received data
status OUT Word Status and error codes (see chapter 8.4)
diagnostics OUT "typeDiagnostics" Advanced diagnostic information (see chapter 9.2)
sendData IN_OUT Any Transmission range, contains address and length
The address refers to:
• A data block
• A marker

 Siemens AG 2021 All rights reserved

The process image of inputs


• The process image of outputs
rcvdData IN_OUT Any Transmission area, contains address and length
The address refers to:
• A data block
• A marker
• The process image of inputs
• The process image of outputs

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 91
8 OUC Master Copies

8.4 Error Handling


General information about the status outputs and the diagnostics of the blocks of these libraries
can be found in chapter 9.2.
The following are the status and error codes specific to the OUC master copies.

Table 8-10: Status and error codes


Status Meaning
16#0000 Job completed successfully
16#7000 No job active
16#7001 First call of the command
16#7002 Follow-up call of the command
16#8408 Time-out: The job could not be completed within the specified time.
Possible reasons for a time-out:
• Partner is not available
16#8600 The FB is in an invalid state.
16#8601 Error in subordinate command "TCON"
The error code of the command is output to "diagnostics.subfunctionStatus". For the
meaning of the respective error code, refer to the TIA Portal information system or the
STEP 7 online help.
 Siemens AG 2021 All rights reserved

16#8602 Error in subordinate command "TSEND" or "TUSEND"


The error code of the command is output to "diagnostics.subfunctionStatus". For the
meaning of the respective error code, refer to the TIA Portal information system or the
STEP 7 online help.
16#8603 Error in subordinate command "TRCV" or "TURCV"
The error code of the command is output to "diagnostics.subfunctionStatus". For the
meaning of the respective error code, refer to the TIA Portal information system or the
STEP 7 online help.
16#8604 Error in subordinate command "TDISCON"
The error code of the command is output to "diagnostics.subfunctionStatus". For the
meaning of the respective error code, refer to the TIA Portal information system or the
STEP 7 online help.

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 92
9 Useful Information

9 Useful Information
9.1 Library in the TIA Portal
Most of the blocks are stored as types in the library. Thus, the blocks are versioned and can use
the following advantages:
• Central update function for library elements
• Versioning of library elements

Note For information on library use in general, see the Guide to Library Use:
https://support.industry.siemens.com/cs/ww/en/view/109747503

Note All blocks in the library were created in accordance with the programming style guide:
https://support.industry.siemens.com/cs/ww/en/view/81318674

For more information on libraries in the TIA Portal:


• How do you open, edit and upgrade global libraries in the TIA Portal?
 Siemens AG 2021 All rights reserved

https://support.industry.siemens.com/cs/ww/en/view/37364723
• TIA Portal in under 10 minutes: Time Savers – Global libraries
https://support.industry.siemens.com/cs/ww/en/view/78529894
• Which elements from STEP 7 (TIA Portal) and WinCC (TIA Portal) can be stored in a library
as a type or as a master copy?
https://support.industry.siemens.com/cs/ww/en/view/109476862
• When starting the TIA Portal V13 and higher, how do you get a global library to open
automatically and use it as corporate library, for example?
https://support.industry.siemens.com/cs/ww/en/view/100451450

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 93
9 Useful Information

9.2 Diagnostics
The blocks use a uniform diagnostic concept according to the programming style guide for
SIMATIC S7-1200/1500.
All blocks have the outputs "busy", "error", "status", and "diagnostics". Depending on the type of
block (continuous or one-time asynchronous processing), it can also have an output of "valid" or
"done".
If the block implements both continuous and one-time asynchronous functions (e.g. connection
setup and monitoring and sending a message), it can also have both outputs.
The "valid" or "done", "busy", "error", and "status" outputs show the current status and errors,
while the "diagnostics" output provides a diagnostic structure with detailed information in the
event of an error.

Reset behavior of the outputs for blocks with "execute"

Note As long as the input "execute" is set, the outputs keep their value. If the "execute" input is
reset before the processing of the FB is completed, the values of the output parameters are
output for one cycle after the job is processed.

For more information, refer to the programming style guide for SIMATIC S7-1200/1500:
https://support.industry.siemens.com/cs/ww/en/view/81318674
 Siemens AG 2021 All rights reserved

status
The "status" output provides current information as well as errors according to the following
value range.
Detailed information on the status/error codes can be found in the "Error handling" chapter of
the respective library.

Table 9-1: Value ranges for information


Information Value range
Job completed, no warning and no further details 16#0000
Job completed, further detailing 16#0001..16#0FFF
No job in process (also initial value) 16#7000
First call after input of a new job (rising edge on "execute") 16#7001
Subsequent call during active processing without further details 16#7002
Follow-up call during active machining with further detail. 16#7003..16#7FFF
Occurred warnings that do not further affect the operation.

Table 9-2: Value ranges for errors


Errors Value range
Incorrect operation of the function block 16#8001..16#81FF
Error in the parameterization 16#8200..16#83FF
Faults when executing from outside 16#8400..16#85FF
(e.g. wrong I/O signals, axis not referenced)
Faults when executing internally 16#8600..16#87FF
(e.g. when a system function is called)
Reserved 16#8800..16#8FFF
User-defined error classes 16#9000..16#FFFF

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 94
9 Useful Information

diagnostics
In the event of an error, the "diagnostics" output gives detailed information about the pending
error.
The values of the "diagnostics" output are only written when an error occurs and are retained
until a new job is started or another error has occurred and overwrites the values.
Unless otherwise described, the "diagnostics" output uses the PLC data type "typeDiagnostics",
which is structured as follows:

Table 9-3: PLC data type typeDiagnostics


Tag Type Description
status Word Status of the FB at the time of the error.
subfunctionStatus DWord Status or returned value from internal commands or FBs where an
error occurred.
For detailed information, refer to the online help for the respective
command or the documentation of the respective FB.
stateNumber DInt State of the internal state machine in which the error occurred.
 Siemens AG 2021 All rights reserved

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 95
10 Appendix

10 Appendix
10.1 Service and support
Industry Online Support
Do you have any questions or need assistance?
Siemens Industry Online Support offers round the clock access to our entire service and support
know-how and portfolio.
The Industry Online Support is the central address for information about our products, solutions
and services.
Product information, manuals, downloads, FAQs, application examples and videos – all
information is accessible with just a few mouse clicks: support.industry.siemens.com

Technical Support
The Technical Support of Siemens Industry provides you fast and competent support regarding
all technical queries with numerous tailor-made offers
– ranging from basic support to individual support contracts. Please send queries to Technical
Support via Web form:
www.siemens.com/industry/supportrequest
 Siemens AG 2021 All rights reserved

SITRAIN – Digital Industry Academy


We support you with our globally available training courses for industry with practical
experience, innovative learning methods and a concept that’s tailored to the customer’s specific
needs.
For more information on our offered trainings and courses, as well as their locations and dates,
refer to our web page:
www.siemens.com/sitrain

Service offer
Our range of services includes the following:
• Plant data services
• Spare parts services
• Repair services
• On-site and maintenance services
• Retrofitting and modernization services
• Service programs and contracts
You can find detailed information on our range of services in the service catalog web page:
support.industry.siemens.com/cs/sc

Industry Online Support app


You will receive optimum support wherever you are with the "Siemens Industry Online Support"
app. The app is available for iOS and Android:
support.industry.siemens.com/cs/ww/en/sc/2067

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 96
10 Appendix

10.2 Industry Mall

The Siemens Industry Mall is the platform on which the entire Siemens Industry product portfolio
is accessible. From the selection of products to the order and the delivery tracking, the Industry
Mall enables the complete purchasing processing – directly and independently of time and
location:
mall.industry.siemens.com

10.3 Links and literature


Table 10-1
No. Subject
\1\ Siemens Industry Online Support
https://support.industry.siemens.com
 Siemens AG 2021 All rights reserved

\2\ Link to the entry page of the library


https://support.industry.siemens.com/cs/ww/en/view/109780503
\3\ Application example for library "LCom" as well as blocks for S7-300/400 and SIMOTION
https://support.industry.siemens.com/cs/ww/en/view/48955385
\5\ Application example for the "LMQTT" library
https://support.industry.siemens.com/cs/ww/en/view/109748872
\6\ Application example for the "LOpcUa" library
https://support.industry.siemens.com/cs/ww/en/view/109782455
\8\ Application example for the "LSNMP" library
https://support.industry.siemens.com/cs/ww/en/view/57249109
\9\ Application example for the "LSyslog" library
https://support.industry.siemens.com/cs/ww/en/view/51929235

10.4 Change documentation


Table 10-2
Version Date Change
V1.0.0 01/2021 First edition

Libraries for Communication


Entry ID: 109780503, V1.0.0, 01/2021 97

You might also like