CIRCUITOS ELÉCTRICOS PROGRAMADOS SOBRE ARDUINO

Page 1

METODOLOGÍA PARA LA IMPLEMENTACIÓN DE CIRCUITOS ELÉCTRICOS PROGRAMADOS 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_ Ing. Jovanny Rafael Duque


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

setup

PREVIO ()

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

void setup()

{ //Apertura del "Monitor Serial.begin(9600);

serie"

//Declaración de puertos (pines) entrada como de salida pinMode(6, INPUT); pinMode(7, INPUT); pinMode(2, OUTPUT);

digitales tanto de

//Declaración del estado inicial salidas en bajo/apagadas digitalWrite(H1,0); }

de los pines de las


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

6) Programación

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

//TRATAMIENTO

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

SECUENCIAL

void loop(){

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

RESET = digitalRead(6); CX3 = digitalRead(7);

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

if ((CX3 | K1 | T2) & (!CONT1) & (!T1)) {K1 = 1; } else {K1 = 0; } if (K1) {activetemp1(); } // Si se activa K1 corre Subrutina de temporización "void activetemp1()" else {desactivetemp1();

");

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


DISPOSITIVO PARA EMBUTIR


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


IMPLEMENTACIÓN DEL PROGRAMA

https://youtu.be/cP4GUn4yiC4


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.