Icono del sitio ELECTROALL

Como hacer un Sistema de Transferencia Automático

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
  1. Tensión de alimentación……………………….…………24VDC
  2. Corriente de alimentación………………….……………92mA
  3. Entadas digitales 15-24VDC……………………….……8
  4. Entradas analógicas (voltaje) 0-24V…………..…….1
  5. Entrada AC (110-220VAC)……………………………………1
  6. Controlador para batería……………………………………..1
  7. Salidas RLY…………………………………………………………4
      • Tensión AC…………..……….………………….….……250V
      • Corriente AC…………………………………………….5A
      • Tensión DC………………………………………………30V
      • Corriente DC……………………………………………5A
  8. Puerto de comunicación serial……………………………1
  9. Comunicación ISP……………………………………..……….1
  10. Programación Directa………………………………………..Ordenador – ATS Board
  11. Entorno de programación………………………..………..Arduino IDE (Ladder en desarrollo)
  12. Condiciones ambientales min……………………….….-40°
  13. Condiciones ambientales max…………………..……….85°
  14. Dimensiones……………………………………………………….100x100mm
  15.  Empotrable………………………………….……………………Sí
ESQUEMÁTICO ELECTRÓNICO
DISEÑO PCB
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.

PARTES Y CONEXIONES EXTERNAS (GENERAL)
COENXIONES EXTERNAS PARA UN ATS
ESQUEMÁTICO ELÉCTRICO
GRAFCET
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);
  }
}
VIDEO
Salir de la versión móvil