Using Logic Block configurations with Black- and Silver Line of Balluff digital I/O hub modules
1. Introduction
This Technical Application Note (TAN) is designed to assist users in effectively implementing and utilizing Logic Block configurations including:
- Direct control of SIO output port
- Standalone operating mode without PLC
- Create complex logical functions
This document is a how-to style tutorial and an extension of the Configuration Guide.
Our goal is to empower you with all the necessary information and tools to maximize the functionality and performance of your system. Whether you are setting up the module for the first time or looking to troubleshoot an existing installation, this guide will serve as a valuable resource.
Thank you for choosing Balluff products. We are committed to providing you with high-quality solutions and support to meet your automation needs.
1.1. Prerequisition
- IODD
- BET Balluff Engineering Tool
- IO-Link Master (eg: BNI00K0 or any other…)
- One of these product/module (BNI Digital I/O Hub)
- SIO capable Sensors and Actuators
Motto: „Easy control inside”
Pro’s and Con’s
Of course, this module is not a comparable solution to a PLC system but a viable way, an alternative
| System with PLC | BNI I/O Hub with Logic Block | |
| Network required | yes | no |
| System Complexity | mid, high | low |
| Cost | mid, high | low |
| Functional flexibility | high | low |
| Connettion to IT | easy | hard |
solution for lightwave controlling application with low complexity task.
2. Creating an example application
Detects a product on the conveyor/palette and controls the conveyor’s motor.
The goal is to create a simple control logic which starts the motor when both sensors detects the target. The motor is then forwards the palette.
2.1. The BOM list
| Items | Order Code | Qty | Task |
| Opto- or inductive sensor (BES….) | BES…. | 2 | detecting the target (box) |
| Power switch | 1 | switches the motor | |
| IO-Link Digital I/O Hub | BNI00KK | 1 | detects input signal, do the logic, and set the output |
| IO-Link Master | BNI00K0 | 1 | configuration |
| Power Supply (24 Volt) | 1 | powering the module | |
| Accessories, cables, M12 A coded connectors |
3 | wiring | |
| Software and digital accessories | |||
| Balluff Engineering Tool | BET | 1 | configuration |
| IODD description file | 1 | used by BET | |
| BNI IO-Link Master | 1 | ISDU setting with web-app | |
Links to the digital accessory items. Please go to Balluff’s webshop.
BET: https://www.balluff.com/en-gb/products/areas/A0019/groups/G1901/products/F170601
IODD: https://assets.balluff.com/WebBinary1/ST_IODD_BNI_LH5_314_S52_Z012_DRF_959432_AA_000.zip
https://ioddfinder.io-link.com/productvariants/search/52075
2.2. Block diagram
2.3. Preparation
The module BNI LH5-314-S52-… provides up to four (4) Logic Blocks.
Now we use the 1st block.
Any logic block can handle up to four (4) inputs and provide one (1) result.
In this example, two inputs are required and the result is linked to a SIO Output port.
2.3.1. Configuration in eight steps
- Configure X01 and X03 ports as input, X08 as output
- Configure Logic Block’s input channel (X01.pin4, X03.pin4)
- Configure Logic Block’s function (the ‘AND’)
- Configure Logic Block’s direct control (X08.pin2)
- Configure Logic Block's operation mode (standalone mode)
- Disconnect IO-Link, power 24 Volt still required
- Connect the sensors to port X01 and X03, connect the motor to X08
- Done
2.4. Configuration with direct ISDU parametrization (without IODD)
| # | Configure… | ISDU Parameter Name |
Use ISDU Write command | Note | ||
| Index | Subindex | Value | ||||
| 1 | SIO Digital I/O ports (M12 connectors) X01 and X03 ports as input X08 port (Pin2, Pin4) as output |
Direction | 0xD4 (212) | 0 | 0x08 0x08 | A |
| 2 | Logic Block #1’s input channel Input channel 1 = X01.Pin4 Input channel 2 = X03.Pin4 |
Input Channel |
0x76 (118) 0x77 (119) |
1 1 |
0x0097 (151) 0x0099 (153) |
B |
| 3 | Logic Block #1’s logic function ‘AND’ operator |
Mode Config (Mode Inputs) |
0x75 (117) | 1 | 0x01 (1) | B, C |
| 4 | Logic Block Result link to SIO Output X08 Pin4 and Pin2 |
Output Pin Assignment |
0x1453 (5203) |
1 | 0x38 (56) | D |
| 5 | Logic Block Operating Mode to Standalone Mode |
Operating Mode |
0x1458 (5208) |
0 | 0x02 | E |
2.5. References
Snippets from the Configuration Guide.
Note (A)
This is independent of the Logic Block. Port Direction is settings for each SIO Port (M12 A coded port). Input or Output mode can be selected with ISDU 0xD4 (212)

Note (B)
We set the input of the Logic Block. Input can be any boolean signal exist in the module. Beyond SIO digital input state furthermore signals accessible like vibration alarm or counter reaches limit. Using these signal a more complex function (~logig, program) can be set.

For (B), (C) and (D) the Subindex
represents the Logic Block Nr.
Note (C)
Here we set the logic operation to be run. AND, OR, NOT… can be selected.


