PID Control thro SCADA


Thread Starter

Raj Swaroop

The PID block in the Fix32 Scada takes in values from tags that are defined only as "Analog Inputs ". It doesn't take feed back from any other type of tag.
But while Interfacing with the "PLC" all tags have to be given as registers (Digital/Analog), because, the PLC cannot link with other tags namely the "Analog Input" and so I cannot receive any value from the field. Kindly guide me thro how to use my this SCADA Application to interface with my PLC. Immediate response is eagerly awaited.
Raj Swaroop

Allen Nelson

The SLC 5/03 has a PID function.
The FIX32 SCADA software has a PID function.
Pick one, and let it do all the PID control.

Personally, I'd go with having the PLC do the controls. The FIX function block harks back to an old philosophy from the DMACS days, where the SCADA would not just talk to a PLC, it would BE the PLC. That's why there are all these chaining of blocks; it was theoretically possible to build ladder logic in FIX/DMACS, and all you needed were some Opto22 I/O modules.

And I've done it and it does work.

But, as long as you've got a PLC, and since the analogs are coming in there anyway, use it.

But if you must use the FIX PID block, here's how.

1) Create an AI block, which reads the address of the analog input coming into the PLC (scaled or raw, it's up to you; just know which so you can enter the correct engineering units in FIX)
You seem to be having trouble with AI blocks, AO blocks, and AR blocks. They're simple, really. AI blocks are read-only from the PLC to FIX.
AO blocks are write-only to the PLC from FIX (if the PLC changes the value after FIX has written it, FIX doesn't know it)
AR blocks read and (can) write to (and from) the PLC.
There is no reason why, if an AR block can read the PLC address, an AI cannot. Be sure that the Block is ON scan and in AUTO mode (change the Column Format in DBB if you're not sure; when you edit a block, it goes off scan, which may cause you to think that you can't get AIs to read). You must use an AI and not an AR because the AR has no NEXT BLOCK field.

2) In the AI block, put the name of the PID block in the NEXT BLOCK field. This creates a "chain" which "feeds" the AI data to the PID calculation.

3) Create an AO block which will write to the PLC's AO output (directly to an O: register, or indirectly to an N:, and have the PLC do the MOVe, again, its up to you.) This AO block is the NEXT BLOCK entry in the PID block, ending the chain.

4) The Feedback field in the PID block (if used at all) is an AI block which is the feedback of your AO signal (that is, the actual position (AI) of your control valve, instead of its intended position (AO), and not to be confused with the Process Variable.

The setpoint is the .A_GET1 field of the PID block tagname (I think that's the field; check your manuals/help to be sure), which you can write to directly from a View screen.

Again, it would be better if you let the plc do the PID, and just have AR blocks read the N: registers in the PLC that you've set up for PV, SP & CV (Kp, Ki, and Kd if you want a full faceplate, which again, I'd advise against.

Allen Nelson
ReEal Enterprise Solutions