CIRCUITOS ELÉCTRICOS SOBRE ARDUINO

Page 1

METODOLOGÍA PARA LA IMPLEMENTACIÓN DE CIRCUITOS ELÉCTRICOS SOBRE ARDUINO

ARDUINO 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 solución LADDER o GRAFCET con metodologías confiables https://youtube.com/playlist?list=PLHTERkK4EZJr7zDQNKjjEyxhErjllCCUy 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_ GRAFCET CON ARDUINO Programa en Arduino sistemas secuenciales simulados en GRAFCET , con un método confiable 100% https://youtube.com/playlist?list=PLHTERkK4EZJpJEcByUotJ5YOIiC-Vmimt


PLC´s o Arduinos Autómata programable - PLC

PLC Basados en Arduino


EDITORES LADDER PARA ARDUINO Outseal PLC

LD Micro

Soap Box

Easy Ladder V2.5


PLC BASADO EN ARDUINO - HARDWARE


HARDWARE CONEXIÓN DEL PROTOTIPO AL BANCO DE PRUEBAS ELECTRONEUMÁTICAS PLC BASADO EN ARDUINO


PLC BASADO EN ARDUINO - HARDWARE

Conexión del prototipo al banco de pruebas electroneumáticas


METODOLOGÍA - LENGUAJE LADDER Al pulsar CX3, la salida del PLC (H1) solo hará una secuencia de encendido y apagado intermitente por (4) cuatro ciclos de encendido (2s) y apagado (2s). Una vez realizados los 4 ciclos deberá accionarse el pulsador RESET para habilitar una nueva secuencia. 1) Especificaciones del sistema: Documentación del proceso

2) Simulación del proceso

VIDEO : CIRCUITOS ELÉCTRICOS FLUIDSIM

https://youtu.be/D thNIWzYofo


DEFINICIÓN DE LOS TIPOS DE CONTACTOS LO QUE ESTÁ CONECTADO SI SON

=

SI SON

3) Determinación de cantidad de E/S, temporizadores, contadores, etc.

LA LÓGICA QUE NECESITO 4) Selección del Arduino

5) Conexión de E/S - Direcciones asignadas -Tipos NO/NC -Tipos de contactos en editor LADDER (Normal Negado)

VIDEO ASOCIADO https://youtu.be/fJ2c 8X2PD4Y


6) Programación

/// TRATAMIENTO //ANTES

DEL

void

PREVIO

setup

()

// DECLARACIÓN DE VARIABLES int K1 = 0; int K2 = 0; int K3 = 0; // Las memorias = Relee. int RESET = 6; int CX3 = 7 ; // Pines de entrada. int H1 = 2; // Pin de salida del LED // Variables asociadas a "temp1". int T1 = 0 ; // Bit/memoria asociado al temporizador 1 int tiempo1 = 1000;//Tiempo de T1 int activado1 = 0; // Al principio no ha sido activado. long inicio1, final1, actual1; // Variables de la subrutina de T1

// Variables asociadas a "temp2". int T2 = 0 ; // Bit/memoria asociado al temporizador int tiempo2 = 1000; // Tiempo asignado a la Temporización 2 int activado2 = 0; // Al principio no ha sido activado. long inicio2, final2, actual2; // Variables de la subrutina de T2 // Variables asociadas al Contador 1 int CONTADOR1 = 0; // Guarda el numero de ciclos transcurridos const int PSCONTADOR1 = 3; // Preselect del Contador int ESTADOPREVIO_T1 = 0; // Estado previo del componente que incrementa el contador. int CONT1 = 0; // Es la variable que se activa cuando se cumplen los ciclos.


6) Programación

void setup()

{

//Apertura el "Monitor serie" Serial.begin(9600); //Declaración de puertos (pines) digitales tanto de entrada como de salida pinMode(6, INPUT); pinMode(7, INPUT); pinMode(2, OUTPUT); //Declaración del estado inicial de los pines de las salidas en bajo/apagadas digitalWrite(H1,0);

}


6) Programación

//TRATAMIENTO

SECUENCIAL

