Anda di halaman 1dari 12

PROBLEMASRESUELTOSENLENGUAJELITERALESTRUCTURADO(ST)

Problema: Barrera de Garaje

Sepretendeautomatizarelsiguientefuncionamiento:
Aloprimirelpulsador,labarrerasube.Cuandollegaarribapermanecersubida
durante20segundos,transcurridoesetiempoiniciaeldescensohaciasuposicin
inicial.Siduranteelprocesodebajadadelabarrerasedetectalapresenciadealgn
vehculopormediodelsensor,labarreravuelveasubir,esperaaqueelvehculose
retireydespusbaja.

Parada

Pulsador

Sabajo

Subir

Sarriba
Spresencia

Espera
t>5s

Bajar

SOLUCIN:
Entradas

Salidas

Estados

Psubida

%I1.1

Motorsubir

%Q2.0

Parada

%M0

Sarriba

%I1.13

Motorbajar

%Q2.1

Subir

%M1

Sabajo

%I1.8

Espera

%M2

Spresencia

%I1.2

Bajar

%M3

ConfiguracindelTemporizador:
%TM0.P:=200;
%TM0.B:=100ms;

Lasentencia%L0esunainicializacindelosestados,enestecasohemosutilizadoel
bitdesistema%S13,estebit(segnelmanualdelautmata)tomavalor1enel
primerciclodespusdelapuestaaRUN,esdecir,vale1cuandoseenciendeel
autmata.Poresonospuedeservirparadeterminarlacondicindeiniciodel
programa.
Lasinstruccionesindicanquesiestamosenelprimerciclo,seacabadepasaraRUN
elautmata(IF%S13THEN),ponemosa1elbitdememoriaqueindicaelprimer
estadoalquehemosdenominadoParada(SET%M0)ya0elrestodelosestados
(RESET%M1;RESET%M2).
Indicarquetodaslasinstruccionesdebenfinalizarsecon;.
AlfinalizarlaestructuradecontrolEND_IF.

_____________________________________________________________________________

Lasentencia%L1indicalatransicindelestadoParada(%M0)alestadoSubir
(%M1).
o CuandoestenelestadodeParadayseoprimeelpulsadorPsubida(IF
%I1.1AND%M1THEN),entoncesseponea1elbitdememoriaqueindicael
estadoSubir(SET%M1)yseponea0elbitdememoriaqueindicael
estadoParada(RESET%M0).
_____________________________________________________________________________

Lasentencia%L2indicalatransicindelestadoSubiralestadoEspera,alllegaral
finaldelrecorrido,lodetectaelsensorSarriba,labarreradebeparar.
o CuandoestenelestadodeSubiryelsensorSarribadetectaqueha
llegadoarriba(IF%I1.13AND%M1),entoncesseponea1elbitdememoria
queindicaelestadoEspera(SET%M2)yseponea0elbitdememoriaque
indicaelestadoSubir(RESET%M1).
_____________________________________________________________________________

Lasentencia%L5gestionaeltemporizador,queseiniciaconelflancodesubidadel
bitqueindicaelestadoEspera(RE%M2),ysedesactivaalsalirdelestado(FE
%M2).
_____________________________________________________________________________

Lasentencia%L21indicalatransicindelestadoEsperaalestadoBajar,paralo
cualdebenhabertranscurrido20segundos.Segnelenunciadolabarreradebe
permanecerarriba5segundosparada,paraestoutilizaremosuntemporizador.
Cuandoeltemporizadorhayaterminadodemedirlos20segundos,susalidase
pondra1(%TM0.Q).Ademssecompruebaquenohayningncochedebajodela
barrera,pormediodelsensordepresenciaSpresenciaantesdeiniciarsubajada.
o CuandoestenelestadoEspera(%M2)yhantranscurridolos5segundos
(%TM0.Q)ynohaycochedebajodelabarrera(NOT%I1.2),todaslas
condicionesalavez,esdecir,conoperacinAND
IF%M2AND%TM0.QAND(NOT%I1.2)
entoncesseponea1elbitdememoriaqueindicaelestadoBajar
(SET%M3)yseponea0elbitdememoriaqueindicaelestado
Espera(RESET%M2).
_____________________________________________________________________________

Lasentencia%L3indicalatransicindelestadoBajaralestadoParada,alllegar
alfinaldelrecorrido,lodetectaelsensorSabajo,labarreradebeparar.
o CuandoestenelestadodeBajaryelsensorSabajodetectaqueha
llegadoabajo(IF%I1.8AND%M3),entoncesseponea1elbitdememoria
queindicaelestadoParada(SET%M0)yseponea0elbitdememoria
queindicaelestadoBajar(RESET%M3).
_____________________________________________________________________________

Lasentencia%L4indicalatransicindelestadoBajaralestadoSubirquese
puedeproducirsielsensordepresenciadetectaunvehculoatravesandolabarrera
cuandoestaestbajando
o CuandoestenelestadodeBajaryelsensorSpresenciadetectaque
hayunvehculodebajo(IF%M3AND%I1.2),entoncesseponea1elbitde
memoriaqueindicaelestadoSubir(SET%M1)yseponea0elbitde
memoriaqueindicaelestadoBajar(RESET%M3).
_____________________________________________________________________________

Lasentencia%L6asignalassalidasalosestadoscorrespondientes:
o %Q2.0:=%M3;Lasalida%Q2.0(motordebajada)soloestactivadacuando
%M3tomavalor1,esdecir,cuandoestactivadoelestadoBajar
o %Q2.1:=%M1;Lasalida%Q2.1(motordesubida)soloestactivadacuando
%M1tomavalor1,esdecir,cuandoestactivadoelestadoSubir

