• No se han encontrado resultados

Circuito Electroneumático o Circuito Electrohidráulico

N/A
N/A
Protected

Academic year: 2021

Share "Circuito Electroneumático o Circuito Electrohidráulico"

Copied!
9
0
0

Texto completo

(1)

CONTROL DE CIRCUITOS ELECTRONEUMÁTICOS / ELECTROHIDRÁULICOS (% del Corte) https://youtube.com/playlist?list=PLHTERkK4EZJrSElocHbXzjzLjKXq8RjIV

ARDUINO BASADO EN LADDER

Aprende a programar Arduino desde una solución LADDER con una metodología confiable https://youtube.com/playlist?list=PLHTERkK4EZJq9hjTGCDQmaLvi7CAyk_q_

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.

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

(2)

Circuito de control eléctrico

(3)

// CÓDIGO ARDUINO

/// TRATAMIENTO PREVIO

/// DISPOSITIVO PARA REMACHAR

/// I/ 0 ESTACIÓN CLASIFICADORA okok //DECLARACION DE VARIABLES

//Declaración de las variables Ki corresponden a las reles/memorias utilizadas para el circuito/programa //Declaración de las variables de las entradas corresponden a las Entradas de pulsador NO (Normalmente abiertos) utilizadas para el circuito/programa

// Declaración de las memorias asociadas a cada relé se declaran en estado inicial bajo o false.

int K1 = 0;

int K2 = 0;

int K3 = 0;

int K4 = 0;

int K5 = 0;

int K6 = 0;

int K7 = 0;

int K8 = 0;

int K_F_C= 0;

// Declaración de las variables de Entradas y Salidas.

// ENTRADAS

int CX3 ; //Entrada de Pulsador que hará la función de pulsador de 3 Ciclo

int R_ESET = 0; // Entrada de Pulsador que hará la función de resetear el contador int A_0 ; // Harà la función de sensor de entrada final de carrera

int A_1; // Harà la función de sensor de entrada final de carrera int B_0 ; // Harà la función de sensor de entrada final de carrera int B_1; // Harà la función de sensor de entrada final de carrera // SALIDAS

int Y1 = 43; // Pin de salida acoplada a la bobina Y1 de la electroválvula 4/3 BI A+

int Y2 = 45; // Pin de salida acoplada a la bobina Y2 de la electroválvula 4/3 BI A- int Y3 = 41; // Pin de salida acoplada a la bobina Y3 de la electroválvula 4/2 MONO B+/-

// Variables asociadas a "temp1".

int T1 = LOW; // Bit asociado al temporizador 1 int activado1 = 0; // Al principio no ha sido activado.

long inicio1, final1, actual1;

// Variables asociadas a "temp2".

int T2 = LOW; // Bit asociado al temporizador 1

(4)

long inicio2, final2, actual2;

// Variables asociadas al Contador 1

int CONTADOR1 = 0; // Representa el valor actual del contador o ciclos completos realizados

const int PSCONTADOR1 = 3; // Preselect del Contador o # de ciclos , Representa el # de ciclos que se desean realizar int CONT1=0; // Es la variable que se activa cuando s cumplen los ciclos es decir cuando (CONTADOR1 >=PSCONTADOR1) int ESTADOPREVIO_K7 = 0; // Estado previo del componente que incrementa el contador,

en este caso K7 incrementa el contador

void setup() {

// put your setup code here, to run once:

//Apertura del visualizador serial Serial.begin(9600);

//Declaración de puertos digitales de Entradas y Salidas pinMode(15, INPUT); // No usar en este ejemplo

pinMode(27, INPUT); // No usar en este ejemplo pinMode(2, INPUT); // No usar en este ejemplo pinMode(18, INPUT); // No usar en este ejemplo pinMode(5, INPUT);

pinMode(6, INPUT);

pinMode(3, INPUT);

pinMode(4, INPUT);

pinMode(25, INPUT);

pinMode(21, INPUT);

pinMode(41, OUTPUT);

pinMode(43, OUTPUT);

pinMode(45, OUTPUT);

//Algunos dispositivos traen una configuración "Sinking and Sourcing"

//por eso es necesario colocar los puertos de salida en 0v.

//Declaración del estado inicial de los pines de las salidas en bajo/apagadas digitalWrite(Y1, LOW);

digitalWrite(Y2, LOW);

digitalWrite(Y3, LOW);

}

(5)

//TRATAMIENTO SECUENCIAL

