INTRODUCCIÓN
Desde hace mucho tiempo estuve desarrollando un prototipo de un SISTEMA DE TRANSFERENCIA AUTOMATICO, que cuente prácticamente con todas las funciones necesarias. Es decir, que cuente con entradas digitales para los selectores, entrada de corriente alterna para detectar presencia del suministro eléctrico, entradas de señales analógicas para poder medir la tensión de la batería, salidas para poder activar contactores de potencia y que se pueda programar al igual que los plc´s.
Efectivamente, hoy aprenderemos a como realizar un sistema automático de transferencia con todas las características antes mencionadas. Pero antes que nada tenemos que saber el funcionamiento de un ATS. Como su nombre lo indica este sistema nos permite transferir una fuente de alimentación principal a otra fuente de respaldo; normalmente la fuente principal es el suministro eléctrico comercial y las fuentes de respaldo suelen ser banco de baterías o grupos electrógenos.
Supongamos que yo tengo una planta de producción de alimentos de primera necesidad, así que mi planta no debe parar ni un momento, ni cuando se corta el suministro eléctrico si en caso ocurriera nuestro ATS debe transferir la alimentación al grupo electrógeno o al banco de baterías, de esta manera la planta sigue en funcionamiento así no haya suministro de energía comercial.
DATOS TÉCNICOS
- Tensión de alimentación……………………….…………24VDC
- Corriente de alimentación………………….……………92mA
- Entadas digitales 15-24VDC……………………….……8
- Entradas analógicas (voltaje) 0-24V…………..…….1
- Entrada AC (110-220VAC)……………………………………1
- Controlador para batería……………………………………..1
- Salidas RLY…………………………………………………………4
-
- Tensión AC…………..……….………………….….……250V
- Corriente AC…………………………………………….5A
- Tensión DC………………………………………………30V
- Corriente DC……………………………………………5A
-
- Puerto de comunicación serial……………………………1
- Comunicación ISP……………………………………..……….1
- Programación Directa………………………………………..Ordenador – ATS Board
- Entorno de programación………………………..………..Arduino IDE (Ladder en desarrollo)
- Condiciones ambientales min……………………….….-40°
- Condiciones ambientales max…………………..……….85°
- Dimensiones……………………………………………………….100x100mm
- Empotrable………………………………….……………………Sí
LISTA DE COMPONENTES ELECTRÓNICOS
Categoría | Cantidad | Referencias | Valor | PCB Package | Datasheet |
Condensadores | 22 | C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12, C13,C14,C15,C16,C17,C20,C21,C22,C29,C30 |
100nF | 0603_CAP | (buy & see) |
Condensadores | 2 | C18,C19 | 100nF | 0805_CAP | (buy & see) |
Condensadores | 3 | C23,C24,C25 | 10uF | 1206_CAP | (buy & see) |
Condensadores | 1 | C26 | 470uF | CAP SMD 10.5X10MM ALUMINUM 470UF/35V | (buy & see) |
Condensadores | 1 | C27 | 220uF | CAP SMD 6.3X7.7MM ALUMINUM 220UF/16V | (buy & see) |
Condensadores | 1 | C28 | 100nF | 1206_CAP | (buy & see) |
Resistencias | 26 | R1,R2,R3,R4,R5,R6,R7,R8,R9,R10,R11,R12, R13,R14,R15,R16,R36,R39,R44,R47,R49,R50, R54,R55,R62,R65 |
10k | 0603_RES | (buy & see) |
Resistencias | 9 | R17,R18,R19,R20,R21,R22,R23,R24,R68 | 20k | 1206_RES | (buy & see) |
Resistencias | 20 | R25,R26,R27,R28,R29,R30,R31,R32,R33,R35, R38,R42,R43,R46,R52,R53,R60,R61,R66,R69 |
1k | 0603_RES | (buy & see) |
Resistencias | 4 | R34,R56,R63,R64 | 10k | 0805_RES | (buy & see) |
Resistencias | 4 | R37,R40,R45,R48 | 4.7k | 0603_RES | (buy & see) |
Resistencias | 1 | R41 | 1k | 0805_RES | (buy & see) |
Resistencias | 1 | R51 | 470k | 1206_RES | (buy & see) |
Resistencias | 2 | R57,R58 | 220 | 0603_RES | (buy & see) |
Resistencias | 1 | R59 | 1M | 0603_RES | (buy & see) |
Resistencias | 1 | R67 | 5.1k | 1206_RES | (buy & see) |
Integrados | 2 | U1,U8 | 74HC14 | TSSOP14 | (buy & see) |
Integrados | 2 | U2,U10 | 74HC541 | TSSOP20 | (buy & see) |
Integrados | 4 | U3,U4,U5,U6 | ILD207T | SO8 | (buy & see) |
Integrados | 1 | U7 | LM358N | SO8 | (buy & see) |
Integrados | 4 | U9,U11,U12,U15 | TLP127 | SOIC250P670X300-4 | (buy & see) |
Integrados | 1 | U13 | ATMEGA328P | QFP80P900X900X120-32 | (buy & see) |
Integrados | 1 | U14 | CH340C | SO16 | (buy & see) |
Integrados | 1 | U16 | LM2576-5,0 | TO170P1410X464-6 | (buy & see) |
Transistores | 2 | Q1,Q8 | FQD11P06TM | DPAK-N | (buy & see) |
Transistores | 5 | Q2,Q3,Q5,Q6,Q7 | PMBT3904,215 | SOT23-3 | (buy & see) |
Transistores | 1 | Q4 | PMBT3906,215 | SOT23-3 | (buy & see) |
Diodos | 9 | D1,D2,D3,D4,D5,D6,D7,D8,D26 | LED-GREEN | LEDC1608X60 | (buy & see) |
Diodos | 3 | D9,D10,D22 | SS14-TP | DIOM5226X230N | (buy & see) |
Diodos | 5 | D11,D13,D15,D16,D18 | RR1VWM6STFTR | SOD2614X116 | (buy & see) |
Diodos | 6 | D12,D14,D17,D19,D20,D25 | LED-RED | LEDC2012X120 | (buy & see) |
Diodos | 1 | D21 | LED Y-G-O | LED Y-G-O 0805 | (buy & see) |
Diodos | 1 | D23 | B330A-13-F | DIOM5226X230N | (buy & see) |
Diodos | 1 | D24 | MM3Z5V1T1G | SOD-323 | (buy & see) |
Miscelánea | 1 | BR1 | DF005S | DFS | (buy & see) |
Miscelánea | 1 | BTN1 | RST | BUTTON SMD | (buy & see) |
Miscelánea | 1 | F1 | 1A | FUSE SMD | (buy & see) |
Miscelánea | 1 | J1 | KFM736-5_0-5P | KFM736-5.0-5P P=5.0MM | (buy & see) |
Miscelánea | 7 | J2,J3,J4,J5,J6,J7,J9 | TBLOCK-M2 | T-BLOCK 2PIN BLUE | |
Miscelánea | 1 | J8 | TBLOCK-M2 | T-BLOCK 2PIN GREEN | |
Miscelánea | 1 | J10 | JACK USB 2 TIPO B | JACK USB 2.0 TYPE B | (buy & see) |
Miscelánea | 1 | J11 | CONN-SIL6 | CONN-SIL6 | (buy & see) |
Miscelánea | 1 | L1 | 100u | INDUCTOR 100UH | (buy & see) |
Miscelánea | 4 | RL1,RL2,RL3,RL4 | HF49FD/012-1H12G | RELAY24VPLC V1 | (buy & see) |
Miscelánea | 1 | TR1 | ZMPT101B | ZMPT101B | (buy & see) |
Miscelánea | 1 | X1 | CRYSTAL SMD S | OSCILADOR SMD CERAMIC RESONATORS | (buy & see) |
PASOS PARA SUBIR UN PROGRAMA
PASO 1 : SUBIR GESTOR DE ARRANQUE (BOOTLOADER)
Para poder usar un microcontrolador nuevo (atmega328P-AU), es necesario subir un un gestor de arranque como también llamado “BOOTLOADER”, esto nos facilitará subir programas en futuras ocasiones.
finalmente para quemar el bootloader se tendrá que realizar a través de los pines ICSP, que prácticamente serían los pines [ (MOSI=11) (MISO = PIN12) (SCK=PIN13) (Slave=PIN10) ]. Para subir y quemar el gestor de arranque necesitaremos un arduino UNO ó MEGA y realizar las siguientes conexiones (ARDUINO UNO – ATS).
PASO 2 : SUBIR PROGRAMA; PC – ATS
Después de haber subido el gestor de arranque finalmente ya podremos subir cualquier programa como normalmente lo realizamos a través del puerto serie.
CODIGO ARDUINO (METODO GRAFCET)
// CREATED BY ELECTROALL********************* //INPUTS const int AA = 2; //Automatic const int MM = 3; const int ACAC = 4; const int RR = 5; // ac current sensor const int AC_SS = 10; //OUTPUTS // indicators leds const int led1 = 12; const int led2 = 11; //charge battery const int bat_charg = 13; //relays const int K1 = 17; const int K2 = 16; // others relays const int rly3 = 15; const int rly4 = 14; //MEMORIES // STAGE/ETAPA boolean e0 = false; boolean e1 = false; boolean e2 = false; boolean e3 = false; boolean e4 = false; boolean e5 = false; boolean e6 = false; boolean e7 = false; boolean e8 = false; //bat_charge boolean e00 = false; boolean e9 = false; //TRANSITION boolean t01 = false; boolean t12 = false; boolean t23 = false; boolean t20 = false; boolean t03 = false; boolean t34 = false; boolean t41 = false; boolean t40 = false; boolean t05 = false; boolean t56 = false; boolean t67 = false; boolean t60 = false; boolean t07 = false; boolean t78 = false; boolean t85 = false; boolean t80 = false; //bat_charge boolean t09; boolean t90; void setup() { //INPUTS Serial.begin(9600); pinMode(AA, INPUT); pinMode(MM, INPUT); pinMode(ACAC, INPUT); pinMode(RR, INPUT); //ac current sensor pinMode(AC_SS, INPUT); //OUTPUS //indicator leds pinMode(led1, OUTPUT); pinMode(led2, OUTPUT); //charge battery pinMode(bat_charg, OUTPUT); //relays outputs pinMode(K1, OUTPUT); pinMode(K2, OUTPUT); pinMode(rly3, OUTPUT); pinMode(rly4, OUTPUT); digitalWrite(rly3, 0); digitalWrite(rly4, 0); } void loop() { int A = digitalRead(AA); int M = digitalRead(MM); int AC = digitalRead(ACAC); int R = digitalRead(RR); int AC_S = digitalRead(AC_SS); //CHARGING BATTERY PROCESS********************************************* int bat_sensor = analogRead(A6); int bat_sen = map(bat_sensor, 0, 1023, 0, 26); Serial.println(bat_sen); delay(500); // 22 IS 24V- REAL VOLTAGE if (!e9 == true)e00 = true; if (e00 == true && bat_sen <= 20) { t09 = true; t90 = false; } if (t09 == true && bat_sen >= 24) { t90 = true; t09 = false; } if (e00 && t09 == true) { e9 = true; e00 = false; } if (e9 && t90 == true) { e00 = true; e9 = false; } if (e00)digitalWrite(bat_charg, 0); if (e9)digitalWrite(bat_charg, 1); //FINAL CHARGING BATTERY********************************************* //MAIN PROCESS>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> //INICIALIZACION*************************** if ((!e1 && !e2 && !e3 && !e4 && !e5 && !e6 && !e7 && !e8) == true) { e0 = true; } //TRANSITION********************************* //AUTO ==>no hay energia en la acometida 220V / no energy 220 in if (e0 && A && !AC_S == true) { t01 = true; t20 = false; t40 = false; } if (e1 && A && !AC_S == true) { delay(5000); t12 = true; t01 = false; } if (e2 && A && AC_S == true) { t23 = true; t12 = false; t41 = false; } if (e2 && M == true) { t20 = true; t12 = false; } // AUTO ==>hay energia en la acometida 220V // there is energy 220 in if (e0 && A && AC_S == true) { t03 = true; t40 = false; t20 = false; } if (e3 && A && AC_S == true) { delay(5000); t34 = true; t03 = false; } if (e4 && A && !AC_S == true) { t41 = true; t34 = false; t23 = false; } if (e4 && M == true) { t40 = true; t34 = false; } //MANUAL ===> energ�a acometida // energy 220vac if (e0 && M && AC == true) { t05 = true; t60 = false; t80 = false; } if (e5 && M && AC == true) { delay(5000); t56 = true; t05 = false; } if (e6 && M && R == true) { t67 = true; t56 = false; t85 = false; } if (e6 && A == true) { t60 = true; t56 = false; } //MANUAL ===> respaldo( grupo electr�geno, bater�as)// back(generator set, batteries) if (e0 && M && R == true) { t07 = true; t80 = false; t60 = false; } if (e7 && M && R == true) { delay(5000); t78 = true; t07 = false; } if (e8 && M && AC == true) { t85 = true; t78 = false; t67 = false; } if (e8 && A == true) { t80 = true; t78 = false; } //ETAPA************************************** //AUTO ==>no hay energia en la acometida 220V / no energy 220 in if (e0 && t01 == true) { e1 = true; e0 = false; } if (e1 && t12 == true) { e2 = true; e1 = false; } if (e2 && t23 == true) { e3 = true; e2 = false; } if (e2 && t20 == true) { e0 = true; e2 = false; } //AUTO ==>hay energia en la acometida 220V // there is energy 220 in if (e0 && t03 == true) { e3 = true; e0 = false; } if (e3 && t34 == true) { e4 = true; e3 = false; } if (e4 && t41 == true) { e1 = true; e4 = false; } if (e4 && t40 == true) { e0 = true; e4 = false; } //MANUAL ===> energ�a acometida // energy 220vac if (e0 && t05 == true) { e5 = true; e0 = false; } if (e5 && t56 == true) { e6 = true; e5 = false; } if (e6 && t67 == true) { e7 = true; e6 = false; } if (e6 && t60 == true) { e0 = true; e6 = false; } //MANUAL ===> respaldo( grupo electr�geno, bater�as)// back(generator set, batteries) if (e0 && t07 == true) { e7 = true; e0 = false; } if (e7 && t78 == true) { e8 = true; e7 = false; } if (e8 && t85 == true) { e5 = true; e8 = false; } if (e8 && t80 == true) { e0 = true; e8 = false; } //ACTUADORES********************************* if (e0 || e1 || e3 || e5 || e7 == true) { digitalWrite(K1, LOW); digitalWrite(K2, LOW); digitalWrite(led1, LOW); digitalWrite(led2, LOW); } if (e4 || e6 == true) { digitalWrite(K1, HIGH); digitalWrite(K2, LOW); digitalWrite(led1, HIGH); digitalWrite(led2, LOW); } // if (e2 || e8 == true) { digitalWrite(K1, LOW); digitalWrite(K2, HIGH); digitalWrite(led1, LOW); digitalWrite(led2, HIGH); } }
2 comentarios. Dejar nuevo
Hola, esta muy bien el diseño pero hago sugerencia debido a mis años de experiencia con ATS, la entrada de red debe ser entre dos fases, 380V para mayor seguridad de deteccion, midiendo fase neutro puede pasar que falte una fase y no lo detecte, y debe tener una igual para la entrada de grupo electrogeno, es mi humilde aporte, gracias
exelente proyecto