AOI - BNI XGx_x067 - V34 +
1. Introduction
Welcome to the User Guide for the Black and SIlver Line Balluff Master Add-On Instruction (AOI) module. This guide is designed to assist users in effectively implementing and utilizing the AOI software module with Master with BNI XGx-5xx-xxx-x067 part descriptions, a component that enhances the capabilities of Logix5000 systems.
In this document, you will find comprehensive instructions that cover its installation, configuration, and maintenance. The guide is structured to provide step-by-step procedures ensuring a smooth integration process, optimal usage, and effective troubleshooting methods to address any potential issues.
Our goal is to empower you with all the necessary information and tools to maximize the functionality and performance of your system using the AOI software module. 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. BNI XGx-5xx-xxx-x067 AOI General Data
This is a comprehensive manual provided by Balluff Inc., detailing the installation, usage, and maintenance of the AOI software module designed for the Masters with BNI XGx-5xx-xxx-x067 Part descriptions, compatible with Logix5000. This guide includes detailed instructions on hardware configuration, importing and using the AOI module, and creating ladder logic. It also covers user-defined data types, software validation, and troubleshooting tips to assist users in effectively integrating and utilizing the software module with the specified hardware components. The guide is structured to ensure users can easily navigate through the setup process, validate the software, and troubleshoot any issues encountered during usage and integration with Logix5000.
1.2. Recommended Usage of AOI
Add-On Instructions (AOIs) are designed to streamline your programming by allowing you to create custom instructions for frequently used logic sequences. These instructions offer a standardized interface and accompanying documentation, making them ideal for encapsulating common functions or device controls. However, it is important to note that AOIs are not designed for high-level hierarchical programming. Instead, they are best utilized for specific, repeatable tasks within your applications.
For broader application structures, such as those needed at the area or unit levels, traditional programming with routines is more appropriate. Below, we outline the key benefits of integrating Add-On Instructions into your programming environment, emphasizing their optimal use cases to enhance efficiency and maintainability.
1.3. Logix5000 Version Disclaimer
Studio 5000 version 36 introduces significant updates to the handling of Electronic Data Sheets (EDS) that affect the application of some EDS files. These updates are designed to streamline the integration and management of device profiles within the software environment.
When you upgrade to version 36, these changes in EDS handling are not only applicable to the new version but are also retroactively applied to versions 34 and 35, provided they are installed on your computer. This ensures consistency across different versions of the software, facilitating a smoother transition and maintaining compatibility across projects that may span multiple versions of Studio 5000.
This backward compatibility feature is particularly beneficial for users who operate in environments where multiple versions of the software are in use, allowing for seamless project management and reduced complexity in handling EDS files across updates. It is important for users to be aware of these changes to understand how their existing and future projects might be impacted by the upgrade to version 36.
2. Disclaimer of Liability
This AOI module is provided free of charge and serves as a universal application example. It is designed to assist in programming and configuring PLC applications and to offer potential solutions.
Users should note that there is no entitlement to warranty claims, error corrections, or updates regarding this demo function block. Specifically, Balluff GmbH disclaims any liability for damages that may arise from the use of this demo program, except for: (a) damages resulting from injury to life, body, or health; (b) liability under the German Product Liability Law; and (c) cases of intentional misconduct.
Before implementing this AOI in your systems or machinery, please verify its suitability for your specific application.
By utilizing this Logix5000 sample, which is made available at no cost, you agree to this limitation of warranty and liability.
3. Start-Up/Commissioning
You can locate the AOI module for the BNI XGx-5xx-xxx-x067 by visiting the device's specific page on our website. Once there, click on the 'Downloads' tab. Scroll down to the 'Software' section, and look for the 'Function Block (FB)' category. Here, you will find a zip file containing the AOI module available for download.
3.1. User Defined Tags (UDTs)

