Programación DE Arduino EN Lenguaje Ladder CON 2 Cilindros Completo PDF

Title Programación DE Arduino EN Lenguaje Ladder CON 2 Cilindros Completo
Author Jovanny DuKe Duke
Course Ingenieria Mecanica
Institution Universidad del Atlántico
Pages 14
File Size 665.5 KB
File Type PDF
Total Downloads 60
Total Views 122

Summary

Programe Arduino desde a partir de soluciones LADDER o GRAFCET con metodologías confiables
Arduino, programación de arduino, arduino project, arduino uno, arduino tutorial, como programar arduino,
proyectos arduino, arduino como plc, arduino ladder, arduino grafcet, introducción ...


Description

ARDUINO BASADO EN LADDER PROGRAMACIÓN DE ARDUINO EN LENGUAJE LADDER CIRCUITO ELECTRONEUMÁTICO COMPLETO CON UN CILINDRO CON MULTIPLES CONDICIONES DE OPERACIÓN

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 met odologí as confiables https://youtube.com/playlist?list=PLHTERkK4EZJr7zDQNKjjEyxhErjllCCUy

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

http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ https://mecatronica-itsa.blogspot.com/ PROGRAMACIÓN DE ARDUINO EN LENGUAJE LADDER Ciclo de trabajo Con posibilidad de elegir entre Cu – CC o Cx3 con Temporización entre ciclos. REALIZADO EN LA ESTACIÓN CLASIFICADORA DE PIEZAS

CIRCUITO ELECTRONEUMÁTICO/HIDRÁULICO

Ó

Condiciones de evaluación Elabore Circuito de control eléctrico para gobernar el cilindro A según el diagrama Espacio- Fase, de tal manera que cumpla con las siguientes especificaciones 1. Debe permitir la operación en Ciclo Único (CU) o Ciclo Continuo (CC) o Ciclo X3 (CX3). 2. El CC o CX3 deben quedar interrumpido (termina el ciclo actual y se detiene) por la acción de conmutar a CU, es decir el pasador de CU hará as veces de Stop.

2

http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ https://mecatronica-itsa.blogspot.com/ 3. El dispositivo se explora a través de un detector de pieza, cuando no hay piezas en el depósito, no ha de iniciar un ciclo o ha de pararse la instalación en su posición base, debiendo quedar interrumpido el Ciclo Continuo (CC) o el CX3. 4. En el modo CC o CX3 debe tener una temporización entre cada ciclo 5. Una vez accionado el pulsador de Paro de Emergencia (PE), debe retornar inmediatamente el cilindro a la posición de partida, ninguna otra acción puede darse mientras esté en la situación de emergencia, y al reestablecer el botón de emergencia tampoco debe presentarse ninguna activación en el circuito. 6. En CC o en CX3 el sistema debe asegurar una temporización entre ciclos. 7. Una vez terminado los 3 ciclos del modo CX3, el cilindro debe quedara en su posición de reposo (retraído) y solo se podrá reiniciar, reseteando el contador de circuito y pulsando nuevamente cualquiera de los pulsadores CU,CC o CX3. Calificación %

CONDICIÓN

Si realiza el CU al pulsar

Si realiza el CC al pulsar

Si realiza el Cx3 al pulsar Si después de CX3 no se puede ejecutar CU - CC o CX3 hasta que previamente de pulse

.

Si CC queda anulado por la acción de CU

Si CC queda anulado por la acción de Si CC o CX3 queda interrumpido al no haber pieza en el deposito (abierto = No hay pieza) Si entre Ciclo y Ciclo hay una temporización de 5 s Si al pulsar en cualquier momento PE el sistema el cilindro regresa inmediatamente y se suspenden los ciclos.

3

NOTA (1-5)

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

4

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

5

http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ https://mecatronica-itsa.blogspot.com/ PROGRAMACIÓN DE ARDUINO /// TRATAMIENTO ///

A+ T

PREVIO

A- COMPLETO

IMPLEMENTADO EN ESTACI0N MECATRÓNICA CLASIFICADORA

//DECLARACION DE VARIABLES //Declaración de las circuito/programa

variables Ki corresponden

a las reles/memorias

utilizadas para el

//Declaración de las variables de las entradas corresponden a las Entradas de pulsador NO (Normalmente abiertos) utilizadas para el circuito/programa //La designación Y1 y Y2 corresponde a los la electroválvula 5/2 biestable

pine de salidas

acoplada a las

bobinas de

int K1 = 0; int K2 = 0; int K3 = 0; int K4 = 0; int K5 = 0; int K6 = 0; int K_CC = 0; int K_PE = 0; int K_CX3 = 0;// Las memorias o false.

asociadas

a cada relé se

int CU ; //

Harà la función de pulsador de Ciclo Unico

int CC; //

Harà la función de pulsador de Ciclo Continuo

int CX3; //

declaran en

estado inicial bajo

Harà la función de pulsador de Ciclo Continuo

int R_ESET; // Harà la función de pulsador de RESET int PIEZA;

//

Harà la función de indicar si hay o no pieza

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

// //

Harà la función de BOTON DE PARO DE EMERGENCIA (N CERRADO)

int Y1 = 23; //

Pin de salida acoplada a las