Note (D)
We want to control a SIO Output port directly by the Logic Block.
By default, the I/O Hub module drives the SIO Output via Process Data Output, received from the PLC.
Now we want to calculate independently from any IO-Link Master’s or PLC’s Process Data. The calculation (the control) is made by the module itself (by the Logic Block). The result is connected directly to a SIO Output. Which port is to be controlled can be set by this ISDU parameter.



Note (E)
Now we want to run independently from any IO-Link Master or PLC. The calculation is made by the module itself (by the Logic Block) and the result is connected directly to a SIO Output as described before in Note (D).
Until we do not set this ‘Operating Mode’, then Logic Block has no effect on the SIO output. So this is like a two factor configuration.
Here we set the module to ignore the Process Data Output and use the Logic Block’s Result.


2.6. Result
Module is operating without active IO-Link communication.
It captures the two sensors’ state, it calculates an AND operation and then drives the output port directly. Process Data Output is no longer required, nor used.
Note
The well known ‘IO-Link cycle-time’ does not exist now.
Instead, the loop time (ie: calculation time or reaction time) is fixed to 100 ms.

If IO-Link Master or PLC is connected:
- Monitoring is possible via Process Data Input and ISDU Read request
- Supervisory function (Enable) is possible using the ‘Operating Mode = Mixed Mode’ when the Process Data Output behaves like an Enable (EN) flag
2.7. Configuration with BET Balluff Engineering Tool with IODD
The concept is the same as described in the previos chapter – but using BET, we use parameter names instead of Index and Subindex numbers.
IODD is required which can be downloaded from the Balluff Webshop or ioddfinder.io-link.com

Note
Configuration in BET Balluff Engineering Tool with GUI interactive interface is under development Release roadmap is 2025/Q4
2.8. Appendix
List of Proces Data Objects (PdObject or Object ID) available in this product.
Any of this boolean datatype object can be used by the Logic block’s input, See Note (B)
Marked with * are used in the example Use Case
| Object ID | Name / Description --- Data type is boolean ,values: 0, 1 or true, false |
| SIO Port Digital Input functions | |
| 0x0097 (151) | X01 (Port 1) – Pin 4 Input State * |
| 0x0098 (152) | X02 (Port 2) – Pin 4 Input State |
| 0x0099 (153) | X03 (Port 3) – Pin 4 Input State * |
| 0x009A (154) | X04 (Port 4) – Pin 4 Input State |
| 0x009B (155) | X05 (Port 5) – Pin 4 Input State |
| 0x009C (156) | X06 (Port 6) – Pin 4 Input State |
| 0x009D (157) | X07 (Port 7) – Pin 4 Input State |
| 0x009E (158) | X08 (Port 8) – Pin 4 Input State |
| 0x009F (159) | X01 (Port 1) – Pin 2 Input State |
| 0x00A0 (160) | X02 (Port 2) – Pin 2 Input State |
| 0x00A1 (161) | X03 (Port 3) – Pin 2 Input State |
| 0x00A2 (162) | X04 (Port 4) – Pin 2 Input State |
| 0x00A3 (163) | X05 (Port 5) – Pin 2 Input State |
| 0x00A4 (164) | X06 (Port 6) – Pin 2 Input State |
| 0x00A5 (165) | X07 (Port 7) – Pin 2 Input State |
| 0x00A6 (166) | X08 (Port 8) – Pin 2 Input State |
| Helper functions – Switching Counter | |
| 0x0004 (4) | Switching Counter Channel 1 Limit reached (Value ≥ Limit) |
| 0x0089 (137) | Switching Counter Channel 2 Limit reached (Value ≥ Limit) |
| 0x008A (138) | Switching Counter Channel 3 Limit reached (Value ≥ Limit) |
| 0x008B (139) | Switching Counter Channel 4 Limit reached (Value ≥ Limit) |
| Helper functions – Switching Speed Monitoring | |
| 0x00C3 (195) | Speed Monitoring Channel 1 OK (within the limits) |
| 0x00C4 (196) | Speed Monitoring Channel 2 OK (within the limits) |
| 0x00C5 (197) | Speed Monitoring Channel 3 OK (within the limits) |
| 0x00C6 (198) | Speed Monitoring Channel 4 OK (within the limits) |
| Helper functions – Signal Delay | |
| 0x0008 (8) | Signal Delay Channel 1 (the delayed signal) |
| 0x0009 (9) | Signal Delay Channel 2 (the delayed signal) |
| 0x000A (10) | Signal Delay Channel 3 (the delayed signal) |
| 0x000B (11) | Signal Delay Channel 4 (the delayed signal) |
| Helper functions – Condition Monitoring | |
| 0x004F (79) | Temperature Alarm |
| 0x004B (75) | Vibration Alarm |
| 0x0037 (55) | Inclination Alarm |
| Logic Block’s Result – cascading possible | |
| 0x0063 (99) | Logic Block 1’s Result |
| 0x0064 (100) | Logic Block 2’s Result |
| 0x0065 (101) | Logic Block 3’s Result |
| 0x0066 (102) | Logic Block 4’s Result |