PLC Vs Arduino Mi Experiencia

210

About: My experience in the field of electronics led me to discover the existence of open hardware and software, in all the years that followed that discovery I just started to develop my own technologies and advis...
  • Intro

En esta época ya no es secreto para nadie las capacidades que puede tener un procesador de hecho para el aprendizaje, y tampoco, que limitaciones o prestaciones podría tener para la industria el conocimiento de PLC y sistemas de información capaces de controlar miles de señales al mismo tiempo, conectados con OPC y servidores dedicados, Virtualizados y de repente hasta redundantes.

  • El PLC

Este pequeño amigo ha sido mi cómplice en el mundo del desarrollo industrial, llevo más de 10 años explotando sus capacidades e implementando la tecnología en lugares varios, como Venezuela, México, Colombia, Argentina, Kuwait, USA, Brasil, obteniendo resultados rápidos sistemáticos y puntuales.

Es de esta experiencia que me surgió la pregunta, ¿Cuantas capacidades puedo poner en un Arduino que sean comparables al PLC?

Desglosando lo más básico, las prestaciones necesarias serian estas:

  1. Entradas Digitales desde 0 V para 0 lógico y 24 V máximo para.
  2. Salidas Digitales de Relay y transistor tipo colector abierto.
  3. Entradas Análogas de 0-5 Vdc o 4-20ma.
  4. Salidas análogas de 0-5 Vdc.
  5. Entradas de protocolos de comunicación estándar de la industria, como Modbus y TCP/IP.

Mayormente tiene mucho terreno ganado, todas las certificaciones y las marcas que poseen estos controladores están bien posicionadas en la Industria, de hecho ya están en las hojas técnicas y protocolos de desarrollo de proyectos el uso de una marca de PLC u otro.

Sin embargo, industrias que están surgiendo y son pequeñas sus operaciones a veces no tienen restricciones de uso para los controladores “Custom” así que no todo esta perdido.

  • El Microcontrolador MICROCHIP (PIC)

En mi experiencia a través de los años, en mis inicios, tuve que trabajar con los Microcontroladores PIC, utilizando Assembler y su famoso MPLAB y eventualmente Mikrobasic 7.0, recuerdo que para tomar una variable analógica era un procedimiento extenuante, tanto para configurar las entradas digitales, las entradas analógicas, configurar registros directamente, leer sus bits, una tarea que se hacía repetitiva pero no era compleja al entenderla, pero a nivel de experiencia de usuario no le favorecía mucho...

Algunos de mis proyectos en aquellas épocas:

  • El Arduino

Ya pasado cierto tiempo de acostumbrarme a la idea de manejar todo vía registros y compilando en Basic pude diseñar varios sistemas buenos y solidos, que ya era más organizados, reciclando una y otra vez los códigos, pero, un día me llego una oferta de un Arduino UNO, (Sistema que no le tenía fe de hecho) y la tome sin mucha alegría.

Estudiando bien el microcontrolador ATmega328 tenía varias diferencias a nivel de hardware, pero básicamente su función era muy parecida a lo que buscaban ciertas personas que no podían pagar un PLC y compraban un micro.

Mi Primer Proyecto formal con este sistema:

Step 1: El Programa

Basicamente el programa es una organizacion de todo lo que podemos leer y ver en el arduino.

Las caracteristicas son:

:

  • Leer señales analogicas de 10 Bit: con 5 V de voltaje de referencia(CH 0,1,2,3,4,5).

//--------AI_Type--------------
pinMode(A0, INPUT);

pinMode(A1, INPUT);

pinMode(A2, INPUT);

pinMode(A3, INPUT);

//pinMode(A4, INPUT); "Descomentar si no se va a usar I2C"

//pinMode(A5, INPUT); "Descomentar si no se va a usar I2C"

  • Escribir Salidas Analogicas: seria el PWM basico del arduino de 8 bits de resolucion.

//--------AO_Type--------------
pinMode(5, OUTPUT);

