Siemens UDT / Array

Hi, i have this atleast 1 DB that has an array 0…5, of an UDT, where a bunch of real’s (float) are declared.

I am trying to make a data type in ignition calling it “udtPumpSlag”, and then add opc tags trying to match the plcs udt.

But it seems i need to specify an exact address to the db/udt area.
In the data type structure i named it, then added a new member, in the OPC Item Path,
i do need to specify an exact adress, my thinking was i could use some offset, and when i add this data type structure to another data type structure (the array, in ignition) i only point to this data type struct and specify start address, and its offset would be the same, no matter if it started at 0.0 or 256.0 in the DB in the plc.

Or am my thinking wrong?

if the actual DB in the place looks like

Static rigg Array[0..5] of "udtPumpSpec" 0.0 rigg[0] udtPumpSpec 0.0 rigg[1] udtPumpSpec 68.0 pumpSlag Real 0.0 0.0 lyftHöjd Real 4.0 0.0 kapacitet Real 8.0 0.0 qUtlBel Real 12.0 0.0 maxlUtlBel Real 16.0 0.0 minHöj Real 20.0 0.0 maxHöj Real 24.0 0.0 qMinHöj Real 28.0 0.0 qMaxHöj Real 32.0 0.0 maxlMaxHöj Real 36.0 0.0 mottryckIdle Real 40.0 0.0 mottryckLåg Real 44.0 0.0 mottryckHögOffset Real 48.0 0.0 mottryckQuickOffset Real 52.0 0.0 mottryckMaxlastOffset Real 56.0 0.0 maxSjunkLåg Real 60.0 0.0 maxSjunkHög Real 64.0 0.0 rigg[2] udtPumpSpec 136.0
etc.
each rigg 0-5, would have 0-68 adressed, but each +1 gets another 68.
So when i get to the tags pumpSlag, it has 68 + its own offset etc.

How would you do this?
[attachment=0]udt.png[/attachment]

1 Like