RSL5000 PID - can it be used for multiple loops via JSR & subroutine?

Well of course you could create an alias tag which points to Valve[1].open and name it anything you like.
 
The Arrayed UDT comes in handy when your making the parameters available on the HMI for modification. If I have a lot of zones usually I will just put one set of fields (gains, samp time, etc.) and then just use an index to load them into the screen values. Really cuts down on the HMI work if you need to make those values available on the HMI. Then maybe just add a string field to your UDT for the zone name. It is, as has been pointed out, not as nice from a debug standpoint, having them all named nicely, but good documentation and notes can overcome this, and you can still comment each element of the arrary and view that comment along with the device name.
 
We use the PIDE instructions a lot in process control. We built an AOI that houses all of the interface, fault handling, and I/O mapping for the PIDE. This allows us to easily paramaterize the HMI displays and make quick universal changes to behavior.

The only rule to remember is you CANNOT put the PIDE control tag inside of a UDT or an array and expect good things to happen. It is not supported and must be a stand alone tag. We just name our loops PIDE01, PIDE02, etc. Then map them as an IN/Out to our AOI. The PIDE is of course in a sheet that resides in a periodic task(s). We do not connect any of the data in the sheet just put the instruction in the scan there. Map all of your in and out data in the AOI. You can then add aliases as needed to give things meaningful names for your end users.

This works great and allows online monitoring of logic/instance for troubleshooting. This is a little work to setup, but the payback is well worth it if you do a lot of this work.
 
.....
I then created a new controller tag array called NOZZLE with type NOZZLE with 80 elements. Now I have tags arranged together by nozzle number, like Nozzle[1].SetPoint, Nozzle[1].PID (which has all its own sub elements), Nozzle[1].Auto, etc. Am I understanding this right?
....

Well its ok if your nozzles are numbered 0 to 79. Usually physical objects like nozzles, valves, pumps, etc., don't get numbered starting at 0.

If thats the case, just create the array size=81, and forget about NOZZLE[0].

Now for the HMI/SCADA access issue....
If you put the code for each Nozzle into an AOI, you could also put mapping code to transfer the UDT data into neat and efficient HMI/SCADA arrays - eg. Setpoint[81], Flowrate[81]... etc. That helps when you want to create "Faceplates" in your HMI/SCADA application....

2c from me
 

Similar Topics

I don't see anything in the reference manual, does anyone know if the Control Variable tag can be changed in the PID instruction so that I could...
Replies
6
Views
2,177
Do the gains in the RSL5000 PID instruction work on values in percent or in engineering units? Trying to help a colleague in the field tune a...
Replies
1
Views
1,533
Just curious, trying to make set up of 20 PID tags identical. What if on first scan I COPY MyPIDtag01 to MyPIDtag02 Length 1 COPY MyPIDtag01 to...
Replies
4
Views
2,918
I am using version V17.01.00 (CPR 9 SR 1) I have a fairly large machine with multiple PIO nodes on an ethernet network. I am getting a flashing...
Replies
0
Views
1,386
Hello, My coworker and I are commissioning a new panel. We have a 1732-AENTR series C remote IO thats Rev 6.1. The project file from a previous...
Replies
3
Views
1,614
Back
Top Bottom