defcon.klaxon
Lifetime Supporting Member
Hi all,
So I've been going through my system getting things in place, and one thing I've just realized might really screw me has come up and I'm hoping I can get some clarity on produced/consumed tags, specifically with my UDTs.
So let's say I have a UDT for a pump. The pump has both input parameters (On command, Speed setpoint) and also output parameters (Running status, Speed status). I've also added custom UDTs inside the Pump UDT, like a Fail to Start Alarm, and Fail to Stop Alarm. Those also have inputs (user adjustable time delay) and outputs (alarm bit).
So here's my concern: if I use produce/consume tags for these Pumps (and all the other equipment in the system), it seems like the produce/consume tags can't be set up for each "sub" tag of the UDT...so unless I'm missing something, that would mean that if I'm communicating the Pump data from one PLC (like a remote RTU situation) to another PLC, EVERYTHING is going from the Produce side to the Consume side, EVERY TIME.
My original plan was to have a CompactLogix act as essentially an RTU, and have all the control logic and PIDs and HMI interface (InTouch) be in a ControlLogix PLC (and by "my plan", I mean that's how the system was designed). So I thought ok, just make the same Pump UDT tag in both places. But now I'm realizing that unless I'm missing something, there's no way I can both send inputs from the HMI/ControlLogix PLC to the CompactLogix PLC (like a speed setpoint, either from the HMI or from the PID loop or alarm delays) and have outputs send back (like Pump Running bits, Pump ETM, and alarm bits).
So now I'm wondering what to do; I guess I could have all the remote PLCs interface directly with my HMI instead of going through the ControlLogix PLC, but the bigger worry is now realizing that I think I have to entirely change how the programs interface with the others PLCs. For example, the project I'm working on is a water treatment plant; the treatment plant calls a remote pump station to suck water out of a nearby lake. So the treatment plant calls the remote pump station to run, but if there's a failure at the remote pump station, the treatment plant would need to shut down. So how would I both be able to send the run command to the remote pump, but also get back failure alarms? It seems like the whole point of UDTs is that you can make one tag cover all your needs, but what if there are both inputs and outputs in a single UDT?
I'm super curious to hear how you guys deal with this, as I'm hoping I'm just missing something about how AB PLCs work as this is my first project with them. Maybe I'm not creating UDTs correctly?
So I've been going through my system getting things in place, and one thing I've just realized might really screw me has come up and I'm hoping I can get some clarity on produced/consumed tags, specifically with my UDTs.
So let's say I have a UDT for a pump. The pump has both input parameters (On command, Speed setpoint) and also output parameters (Running status, Speed status). I've also added custom UDTs inside the Pump UDT, like a Fail to Start Alarm, and Fail to Stop Alarm. Those also have inputs (user adjustable time delay) and outputs (alarm bit).
So here's my concern: if I use produce/consume tags for these Pumps (and all the other equipment in the system), it seems like the produce/consume tags can't be set up for each "sub" tag of the UDT...so unless I'm missing something, that would mean that if I'm communicating the Pump data from one PLC (like a remote RTU situation) to another PLC, EVERYTHING is going from the Produce side to the Consume side, EVERY TIME.
My original plan was to have a CompactLogix act as essentially an RTU, and have all the control logic and PIDs and HMI interface (InTouch) be in a ControlLogix PLC (and by "my plan", I mean that's how the system was designed). So I thought ok, just make the same Pump UDT tag in both places. But now I'm realizing that unless I'm missing something, there's no way I can both send inputs from the HMI/ControlLogix PLC to the CompactLogix PLC (like a speed setpoint, either from the HMI or from the PID loop or alarm delays) and have outputs send back (like Pump Running bits, Pump ETM, and alarm bits).
So now I'm wondering what to do; I guess I could have all the remote PLCs interface directly with my HMI instead of going through the ControlLogix PLC, but the bigger worry is now realizing that I think I have to entirely change how the programs interface with the others PLCs. For example, the project I'm working on is a water treatment plant; the treatment plant calls a remote pump station to suck water out of a nearby lake. So the treatment plant calls the remote pump station to run, but if there's a failure at the remote pump station, the treatment plant would need to shut down. So how would I both be able to send the run command to the remote pump, but also get back failure alarms? It seems like the whole point of UDTs is that you can make one tag cover all your needs, but what if there are both inputs and outputs in a single UDT?
I'm super curious to hear how you guys deal with this, as I'm hoping I'm just missing something about how AB PLCs work as this is my first project with them. Maybe I'm not creating UDTs correctly?