Download as pdf or txt
Download as pdf or txt
You are on page 1of 16

SFC PROBLEMS WITH SOLUTION

PROBLEM 1

We want to automate the process that manufactures dough, used for making bread. When the system
is activated, using the ON button, the mixer's blades are lowered using the motor (MB), untill the
sensor SP detects them. Then, the system pours for 1 minute flour from tank A (valve V1) if
refined flour (HR) was selected, or form tank B (valve V2) if wholemeal flour (HI) was selected..
Next, two process are performed simultaneously:
• The mixer starts moving, by activating the motor clockwise (MH) for 2 minutes, and then
anti-clockwise (MA) for another 2 minutes. This process will be repeated 10 times.
• The system opens the water valve (VA) for 5 minutes, and then pours the salt and baking
powder mix stored in another tank. This is done by opening valve V3 for 15 seconds.

After both this processes end, the blades of the mixer are raised (using the motor MS), until they
reach the idle position, detected by the sensor S1. Then, an acoustic signal is activated for 30
seconds.

Model the system using SFC and program it.


SOLUTION
PROBLEM 2

We want to automate a carnival ride. Each trip starts by pressing the Marcha button. When this
button is pressed, the booth lock is activated (Cierre_cabina), and an acoustic signal (Sonido) is
emitted for 2 seconds. Then, the following processes are performed simultaneously:

• The motor that raises the booth (MSubida) is activated, until the sensor S2 detects the
booth. The booth stays in that position for 20 seconds. Then, the motor that lowers the booth
(MBajada) is activated, until the booth reaches the sensor S1. The system waits for another
20 seconds. This process has to be performed 4 times.
• The water gun is activated by filling the gun's tank through the valve V1, until the tank is
full (sensor S3). Then, every time that the button "DISPARO" is pressed, the gun shoots
water by activating the pump B1 for 3 seconds. The water gun waits for 2 seconds, and then,
if the trip is not over, it shoots again.

The trip ends when the first process is completed

Model the system using SFC, and program it

SOLUTION:

Name Const Address Used DG


B1 NO %Q0.2.5 1 NO
Cierre_cabina NO %Q0.2.2 1 NO
DISPARO NO %I0.1.4 1 NO
Marcha NO %I0.1.0 1 NO
MBajada NO %Q0.2.1 1 NO
MSubida NO %Q0.2.0 1 NO
S1 NO %I0.1.2 1 NO
S2 NO %I0.1.1 1 NO
S3 NO %I0.1.3 1 NO
Sonido NO %Q0.2.3 1 NO
V1 NO %Q0.2.4 1 NO
Pasos:

Bajar (4, 12)


Min/Max supervision time: Delay:
Comment:
Actions:
Descriptor: N Time: Variable: MBajada

Chorro (5, 12)


Min/Max supervision time: Delay:
Comment:
Actions:
Descriptor: N Time: Variable: B1

Sonido (4, 4)
Min/Max supervision time: Delay:
Comment:
Actions:
Descriptor: N Time: Variable: Sonido
Descriptor: S Time: Variable: Cierre_cabina

Espera1 (4, 10)


Min/Max supervision time: Delay:
Comment:
Actions:

Espera2 (4, 14)


Min/Max supervision time: Delay:
Comment:
Actions:
Descriptor: P1 Time: Section: LD :: CuentaViajes

Espera3 (5, 14)


Min/Max supervision time: Delay:
Comment:
Espera4 (4, 16)
Min/Max supervision time: Delay:
Comment:

Espera5 (5, 16)


Min/Max supervision time: Delay:
Comment:

EsperaD (5, 10)


Min/Max supervision time: Delay:
Comment:

Llenar (5, 8)
Min/Max supervision time: Delay:
Comment:
Actions:
Descriptor: N Time: Variable: V1

Reposo (Step 0) (4, 2)


