Janz Tec MQTT library for CODESYS SL

MQTT is a Client Server publish/subscribe messaging transport protocol. It is light weight, open, simple, and designed so as to be easy to implement. These characteristics make it ideal for use in many situations, including constrained environments such as communication in Machine to Machine (M2M) and Internet of Things (IoT) contexts where a small code footprint is required and / or network bandwidth is limited.

Janz Tec developed a CODESYS library which implements the MQTT protocol. This way users can add the MQTT protocol easily to their own IEC 61131 applications. The Janz Tec MQTT library for CODESYS implements client functionality. It is completely written in IEC code which guarantees the library can be used on any type of target system.

Order number: 
€49.00 plus VAT


Janz Tec MQTT library for CODESYS SL


• CODESYS client library implementing MQTT protocol (version 3.1.1)
• MQTT client functionality
• Library completely written in IEC code, therefore independent from target system
• Publish: Payload of any type can be transmitted to a broker*
• Subscribe: Messages of any type from MQTT brokers can be received*
• Message classification via MQTT topics
• MQTT-QoS-Levels:
   o QoS0 (At-most-once)
   o QoS1 (At-least-once)
• Authentication with user name / password
• Auto-Reconnect is available if connection has been aborted
• Channel encryption via SSL (TLS v1.1 Client)
• Last will functionality
• Topic wildcards (+/#)

* For maximum supported message payload size, see global variable MQTT_GVL.MAX_PAYLOAD_SIZE

Currently not supported:
• QoS2 (Exactly once)


Programming System

CODESYS Development System V3.5.8.10

Target System

CODESYS Control V3.5.8.10

Supported Platforms / Devices

Notice: Use the sample project ‘mqtt_example.project’ to find out the supported features

Additional Requirements

Standard CODESYS libraries „TCP, SysSocket, CmpErrors“ must be supported on the target


- Broker must support MQTT protocol version 3.1.1
- WAGO e!Cockpit and PFC100 is not supported
- MQTT QoS level QoS2 is not supported
- Topic names must be less than 120 characters

- Encryption (SSL/TLS):

    - Client authentication with certificate not supported! Wait for
       http://jira.codesys.com/browse/CDS-57009 see chapter SSL/TLS certificates

    - Encryption is not supported on 64bit systems


License activation optional on CODESYS Runtime Key or CODESYS Soft Key. License per runtime device necessary.

Required Accessory

CODESYS Security Key

Version history

Version Release Notes Release date

Replaced all String variable declarations with String(255) to support topic names up to 254 characters


Bug fix in MQTT reconnect


Bug fixes: MQTT ping/pong after reconnect problem fixed

Bug fixes: Reconnection problem solved and sending of empty messages now possible



New functions: Channel encryption via SSL (TLS v1.1 Client) Last will functionality Topic-Wildcard support (+/#)

2 Review(s)

UPDATE: only thing missing is publishing retained messages. Review by rodneyc
I've found V2.0 to be MUCH better and have enough of the features needed to run in production. Only thing lacking that in my professional opinion should really be there is the ability to set the retained flag when publishing. Especially for the Last Will message. So far though, this is the best MQTT library for the money. (Posted on 23/05/2019)
Would be really great if they implemented a last will function Review by rodneyc
...which is one of the main reasons MQTT is so powerful.

It would also be nice to have SSL/TLS for secure comms ove the open web.

Do these two things and then bump the price up to double, people will pay it. (Posted on 21/07/2017)

Janz Tec AG
Industrial Computing Architects
Im Dörener Feld 8
33100 Paderborn

Tel: +49 5251 1550-0


Write Your Own Review

Only registered users can write reviews. Please, log in or register