Microprocesadores y Microcontroladores
Enviado por Yudi Liseth Alvarez Alvarez • 17 de Febrero de 2021 • Examen • 3.646 Palabras (15 Páginas) • 90 Visitas
Logo
FACULTAD DE INGENIERÍA
Programa: Ingeniería Electrónica
Asignatura: Microprocesadores y Microcontroladores
Fecha: Septiembre 16 2020 6:30 PM
Profesor: Javier Ferney Castillo Garcia
Email: javier.castillo00@usc.edu.co
EXAMEN 1
1. Presentar las ecuaciones de evolución del GRAFCET que a continuación se describe
El sistema está compuesto por:
- Tres silos S1, S2 y S3 que contienen productos distintos.
- Una cinta transportadora accionada por un MOTOR.
- Un CARRO situado en un extremo que recibe las mezclas de la cinta.
- Un final de carrera FC que indica el posicionamiento del carro.
- 3 electroválvulas EV1, EV2 y EV3 para la apertura y cierre de las compuertas de los silos.
- 4 pulsadores de marcha M1, M2, M3 y M4 para seleccionar la mezcla que se realizará.
- 1 pulsador de paro P para detener el automatismo en cualquier momento.
Las mezclas a realizar con los silos son las siguientes:
Mezcla 1: S1+S2
Mezcla 2: S1+S3
Mezcla 3: S2+S3
Mezcla 4: S1+S2+S3
Funcionamiento:
- Una vez colocado el carro al final de la cinta, y detectada su posición por el final de carrera FC, se podrá realizar la puesta en marcha de la cinta mediante cualquiera de los pulsadores indicados para las mezclas.
- La compuerta de cada silo debe permanecer abierta durante 5 segundos desde que la cinta transportadora esté en macha.
- Una vez cerradas las compuertas la cinta debe permanecer en funcionamiento 10 segundos para evacuar el producto hacia el carro.
- Si se pulsa el paro todo el sistema se detiene parándose la cinta y cerrándose las compuertas de los silos. El producto que pueda encontrarse encima de la cinta, o en el carro, se retirará manualmente, debiéndose iniciar de nuevo el ciclo.
- Cada vez que se termine una mezcla o después de haber pulsado el paro, será obligatorio quitar el carro para vaciarlo y volverlo a poner en su sitio para iniciar una nueva mezcla.
silos
GRAFCET:
Diseñamos el diagrama de acuerdo al funcionamiento.
grafcet
LISTADO DE SIMBOLOS:
Creamos un listado de símbolos con las entradas/salidas del autómata.
Nombre
Tipo de datos
Comentario
FC
BOOL
Final de carrera CARRO
M1
BOOL
Marcha MEZCLA1
M2
BOOL
Marcha MEZCLA2
M3
BOOL
Marcha MEZCLA3
M4
BOOL
Marcha MEZCLA4
P
BOOL
Pulsador PARO
FLS_M1
BOOL
Flanco Marcha Mezcla_1
FLS_M2
BOOL
Flanco Marcha Mezcla_2
FLS_M3
BOOL
Flanco Marcha Mezcla_3
FLS_M4
BOOL
Flanco Marcha Mezcla_4
MC_MZ1
BOOL
Motor Cinta Mezcla_1
MC_MZ2
BOOL
Motor Cinta Mezcla_2
MC_MZ3
BOOL
Motor Cinta Mezcla_3
MC_MZ4
BOOL
Motor Cinta Mezcla_4
EV1_MZ1
BOOL
EV_SILO_1_MEZCLA_1
EV1_MZ2
BOOL
EV_SILO_1_MEZCLA_2
EV1_MZ4
BOOL
EV_SILO_1_MEZCLA_4
EV2_MZ1
BOOL
EV_SILO_2_MEZCLA_1
EV2_MZ3
BOOL
EV_SILO_2_MEZCLA_3
EV2_MZ4
BOOL
EV_SILO_2_MEZCLA_4
EV3_MZ2
BOOL
EV_SILO_3_MEZCLA_2
EV3_MZ3
BOOL
EV_SILO_3_MEZCLA_3
EV3_MZ4
BOOL
EV_SILO_3_MEZCLA_4
FLB_C
BOOL
Flanco de CINTA
FLS_P
BOOL
Flanco del paro
Q_C
BOOL
Quitar CARRO
MOTOR_CINTA
BOOL
Motor CINTA TRANSPORTADORA
EV1
BOOL
Electrovalvula SILO1
EV2
BOOL
Electrovalvula SILO2
EV3
BOOL
Electrovalvula SILO3
TIM_1
BOOL
Tiempo apertura SILOS
TIM_2
BOOL
Tiempo paro MOTOR CINTA
2. Dibujar el GRAFCET correspondiente a las siguientes ecuaciones de evolución
SOLUCIÓN:
1. Ecuaciones del grafcet punto1:
int N=0; //ESTADO ACTUAL
int N_old=-1; //ESTADO ANTERIOR
int FC = 0; //Entrada accionamiento final de carrera para carro
int P = 0; //Pulsador de paro STOP
int M1 = 0; //Mezcla 1: S1 + S2
int M2 = 0; //Mezcla 2: S1 + S3
int M3 = 0; //Mezcla 3: S2 + S3
int M4 = 0; //Mezcla 4: S1 + S2 + S3
int EV1 = 0; //Electrovalvula del silo S1
int EV2 = 0; //Electrovalvula del silo S2
int EV3 = 0; //Electrovalvula del silo S3*/
int T1 = 0; //Tiempo 5seg
int T2 = 0; //Tiempo 10seg
int MOT=0; //MOTOR cinta eléctrica
//////////////////////////////////////////////////
///////////////ESTADOS////////////////////////////
bool E0 = 0;
bool E1 = 0;
bool E2 = 0;
bool E3 = 0;
bool E4 = 0;
bool E5 = 0;
bool E6 = 0;
bool E7 = 0;
bool E8 = 0;
bool E9 = 0;
void setup() {
Serial.begin(9600);
}
void recep ()
{
if (Serial.available() > 0) {
// read the incoming byte:
char incomingByte = Serial.read();
if( incomingByte=='F') FC=1; //fINAL DE CARRERA
else if(incomingByte=='E') P=1; //STOP-parada
else if(incomingByte=='D') M1=1; //M1-botón mezcla 1
else if(incomingByte=='C') M2=1; //M2-botón mezcla 2
else if(incomingByte=='B') M3=1; //M3-botón mezcla 3
else if(incomingByte=='A') M4=1; //M4-botón
...