The User-Defined Data Type (UDT) for the Add-On Instruction establishes the interface between the AOI and the user's project. For the BNI_XGx_x067 AOI, the primary UDT, BMC UDT_BNI_XGx_x067_S5KV36_0325US, includes three subordinate UDT components: Input (I), and Output (O). Additionally, a separate UDT named IO_Link_Port_Data is specified to facilitate the integration of data through configured IO-Link ports
Input Data
DI – This is UDT designating each I/O point as X0x_0y (where x=Port Number and y= 0 for Pin 4 and 1 for Pin 2) contains all discrete input data bits. If a port is configured in IO-Link mode, the indicated result is 0.
Short_Circuit – This is UDT designating each I/O point as X0x_0y (where x=Port Number and y= 0 for Pin 4 and 1 for Pin 2) contains all discrete short circuit bits. These bits indicate a short circuit between pins 1 and 3 on the stated port.
Overload – This is UDT designating each I/O point as X0x_0y (where x=Port Number and y= 0 for Pin 4 and 1 for Pin 2) contains all discrete overload bits. These bits indicate an overload has occurred on the indicated port and pin number. Note that these bits will only function if the port is configured as an output.
Power Fault – This UDT cotains three members, UA_Low (indicating when UA power is less than 18 volts), US_Low (indicating when US power is less than 18 volts) and No UA (indicating when UA power is less than 1 volts).
IOL_Diag – This structure is first broken down into the individual Ports X01 - X08. Each Port element contain the following members.
- Port_in_IOL_Mode - This Boolean value indicates whether the indicated Port (X01-X08) has been placed in IO-Link mode.
- Device_Conencted - This Boolean value indicates whether the indicated Port (X01-X08) has an operational IO-Link device connected to the port.
- Validation_Failed - This Boolean value indicates whether the indicated Port (X01-X08) has passed the validation type as defined in the Configuration UDT.
- DS_Validation_Failed - This Boolean value indicates whether the indicated Port (X01-X08) has passed the Data Storage validation.
- Process_Data_Invalid - This Boolean value indicates whether the indicated Port (X01-X08) data is in a reliable state.
- IOL_Short_Circuit - This Boolean value indicates whether the indicated Port (X01-X08) has a short between Pins 3 and 4, while the port is in IO-Link Mode.
- Vendor_ID - These 2 bytes contain the Vendor ID value of the conencted Device.
- Device_ID - These 3 bytes contain the Device ID value of the conencted Device.
- Event_x_Mode_Type - The Masters hold 3 event codes, this byte contains the Mode and Type of Event.
- Even_x_Code_High/Low - The Masters hold 3 event codes, these 2 byte contains the Event Code.
Output Data
DO – This is UDT designating each I/O point as X0x_0y (where x=Port Number and y= 0 for Pin 4 and 1 for Pin 2) contains all discrete output data bits.
Restart – This is UDT designating each I/O point as X0x_0y (where x=Port Number and y= 0 for Pin 4 and 1 for Pin 2) contains all discrete Restart bits. A Restart bit must be toggled following a detected Overload event.
Display – This UDT cotains three members, Red (turns LEDs on the display of the module red), Green (turns LEDs on the display of the module green) and Lock (locks the display and prevents the user or PLC from changing the display. While this bit is “high” or ON, a key icon will be indicated on the display).
IO_Link_Port_Data UDT
The IO_Link_Port_Data UDT comprises 48 input bytes (SINTs) and 48 output bytes (SINTs) allocated by the IO-Link master to each port. Typically, users are not directly aware of the data flow through this UDT during normal operations. The AOI simplifies the data handling by automating the parsing process for each port, enabling direct user access to the data without the need to individually map the data of each of the four ports into a single data buffer of the master. This UDT is utilized by both the IO-Link master AOI and each IO-Link slave AOI. It is essential that the master and slave share the same tag name for the corresponding port to ensure proper data synchronization and management.
Inputs – This 48-byte SINT array holds all raw input data values transferred from the IO-Link slave device input array to the master device input array.
Outputs – This 48-byte SINT array contains all raw output data values transmitted from the IO-Link slave device output array to the master device output array.
4.1.1. Integrate EDS File (up to V33)
Select Tools, Choose EDS Hardware Installation Tool.

Select Next.

Register an EDS file(s) and next.

Select Next.

On the Change Graphic Image pane, select next.

Final Task Summary, select next.

Select Finish to close the EDS Import Tool.

Right Click on the Ethernet node under I/O Configuration at the bottom of the Controller Organizer. Select New Module...

Type 'BALLUFF' in the filter feild and select the BNI XGx-5xx-xxx-x067 and click create.

Give the block a name and enter the address of the block. Select OK.

Save and Download to PLC. At this point the Controller Tags should contain C, I, and O data tags. See section 3.1 for more information on UDTs.

4.1.2. Integrate EDS File (V34 and up)
This section addresses the modifications introduced in version 36, which also impact versions 35 and 34 once this version is installed. Due to these changes, the C data is now in a defined state, rendering it incompatible with this AOI. Please refer to the alternative AOI included in the package, which is designed to work with these updates.
Starting from version 34, the EDS Tool has been superseded by the Device Description Installation Tool.

4.1.3. Integrating Generic Ethernet Module
Under the Controller Organizer, right click and select New Module...

Type 'Generic' in the filter field to narrow the selection fast. Select 'Generic Ethernet Module' and Create.

