Libraries Comm Controller DOC V1 0 0 en
Libraries Comm Controller DOC V1 0 0 en
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.
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
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
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).
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
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.
Camera
CPU
Application
Siemens AG 2021 All rights reserved
S7-1500 CPU
LCom_Communication
IDB
IDB
Ethernet
Interface
Switch
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.
Camera
CPU
Application
LCom_Communication
IDB
IDB
Siemens AG 2021 All rights reserved
Ethernet
Interface
Switch
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.
CPU
Application
S7-1500 CPU
LCom_Communication
IDB
IDB
Siemens AG 2021 All rights reserved
Ethernet
Interface
Switch
Applies to
• SIMATIC S7-1500 Controller as of firmware V1.8.0
• SIMATIC S7-1200 controller as of firmware V4.1.1
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.
Parameter
Figure 2-4: LCom_Communication
LCom_Communication
error Bool
status Word
sendBuffer
Variant Variant
receiveBuffer
Variant Variant
diagnostics
"LCom_typeDiagnostics" "LCom_typeDiagnostics"
Siemens AG 2021 All rights reserved
LCom_typeConfig
The following table shows the structure of the PLC data type "LCom_typeConfig".
LCom_typeDiagnostics
The following table shows the structure of the PLC data type "LCom_typeDiagnostics".
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
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.
5) 6)
enable 1
(IN) 0
1)
1
busy
(OUT)
Siemens AG 2021 All rights reserved
2) 3) 4)
error 1
(OUT) 0
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.
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
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
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
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
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
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
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
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
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.
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.
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
advanced options
Description
The block implements the HTTP method GET to fetch data from a web server.
Parameter
Figure 3-2: LHTTP_Get
LHTTP_Get
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
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.
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.
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
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
Time timeOut
responseData
Array[*] of Char Array[*] of Char
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.
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.
If 256 characters are not enough, the array can be increased by adjusting the local constant
Note "UPPER_USER_FIELDS".
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
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
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
LHTTP_typeTLS
The PLC data type "LHTTP_typeTLS" references the certificates required for secure
connections via HTTPS.
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
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
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
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.
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.
Figure 4-1
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
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
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
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
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.
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
bytesUsed USInt
error Bool
status Word
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
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
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.
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
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
OPC UA PubSub
via UDP
Siemens AG 2021 All rights reserved
LOpcUa_
PubUDP
Publisher Subscriber
OPC UA PubSub
via UDP
LOpcUa_
SubUDP
Subscriber Publisher
PROFINET / IE
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".
Applies to
The library is valid for SIMATIC S7-1500 controllers as of firmware V2.0.
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
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.
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
diagnostics "typeDiagnostics"
readerGroup
Siemens AG 2021 All rights reserved
"LOpcUa_typeReaderGroup" "LOpcUa_typeReaderGroup"
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.
LOpcUa_typeWriterGroup
The PLC data type "LOpcUa_typeWriterGroup" implements the WriterGroups.
LOpcUa_typeDataSetWriter
The PLC data type "LOpcUa_typeDataSetWriter" implements the DataSetWriter.
LOpcUa_typePublishedDataSet
The PLC data type "LOpcUa_typePublishedDataSet" implements the PublishedDataSets.
LOpcUa_typeVariant
The PLC data type "LOpcUa_typeVariant" implements the data type "Variant" for PubSub
communication.
LOpcUa_typeReaderGroup
The PLC data type "LOpcUa_typeReaderGroup" implements the ReaderGroup.
LOpcUa_typeDataSetReader
The PLC data type "LOpcUa_ typeDataSetReader " implements the DataSetReader.
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.
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.
Note The blocks of this library support sending and receiving SNMP messages that do not exceed
Siemens AG 2021 All rights reserved
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
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
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
diagnostics "typeDiagnostics"
connParam
"LSNMP_typeConnParam" "LSNMP_typeConnParam"
varBindings
Array[*] of "LSNMP_typeVarBind" Array[*] of "LSNMP_typeVarBind"
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"
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
status Word
diagnostics "typeDiagnostics"
Siemens AG 2021 All rights reserved
connParam
"LSNMP_typeConnParam" "LSNMP_typeConnParam"
varBinding
"LSNMP_typeVarBind" "LSNMP_typeVarBind"
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
busy Bool
error Bool
status Word
Siemens AG 2021 All rights reserved
diagnostics "typeDiagnostics"
connParam
"LSNMP_typeConnParam" "LSNMP_typeConnParam"
data
"LSNMP_typeDataSendTrap" "LSNMP_typeDataSendTrap"
LSNMP_typeConnParam
The PLC data type "LSNMP_typeConnParam" contains parameters that are required to
establish a connection to the partner.
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
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.
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
• 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.
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
Function blocks
Table 7-1: Function blocks
Name Version Description
LSyslog_Send V 2.0.0 Organizes the transmission and
creation of the telegrams.
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
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
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.
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
LSyslog_typeMessage
The PLC data type describes all parameters of the syslog message to be sent.
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
8.2 Components
The following FBs are available as master copies.
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
rcvdLen UDInt
status Word
diagnostics "typeDiagnostics"
sendData
Variant Variant
rcvdData
Variant Variant
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
rcvdLen Int
status Word
diagnostics "typeDiagnostics"
sendData
Any Any
rcvdData
Any Any
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
status Word
diagnostics "typeDiagnostics"
sendData
Array[*] of Byte Array[*] of Byte
rcvdData
Array[*] of Byte Array[*] of Byte
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
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
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
status Word
diagnostics "typeDiagnostics"
sendData
Array[*] of Byte Array[*] of Byte
rcvdData
Array[*] of Byte Array[*] of Byte
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
diagnostics "typeDiagnostics"
sendData
Variant Variant
rcvdData
Variant Variant
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.
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
diagnostics "typeDiagnostics"
sendData
Any Any
rcvdData
Any Any
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
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
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.
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.
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:
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
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
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