6

bobinas de la electroválvula 5/2

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

// Variables

Pin de salida acoplada a las

asociadas a

"temp1".

// Bit

asociado

int T1 = LOW;

al

bobinas de la electroválvula 5/2

temporizador

1

int activado1 = 0; // Al principio no ha sido activado. long inicio1, final1, actual1;

// Variables

asociadas a

"temp2".

// Bit

asociado

int T2 = LOW;

al

temporizador

2

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

// Variables

asociadas al Contador 1

int CONTADOR1 = 0;

const int PSCONTADOR1 = 3; // Preselect del

int ESTADOPREVIO_K6 = 0;

// Estado previo del componente que incrementa el

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 pinMode(6, INPUT);

// CU

pinMode(14, INPUT);

// A_0

pinMode(15, INPUT);

// A_1

pinMode(12, INPUT); // PIEZA pinMode(7, INPUT);

//

Contador o # de ciclos

CC

7

Salidas

contador

http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ https://mecatronica-itsa.blogspot.com/ pinMode(8, INPUT);

// CXN

pinMode(9, INPUT); // RESET pinMode(13, INPUT);

//

PE

pinMode(23, OUTPUT);

// Y1

pinMode(25, OUTPUT);

// Y2

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

//TRATAMIENTO

SECUENCIAL

void loop() { // put your main code here, to run repeatedly: //Capturar valores de puertos digitales de entrada CU = digitalRead(6);

CC = digitalRead(7);

CX3 = digitalRead(8);

PIEZA = digitalRead(12);

A_0 = digitalRead(14);

R_ESET = digitalRead(9);

PE = digitalRead(13);

A_1 = digitalRead(15);

if ((((CU | CC | CX3 | T2) && A_0 && PIEZA) | K1) && (!K2) && (CONTADOR1< PSCONTADOR1) && PE ) {K1 = 1;} else { K1 = 0;}

8

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

if (K2) {activetemp1();} else {desactivetemp1();}

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

if (K3 && A_0)

{K4 = 1;}

else {K4 = 0;}

if ((K4 | K5) && (!T2) && (CONTADOR1< PSCONTADOR1) else {K5 = 0;}

if (K5) {activetemp2();} else {desactivetemp2();}

if (K_CX3 && K5)

{K6 = 1;}

else {K6 = 0;} if (K6 != ESTADOPREVIO_K6) { if (K6 == HIGH) { CONTADOR1++; Serial.print("Numero de Ciclos : Serial.println(CONTADOR1);

");

}

ESTADOPREVIO_K6 = K6; } if (R_ESET |!PE) { Serial.print("Numero de Ciclos :

");

Serial.println(CONTADOR1);

9

&& (K_CC | K_CX3))

{K5 = 1;}

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

= 0;

} if ( (CC | K_CC)&& PE && PIEZA && (!CU) && (CONTADOR1< PSCONTADOR1) && {K_CC = 1;}

(!K_CX3)

)

&& PIEZA && (!CU) && (CONTADOR1< PSCONTADOR1)&& (!K_CC)

)

else {K_CC = 0;}

if ( (PE| K_PE)&& (!A_0)) {K_PE = 1;} else {K_PE = 0;} if ( (CX3 | K_CX3)&& PE {K_CX3 = 1;} else {K_CX3 = 0;}

// TRATAMIENTO POSTERIOR - ACTIVACIÓN DE LAS

SALIDAS/ ACCIONES

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

if (K3) {digitalWrite(Y2, HIGH); } else { digitalWrite(Y2, LOW);}

if (K_CX3) {digitalWrite(33, HIGH); } else { digitalWrite(33, LOW);} // borrraRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRARRRRR

if (K_CC) {digitalWrite(31, HIGH); } else { digitalWrite(31, LOW);} // borraRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRARRRRR } //

Fin del void loop

//SUBRUTINAS DE TEMPORIZACIÓN //activetempx

y un

(Par cada temporización se asigna un subprograma

desactivetempx usando para ello comparaciones con el comando millis

//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

10

http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ https://mecatronica-itsa.blogspot.com/ //SUBRUTINA TEMPORIZADOR 1 //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void activetemp1() { if (K2 && activado1 == 0) { activado1 = 1;

// Si K2 esta

activa y no ha sido activado=0 antes...

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

inicio1 = millis(); final1 = inicio1 + 2000; } 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 (K5 && activado2 == 0) { activado2 = 1;

// Si K5

y no ha sido activado=0 antes...

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

inicio2 = millis(); final2 = inicio2 + 2000;

11

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

________________________________ Jo venes, este material ha sido elaborado con mucho gusto. Si te es u til Rega lame un Like, comenta y susc rí bete :) (っ◕‿◕) Amigos/as en el BLOGG MEKATRONIC A J DUKE podra s encontrar cantidad de recursos sobre SOLIDWORKS, HIDRA ULICA ELECTROHIDRA ULICA , NEUMA TICA, ELECTRONEUMA TICA, CONTROL, PLC M221, PLC SIE MEMS S7 1200, PLC SIEMENS S7 30 0 , FLUID SIM FACTORY IO, entre otros

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

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

https://www.mecatro nica.com.co/

13...


Similar Free PDFs