Controller Template with Interlock

I have created a controller template with Interlock. I would like to make the interlock group shape to be invisible if there is no associated interlock. This is actually a 2 part question. We will deal with this one first.
image

Use an expression binding on the visibility of the group something like:

!{Path\To\Interlock}

Going to be very difficult to answer more concretely without more detailed information into what you have tried and why it didn't work.

1 Like

I actually don't know where to start. I know I will have a pop-up when the interlock shape is clicked and show a table of tags that triggers the interlock. Other than that I have no idea on how to make this shape visible and invisible if there are no tags in the table.

You're going to have to give everyone more information if you want help with this. You'll need a binding on the visibility like @lrose said, but where is the table coming from? Is it a database? An array tag? A dataset tag? The more information you provide the easier we can help and you'll get better/more useful help.

I guess I should have ask on how to create that table first. In your experience what is the best way to create a list of interlock? I would have a lot of interlock table to create.

Since the interlocks are in the PLC and could be updated at any time, it's going to be somewhat difficult to concretely tell you how you should do it because we don't know the structure of the PLC control or tags.

Off-hand, assuming there's nothing to read from the PLC to tell you what the interlocks are, you would need a memory dataset tag on each equipment that is going to have the interlock indicator.

On your template, use an indirect binding to that dataset and the visibility will check the length of the dataset (length 0 = empty dataset).

1 Like

I will give this a try.

If you were to have unique integer IDs for interlocks/equipment you might be able to add that information to the PLC and read it from there so it all lives in one place and the interlock popup doesn't need to be updated every time an interlock changes, but again that comes down to your PLC implementation.

A little late to this thread, but I do this with a single DINT in the PLC and a UDT in Ignition that parses each 32 bits of the DINT into a /x bit location and a Dword (the value of 32 bits). In my case, most of my motors are similar enough, that the first 8 bits are always the same (OL, Drive Fault, Disconnect, Downstream, EStop, Power/Ready, Comms, etc.), so my UDT contains Descriptions for each of these constant permissives, and then if there are any unique, I add them in bits 10+). The indicator would have a visibility of the DWord !=0, the table populated with the descriptions and cell binding.