To use UDTs, you create your own tag in the Default tag table as shown in the previous section and instead of using one of the elementary Data types, you select one of the UDTs we generated. So for the feeder module, we know from the previous section that its starting address for both Inputs and outputs is byte 0. So, we are going to create a tag to store all of the feeder module’s inputs and a tag to write to all of the feeder module’s outputs.

Example Modules and UDT Assignment

Using the modules we defined in the Topology Example section, we are going to assign each module’s input and output data to the UDTs we generated in the previous section.

Profinet Name Module Mode DAP from Hardware Catalog Input UDT Name Output UDT Name
feeder Full ZPA ConveyLinx in ZPA mode CLXZPA_IN CLXZPA_OUT
merge Full ZPA with Merger ConveyLinx merger CLXZPA_IN CLXZPA_OUT
divert ConveyLogix Interface ConveyLinx in PLC mode with ConveyLogix N/A N/A
workstation Full PLC Controlled ConveyLinx in PLC mode CLXPLC_IN CLXPLC_OUT
spur Reduced ZPA ConveyLinx in reduced ZPA mode CLXZPAmini_IN CLXZPAmini_OUT
reject Reduced PLC Controlled ConveyLinx in reduced PLC mode CLXPLCmini_IN CLXPLCmini_OUT

Adding feeder Module
Adding workstation Module
Adding Remaining Modules

What about ConveyLogix Interface?

There is no UDT required for the ConveyLogix interface because the input and output data have no pre-defined meanings or operations. The I/O data for a module using ConveyLogix is a “blank” block of 32 input and 32 output bytes (16 input and 16 output Words) that is available for the programmer to use as needed based upon the application.

For this example, you can access the divert module by either the Raw Unmapped Data Direct from Module or Module Data Elements Mapped to Tags method previously described.