Min/Max supervision time: Delay:
Comment:
Actions:
Descriptor: P1 Time: Section: LD::CeroViajes

Subir (4, 8)
Min/Max supervision time: Delay:
Comment:
Actions:
Descriptor: N Time: Variable: MSubida
Transitions:

Name Condition Type Position


DISPARO Variable (5, 11)
LD::FinViajes Section (4, 15)
LD::FinViajes2 Section (5, 15)
Marcha Variable (4, 3)
S1 Variable (4, 13)
S2 Variable (4, 9)
S3 Variable (5, 9)
LD::SeguirDisparo Section (6, 15)
LD::SeguirViajes Section (3, 15)
TRUE Constant (4, 17)
LD::T_20s Section (4, 11)
LD::T_2s Section (4, 5)
LD::T_3s Section (5, 13)
*The label inside the COMPARE block says: Cierre_sonido.t >= t#2s, position: (2.2)
PROBLEMA 3

We want to automate a system that packs soda bottles in packs of two bottles. The following figure
depicts a top view of the whole process:

START BUTTON

PISTONS
BOTTLE PACKING
MACHINE PICK-UP
AREA
BELT 1

BELT 3

BELT 2

BOTTLE BOTTLE
PACK

The system works as follows:

The process starts whenever the worker presses the start button P. Two independent conveyor belts
(MC1 and MC2) bring bottles from the previous stage of the manufacturing process, where they
have been filled and tagged. We need to pack them in sets of two bottles each. The PLC has to
control each belt independently, so they can be stopped when a bottle is in place (SP1 or SP2
sensors activate) It is important to notice that bottles can arrive at different times. When both
sensors have detected a bottle (both conveyor belts are stopped), then two lateral pistons (EMB) are
activated. The pistons place the bottles in the third conveyor belt (MC3). This operation takes 2
seconds. Next, MC3 is activated, and moves the bottles to the packing machine (EMP). This is
detected by the sensor SP3. The packaging process takes 10 seconds. Then, the bottle pack is sent to
the pick-up area, until the sensor SP4 detects the pack, and stops the MC3. In the pick-up area a
robotic arm picks the bottle pack and places it in a palet (signal RobotON). Once the robot finishes,
it returns the signal RobotOK. The packaging process is repeated until 8 packs are placed in the
palet. At that moment, the system activates a light signal (L) for 20 seconds to give a visual
indication that the palet is ready for transportation. After the 20 seconds have passed, the sistem
goes back to the idle state

Model the system using SFC, and program it


SOLUTION:

Name Const Type Address Comment Used GD


EMB NO EBOOL %Q0.2.5 Pistons 1 NO
EMP NO EBOOL %Q0.2.9 Packing Machine 1 NO
L NO EBOOL %Q0.2.13 Light signal 1 NO
MC1 NO EBOOL %Q0.2.1 Motor Conveyor belt 1 1 NO
MC2 NO EBOOL %Q0.2.3 Motor Conveyor belt 2 1 NO
MC3 NO EBOOL %Q0.2.7 Motor Conveyor belt 3 1 NO
P NO EBOOL %I0.1.2 Start button 1 NO
RobotOK NO EBOOL %I0.1.12 Robot completed its task 1 NO
RobotON NO EBOOL %Q0.2.11 Robot activation signal 1 NO
SP1 NO EBOOL %I0.1.4 Proximity sensor belt 1 1 NO
SP2 NO EBOOL %I0.1.6 Proximity sensor belt 2 1 NO
SP3 NO EBOOL %I0.1.8 Proximity sensor packing machine 1 NO
SP4 NO EBOOL %I0.1.10 Proximity sensor pick-up area 1 NO
Packs NO INT %MW20 Holds the number of packs stored in the palet 1 NO
*COMPARE BLOCK: Empaquetadora.t>=t#10s, position: (2.2)

*COMPARE BLOCK: Luminosa.t>=t#20s, position: (2.2)

You might also like