Se quiere que la vagoneta efecte el siguiente proceso cada vez que pulsemos el botn de
arranque:

Debecargarmaterialenelreadecarga(nivel1)enunprocesoquedura5segundos.
Tras cargar, dirigirse al puesto de trabajo situado en el nivel 2 y efectuar la descarga del
materia, este proceso dura 4 segundos. Una vez concluido el proceso de descarga volver a
situarseenelreadecarga.Repetirelmismoprocesoparalospuestosdetrabajosituadosen
losniveles3,4y5.

Durantelaetapadecargadebemantenerseencendidoelindicadorluminosocorrespondiente
al rea de carga, de igual forma durante la descarga se mantendr encendida la luz
correspondientealpuestodetrabajodondeseefectaladescarga.

Notas:
Sepideprogramarenlenguajeliteralestructurado.
Utilizarunapalabrainternaparaindicarencadainstanteelpuestodetrabajosobreel
queseestactuando.

SOLUCIN

ProgramaMAIN
!(*Inicializacion*)
IF(NOT%M0ANDNOT%M1ANDNOT%M2ANDNOT%M3ANDNOT%M4)THEN
SET%M0;
END_IF;
!(*Puestaenmarcha*)
IF%M0AND%I1.0THEN
SET%M10;
%MW0:=2;
END_IF;
!(*Bucleparaabastecertodoslosniveles*)
IF%MW0<=5THEN

(*iniciodelprocesodecarga*)

IF%M0AND%M10THEN

SET%M1;

RESET%M0;

END_IF;

(*procesodecarga*)

IFRE%M1THEN

START%TM0;

ELSIFFE%M1THEN

DOWN%TM0;

END_IF;

(*Pasoalestadodemovimientohaciaderecha*)

IF%TM0.QTHEN

SET%M2;

RESET%M1;

END_IF;

(*Elijohastadondemoverme*)

IF(%MW0=2)THEN

IF%M2AND%I1.9THEN

SET%M3;

RESET%M2;

END_IF;

ELSIF(%MW0=3)THEN

IF%M2AND%I1.10THEN

SET%M3;

RESET%M2;

END_IF;

ELSIF(%MW0=4)THEN

IF%M2AND%I1.11THEN

SET%M3;

RESET%M2;

END_IF;

ELSE

IF%M2AND%I1.12THEN

SET%M3;

RESET%M2;

END_IF;

END_IF;

(*Etapadedescarga*)

IFRE%M3THEN

START%TM1;

ELSIFFE%M3THEN

DOWN%TM1;

END_IF;

(*Vueltaazonadecarga*)

IF%M3AND%TM1.QTHEN

SET%M4;

RESET%M3;

END_IF;

(*Accionesarealizaralllegaralazonadecarga*)

IF%M4AND%I1.8THEN

SET%M1;

RESET%M4;

%MW0:=%MW0+1;

END_IF;

END_IF;
!(*Activaciondelassalidas*)
%Q2.1:=%M2;
%Q2.0:=%M4;
!(*Vueltaalestadodereposo*)
IF%MW0>5THEN
SET%M0;
RESET%M1;
RESET%M10;
END_IF;

PROBLEMA

DesarrollarunprogramautilizandoGRAFCETylenguajeliteralestructuradoquerealicelas
siguientesoperaciones:

Unavezpulsadalaentrada%I1.0,leaelvalordelasentradasylasguardeenuna
palabra(%MW10)ycuentecuntasestnactivasen%MW4.
Sisepulsaelinterruptor%I1.1,debeactivarelnmerodesalidasindicadasen%MW4,
empezandoporlaprimera.
Sisepulsaelinterruptor%I1.2,debeactivarelnmerodesalidasindicadasen%MW4,
empezandoporlaltima.
Sisepulsa%I1.3,debeactivarlassalidasalmacenadasen%MW10hastaquesepulse
elinterruptor%I1.4.
Unavezactualizadaslassalidas,sevuelveaesperarlaentrada%I1.0.

EsquemadeGRAFCET

Programacindelastransiciones:
X0>X1:%I1.0
X1>X2:%I1.1
X1>X3:%I1.2
X1>X4:%I1.3
X2>X0:TRUE
X3>X0:TRUE
X4>X0:%I1.4

Programacindelasetapas
Etapa0
!%MW4:=0;(*Inicializamoselcontadordeentradasactivadas*)

Etapa1
!%Q2.0:16:=0;(*Ponemosacerolassalidas*)
%MW10:=%I1.0:16;(*CopiamoslatabladeentradasenlapalabraMW10*)
(*Contamosentradasactivas*)
!FOR%MW0:=0TO15DO

(*Buclepararecorrertodaslasentradas*)

IF%I1.0[%MW0]THEN(*Silaentradaestactiva

END_IF;

INC%MW4;

aumentamoselvalordeMW4*)

END_FOR;

Etapa2

!FOR %MW0:=0 TO %MW4 DO


SET %Q2.0[%MW0];
END_FOR;

(* Recorremos las %MW4 primeras salidas *)


(* las activamos *)

Etapa3

! FOR %MW0:=0 TO %MW4 DO (* Recorremos las %MW4 ltimas salidas *)


%MW1:=15-%MW0;
(* para empezar por la ltima *)
SET %Q2.0[%MW1];
(* las activamos *)
END_FOR;
Etapa4
Accincontinua:
!%Q2.0:16:=%MW10;

Accin desactivacin:
!%Q2.0:16:=0;

(*Copiamosenlatabladesalidaselcontenidode
MW10,dondesehaguardadolatabladeentrada*)

Anda mungkin juga menyukai