Multiple Low/High Select in RSLogix500

redviper

Member
Join Date
May 2011
Location
Calgary, AB
Posts
19
Hi Guys,

I have a little project in which I have 4 tanks with level transmitters installed.

There is a recycle pump that will start/stop based on level.

The operators have the option to select 1,2,3 and(or) 4 tanks at once. I then need to look at selected tank levels, start on the highest level, stop on the lowest level.

Just curious on some logic for this task. I can do it using multiple rungs of code comparing each each level against one another, but I would like to write in less rungs.

I was thinking about a small indexing routine, just curious if anyone has a little sweet piece of logic kicking around.

Thx,

K
 
8 rungs for compare

I have created a program similar to this but I no longer have access to the file because of non-disclosure restrictions.

You have to compare levels no matter what. You can compare the high level with 4 rungs and similarly 4 rungs for the low level.

In my opinion this is better than indexing because you can visually see what all the levels are and its easier to see if there is a problem. 8 rungs is not all that bad.

Once you have the levels then you just compare then to your limits for stopping and stopping.

Simple and clean. Indexing in this case does not give you any benefit in my opinion.
 
I agree with gscure. See file below for a High value select. For a low just start with a high value in rung 000 and change the "GRT" to LES"

The below was posted here by ????. So whoever created it jump in and take credit.
 
Last edited:
I must not have explained it properly.

There 4 tanks, each with their own level transmitter. There is a pump that will start / stop based on level setpoints.

Each tank has the abilitiy to be enabled or disabled. say you enabled tank 1 & 2......I need to use the highest of the two levels for the start level being watched and the lowest of the two levels for the stop level being watched.

They can use 1, 2, 3 and (or) 4 tank individually or all at once. So there are times I only watch one level, and times i may need to compare 4 levels.

I attached the logic I used (ignore Rung 4 & 5), which works; although I feel it's not as clean as it could be. Took me I think 36 rungs to do both.

N7:199 is my low select register; N7:209 is my high select register.

Thanks Guys,

K
 
Last edited:
Well if it works and it's easy to troubleshoot then I see no problem.

The alternative is to use what I call cute instructions ( indirect, indexing stuff) they always, always make troubleshooting harder to do.

IMHO nice job.
 
Last edited:
I understood what you are doing and you start with the first level. If it is selected move it into a compare register. Go to the next level, if it is selected then compare its level with the compare register. Depending on what your comparing for > or < you move the appropriate number into the register then step to the next. Once you have gone through all of the tanks your level will be the highest or lowest depending on what you are trying to find.

4 rungs each to do this.
 
you could couple your checks for high and low on the same rung. you do not need to seperate them.
_________________________________________________________________________

a faster way would be to have two integer files. one for the most high and one for the most low.

have two rung.

here is my example

i am assuming 0 is the lowest level and 10 is the highest.

BST MOV 10 N7:0 NXB MOV 0 N7:1 NXB XIC B3:0/0 BST LES N7:10 N7:0 MOV N7:10 N7:0 NXB GRT N7:10 N7:1 MOV N7:10 N7:1 BND NXB XIC B3:0/1 BST LES N7:11 N7:0 MOV N7:11 N7:0 NXB GRT N7:11 N7:1 MOV N7:11 N7:1 BND BND

i only accounted for 2 tanks but you just have to add more.

I hope that i have it right.
 
I stand corrected, I did misunderstand the process. The logic you have put with your two rungs will work.

I was thinking that you wanted to level out the tanks so you didnt want the first lowest tank to stop the pump. I was thinking you would monitor the levels until the last tank got to the low level then stop the pumps.

Of course the Opposite for starting of course.

I like your idea so great job!
 

Similar Topics

This is the first time I am working with Simatic Manager Step7 as I started my siemens journey with TIA which is pretty easy and do a lot of stuff...
Replies
3
Views
117
Compactlogix controller, program has 28 conveyors that use TON's to start the conveyors. The TT sounds a warning horn during start and the DN...
Replies
10
Views
482
I have 9 field devices, three METSEPM5110 power meters and six ACE949-2 rs285 interface modules. I want to read this Modbus rtu data through rs485...
Replies
8
Views
304
I'm trying to use DTM browser to make make modbus poll from RTAC. I'm able to get the points in first poll object. But not able to get anything in...
Replies
1
Views
120
Hello, I encountered a problem with the kinetix 6500 drive, error code s22, loss of 3 phase voltage. After disassembling and replacing the thermal...
Replies
2
Views
160
Back
Top Bottom