CONTROL DE CIRCUITOS ELECTRONEUMÁTICOS 2 CILINDROS GRAFCET COMPLETO
Arduino
Hola jóvenes, en estos enlaces del BLOGG y DEL CANAL, pueden encontrar recursos sobre fundamentos de ingeniería mecatrónica como : SOLIDWORKS, PROGRAMACIÓN DE ARDUINO, HIDRÁULICA – LENGUAJE LADDER , LENGUAJE GRAFCET ,ELECTROHIDRÁULICA , NEUMÁTICA, ELECTRONEUMÁTICA, PLC M221, PLC SIEMEMS S7 1200, PLC SIEMENS S7 300 , FLUID SIM, FACTORY IO, CONTROL, entre otros https://www.mecatrónica.com.co/ https://mecatronicaitsa.blogspot.com/ http://www.youtube.com/c/Jovanny Duque?sub_confirmation=1_ Si te ha sido útil, regálame un Like, comenta y suscríbete :) (っ◕‿◕)
http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ ACTIVIDAD FORMATIVA 2DO PARCIAL - CX3 RESET CONTROL DE CIRCUITOS ELECTRONEUMÁTICOS / ELECTROHIDRÁULICOS Corte FORMATIVA )
(% del
https://youtube.com/playlist?list=PLHTERkK4EZJoUmPtqY8kKCboLIrGN8tYc https://youtube.com/playlist?list=PLHTERkK4EZJpJEcByUotJ5YOIiC-Vmimt
Planteamiento de la situación: Disene el Circuito de control eléctrico para gobernar los cilindros A y B segun el diagrama Espacio- Fase (CASO ASIGNADO), tal que al dar la senal de inicio (CX3) , realice solo tres (3) ciclos completos con una temporizacion entre cada ciclo, una vez terminado, solo se podra reiniciar, reseteando el contador de circuito con la senal (RESET) A TENER EN CUENTA = Todos los proyectos usaran las mismas electrovalvulas, al finalizar los 3 ciclos todos los reles deben estar desactivados, todos los proyectos usaran los mismos pines de entradas y salidas. Diagrama Espacio - Fase
Elaborado por Ing. Jovanny Duque
pág. 1
http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ Circuito Electroneumático
o
Circuito Electrohidráulico
GRAFCET
Elaborado por Ing. Jovanny Duque
pág. 2
http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_
Elaborado por Ing. Jovanny Duque
pág. 3
http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_
// CODIGO ARDUINO DEL CASO EJEMPLO //TRATAMIENTO //
OK
CX3
R
PREVIO
I O
ITSAINO
// ETAPAS GRAFCET PRINCIPAL int E1; int E2; int E3; int E4; int E5; int E6; int E7; int E8; int E9;
Elaborado por Ing. Jovanny Duque
pág. 4
http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ int E16; int E19; int E24;
// DECLARACION DE LOS PINES DE ENTRADAS int A_0 = 10; int A_1 = 11; int B_0 = 12; int B_1 = 13; int CX3 = 8; int R_ESET = 9;
// DECLARACION DE LOS PINES DE LAS SALIDAS int Y1 = 2; int Y2 = 3; int Y3 = 4;
// Variables int T1 = 0;
asociadas a // Bit
int tiempo1 = 2000;
asociado
//
Elaborado por Ing. Jovanny Duque
"temp1". al
temporizador
Temporización
de 2
1
segundos
pág. 5
http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ int activado1 = 0; // Al principio no ha sido activado. long inicio1, final1, actual1;
// Variables
asociadas a
int T2 = 0;
// Bit
int tiempo2 = 2000;
"temp2".
asociado
//
al
temporizador
Temporización
de 2
2
segundos
int activado2 = 0; // Al principio no ha sido activado. long inicio2, final2, actual2;
// Variables
asociadas a
int CONTADOR = 0; // const int
CONTADOR
INICIALIZACIÒN DEL CONTADOR
PSCONTADOR = 3;
int ESTADOPREVIO_E3 = 0;
// PRESELEC DEL CONTADOR = # DE CICLOS //
Estado previo de la
etapa
que
incrementa
el
contador
void setup() {
Serial.begin(9600);
//Declaración de puertos digitales
de
ENTRADAS
pinMode(A_0, INPUT);
Elaborado por Ing. Jovanny Duque
pág. 6
http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ pinMode(A_1, INPUT); pinMode(B_0, INPUT); pinMode(B_1, INPUT); pinMode(CX3, INPUT); pinMode(R_ESET, INPUT);
// //Declaración de puertos digitales
de SALIDAS
pinMode(Y1, OUTPUT); pinMode(Y2, OUTPUT); pinMode(Y3, OUTPUT);
//ALGUNOS DISPOSITIVOS TRAEN UNA CONFIGURACION POR ESO ES NECESARIO COLOCAR LOS PUERTOS EN 0V digitalWrite(Y1, LOW); digitalWrite(Y2, LOW); digitalWrite(Y3, LOW);
// ETAPAS DEL GRAFCET PRINCIPAL (ESTADO INICIAL) E1 = HIGH; E2 = LOW; E3 = LOW;
Elaborado por Ing. Jovanny Duque
pág. 7
http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ E4 = LOW; E5 = LOW; E6 = LOW; E7 = LOW; E8 = LOW; E9 = LOW; E16 = LOW; E19 = LOW; E24 = LOW; }
void loop ( )
{
//TRATAMIENTO SECUENCIAL //Capturar valores de puertos digitales de entrada
CX3 = digitalRead(8); R_ESET = digitalRead(9); A_0 = digitalRead(10); A_1 = digitalRead(11); B_0 = digitalRead(12); B_1 = digitalRead(13);
Elaborado por Ing. Jovanny Duque
pág. 8
http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_
// ECUACIONES GRAFCET PRINCIPAL // Ecuaciones booleanas E1 = ((E1 | (E24 & E24)
derivadas
de
la lógica binodal para cada ETAPA
) & (~E2));
E2 = ((E2 | (E1 & (A_0 & B_0 & CX3) )|(E16 & T2)) & (~E3)); E3 = ((E3 | (E2 & A_1)) & (~E4) ); E4 = ((E4 | (E3 & B_1)) & (~E5) ); E5 = ((E5 | (E4 & T1)) & (~E6) );
E6 = ((E6 | (E5 & B_0)) & (~E7) );
E7 = ((E7 | (E6 & A_0)) & (~E8) );
E8 = ((E8 | (E7 & A_1)) & (~E9) );
E9 = ((E9 | (E8 & A_0))
& (~E16) & (~E19)
);
E16 = ((E16 | (E9
& (CONTADOR < PSCONTADOR)) ) & (~E2));
E19 = ((E19 | (E9
& (CONTADOR >= PSCONTADOR)) ) & (~E24));
Elaborado por Ing. Jovanny Duque
pág. 9
http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ E24 = ( (E24 | (E19 &
R_ESET )) & (~E1) )
;
//TRATAMIENTO POSTERIOR // ACCIONES GRAFCET PRINCIPAL if (E1 == HIGH) { Serial.println("Etapa 1"); CONTADOR = 0; Serial.print("VALOR DEL CONTADOR :
");
Serial.println(CONTADOR); }
if (E2 == HIGH) { digitalWrite(Y1, HIGH); Serial.println("Etapa2");
}
if (E3 == HIGH) { digitalWrite(Y1, LOW); digitalWrite(Y3, HIGH); Serial.println("Etapa3 ");
Elaborado por Ing. Jovanny Duque
}
pág. 10
http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ if ((E3) != ESTADOPREVIO_E3) { if (E3 == HIGH) { CONTADOR++; Serial.print("CONTADOR
CONTADOR
CONTADOR :
");
Serial.println(CONTADOR); } ESTADOPREVIO_E3 = E3; }
if (E4 == HIGH) { Serial.println("Etapa4"); activetemp1(); else {
}
desactivetemp1();
}
if (E5 == HIGH) { digitalWrite(Y3, LOW); Serial.println("Etapa5"); }
if (E6 == HIGH) { Serial.println("Etapa6"); digitalWrite(Y2, HIGH);
Elaborado por Ing. Jovanny Duque
}
pág. 11
http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ if (E7 == HIGH) { digitalWrite(Y2, LOW);
digitalWrite(Y1, HIGH);
Serial.println("Etapa7");
}
if (E8 == HIGH) { Serial.println("Etapa 8"); digitalWrite(Y1, LOW); digitalWrite(Y2, HIGH);
}
if (E9 == HIGH) { Serial.println("Etapa 9"); digitalWrite(Y2, LOW);
}
if (E16 == HIGH) { Serial.println("Etapa16"); activetemp2(); else {
}
desactivetemp2();
}
if (E19 == HIGH) {
Elaborado por Ing. Jovanny Duque
pág. 12
http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ Serial.println("Etapa19");
}
if (E24 == HIGH) { CONTADOR = 0; Serial.println("Etapa 24 ");
}
delay(200);
//
//
del
Fin
Retardo void
}
creado
para
visualizar
Loop
//SUBRUTINA TEMPORIZADOR 1 void activetemp1() {
if (activado1 == 0) {
// Si ha pulsado HIGH y no ha sido activado=0 antes...
activado1 = 1;
// marca activado=1 y guarda el tiempo de inicio.
inicio1 = millis(); final1 = inicio1 + tiempo1;
actual1 = millis();
}
// Tiempo final es inicio mas tiempo1 segundos.
// Consulta el tiempo actual.
if (activado1 == 1 && (actual1 > final1) ) { T1 = HIGH;
// Si fue activado=1 y el tiempo actual es mayor que el final....
}
Elaborado por Ing. Jovanny Duque
pág. 13
http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ else {
T1 = LOW;
}
} void desactivetemp1() { T1 = LOW; activado1 = 0;// haz un parpadeo. inicio1 = 0;
final1 = 0;
actual1 = 0;
}
//SUBRUTINA TEMPORIZADOR 2 void activetemp2() {
if (activado2 == 0) {
// Si ha pulsado HIGH y no ha sido activado=0 antes...
activado2 = 1;
// marca activado=1 y guarda el tiempo de inicio.
inicio2 = millis(); final2 = inicio2 + tiempo2; }
actual2 = millis();
// Tiempo final es inicio mas tiempo2 segundos.
// Consulta el tiempo actual.
if (activado2 == 1 && (actual2 > final2) ) { T2 = HIGH;
// Si fue activado=1 y el tiempo actual es mayor que el final....
}
Elaborado por Ing. Jovanny Duque
pág. 14
http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ else {
T2 = LOW;
}
}
void desactivetemp2() { T2 = LOW; activado2 = 0;// haz un parpadeo. inicio2 = 0; final2 = 0; actual2 = 0;
}
Elaborado por Ing. Jovanny Duque
pág. 15
http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_
PINES
DE ENTRADA EN LA
Elaborado por Ing. Jovanny Duque
Y
SALIDA ARDUINO NANO
ESTACIÓN
“ITSAINO”
pág. 16
http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_
SUBIR ACTIVIDAD FORMATIVA 2D0 PARCIAL GRAFCET ARDUINO CX3 RESET 2 CILINDROS Jovenes, reciban un cordial saludo, se dara, las indicaciones para realizar esta actividad:
La actividad es en grupos de 2 estudiantes Cada uno debe cargar la carpeta comprimida que contiene el codigo de Arduino El nombre de la carpeta comprimida y del archivo de ARDUINO sera CASO X APELLIDO EST1 _ APELLIDO EST2 La nota de 5.0 sera para quien haya enviado el proyecto por el Aula en el tiempo previsto y funcione a la primera vez Si no envían el proyecto en el tiempo previsto y lo presentan por otro medio se calificara maximo hasta maximo 3,5. Entre mayor sean los intentos para el funcionamiento , menos nota obtendran. Maximo 2 intentos mas. El proyecto CX3 RESET 2 CILINDROS corresponde a la nota formativa del 2do Parcial (30% del 2do Parcial)
LISTA
Elaborado por Ing. Jovanny Duque
DE
GRUPOS
pág. 17
http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ Casos para realizar con circuitos Electroneumáticos Desarrolle el proyecto con el uso del software Fluid Sim P.
CASO 1
CASO 2
Elaborado por Ing. Jovanny Duque
Diagrama Espacio -Fase
Diagrama Espacio - Fase
CASO 9
Diagrama Espacio - Fase
CASO 10
Diagrama
pág. 18
Espacio - Fase
http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ CASO 3 Diagrama Espacio - Fase
CASO 11
Diagrama Espacio - Fase
CASO 12
Diagrama Espacio - Fase
CASO 13
Diagrama Espacio - Fase
CASO 4 Diagrama Espacio - Fase
CASO 5 Diagrama Espacio – Fase
Elaborado por Ing. Jovanny Duque
pág. 19
http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ CASO 6 Diagrama Espacio - Fase
CASO 7 Diagrama Espacio – Fase
Elaborado por Ing. Jovanny Duque
CASO 14 Diagrama Espacio - Fase
CASO 15 Diagrama Espacio - Fase
pág. 20
http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ CASO 8
Diagrama Espacio - Fase
CASO 16
Diagrama Espacio - Fase
Jovenes, este material ha sido elaborado con mucho gusto. Si te es util Rega lame un Like, comenta y suscríbete :) (っ◕‿◕) Te invito al CANAL DE YOUTUBE MEKATRONICA para conocer ma s
http://www.youtube.com/c/JovannyDuque?sub_confirmation=1 _ __________________________________
Elaborado por Ing. Jovanny Duque
pág. 21
http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_
y Amigos/as en el BLOGG MEKATRONICA podras encontrar cantidad de recursos sobre SOLIDWORKS, HIDRAULICA - ELECTROHIDRAULICA , NEUMATICA, ELECTRONEUMATICA, CONTROL, PLC M221, PLC SIEMEMS S7 1200, PLC SIEMENS S7 300 , FLUID SIM FACTORY IO, entre otros
https://mecatronica-itsa.blogspot.com/
Elaborado por Ing. Jovanny Duque
pág. 22