FIFO with siemens S7-300 cpu's

Rverhoeven

Member
Join Date
Jun 2002
Posts
16
We have a priority energy system for 4 pump systems. only one pump system can be started at a specific time. The commands for starting the pumps however can be given at almost the same time. So the program has to "remember" which pump system was first. Therefor i thought i could use a FiFo, and there's the problem. i don't have a clue how a can create a FiFo in Siemens Step 7 (cpu type is S7-316)

Does anyone have an idea how to do this.....









An end is the beginning of something.......................
 
;)

If have a look in your Program Elements, you will find a library, the path is:
Libraries \ Standard Library \TI - S7 Converting Blocks \ FC85
if you highlight the FC-block and press F1 you will get some help on how to programme it

Hope this helps you out :D

fifo.jpg
 
When you say:
only one pump system can be started at a specific time
do you mean the classic:
"Due to inrush concerns, no pump may be started within 10 seconds of another pump"?

If so, you don't need a FIFO, you need a Start Permissive.

Straight ladder (I don't know Step 7 specifically, but this code is pretty generic)

Step 1. Remember the Start Command (this rung will be repeated 4 times, once per pump)

START-1 START-1
CMMD PUMP-1 MEMORY
----| |----+----|/|------( )
|
START-1 |
MEMORY |
----| |----+


Step 2. Create a one-shot of the pump starts.
Repeat 4 times.

PUMP-1
PUMP-1 oneshot ONESHOT
---| |----+----|/|-------( )
|
| oneshot
+--------------( )
There are dozen different ways to do this - again, this is generic


Step 3. Run the Permissive timer when there are no pumps starting.
If a pump starts, reset the timer

PUMP-1 PUMP-2 PUMP-3 PUMP-4 +--- TIMER ---+ TIMER
ONESHOT ONESHOT ONESHOT ONESHOT | | DONE
-----|/|-------|/|-------|/|-------|/|-------|EN DN|---( )
| 10 |
PUMP-1 | SEC |
ONESHOT | |
-----| |-----+-------------------------------|RESET |
| | |
PUMP-2 | +-------------+
ONESHOT |
-----| |-----+
|
PUMP-3 |
ONESHOT |
-----| |-----+
|
PUMP-1 |
ONESHOT |
-----| |-----|


Step 4. The actual pump start logic (Repeat 4 times)
START-1 TIMER STOP-1
MEMORY DONE CMMD PUMP-1
----| |------| |-----+-----|/|------( )
|
PUMP-1 |
----| |--------------+




Does that help?

Now this code starts the pumps in scan order, not pushbutton order like a FIFO would. But presumably you won't be getting too many pump start commands during the "blackout period" for this to be an issue.
 
Last edited:
Thanx

Steffen and Allen. thanx for the information

To Allen:
I had to use the fifo cause there was a situation i didn't mention. sorry about that.

The system is also used in case of the EPS usage during powerout. in this case i have to remember which CPU ask for the power up command for the pump. it's a little more complex than i can write down here.



To Steffen:
i didn't know before but you can use the TI - S7 conversion functions in a normal S7 program.
 

Similar Topics

hai can any one please let me know, how to use a FIFO & LIFO blocks with a small example ? I use SIEMENS S7-300:scratch:
Replies
2
Views
6,155
Has anyone developed a FIFO program for the Siemens S5 PLC using Fastrak Softworks? Here is a very brief summary of the application: Gypsum board...
Replies
0
Views
2,395
Is it possible to have a FIFO of strings in Siemens? I see that the FIFO instruction (FC85) manipulates words. Also, on a side note, are there...
Replies
1
Views
2,535
I've had an old problem come back to haunt me; I'm using the S7 standard ATT/FIFO blocks for an accumulator, but for no apparent reason the FIFO...
Replies
0
Views
7,235
Well HI all I am trying to use the FiFo/LiFo with a S7 300 and I am not to sure how to use it. I think I need the ATT table so that I could store...
Replies
4
Views
4,517
Back
Top Bottom