UDT to read 20 recipes each with 30 lines of parameters from PLC

Ignition 8.1.1.

My 20 recipes are stored in my ControlLogix PLC in a data structure something similar to this:

Recipe 1
- Step 1
  - Speed: 15, Vacuum: 0: Time: 60, (+ 8 more ...)
- Step 2
  - Speed: 18, Vacuum: 1: Time: 120, (+ 8 more ...)
- Step 3
  ...
- Step 30
  - Speed: ...
- Recipe name
- Temperature setpoint

Recipe 2
- Step 1
  ...

On my Ignition application I want to be able to display all the parameters for the selected recipe number on one page. What’s a clean way to set up the UDT?

I started by creating a UDT for one step of the recipe and I included the {recipeNum} and {stepNum} parameters in the definition. Now I’m a little lost. How do I make 30 copies of that, add in the Recipe name and Temperature setpoint for each step so I can create a UDT instance for each recipe.

All the examples seem 1-dimensional whereas I seem to have two dimensions to work with.

Many thanks.

Well your recipe udt will just have 30 step instances preferably within a steps folder, and 2 OPC tags for your other 2 values.
The easiest way to create the 30 steps would be to use the UDT instance wizard to create them as tags, then create a udt type from those tags. Although from memory there was a bug where the option of creating a udt from tags in v8 wasn’t there…

Although from memory there was a bug where the option of creating a UDT from tags in v8 wasn’t there ...

Thanks for that. I had created the 30 rows by creating the instances of the row UDT but couldn't see how to combine them. I think you're correct about a missing feature.

I was thinking that if I figured out the UDT data structure I could paste the combined UDT back in. I can't see a way of doing that either.

Actually, you can just copy and paste standard tags directly into a UDT definition inside of the tag browser (not the tag editor)

e.g. Select your UDT definition and paste the standard tags you copied and they’ll be added to the UDT definition
image

1 Like

Thanks, Nick, but can I do that for (effectively) a 2D tag structure? I have followed your suggestion and can create one row of tags (a recipe step in my application) and copy those into a UDT, but I can't see how to create a UDT containing 30 rows of the recipe steps. If I try it I get

Tag errors occurred during tag transfer Error_Exception("Cannot move a folder to a child of itself '[default]types/MyPath'")

Where to next?

Does this help?

Thanks for sticking with me.
Is that screengrab from the tab browser or from the UDT definitions?

Udt definitions (you can tell by the little tag icon on the UDT definition root, which is a vertical band in the instance, or blank as in the steps)

If I understand correctly, you proceded as follows:

UDT nested 1

In the UDT Definitions tab,

  1. Create the UDT for one step (line) of the recipe.
  2. Create a UDT for a complete recipe.
  3. Create a Steps folder in there.
  4. Create instances of the UDT defined in 1 above.

I can’t do step 4. I am unable to create a UDT instance inside level 2 or 3.

I must be close!

I created the steps inside a temp folder in the standard tags tab using the instance wizard, copied them, and pasted them into the steps folder in the UDT definition. But otherwise you would create the instances in the tag editor when editing the recipe udt definition

Good man! I think I’ve got it.
Thank you very much for your time and sharing the knowledge.