{

void loop()

RESET = digitalRead(6); CX3 = digitalRead(7); if ((CX3 | K1 | T2) & (!CONT1) & (!T1)) {K1 = 1; } else {K1 = 0; } if (K1) {activetemp1(); } // Si se activa K1 corre Subrutina "void activetemp1()" else {desactivetemp1(); if ((T1 | K2) & (!K3)) {K2 = 1;} else {K2 = 0; } if (K2) {activetemp2(); } else {desactivetemp2();}

if (T2) {K3 = 1; } else {K3 = 0; }


//

6) Programación

EL

CONTADOR

DE CICLOS

if (T1 != ESTADOPREVIO_T1) { if (T1 == 1) {CONTADOR1++; Serial.print("Numero de Ciclos : Serial.println(CONTADOR1); ESTADOPREVIO_T1 = T1; }

"); }

if ( CONTADOR1 >= PSCONTADOR1) { CONT1 = 1;} else { CONT1 = 0; } if (!RESET == 1) {CONTADOR1 = 0; CONT1 = 0; Serial.print("Numero de Ciclos :"); Serial.println(CONTADOR1); }

// TRATAMIENTO POSTERIOR if (K1) {digitalWrite(H1, 1);} else { digitalWrite(H1, 0); }

}

// Fin

del

Void Loop


6) Programación

//SUBRUTINAS DE TEMPORIZACIÓN //SUBRUTINAS TEMPORIZADOR 1 void activetemp1() { if (activado1 == 0){ activado1 =1; inicio1 = millis(); final1 = inicio1 + tiempo1; } actual1=millis();

if (activado1 == 1 & (actual1 >= final1) ) { T1 = 1; } else {T1 = 0; } } void desactivetemp1() { T1 = 0; activado1 = 0; inicio1 = 0; final1 = 0; actual1 = 0; } //- - - - - - - - - - - - - -

//SUBRUTINAS TEMPORIZADOR 2 void activetemp2() { if (activado2 == 0) { activado2 = 1; inicio2 = millis(); final2 = inicio2 + tiempo2; } actual2 = millis(); if (activado2 == 1 & (actual2 >= final2)) { T2 = 1; } else { T2 = 0; } } //- - - - - - - - - - - - - - - - void desactivetemp2() { T2 = 0; activado2 = 0; inicio2 = 0; final2 = 0; actual2 = 0; } //- - - - - - - - - - - - - 7) Configurar la comunicación 8) Pruebas y ajustes


IMPLEMENTACIÓN DEL PROGRAMA – CX3 - R


DISPOSITIVO PARA EMBUTIR


DEFINICIÓN DEL TIPO DE CONTACTO (Normal o Negado)


DEFINICIÓN DEL TIPO DE CONTACTO (Normal o Negado)


PROGRAMACIÓN


PROGRAMACIÓN


IMPLEMENTACIÓN DEL PROGRAMA //TRATAMIENTO SECUENCIAL void loop() { CU = digitalRead(6); CC = digitalRead (7); CX3 = digitalRead(8); R_ESET = digitalRead(9); PIEZA = digitalRead(A2); PE = digitalRead(A3); A_0 = digitalRead(10); A_1 = digitalRead(11); B_0 = digitalRead(12); B_1 = digitalRead(13);

if (((((CU | CC | CX3 | T2) & PIEZA & A_0 & B_0 & PE) | K1)) & (!K5)& (!K12) & (!K14)& (!CONT1)) } {K1 = 1;} else { K1 = 0;}


IMPLEMENTACIÓN DEL PROGRAMA

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


IMPLEMENTACIÓN DEL PROGRAMA

if ((K_FIN_CICLO | K8) & (!K9) & (KCC | KCX3)) { K8 = 1;} else { K8 = 0;}


IMPLEMENTACIÓN DEL PROGRAMA

if ( (CC | KCC) & (!CU) & PIEZA & PE & (!CONT1) & (!KCX3) ) {KCC = 1;} else {KCC = 0;}


IMPLEMENTACIÓN DEL PROGRAMA https://youtu.be/raeSWl7fr_M


GRACIAS


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.