CODESYS IIoT Libraries SL

The software package “IIoT Libraries SL” contains libraries for “IIoT communication” and libraries for reading and writing of data structures.

Current version
1.11.0.0
Article number
2311000000
$84.00

Product Description

The product “IIoT Libraries SL” contains numerous libraries to support different communication protocols (for example, MQTT and HTTPS) and includes tools for encoding and decoding data structures (for example, JSON and XML). Moreover, libraries with POUs for direct communication with cloud services of individual providers (AWS, Azure, etc.) are provided. The components contained in the CODESYS package are ideally suited for communication in the IIoT environment.

Libraries for communication

Web Client SL

The library “Web Client SL” contains function blocks for communicating with a web server via HTTP or HTTPS.

  • The HTTP method GET requests data from a web server.

  • The HTTP methods POST and PUT submit data from the controller to a web server.

  • When using DELETE, data is deleted from a web server.

  • The HTTP method HEAD returns the HTTP header.

The HTTP header of a request can be extended without any restrictions. In addition, function blocks are included for HTTP basic authentication, Digest access authentication and authentication via OAuth (Version 1a and 2).

MQTT Client SL

MQTT (Message Queuing Telemetry Transport) is an open-source IoT protocol that allows for the transmission of telemetry data as messages between devices. Device communication always takes place by means of an MQTT broker (e.g. Mosquitto https://mosquitto.org/). Messages are sent and subscribed to based on topics. A topic corresponds to a path (e.g. device1/temperature). Subscribing to messages is done by specifying a topic filter. Wildcards are also permitted (+ for one level and # for multiple levels). The message format is not fixed, which means that a JSON string or any data structure can be transmitted.

With the “MQTT Client SL” library, messages can be sent from a CODESYS controller to an MQTT broker, and messages can be subscribed to based on topics.

Mail Service SL

This library contains function blocks for sending, receiving, and deleting emails by means of SMTP and POP3 protocols. Communication with the mail server can be established either encrypted (TLS) or unencrypted. A sample project demonstrates how to use the function blocks.

SMS Service SL

With this library it is possible to send, receive and delete short messages via a GSM modem.

SNMP Service SL

Supported SNMP features:

  • SNMP GET: Request a value.

  • SNMP GET_NEXT: Request a value and get the OID from the next value.

  • SNMP Agent: Enables devices to request values from the control (agent).

  • SNMP TRAP: Send and receive TRAP/INFORM telegrams.

  • SNMP SET: Set values via SNMP

Supported SNMP Versions

  • SNMP V1

  • SNMP V2c

  • SNMP V3

SNTP Service SL

The library SNTP Service SL contains function blocks for easy implementation of SNTP client and server components on a CODESYS control (SNTP V3, SNTP V4). The function block SNTPGetUTCTime can be used to request the UTC time of a SNTP/NTP server. The function block SNTPServer can be used to build a simple SNTP server.

Function blocks (FBs) of the SNTP library:

  • SNTPGetUTCTime: FB to request the time of a SNTP server (SNTP client)

  • SNTPServer: FB to send the local server time (SNTP server)

AWS IoT Core Client SL

The “AWS IoT Core” service is a managing cloud platform from Amazon in which connected devices can work together easily and safely with cloud applications and other devices. The “AWS IoT Core Client SL” library provides function blocks for sending and receiving messages. Communication is encrypted and takes place by means of the MQTT protocol. In the AES environment, messages are typically transmitted in JSON format. The “JSON Utilities” library can be used for parsing and creating JSON files.

Azure IoT Hub Client SL

The “Azure IOT Hub” cloud service from Microsoft directly links IoT devices. (For more detailed information, refer to https://azure.microsoft.com/en-us/services/iot-hub/). The “Azure IoT Hub Client SL” library provides function blocks for sending and receiving messages. A sample project demonstrates how to use the library.

JSON Web Token SL

The ‘JSON Web Token SL’ library contains a function block for creating a JWT (JSON Web Token) on the controller. For this purpose, the algorithms HS256, HS384, HS512, and RS256 are supported.

Web Socket Client SL

The WebSocket protocol allows for bidirectional communication between a client and a Web Socket Server over the Internet. Communication usually takes place via TCP port number 443 (or 80 for unsecured connections). The ‘Web Socket Client SL’ library provides function blocks for communication via the WebSocket protocol.

Libraries for reading and writing of data structures

CSV Utility SL

The library CSV Utility SL provides function blocks to read and write CSV files. The library contains the components CSVReader (read a CSV file) and CSVWriter (write a CSV file). All function blocks can be used in a classical or object oriented way. An example project demonstrates the usage of all components.

INI File Utility SL

“INI File Utility SL” is a library to read and write INI files. The library contains function blocks to read, write and find values of INI files. An example project shows the usage of the library and their function blocks.

JSON Utilities SL

The ‘JSON Utilities SL’ library provides the following functionalities:

  • Read JSON files (UTF-8 and UTF-16)

  • Read JSON byte arrays

  • Write JSON files (UTF-8 and UTF-16)

  • Read JSON byte arrays

  • Search for keys, values, and child and parent elements

The data is stored in an array of structures. Data access and element search is performed by means of methods from the JSONData function block. The simple creation of a JSON-File can be realized with funcion block JSONBuilder. The function blocks JSONByteArrayReader and JSONFileReader read data in JSON format and save the values in the JSONData function block. Writing files and byte arrays is performed by means of the function blocks JSONFileWriter and JSONByteArrayWriter.

A simple REST client can be implemented easily in connection with the library ‘Web Client SL’.

XML Utility SL

The library “XML Utility SL” contains function blocks to read and write xml files or xml strings on a control. All elements of the xml file are stored in an array of structures. The library also contains function blocks to find elements by name and attribute. The usage of the library is demonstrated by two example applications.

Important note for version 1.9.0.0

The company name of the libraries has been changed to ‘CODESYS’. When upgrading to version 1.9.0.0, the old libraries (< 1.9.0.0) must be removed via the Library Manager and the new libraries must be inserted.

The example projects are now installed in the folder ‘IIoT Libraries SL’ of the CODESYS installation (CODESYS root folder).

The library documentation is now integrated in the CODESYS Online Help. See https://content.helpme-codesys.com/en/libs/index.html The CHM files are no longer part of the package.

Requirements

Development system

CODESYS Development System V3.5.16.10

Runtime

CODESYS Control V3.5.15.20

Supported platforms and devices

Note: Use the “Device Reader” project for locating the functions supported by the PLC.

Additional requirements

The libraries Web Client SL, MQTT Client SL, Mail Service SL, AWS IoT Core Client SL, Azure IoT Hub Client SL require amongst others the libraries SysSocket2 3.5.16.0, Net Base Services, CmpCrypto, CmpTls 3.5.15.0 and CmpX509Cert.

The libraries CSV Utility SL, INI File Utility SL, JSON Utilities SL and XML Utility SL require amongst others the library SysFile.

The library SMS Service SL requires amongst others the library SysCom.

Restrictions

The inputs itfAsyncProperty and the AsyncProperty are supported for Net Base Services V3.5 SP17 Patch 4 and higher. For older versions, deadlocks may occur when the controller is reset. In this case the AsyncProperty must not be used.

Due to a bug in the Net Base Service library in version 3.5.19.0, TLS connections cannot be established. Please use a different version of Net Base Services.

Licensing

Single device license: The license can be used on the target device/PLC on which the CODESYS runtime system is installed.

Licenses are activated on a software-based license container (soft container), which is permanently connected to the controller. Alternatively, the license can be stored on a CODESYS Key (USB dongle). By replugging the CODESYS Key, the license can be used on any other controller.

Note: In demo mode, the software runs for 30 minutes without a license. After that, a manual restart is required.

Required accessories

-

Support

No Support

Technical support is not included with this product. To obtain technical support, please purchase a CODESYS Support Ticket.

 

For general error messages or pre-sales inquiries, please use the "My Question" contact form directly, which can also be used without logging in. A list of alternative support resources can be found in the support section of the CODESYS Group website.

Supplier

CODESYS Corporation
A member of the CODESYS Group


200 Cummings Center, Suite 272-D
Beverly, MA 01915, USA

Versions

Version History

Version Release Notes Release Date

CSV Utility SL-1.11.0.0

  • Bugfix: CSVReader read first line twice

Web Client SL-1.11.0.0

  • Bugfix: Improved error handling when reading certificates

  • Bugfix: Timeout in case of chunked packets

  • Set default value of maximum receive buffer to 20 000 bytes

JSON Utilities SL-1.11.0.0

  • Bugfix: Invalid integer value is not detected

  • Bugfix: Some characters cut data

SNMP Service SL-1.11.0.0

  • Bugfix: Community is always set to ‘public’

Mail Service SL-1.11.0.0

  • Bugfix: Attachments will change name during sending

XML Utility SL-1.11.0.0

  • Bugfix: Improved error handling

SMS Service SL-1.11.0.0

  • Marked as deprecated: The library SMS Service SL entered service phase in 2024 and will be discontinued in 2026.

20.08.2024

MQTT Client SL-1.10.0.0

  • Improved error handling

  • Bugfix: Wrong error handling in case of SEND_QUOTA_LIMIT_REACHED errors

  • Bugfix: MQTTClient reset does not clean up eMQTTError

  • Bugfix: Resolve host name must not block the current task

Web Client SL-1.10.0.0

  • Bugfix: Cleanup response content for chunked messages

  • Bugfix: BasicAuth does not work correctly with POST or PUT command

  • Bugfix: Timeout if Transfer-Encoding: chunked

  • Bugfix: DigestAuthWebClient with PUT command leads to error: INVALID_HASHALGORITHM

  • Bugfix: Resolve host name must not block the current task

Web Socket Client SL-1.10.0.0

  • Bugfix: Pong Payload is always empty

CSV Utility SL-1.10.0.0

  • Bugfix: CSV.ReadAll and CSV.NextElement reports error when try to read more than 32000 bytes

  • Bugfix: Filename is limited to 80 characters

  • Bugfix: Unexpected behavior if filename is empty

08.05.2024

All library versions are set to 1.9.0.0

MQTT Client SL-1.9.0.0

  • Major bugfix: Subscription of ‘retain’ messages

  • Improved error handling

  • Improved publisher behavior in case of a disabled client

  • Bugfix: Wrong maximum topic level limit and correlation data limit checks fixed

CSV Utility SL-1.9.0.0

  • Improved error handling

  • Improved file closing behavior

JSON Utilities SL-1.9.0.0

  • Improved license check

Azure IoT Hub Client SL-1.9.0.0

  • Bugfix, Example project: Reduced payload size

SNTP Service SL-1.9.0.0

  • Bugfix: IP addresses can now be changed

Google Cloud IoT Core Client SL

  • The library has been removed because the service has been discontinued.

Important note for version 1.9.0.0

The company name of the libraries has been changed to ‘CODESYS’. When upgrading to version 1.9.0.0, the old libraries (< 1.9.0.0) must be removed via the Library Manager and the new libraries must be inserted.

The example projects are now installed in the folder ‘IIoT Libraries SL’ of the CODESYS installation (CODESYS root folder).

The library documentation is now integrated in the CODESYS Online Help. See https://content.helpme-codesys.com/en/libs/index.html The CHM files are no longer part of the package.

11.09.2023

MQTT Client SL-1.4.0.0

  • Major bug fix: Support of topics and topic filters with more than 80 chars

  • Improved error handling

  • Fixed memory leak in case of inactive subscribers

  • Improved reset behavior of publisher and subscriber

  • Bug fix: Truncated user properties when the maximum property count has been reached

Web Client SL-1.3.0.0

  • New function block for digest authentication

  • Bug fix: Support of chunked HTTP responses

  • Bug fix: Parse error in case of large HTTP headers

  • BasicAuthWebClient: Input pwsAdditionalHeader now works correctly

JSON Utilities SL-1.3.0.0

  • Improved error handling

INI File Utility SL-1.1.0.0

  • Read and write INI data via byte buffers

AWS IoT Core Client SL-1.4.0.0

  • Read and write device shadows of other devices

  • Support of ClientIds with more than 23 chars

XML Utility SL-1.1.0.0

  • Improved error handling of XMLFindElementByStringAsync

SNTP Service SL-1.1.0.0

  • Parameter changes are now applied correctly

Azure IoT Hub Client SL-1.2.0.0

  • GenerateSaSToken now supports device name > 80 chars

  • Direct methods: Support of return payloads

  • Configurable ping interval

  • Integrated reconnect timer

CSV Utility SL-1.1.0.0

  • Improved error handling for invalid input configuration

  • Support of files larger than 32k bytes

  • Improved file closing behavior

12.04.2023

Google Cloud IoT Core Client SL-1.2.0.0

  • Bugfix (AsyncProperty)

  • Marked all FBs as obsolete. Google Cloud IoT Core will be discontinued on August 16, 2023. For more information, contact your Google Cloud account management team.

SNMP Service SL-1.1.0.0

  • SNMP V3 support

AWS IoT Core Client SL-1.3.0.0

  • Bugfix (AsyncProperty)

Azure IoT Hub Client SL-1.1.0.0

  • Bugfix (AsyncProperty)

  • Bugfix (SaS Token Generator)

Web Socket Client SL-1.3.0.0

  • Bugfix (AsyncProperty)

JSON Utilities SL-1.2.0.0

  • Writer FBs: Configurable line breaks, compact format

  • Bugfix (JsonBuilder.SetKeyWithValueNull)

MQTT Client SL-1.3.0.0

  • Important Bugfix (for topics > 80 chars)

  • Bugfix (AsyncProperty)

  • Improved error handling of the subscriber FB

Important information about using the AsyncProperty

The inputs itfAsyncProperty and the AsyncProperty are supported for Net Base Services V3.5 SP17 Patch 4 and higher. for older versions, deadlocks may occur when the controller is reset. In this case the AsyncProperty must not be used.

24.10.2022
MQTT Client SL-1.2.0.0
  • MQTT V5 support

  • New parameter g_udiMaxReceiveBufferSize

JSON Utilities SL-1.1.0.0
  • Improved JSONBuilder (data types, reset method)

  • New input xAsyncMode to disable asynchronous execution

  • Improved white space handling

  • General bug fixes

Web Client SL-1.2.0.0
  • Allow empty (blank) additional http header

AWS IoT Core Client SL-1.2.0.0
  • Support of ‘Clean Session’ flag

  • Extended maximum clientId length to 255 chars

  • Improved certificate handling

Web Socket Client SL-1.2.0.0
  • Bugfix for Windows CE devices

  • Extended maximum size of opening handshake request

  • General bug fixes

07.04.2022
MQTT Client SL-1.1.0.0
  • Support of MQTT over WebSockets

  • Bugfix: Fragmented packets are now received correctly

AWS IoT Core Client SL-1.1.0.0
  • Prefix ‘sCertCNPrefix’ added to certificate CN to prevent name conflicts with other certificates

Google Cloud IoT Core Client SL-1.1.0.0
  • Added the possibility to disable the built-in SNTP client (default) and edit the SNTP server name.

Web Socket Client SL-1.1.0.0
  • Bugfix: Receiving multiple data frames in one cycle is now possible

11.11.2021
AWS IoT Core Client SL-1.0.3.0
  • Improved timeout behavior of publisher and device shadow function blocks

  • Improved example project

Azure IoT Hub Client SL-1.0.3.0
  • New function block to generate SaS Tokens

JSON Utilities SL-1.0.4.0
  • JSONFileReader, Errors are now reset correctly

  • SetLRealRounded does now work for iDecimalPlaces > 4

Mail Service SL-1.1.3.0
  • Support HTML encoded emails

  • Bugfix: Multiple recipients

  • Support of STARTTLS (needs Net Base Services 3.5.17.0)

MQTT Client SL-1.0.3.0
  • MQTTClient: New input udiTimeout

Web Client SL-1.1.2.0
  • Bugfix: Invalid requests if webserver runs in sync mode

  • Bugfix: TCP_INIT_ERROR after 10 requests on a existing TLS connection

  • Bugfix: Close connection if required

  • OAuth2: Support Token lengths > 255

  • Bugfix: URL_ENCODE_(W)STRING might lead to StackOverflow

Web Socket Client SL-1.0.0.0
  • New library

XML Utility SL-1.0.4.0
  • Improved XMLGetElementAsync performance

  • Bugfix: Missing elements in mode READ_MODE.Recursive

General:
  • All packages and libraries are signed now

11.08.2021
AWS IoT Core Client SL
  • Integration of the library ‘Net Base Services’

Google Cloud IoT Core Client
  • Integration of the library ‘Net Base Services’

Azure IoT Hub Client SL
  • Integration of the library ‘Net Base Services’

Mail Service SL
  • Integration of the library ‘Net Base Services’

  • Support of multiple recipients with display name

MQTT Client SL
  • Integration of the library ‘Net Base Services’

  • Added filter mode for subscribers

  • Improved send/receive performance

  • Improved error handling

  • Bugfix: Clean up of interal queues after disconnect

SNMP Service SL
  • Integration of the library ‘Net Base Services’

  • Bugfix: OID encoding

  • Bugfix: SNMP trap, field enterprise

SNTP Service SL
  • Integration of the library ‘Net Base Services’

Web Client SL
  • Integration of the library ‘Net Base Services’

XML Utility SL
  • Bugfix: Self closing tags

With the integration of the library ‘Net Base Services’ TLS connections can be configured via the TLS context.

23.11.2020
- 27.08.2020
Improvements | * APPLIB-307: AWS IoT Core: Increase default Keep alive time to 30s
* APPLIB-310: JSON Utilities SL: Support key greater than 80 chars
* APPLIB-309: JSON Utilities SL: Reduced memory consumption
* APPLIB-301: AWS IoT Core, MQTT Client Subscriber: Subscriber should be able to resubscribe

Bug fixes

  • APPLIB-304: JSON Utilities SL: JSONByteArrayReader: unified behaviour |

  • APPLIB-296: AWS IoT Core Client: Publishing (with QoS1) while AWSClient is not connected, causes Publisher to be always busy

  • APPLIB-299: SMS Service SL: Receiving string display just 9 digits

  • APPLIB-306: WebClient: BASE64 Encode - no NULL termination

28.05.2020
- 31.03.2020