void loop() {

// put your main code here, to run repeatedly:

//Capturar valores de puertos digitales de entrada CX3 = digitalRead(21); R_ESET = digitalRead(25);

A_0 = digitalRead(5); A_1 = digitalRead(6);

B_0 = digitalRead(3); B_1 = digitalRead(4);

if ( ( ((CX3 | T2) & A_0 & B_0) | K1) & (!K5) & (!CONT1)) { K1 = 1; } else { K1 = 0; }

if (((K1 & A_1) | K2) & (!K4) ) { K2 = 1; } else {K2 = 0; }

if (((K2 & B_1) | K3) & (!K4)) { K3 = 1;} else {K3 = 0;}

if (K3) { activetemp1();}

else {desactivetemp1(); }

if ((T1 | K4) & (!K5) ) {K4 = 1;}

else {K4 = 0; }

if (((K4 & B_0) | K5) & (!K6)) {K5 = 1;}

else {K5 = 0;}

if (((K5 & A_0) | K6) & (!K7)) { K6 = 1;}

else { K6 = 0; }

if (((K6 & A_1) | K7) & (!K_F_C)) {K7 = 1; } else {K7 = 0;}

if (((K7 & A_0) | K_F_C) & (!K8)) {K_F_C = 1;}

else {K_F_C = 0;}

if (K_F_C) {activetemp2();}

else {desactivetemp2(); } if (T2) { K8 = 1;}

else {K8 = 0;}

(6)

if (K7 != ESTADOPREVIO_K7) { if (K7 == HIGH) {CONTADOR1++;

Serial.print("Numero de Ciclos : ");

Serial.println(CONTADOR1); } ESTADOPREVIO_K7 = K7;}

if ( CONTADOR1 >=PSCONTADOR1) {CONT1=1;}

else {CONT1=0;}

if (R_ESET) {CONTADOR1 = 0; CONT1=0; Serial.println(CONTADOR1); Serial.print("Numero de Ciclos : "); }

// TRATAMIENTO POSTERIOR - ACTIVACIÓN DE LAS SALIDAS/ ACCIONES

if (K1 | K6) {digitalWrite(Y1, HIGH); } else {digitalWrite(Y1, LOW); }

if (K2) {digitalWrite(Y3, HIGH);}

else {digitalWrite(Y3, LOW);}

if (K5 | K7 ) {digitalWrite(Y2, HIGH);}

else {digitalWrite(Y2, LOW);}

}

//SUBRUTINAS DE TEMPORIZACIÓN (Par cada temporización se asigna un subprograma

//activetempx y un desactivetempx usando para ello comparaciones con el comando millis //SUBRUTINA TEMPORIZADOR 1

void activetemp1() {

if (K3 && activado1 == 0) { // Si K1 esta activa y no ha sido activado=0 antes...

activado1 = 1; // marca activado=1 y guarda el tiempo de inicio.

inicio1 = millis();

final1 = inicio1 + 2000; //Temporización de 2 segundos }

actual1 = millis(); // Consulta el tiempo actual.

if (activado1 == 1 && (actual1 > final1) ) {T1 = HIGH;}

else {T1 = LOW;}

}

void desactivetemp1() { T1 = LOW;

activado1 = 0; inicio1 = 0;

final1 = 0; actual1 = 0;

}

//SUBRUTINA TEMPORIZADOR 2 void activetemp2() {

(7)

if (K_F_C && activado2 == 0) { // Si K_F_C esta activa y no ha sido activado=0 antes...

activado2 = 1; // marca activado=1 y guarda el tiempo de inicio.

inicio2 = millis();

final2 = inicio2 + 2000; //Temporización de 2 segundos }

actual2 = millis(); // Consulta el tiempo actual.

if (activado2 == 1 && (actual2 > final2) ) {T2 = HIGH;}

else {T2 = LOW;}

}

//- - - void desactivetemp2() {

T2 = LOW;

activado2 = 0; inicio2 = 0;

final2 = 0; actual2 = 0;

}

PINES DE ENTRADA Y SALIDA ARDUINO MEGA EN LA ESTACIÓN CLASIFICADORA DE PIEZAS

(8)

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_

(9)

__________________________________

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

https://mecatronica-itsa.blogspot.com/

Referencias

Documento similar

Jóvenes, este material ha sido elaborado con mucho gusto.. 1) DESARCHIVAR EL ARCHIVO (GAUGING_ HW) QUE SOLO CONTIENE LA CONFIGURACION DEL HARDWARE DE LA ESTACION Y

entradas analógicas, 1 puerto de línea serie, 1 puerto Ethernet, controlador compacto de 100 a 240 V CA con bloques de terminales

16 entradas digitales, 16 salidas de transistor de común positivo (0,1 A), 2 entradas analógicas, 2 puertos de línea serie, controlador modular de 24 V CC con conectores

Jóvenes, este material ha sido elaborado con

Después de haber realizado los (3) tres ciclos del modo CX3 sólo puede iniciarse el funcionamiento en cualquier otro ciclo después de pulsar RESET. No debe haber ningún movimiento

Jóvenes, este material ha sido elaborado con

Que al dejar de pulsar el pulsador el rele volverá a su estado normal y el contacto auxiliar se abrirá cortando el paso de la corriente y la electrovalvula volverá al estado inicial y

Maxi 35: Contiene a todos a los jugadores que cumplan 35 o más años de edad en el año en curso.. Maxi 40: Contiene a todos a los jugadores que cumplan 40 o más años de edad en el