Opc path in udt

In my UDT datatype, I have opc path set up as
s=1;s=[{opc_device}]{opc_folder}.{opc_tag}.amps. It works for those instance which are something like ns=1;s=[AB_PLC]ball.MBlower.amps however, it does not work for ns=1;s=[PLANT_2]Program:ball.MBlower.amps, where I set Program:ballas opc_folder. Is there any reason for this, like colon is not allowed? Thanks

It matters depending on the driver. The modern Logix driver expects the Program: prefix to be followed by an actual program name in the PLC, and then the dot and the local tag name within that program. Is “ball” an actual named program in your AB PLC?

My actual program name is ‘ball’. Could you please give me an example with Program, what is the opc path should be? I am converting Logix from version 19 to 30.011, then I tried to change from the ignition side for the tags associated to it, that’s where this problem coming from.

First, when switching to v30 from v19, you’ll have to change to the Logix v21+ driver. The legacy ControlLogix and CompactLogix drivers only work through early v20.

Second, the syntax of OPC items changes. Wherever you start with “Global.”, take it out. Wherever you have arrays that have paths like ArrayName.ArrayName[0], take out the leading duplicate name. Most people who have to do this use an external text editor that can do regular expression substitutions.

I recommend you connect to your converted PLC (with the newer driver) and drag and drop some sample items into test tags to see the format.

1 Like

Yes, I have convert to the logix 21+ driver and have the opc tags done, I only have the issue with the udts, where you need to kinda do both parameters and opc path.