pinMode(6, OUTPUT);

  • Leer señales digitales: estas son entraads directas con logica directa o inversa, y señales de 0 o 5

    voltios de amplitud.

//--------DI_Type--------------

pinMode(3, INPUT);

pinMode(4, INPUT);

pinMode(7, INPUT);

pinMode(8, INPUT);

  • Escribir señales digitales: Apuntando a salidas de relay, conectadas a pines directos del arduino, serian señales de 0 o 5 voltios

//--------DO_Type--------------
pinMode(10, OUTPUT);

pinMode(11, OUTPUT);

pinMode(12, OUTPUT);

pinMode(13, OUTPUT);

digitalWrite(10, HIGH);

digitalWrite(11, HIGH);

digitalWrite(12, HIGH);

digitalWrite(13, HIGH);

  • Leer Señales de sensores i2C.
  • Leer Señales de sensores One Wire.

//---------Sensors----------temp
sensorDS18B20.begin();

  • Leer señales de sensor de flujo (Por interrupcion de hardware).

//---------Sensors----------flow

pinMode(flowPin, INPUT);
attachInterrupt(0, Flow, RISING);

  • Reloj en tiempo real Fecha y hora.

//---------RTC------------------
rtc.begin();

rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));

  • Acceso a pantalla OLED ASCII.

//---------DisplayOLED----------
oled.begin(&Adafruit128x64, I2C_ADDRESS);

oled.setFont(System5x7);

oled.setCursor(0,0);

oled.clear();

  • Temporizadores sin tiempo.
  • Telecomunicaciones con Bluetooth.
  • HMI con Android.

Softwares utilizados:

Fritzing

http://fritzing.org/download/

Arduino IDE

https://www.arduino.cc/en/Main/Software

MIT APP INVENTOR

http://appinventor.mit.edu/explore/

Hardware utilizado:

1x Arduino Uno R3

1x 4 Channel Relay module

4x Sharp PC817

6x Electrolytic Capacitor

4x Leds de 5mm

1x RTC basado en ds1307

1x Ds18b20

1x YF-S201 Hall-Effect Water Flow Sensor

1x Oled 0.96 Display

1x Bluetooth HC06

11x Resistor 1kOhm

1x Resistor 2.2kOhm

1x Resistor 4.7kOhm

Step 2: Principio KISS

Del inglés Keep It Simple, Stupid! o ¡Mantenlo sencillo, estúpido!

Vamos a poner algo claro, más de una vez en mi experiencia conseguí
colegas que perseguían metas sin sentido, solo por el hecho de que sobre complicaban las cosas, el PLC siempre será la solución rápida y compacta, más bien un tema de practicidad, luego, yo comencé a codearme con gente pudiente o de dinero que también eran integradores.

Moraleja: Manten la arquitectura simple y lograras mucho!

Buscando los caminos simples, llegue a la conclusión de este diagrama.

Step 3: Circuitos

Las imagenes describen los montajes.

AIAO

DIDO

Step 4: Bluetooth Wireless

Importante para que sea inalámbrico es conectar como se aconseja

¡¡¡¡¡IMPORTANTE DESCONECTAR AL MOMENTO DE HACER UPDATE!!!!!

Step 5: HMI Y Android

Faceplate:

En automatización contamos
con soporte constante de las misma empresas fabricantes de PLC, yo me especializo más por Rockwell Automation, pero también tengo experiencia con TIA portal de Siemens, allí aprendí de las librerias que contenían faceplates, que simplemente son ventanas interactivas que involucran las capacidades máximas que tenemos sobre una variable, graficarlas, sacarlas de servicio, forzar, simular, mostrar tendencias, calibrar lazos colocarle un nombre al tag entre otras.

Adjunto la apk correspondiente a Tablets de 7 pulgadas.

Aun trabajo en la misma.

Este sera el proximo Instructable Exitos

Primera Prueba.

Vean la serie de videos:

Share

    Recommendations

    • Sensors Contest

      Sensors Contest
    • Backyard Contest

      Backyard Contest
    • Classroom Science Contest

      Classroom Science Contest

    Discussions