PROGRAMACIÓN DE ARDUINO EN LENGUAJE LADDER - CX3 RESET

Page 1

ARDUINO BASADO EN LADDER PROGRAMACIÓN DE ARDUINO EN LENGUAJE LADDER CIRCUITO ELECTRONEUMÁTICO CX3 RESET

https://youtu.be/8UsNg5HAqt0

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/JovannyDu que?sub_confirmation=1_ Si te ha sido útil, regálame un Like, comenta y suscríbete :) (っ◕‿◕)


SISTEMAS DE AUTOMATIZACIÓN SECUENCIALES IMPLEMENTADOS EN LADDER SOBRE ARDUINO

ARDUINO ARDUINO BASADO EN LADDER Aprende a programar Arduino desde una solucio n LADDER con una metodología confiable https://youtube.com/playlist?list=PLHTERkK4EZJq9hjTGCDQmaLvi7CAyk_q_

Acceso a PDF

https://play.google.com/books/s/370286768613/ebooks https://mega.nz/folder/a9thTIjA#bSAwbpbG3Z34DW3jJ_bMQg

ARDUINO Aprende a programar Arduino desde una solucio n LADDER o GRAFCET con metodologí as confiables https://youtube.com/playlist?list=PLHTERkK4EZJr7zDQNKjjEyxhErjllCCUy

GRAFCET CON ARDUINO Programa en Arduino sistemas secuenciales simulados en GRAFCET , con un metodo confiable 100% https://youtube.com/playlist?list=PLHTERkK4EZJpJEcByUotJ5YOIiC-Vmimt


http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ https://mecatronica-itsa.blogspot.com/ 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 solucio n LADDER con una metodología confiable https://youtube.com/playlist?list=PLHTERkK4EZJq9hjTGCDQmaLvi7CAyk_q_

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. 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

Circuito Electroneumático

o

2

Circuito Electrohidráulico


http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ https://mecatronica-itsa.blogspot.com/ Circuito de control eléctrico

// CODIGO ARDUINO /// TRATAMIENTO

PREVIO

/// DISPOSITIVO PARA REMACHAR /// I/ 0

ESTACIÓN CLASIFICADORA okok

//DECLARACION DE VARIABLES //Declaración de las variables Ki corresponden para el circuito/programa

a las reles/memorias

utilizadas

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

3


http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ https://mecatronica-itsa.blogspot.com/ // Declaración de las memorias inicial bajo o false.

asociadas

a cada relé se

declaran en

estado

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

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

//

el contador

// SALIDAS int Y1 = 43; // 4/3 BI A+

Pin de salida acoplada a la

bobina

Y1

de la electroválvula

int Y2 = 45; // 4/3 BI A-

Pin de salida acoplada a la

bobina

Y2

de la electroválvula

int Y3 = 41; // Pin de salida acoplada a la 4/2 MONO B+/-

bobina

Y3 de la electroválvula

// Variables int T1 = LOW;

asociadas a

"temp1".

// Bit

asociado

al

temporizador

4

1


http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ https://mecatronica-itsa.blogspot.com/ int activado1 = 0; // Al principio no ha sido activado. long inicio1, final1, actual1;

// Variables

asociadas a

"temp2".

// Bit

asociado

int T2 = LOW;

al

temporizador

1

int activado2 = 0; // Al principio no ha sido activado. long inicio2, final2, actual2;

// Variables

asociadas al Contador 1

int CONTADOR1 = 0; // Representa realizados

el valor

actual

del

contador o ciclos

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 decir cuando (CONTADOR1 >=PSCONTADOR1)

activa

cuando s

,

cumplen los

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

pinMode(5, INPUT); pinMode(6, INPUT); pinMode(3, INPUT);

5

ejemplo

completos

ciclos es


http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ https://mecatronica-itsa.blogspot.com/ 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); }

//TRATAMIENTO

void loop()

SECUENCIAL {

// 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)

else {

& A_0 & B_0) | K1)

K1 = 0; }

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

6

& (!K5) &

(!CONT1)) { K1 = 1; }


http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ https://mecatronica-itsa.blogspot.com/ if (((K2 & B_1) | K3) & (!K4)) { K3 = 1;}

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;} if (K7 != ESTADOPREVIO_K7) { if (K7 == HIGH) {CONTADOR1++; Serial.print("Numero de Ciclos :

");

Serial.println(CONTADOR1); }

7

else {K3 = 0;}


http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ https://mecatronica-itsa.blogspot.com/ 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 //activetempx millis

y

un

(Par cada temporización se asigna un subprograma

desactivetempx usando para ello comparaciones con el comando

//SUBRUTINA TEMPORIZADOR 1 void activetemp1() { if (K3 && activado1 == 0) { activado=0 antes...

// Si K1 esta

activa y no ha sido

activado1 = 1; inicio.

// marca activado=1 y guarda el tiempo de

inicio1 = millis(); final1 = inicio1 + 2000;

//Temporización

}

8

de 2

segundos


http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ https://mecatronica-itsa.blogspot.com/ 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() { if (K_F_C && activado2 == 0) { activado=0 antes... activado2 = 1; inicio.

// Si K_F_C esta

activa y no ha sido

// marca activado=1 y guarda el tiempo de

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; }

9


http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ https://mecatronica-itsa.blogspot.com/

PINES EN LA

DE ENTRADA ESTACIÓN

Y

SALIDA ARDUINO

MEGA

CLASIFICADORA DE PIEZAS

10


http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ https://mecatronica-itsa.blogspot.com/

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_ __________________________________ 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/

11


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.