Name the block and match the IP with the preconfigured block address. Also ensure the Comm Format is 'Data - SINT'
-
Details of Each Instance:
- Input Instance: ID 100, Size 392 bytes
- Output Instance: ID 101, Size 262 bytes
- Configuration Instance: ID 102, Size 58 bytes

4.2. Adding AOI to Logic
Make sure Logix5000 is offline from the PLC and right click Add-On Instructions under Assets in the Controller Organizer. Select Import Add-On instruction...

Navigate to the unzipped folder containing the AOI. Select Open.

Select Ok to add the AOI to the project.

Here are the UDTs that are imported with the AOI.

Go to the location of your logic where you want to add the AOI. In this case we are adding it to the main routine.

5.1. Add to Rung
Go to the location of your logic where you want to add the AOI. In this case we are adding it to the main routine.

5.2. Create Tags, Save, and Download
You will need to create the tags for the BMC_AOI_PROC_BNI_XGx_x067S5KV36_0325US, BNI_XGx_x067_Port_X0(1-8)_Data, and Mapped_BNI_XGx_x067_Data.
The input, output, and config data need to be mapped to *:I.Data, *:O.Data, and *:C.Data. Please note that these are not new tags that need to be created; they are the tags that were already established when the module was incorporated into the I/O Configuration as described in section 3.1 and 4.1.1.

Once all tags are created, you can save and download the project to verify a connection to the BNI XGx-5xx-xxx-x067.
To specify port function, go to the Controller Tags at the top of the Controller Organizer and locate the ModuleName:C UDT and expand down to the ModuleName:C.Port_x_Mode section.
By enabling the Pin_4_Mode, this will put the designated Port into IO-Link Mode, once the Master is reset.

6. Error Codes & Troubleshooting
If the user does not achieve the results described in the previous section, please ensure that the following components conform to the specifications outlined in this User Guide:
Hardware System Layout – The system must include:
- A Rockwell Automation Logix processor
- A Rockwell Logix EtherNet/IP network bridge
- ODVA-compliant EtherNet/IP physical media
Software Configurations – The system must use Logix5000 version 18.01 or higher for this Add-On Instruction.
Revision Levels – Please check and match the revision levels as required.
After verifying the revision levels of all system components, the next step is to monitor the raw data from the EtherNet/IP master in Logix5000. This involves tracking the progression of an input bit through the raw data into the AOI data buffers, observing each step of the process.
In the Controller Organizer, open the controller tags tab to view live data. Pictured below is pin 2 made on port 4.


If all system components align with those described above and the raw data is being properly received in Logix5000, but the AOI data does not appear as expected per Section 5.2, further steps can be taken to ensure the correct functioning of both the software configuration and the hardware system and components.
To validate the software configuration:
- Confirm that the Balluff hardware is communicating effectively with the Logix processor. A communication error can be easily spotted in Logix5000 when online with the processor, as any network hardware issues will be indicated by a yellow warning triangle if communication fails.
- Initiate a new Logix5000 project using only the Balluff hardware and AOI module to rule out any potential software conflicts.
To validate the hardware system and components:
- Disconnect all other hardware nodes from the Ethernet network, leaving only the BNI XGx-5xx-xxx-x067 and the PLC connected.
- Ensure that any switches used in the network layout are functioning correctly and have solid connections.
- Identify and eliminate any potential sources of electrical noise or interference that could disrupt network communication.
If the system still does not function correctly after these steps, please contact the Balluff Technical Support Group for further assistance. [email protected]
7. Definitions and References
Controller Organizer – This is the area of Logix5000 where all project components can be accessed. If this toolbar is not visible, it can be opened by pressing Alt+0.
AOI – Add On Instruction – A reusable software module created with Logix5000. Balluff’s AOI modules are composed of UDTs and associated logic to implement control algorithms. This module is hardware specific. All AOI modules contained in a project will be located in the Controller Organizer.
Controller scoped tag – A tag of any valid data type that is available to all programs within a project and must be used uniformly throughout the entire project.
AOI Parameter – A tag of any valid data type that is created during the definition of the AOI module and is isolated to that AOI. Its scope is limited to each discrete use of AOI function.
UDT – User Defined Data Type – A reusable software module created with Logix5000. Balluff’s UDTs define the input and output tag names to be used when implementing our AOI modules. A UDT can be composed of any combination of standard Data Types defined by Logix5000 or other UDTs. All UDTs contained in a project will be located in the Controller Organizer.
I/O Configuration Tree – The area of Logix5000 where all physical, or “real world”, Inputs and Outputs associated with the controller are defined.
EDS – Electronic Data Sheet – A software configuration file that defines how a hardware product will communicate with the network master using EtherNet/IP. The format and content of an EDS is defined by ODVA, the controlling organization for EtherNet/IP specifications.