This program was designed to control a hydraulic diverter gate between conveyors. The diverter would direct ore in varying degree to a recycle crusher (350 ton/hr, 500Hp motor). The hydraulic pump motor was wired into a reversing contactor and a positioning transducer returned an analog signal. The original use of a DCS control block resulted in too long a lag time between setpoint reached, setpoint sensed, and stop command issued. We then rewired the transducer signal into the Allen-Bradley PLC rather than DCS I/O. I created the first half of the below logic and some improvement was seen. Unfortunately, error was still in the 3% range. The second set of logic managed to lower this closer to 1%.
All the below integer amounts are scaled 0-4095 (representing 0-100%):
N:A is an integer position command from the DCS
N:B is the amount of error or tolerance in the outer band of control
N:D is the amount of error or tolerance in the inner band of control
N:G is an integer position indication from the diverter
N:K is the amount of error or tolerance for the PTC portion of logic
------------------------------------------------------------------------------------------------------------------------------------
|THESE 4 RUNGS TAKE DIVERTER POSITION COMMAND AND ADD/SUB THE GAP/DGAP VALUES. |
|THIS LOGIC IS BASED LOOSELY ON THE DCS DGAP CONTROLLER. SEE PG. 272-273 |
|OF DCS VOL. 5 FOR ROUGH IDEA. THE DGAP VALUE WILL BE REDUCED AS MUCH AS |
|POSSIBLE TO ALLOW MANUAL CONTROL. THE GAP VALUE MUST BE GREATER THAN DGAP |
|AND WILL PROTECT FROM LARGE COMMAND FLUCTUATIONS IN AUTO AT DCS. 2/25/99 -WA |
| GAP HIGH |
| SUM |
| DIVERTER |
| +--ADD-----------+ |
26|----------------------------------------------------------------------------------------------------------|Add |-|
| |A: N:A | |
| | 4095| |
| |B: N:B | |
| | 140| |
| |Dest: N:C | |
| | 4235| |
| +----------------+ |
| DGAP HIGH |
| SUM |
| DIVERTER |
| +--ADD-----------+ |
27|----------------------------------------------------------------------------------------------------------|Add |-|
| |A: N:A | |
| | 4095| |
| |B: N:D | |
| | 70| |
| |Dest: N:E | |
| | 4165| |
| +----------------+ |
| DGAP LOW |
| SUBTRACT |
| DIVERTER |
| +--SUB-----------+ |
28|----------------------------------------------------------------------------------------------------------|Sub |-|
| |A: N:A | |
| | 4095| |
| |B: N:D | |
| | 70| |
| |Dest: N:J | |
| | 4025| |
| +----------------+ |
| GAP LOW |
| SUBTRACT |
| DIVERTER |
| +--SUB-----------+ |
29|----------------------------------------------------------------------------------------------------------|Sub |-|
| |A: N:A | |
| | 4095| |
| |B: N:B | |
| | 140| |
| |Dest: N:F | |
| | 3955| |
| +----------------+ |
|THE NEXT FOUR RUNGS TAKE THE ABOVE COMPUTED VALUES AND COMPARE THEM |
|WITH THE ACTUAL POSITION INDICATION TO BOTH START/STOP DECREMENT OR |
|INCREMENT |
|DIVERTER |
|POSITION DIVERTER DECREMENT |
|INDICATION FULLY START |
| RETRACTED DIVERTER |
|+--GRT-------------+ I:A N:H |
30||Greater Than (A>B)|-----|/|------------------------------------------------------------------------------------------( )----|
||A: N:G | 05 0 |
|| 4059| IAD |
||B: N:C | |
|| 4235| |
|+------------------+ |
| DIVERTER |
| POSITION DECREMENT |
| INDICATION STOP |
| DIVERTER |
| +--LES-----------+ N:H |
31|-+|Less Than (A<B) |-+------------------------------------------------------------------------------------------------( )----|
| ||A: N:G | | 1 |
| || 4059| | |
| ||B: N:E | | |
| || 4165| | |
| |+----------------+ | |
| |DIVERTER | |
| |FULLY | |
| |RETRACTED | |
| | I:A | |
| +----| |------------+ |
| 05 |
| IAD |
| DIVERTER |
| POSITION INCREMENT |
| INDICATION STOP |
| DIVERTER |
| +--GRT-------------+ N:H |
32|-+|Greater Than (A>B)|-+----------------------------------------------------------------------------------------------( )----|
| ||A: N:G | | 3 |
| || 4059| | |
| ||B: N:J | | |
| || 4025| | |
| |+------------------+ | |
| |DIVERTER | |
| |FULLY | |
| |EXTENDED | |
| | | |
| | I:A | |
| +----| |--------------+ |
| 04 |
| IAD |
|DIVERTER |
|POSITION DIVERTER INCREMENT |
|INDICATION FULLY START |
| EXTENDED DIVERTER |
|+--LES-----------+ I:A N:H |
33||Less Than (A<B) |-----|/|--------------------------------------------------------------------------------------------( )----|
||A: N:G | 04 2 |
|| 4059| IAD |
||B: N:F | |
|| 3955| |
|+----------------+ |
|THIS RUNG ACTUALLY CREATES THE FINAL DECREMENT COMMAND TO |
|GO UP INTO THE RETRACT RUNG IN EARLIER LOGIC IN THIS FILE |
| DECREMENT DECREMENT |
| START STOP RETRACT COMMAND |
| DIVERTER DONE DIVERTER FROM PLC DGAP |
| BIT DONE BIT LOGIC |
| N:H T:A N:H T:B N:H |
34|-+----| |------| |---+-----|/|-------| |---------------------------------------------------------------------------( )-------|
| | 0 DN | 1 DN 4 |
| |RETRACT COMMAND | |
| |FROM PLC DGAP | |
| |LOGIC | |
| | N:H | |
| +-------| |---------+ |
| 4 |
|OFF TIMER WILL KEEP THE INCREMENT OR DECREMENT COMMAND FROM STARTING |
|WITHIN 5 SECONDS OF A STOPPED DECREMENT |
| "ANTI- |
| CHATTER" |
|RETRACT COMMAND TIMER |
|FROM PLC DGAP DIVERTER |
|LOGIC |
| N:H +--TON-----------+ |
35|-------|/|-------------------------------------------------------------------------------------------|Timer On Delay |-(EN)-|
| 4 |Timer: T:A | |
| |Base (SEC): 1.0|-(DN) |
| |Preset: 5| |
| |Accum: 5| |
| +----------------+ |
|THIS COMMAND GIVES A FINAL INCREMENT COMMAND TO FEED INTO THE |
|EXTEND RUNG IN EARLIER LOGIC OF THIS FILE |
| EXTEND COMMAND |
| INCREMENT INCREMENT FROM PLC DGAP |
| START STOP LOGIC |
| DIVERTER DIVERTER DONE |
| DONE BIT BIT |
| N:H T:B N:H T:A N:H |
36|-+----| |-------| |----+-----|/|------| |--------------------------------------------------------------------------( )-------|
| | 2 DN | 3 DN 5 |
| |EXTEND COMMAND | |
| |FROM PLC DGAP | |
| |LOGIC | |
| | N:H | |
| +-------| |-----------+ |
| 5 |
|OFF TIMER TO KEEP AN INCREMENT OR DECREMENT FROM STARTING WITHIN |
|5 SECONDS OF A STOPPED INCREMENT |
|EXTEND COMMAND "ANTI- |
|FROM PLC DGAP CHATTER" |
|LOGIC TIMER |
| DIVERTER |
| |
| N:H +--TON-----------+ |
37|-------|/|-------------------------------------------------------------------------------------------|Timer On Delay |-(EN)-|
| 5 |Timer: T:B | |
| |Base (SEC): 1.0|-(DN) |
| |Preset: 5| |
| |Accum: 5| |
| +----------------+ |
Second Try, Success
The Proportional Time Constant (PTC) Control
|THE FOLLOWING RUNGS WERE ADDED TO TRY AND IMPROVE ON DGAP LOGIC ABOVE. |
|WHEN OUTSIDE OF THIS DEADBAND GAP, THE DIVERTER WILL ESTIMATE THE TIME |
|THAT IT NEEDS TO RUN TO REACH SETPOINT. AFTER RUNNING FOR THAT TIME, |
|IT WILL SEE IF IT IS INSIDE THE GAP AND IF NOT, IT WILL GO AGAIN. THE |
|TIME WILL BE DETERMINED BY HOW FAR OFF IT IS FROM SETPOINT. -WA 3/20/1999 |
| +--ADD-----------+ |
38|----------------------------------------------------------------------------------------------------------|Add |-|
| |A: N:A | |
| | 4095| |
| |B: N:K | |
| | 40| |
| |Dest: N:L | |
| | 4135| |
| +----------------+ |
|THE RUNGS ABOVE AND BELOW EITHER ADD OR SUBTRACT THE GAP NUMBER FROM |
|THE ACTUAL POSITION COMMAND COMING FROM DCS. RAW COUNT USED INSTEAD |
|OF A RESPANNED PERCENTAGE NUMBER FOR THE GREATEST ACCURACY. |
| +--SUB-----------+ |
39|----------------------------------------------------------------------------------------------------------|Sub |-|
| |A: N:A | |
| | 4095| |
| |B: N:K | |
| | 40| |
| |Dest: N:M | |
| | 4055| |
| +----------------+ |
|THE NEXT TWO RUNGS DETERMINE WHETHER THE ACTUAL POSITION IS OUTSIDE |
|THE DCS POSITION COMMAND GAP AND IF SO INITIATE THE TIMED RUN |
|SEQUENCE |
|DIVERTER |
|POSITION DIVERTER DECREMENT |
|INDICATION FULLY RUN |
| RETRACTED DIVERTER |
| |
|+--GRT-------------+ I:A N:H |
40||Greater Than (A>B)|-----|/|------------------------------------------------------------------------------------------( )----|
||A: N:G | 05 6 |
|| 4059| IAD |
||B: N:L | |
|| 4135| |
|+------------------+ |
|DIVERTER |
|POSITION DIVERTER INCREMENT |
|INDICATION FULLY RUN |
| EXTENDED DIVERTER |
| |
|+--LES-----------+ I:A N:H |
41||Less Than (A<B) |-----|/|--------------------------------------------------------------------------------------------( )----|
||A: N:G | 04 7 |
|| 4059| IAD |
||B: N:M | |
|| 4055| |
|+----------------+ |
|THIS RUNG CALCULATES THE ESTIMATED TIME THE EXTEND OR RETRACT SHOULD |
|LAST FOR. A COMPUTE BLOCK WAS NOT USED BECAUSE OF THE ONE SHOT. |
| DIVERTER DIVERTER |
| DECREMENT CALCULATE READY TO CALCULATE |
| RUN TIME EXTEND ERROR |
| DIVERTER DONE ONE SHOT DIVERTER BUFFER |
| BIT |
| N:H T:C BA N:P +--SUB------------+ |
42|-+----| |----+---|/|------[ONS]-------| |--------------------------------+|Sub |-------------------------------+-|
| | 6 | DN 480 7 ||A: N:G | | |
| | | || 4059| | |
| |INCREMENT | ||B: N:A | | |
| |RUN | || 4095| | |
| |DIVERTER | ||Dest: N:Q | | |
| | | || 226| | |
| | | |+----------------+ | |
| | N:H | |DIVERTER DIVERTER | |
| +----| |----+ |POSITION CALCULATE | |
| 7 |INDICATION ERROR | |
| | BUFFER | |
| | | |
| |+--LES-----------+ +--NEG-----------+ | |
| ||Less Than (A<B) |-|Negate |------------| |
| ||A: N:G | |Source: N:Q | | |
| || 4059| | 226| | |
| ||B: N:A | |Dest: N:Q | | |
| || 4095| | 226| | |
| |+----------------+ +----------------+ | |
| |DIVERTER | |
| |CALCULATE | |
| |ERROR | |
| |BUFFER | |
| | | |
| |+--GRT-------------+ +--MUL-------------+ | |
| ||Greater Than (A>B)|-|Mul |--------| |
| ||A: N:Q | |A: 0.7| | |
| || 226| | | | |
| ||B: 100| |B: N:Q | | |
| || | | 226| | |
| |+------------------+ |Dest: T:C.PRE | | |
| | | 158| | |
| | +------------------+ | |
| |DIVERTER | |
| |CALCULATE | |
| |ERROR | |
| |BUFFER | |
| | | |
| |+--LEQ--------------------+ +--MUL-------------+ | |
| +|Less Than or Equal (A<=B)|-|Mul |-+ |
| |A: N:Q | |A: 0.4| |
| | 226| | | |
| |B: 100| |B: N:Q | |
| | | | 226| |
| +-------------------------+ |Dest: T:C.PRE | |
| | 158| |
| +------------------+ |
|RUNG WITH THE ACTUAL RUN TIMER |
| RETRACT/ |
| DECREMENT READY TO EXTEND |
| RUN EXTEND TIMER |
| DIVERTER DONE DIVERTER DIVERTER |
| BIT |
| N:H T:D N:P +--TON------------+ |
43|-+-+----| |----+---| |---+-----| |------------------------------------------------------------------|Timer On Delay |-(EN)-|
| | | 6 | DN | 7 |Timer: T:C | |
| | | | | |Base (SEC): 0.01|-(DN) |
| | |INCREMENT | | |Preset: 158| |
| | |RUN | | |Accum: 0| |
| | |DIVERTER | | +-----------------+ |
| | | | | |
| | | N:H | | |
| | +----| |----+ | |
| | 7 | |
| |TIMER | |
| |TIMING | |
| |T:C | |
| +--| |------------------+ |
| TT |
|THIS RUNG ACTUALLY OUTPUTS EITHER THE EXTEND OR RUNG COMMAND FROM |
|THIS SECTION OF LOGIC UP INTO THE ACTUAL EXTEND OR RETRACT OUTPUTS |
|HIGHER IN THIS FILE. |
| DECREMENT RETRACT |
| RUN COMMAND |
|TIMER DIVERTER FROM PTC |
|TIMING LOGIC |
|T:C N:H N:H |
44|--| |------------------------------------------------------------------------------------------------+----| |-------( )----+-|
| TT | 6 8 | |
| |INCREMENT EXTEND | |
| |RUN COMMAND | |
| |DIVERTER FROM PTC | |
| | LOGIC | |
| | N:H N:H | |
| +----| |-------( )----+ |
| 7 9 |
|THIS RUNG KEEPS ANOTHER INCREMENT OR DECREMENT FROM OCCURING UNTIL |
|AFTER THE LAST MOVE HAD ENDED FOR 5 SECONDS. |
| ANTI- |
|RETRACT EXTEND CHATTER |
|COMMAND COMMAND TIMER |
|FROM PTC FROM PTC DIVERTER |
|LOGIC LOGIC |
| N:H N:H +--TON-----------+ |
45|---|/|-------|/|-------------------------------------------------------------------------------------|Timer On Delay |-(EN)-|
| 8 9 |Timer: T:D | |
| |Base (SEC): 1.0|-(DN) |
| |Preset: 20| |
| |Accum: 0| |
| +----------------+ |
| +--RET-----------+ |
46|----------------------------------------------------------------------------------------------------------|Return |-|
| +----------------+ |
47|-----------------------------------------------------------------------------------------------------------------------[END]-|
Back to Main