ACTIVIDAD FORMATIVA 2DO PARCIAL - CX3 RESET CONTROL DE CIRCUITOS ELECTRONEUMÁTICOS / ELECTROHIDRÁULICOS (% del Corte FORMATIVA )
https://youtube.com/playlist?list=PLHTERkK4EZJoUmPtqY8kKCboLIrGN8tYc https://youtube.com/playlist?list=PLHTERkK4EZJpJEcByUotJ5YOIiC-Vmimt
NOMBRE DE LOS
ESTUDIANTES:_________________________________________________________________________________________________________________ __________________________________
Planteamiento de la situación:
Diseñe el Circuito de control eléctrico para gobernar los cilindros A y B según el diagrama Espacio- Fase (CASO ASIGNADO), tal que al dar la señal de inicio (CX3) , realice solo tres (3) ciclos completos con una temporización entre cada ciclo, una vez terminado, solo se podrá reiniciar, reseteando el contador de circuito con la señal (RESET)
A TENER EN CUENTA = Todos los proyectos usaran las mismas electroválvulas, al finalizar los 3 ciclos todos los relés deben estar desactivados, todos los proyectos usarán los mismos pines de entradas y salidas.
Diagrama Espacio - Fase
Circuito Electroneumático o Circuito Electrohidráulico
GRAFCET
// CÓDIGO ARDUINO DEL CASO EJEMPLO
//TRATAMIENTO PREVIO
// OK CX3 R I O ITSAINO // ETAPAS GRAFCET PRINCIPAL int E1;
int E2;
int E3;
int E4;
int E5;
int E6;
int E7;
int E8;
int E9;
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 asociadas a "temp1".
int T1 = 0; // Bit asociado al temporizador 1 int tiempo1 = 2000; // Temporización de 2 segundos int activado1 = 0; // Al principio no ha sido activado.
long inicio1, final1, actual1;
// Variables asociadas a "temp2".
int T2 = 0; // Bit asociado al temporizador 2 int tiempo2 = 2000; // Temporización de 2 segundos int activado2 = 0; // Al principio no ha sido activado.
long inicio2, final2, actual2;
// Variables asociadas a CONTADOR
int CONTADOR = 0; // INICIALIZACIÒN DEL CONTADOR
const int PSCONTADOR = 3; // PRESELEC DEL CONTADOR = # DE CICLOS
int ESTADOPREVIO_E3 = 0; // 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);
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;
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);
// ECUACIONES GRAFCET PRINCIPAL
// Ecuaciones booleanas derivadas de la lógica binodal para cada ETAPA E1 = ((E1 | (E24 & E24) ) & (~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));
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 "); }
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); } 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) {
Serial.println("Etapa19"); }
if (E24 == HIGH) { CONTADOR = 0;
Serial.println("Etapa 24 "); }
delay(200); // Retardo creado para visualizar } // Fin del void 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; } // Tiempo final es inicio mas tiempo1 segundos.
actual1 = millis(); // Consulta el tiempo actual.
if (activado1 == 1 && (actual1 > final1) ) { // Si fue activado=1 y el tiempo actual es mayor que el final....
T1 = HIGH; }
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; } // Tiempo final es inicio mas tiempo2 segundos.
actual2 = millis(); // Consulta el tiempo actual.
if (activado2 == 1 && (actual2 > final2) ) { // Si fue activado=1 y el tiempo actual es mayor que el final....
T2 = HIGH; }
else { T2 = LOW; } }
void desactivetemp2() { T2 = LOW;
activado2 = 0;// haz un parpadeo.
inicio2 = 0;
final2 = 0;
actual2 = 0;
}
PINES DE ENTRADA Y SALIDA ARDUINO NANO EN LA ESTACIÓN “ITSAINO”
SUBIR ACTIVIDAD FORMATIVA 2D0 PARCIAL GRAFCET ARDUINO CX3 RESET 2 CILINDROS
Jóvenes, reciban un cordial saludo, se dará, las indicaciones para realizar esta actividad:
La actividad es en grupos de 2 estudiantes
Cada uno debe cargar la carpeta comprimida que contiene el código de Arduino
El nombre de la carpeta comprimida y del archivo de ARDUINO será CASO X APELLIDO EST1 _ APELLIDO EST2
La nota de 5.0 será 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 calificará máximo hasta máximo 3,5.
Entre mayor sean los intentos para el funcionamiento , menos nota obtendrán.
Máximo 2 intentos más.
El proyecto CX3 RESET 2 CILINDROS corresponde a la nota formativa del 2do Parcial (30% del 2do Parcial)
LISTA DE GRUPOS DE 2 ESTUDIANTES
Casos para realizar con circuitos Electroneumáticos
Desarrolle el proyecto con el uso del software Fluid Sim P.
CASO 1 Diagrama Espacio -Fase CASO 9 Diagrama Espacio - Fase
CASO 4 Diagrama Espacio - Fase
CASO 12 Diagrama Espacio - Fase
CASO 2 Diagrama Espacio - Fase CASO 10 Diagrama Espacio - Fase
CASO 3 Diagrama Espacio - Fase CASO 11 Diagrama Espacio - Fase
CASO 5 Diagrama Espacio – Fase CASO 13 Diagrama Espacio - Fase
CASO 6 Diagrama Espacio - Fase CASO 14 Diagrama Espacio - Fase
CASO 7 Diagrama Espacio – Fase CASO 15 Diagrama Espacio - Fase
CASO 8 Diagrama Espacio - Fase CASO 16 Diagrama Espacio - Fase
Jóvenes, este material ha sido elaborado con mucho gusto.
Si te es útil Regálame un Like, comenta y suscríbete :) (っ◕‿◕) Te invito al CANAL DE YOUTUBE MEKATRONICA
para conocer más
http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_
__________________________________
y Amigos/as en el BLOGG MEKATRONICA podrás encontrar cantidad de recursos sobre SOLIDWORKS, HIDRÁULICA - ELECTROHIDRÁULICA , NEUMÁTICA, ELECTRONEUMÁTICA, CONTROL, PLC M221, PLC SIEMEMS S7 1200, PLC SIEMENS S7 300 , FLUID SIM FACTORY
IO, entre otros