83
DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA REDUCIDA (SBC) RASPBERRY DAVID FELIPE GARCÍA SEGURA MIGUEL ANGEL OLIVA VALLEJOS UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD TECNOLÓGICA INGENIERÍA EN CONTROL BOGOTÁ D.C. 2018

DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR

DE PLACA REDUCIDA (SBC) RASPBERRY

DAVID FELIPE GARCÍA SEGURA

MIGUEL ANGEL OLIVA VALLEJOS

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS

FACULTAD TECNOLÓGICA

INGENIERÍA EN CONTROL

BOGOTÁ D.C.

2018

Page 2: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

ii

DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA REDUCIDA

(SBC) RASPBERRY

DAVID FELIPE GARCÍA SEGURA

MIGUEL ANGEL OLIVA VALLEJOS

Trabajo de grado para optar al título profesional de: Ingeniero en Control

Director Ing. EDUARDO ALBERTO DELGADILLO GÓMEZ

Codirector Ing. ANDRÉS ESCOBAR DÍAZ

MONOGRAFÍA DE GRADO

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS

FACULTAD TECNOLÓGICA

INGENIERÍA EN CONTROL

BOGOTÁ D.C.

2018

Page 3: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

iii Dedicatoria

A Dios por las bendiciones que ha puesto en mi caminar.

A mis padres por infundir mis principios éticos y morales, para no desfallecer y siempre

agregar los intentos necesarios para alcanzar mis metas.

A cada una de esas personas que me inculcaron el valor del aprendizaje, el estar siempre

con actitud positiva ante cualquier situación.

A mi amigo y hermano Cristian Ardila que por situaciones ajenas no contamos con su

compañía, se me vienen a la mente los momentos en los que sonábamos ser ingenieros y cuando

decías “no me importa el tiempo que me demore estudiando en la universidad, mi deseo es ser

ingeniero en control”, la vida nos arrebató tu presencia y me siento orgulloso de haber podido

llegar a ese logro que algún día los dos soñamos y aunque el tiempo se encarga de sanar este tipo

de heridas, siempre te tendré en mis pensamientos, donde estés mi hermano dedico cada uno de

mis logros en tu memoria.

DAVID FELIPE GARCIA SEGURA

Page 4: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

iv Dedicatoria

A mi linda madre Lucia Inés Vallejos, persona incondicional que día a día me ha llenado

de amor y quien me ha acompañado en mi proyecto de vida y con sus tan incomparables consejos

ha sabido guiar mis pasos.

A mis hermanos Nelson Fernando Vallejos y Jenny Alexandra Vallejos por ser mis

mejores amigos y por estar siempre cuando los necesito.

A la familia Vallejos Sánchez por abrirme las puertas de su hogar, por sus consejos y tener

su apoyo y cariño absoluto para poder cumplir mis metas.

A mi novia Angie Natalia Reyes, con quien he compartido momentos inolvidables y de

quien he recibido el apoyo necesario para alcanzar los objetivos propuestos.

A mis compañeros de academia de los que he aprendido mucho a nivel cultura, personal

y profesional.

MIGUEL ANGEL OLIVA VALLEJOS.

Page 5: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

v Agradecimientos

Los autores expresan sus agradecimientos a:

A los profesores Eduardo Alberto Delgadillo y Andrés Escobar Díaz por apoyarnos con

con su conocimiento y ser una guía invaluable en la ejecución de este proyecto.

A INSA INGENIERIA S.A.S por abrir sus puertas de manera desinteresada, por

permitirnos obtener información de primera mano y destinar tiempo y conocimiento a nuestro

proyecto, principalmente a l profesional que estuvo involucrado como fue, el Ingeniero Juan

Carlos Casas (Gerente de Proyectos e ingeniería).

Y a todas aquellas personas que de una u otra manera han participado en el desarrollo

de este proyecto.

Page 6: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

vi Resumen

Esta investigación presenta el diseño de un soft-plc basado en un computador de placa

reducida (SBC) raspberry. En su desarrollo se describe el proyecto con el cumplimiento de las

características y cualidades de hardware y software de un dispositivo PLC y como se convierte en

una plataforma totalmente operativa en un ambiente académico e industrial, donde se utiliza un

firmware suscrito al entorno de programación CODESYS de la empresa de software alemán 3S-

Smart, junto a una placa de periféricos basada en PSoC 5LP.

Como resultado al estudio de implementación se permitió consolidar un diseño con la

normatividad en aislamiento de tierras, entre otras normas o estándares estudiados e

implementados en el diseño final que contiene las siguientes especificaciones: cuatro entradas y

salidas análogas estándar industrial 4-20Ma, ocho I/O digitales, driver para comunicación ModBus

RTU/TCP.

Page 7: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

vii Tabla de Contenidos

NOTA DE ACEPTACIÓN ........................................................... ¡Error! Marcador no definido. Dedicatoria ..................................................................................................................................... iii

Agradecimientos ............................................................................................................................. v Resumen ......................................................................................................................................... vi Tabla de Contenidos ..................................................................................................................... vii Lista de figuras ............................................................................................................................... ix Lista de tablas ................................................................................................................................. 1 Antecedentes y Justificación ........................................................................................................... 2

Problema ......................................................................................................................................... 3

Objetivos ......................................................................................................................................... 4

General. ....................................................................................................................................... 4 Específicos. ................................................................................................................................. 4

Marco teórico conceptual ................................................................................................................ 5 Raspberry .................................................................................................................................... 5

¿Qué es Raspberry Pi? ............................................................................................................ 5 Historia de Raspberry Pi ......................................................................................................... 6

Placas Oficiales ....................................................................................................................... 7 PSoC ......................................................................................................................................... 12

Características de PSoC ........................................................................................................ 13

Núcleos del PSoC. ................................................................................................................ 13 Bloques digitales ................................................................................................................... 14

Bloques análogos .................................................................................................................. 14 Comparación de tarjetas PSoC.............................................................................................. 16

Arquitectura de PSoC 5LP. ................................................................................................... 17 Codesys ..................................................................................................................................... 18

IEC 61131-3 .......................................................................................................................... 19

Versión DEMO ..................................................................................................................... 19 Simulador .............................................................................................................................. 20

HMI ....................................................................................................................................... 20 Motion Control...................................................................................................................... 20 Evolución .............................................................................................................................. 20

CODESYS Control para Raspberry Pi SL ............................................................................ 21 Comunicación SPI .................................................................................................................... 23

Descripción del protocolo SPI .............................................................................................. 24 Bus SPI.................................................................................................................................. 25

Transferencia de datos .......................................................................................................... 26 Polaridad del reloj ................................................................................................................. 27

Controlador Lógico Programable (PLC) .................................................................................. 28 ¿Qué son los controladores Lógicos Programables? ............................................................ 28 Descripción de funcionamiento de un PLC .......................................................................... 30

Campos de aplicaciones ........................................................................................................ 32 Nuevas tendencias ................................................................................................................. 33

Protocolo ModBus-rtu .............................................................................................................. 33

Page 8: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

viii

Modos de transmisión ........................................................................................................... 33 Estructura de los mensajes en el modo rtu ............................................................................ 34 Dirección ............................................................................................................................... 34 Código de la Función ............................................................................................................ 35

Campo de Datos .................................................................................................................... 35 CRC....................................................................................................................................... 35

Metodología .................................................................................................................................. 37 Desarrollo de la propuesta ............................................................................................................ 38

Especificaciones técnicas .......................................................................................................... 38 Hardware ................................................................................................................................... 39

Alimentación de voltaje ........................................................................................................ 39

Conexión para comunicación SPI entre raspberry y PSoC ................................................... 41

Entradas digitales lógicas ...................................................................................................... 43 Salidas digitales lógicas ........................................................................................................ 44 Salidas análogas 4-20Ma ...................................................................................................... 48 Entradas análogas 4-20Ma .................................................................................................... 49

Comunicación ModBus RTU ............................................................................................... 49 Software .................................................................................................................................... 50

Programación Raspberry pi 3................................................................................................ 50 Programación PSoC 5 LP ..................................................................................................... 60

Diseño de circuito impreso ....................................................................................................... 61

Conclusiones ................................................................................................................................. 63 Lista de referencias ....................................................................................................................... 64

Anexos .......................................................................................................................................... 66 Anexo 1: FUNCTION_BLOCK SPI_16_RW .......................................................................... 66

Anexo 2: Paquetes de función................................................................................................... 67 Anexo 3: Llamada de función definición POU al PLC ............................................................ 70 Anexo 4: Main program ............................................................................................................ 71

Anexo 5: main program PSoC .................................................................................................. 72

Page 9: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

ix Lista de figuras

Figura 1. Raspberry Pi A ............................................................................................................... 7 Figura 2. Raspberry Pi A+ ............................................................................................................. 8 Figura 3. Raspberry Pi B ................................................................................................................ 9

Figura 4. Raspberry Pi B+ ............................................................................................................. 9 Figura 5. Raspberry Pi 2 B ........................................................................................................... 10 Figura 6. Raspberry Pi Zero ......................................................................................................... 11 Figura 7. Raspberry Pi 3 B ........................................................................................................... 12 Figura 8. Esquema general de PSoC 5LP ..................................................................................... 17 Figura 9. Diagrama de bloques del procesador Cortex-M3 utilizado en el PSoC 5LP ................ 18

Figura 10. Transferencia de datos protocolo SPI .......................................................................... 23

Figura 11. Conexión del bus SPI .................................................................................................. 24

Figura 12. Conexión de múltiples esclavos independientes ......................................................... 26 Figura 13. conexión múltiple esclavos en cascada ....................................................................... 26 Figura 14. Transferencia de datos del protocolo SPI. ................................................................... 27 Figura 15. Estructura de los mensajes........................................................................................... 34

Figura 16. Consumo de potencia .................................................................................................. 40 Figura 17. Configuración LM2596 24VDC a 5.1VDC ................................................................ 41

Figura 18. Conexión Raspberry y PSoC ....................................................................................... 41 Figura 19. Conexión SPI en raspberry PI ..................................................................................... 42 Figura 20. Conexión SPI en PSoC 5 LP ....................................................................................... 42

Figura 21. Circuito integrado PL2502L internamente .................................................................. 43 Figura 22. Configuración PL2502L como chip lógico ................................................................. 44

Figura 23. Diagrama de contacto Relé SONGLE ......................................................................... 45 Figura 24. Diagrama Lógico ULN2803A ..................................................................................... 46

Figura 25. Diagrama Esquemático ULN2803A configuración Darlington .................................. 46 Figura 26. Diagrama MOSFET FDS4953 .................................................................................... 47 Figura 27. Driver complementario salida transistorizada ............................................................. 47

Figura 28. Configuración HCNR200 como trasmisor .................................................................. 48 Figura 29. Configuración HCNR200 como receptor .................................................................... 49

Figura 30. Circuito driver ModBus RTU ...................................................................................... 50 Figura 31. Ajuste memoria SDFormatter ...................................................................................... 51 Figura 32. página principal raspberry ........................................................................................... 52

Figura 33. Consulta administración de paquetes .......................................................................... 53 Figura 34. Complementos de Codesys.......................................................................................... 53

Figura 35. Opciones de inicio en nuevo proyecto......................................................................... 54 Figura 36. Opciones de lenguaje de programación ....................................................................... 54

Figura 37. Selección de dispositivo SPI ....................................................................................... 55 Figura 38. Configuración SPI como master .................................................................................. 55 Figura 39. Agregar POU a Codesys .............................................................................................. 56 Figura 40. Nombrar función SPI_16_RW .................................................................................... 56 Figura 41. Definición automática POU para SPI_16_RW ........................................................... 57

Figura 42. Definición modificada POU FUNCTION_BLOCK SPI_16_RW .............................. 57 Figura 43. Macro del POU FUNCTION_BLOCK SPI_16_RW .................................................. 58

Figura 44. Llamado de función POU al PLC ................................................................................ 58

Page 10: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

x

Figura 45. Main program de la función ........................................................................................ 59 Figura 46. Top Design PSoC 5 ..................................................................................................... 60 Figura 47. Diseño PCB ................................................................................................................. 62 Figura 48. Visualización 3D tarjeta de periféricos ....................................................................... 62

Page 11: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

1

Lista de tablas

Tabla 1. Comparación característica PSoC parte 1 ............................................................16 Tabla 2. Comparación característica PSoC parte 2 ............................................................16 Tabla 3. especificaciones CODESYS para Raspberry pi ...................................................22

Page 12: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

2

Antecedentes y Justificación

En el ambiente académico los procesos teórico prácticos se vuelven indispensables

al momento de adquirir competencias del hacer y el saber hacer en contexto, permitiendo

así el análisis y verificación de los conocimientos adquiridos, en especial cuando se lleva

a cabo la aplicabilidad en los Sistemas de Control ya que estos se fundamentan en software

de simulación mostrando resultados ideales, y no permiten ver de manera real el

comportamiento de los diseños; siendo esta aplicación poco eficiente, creando vacíos

prominentes al momento de ponerlos en práctica en ejercicios reales. Dadas estas

circunstancias la educación teórica impartida en las aulas, implementa la experimentación

en plantas a escala, las cuales recrean ambientes industriales reales.

El proyecto curricular de Ingeniería en control por ciclos propedéuticos de la

Universidad Distrital Francisco José de Caldas se basa en un plan académico teórico-

práctico en base a esto la propuesta de desarrollar un Diseño de un Soft-Plc basado en un

computador de placa reducida Raspberry busca entregar a los estudiantes de la Facultad

Tecnológica una plataforma real del sector industrial contando con características robustas

que facilitan el aprendizaje al momento del análisis y verificación de sistemas de control.

Page 13: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

3

Problema

En la facultad Tecnológica de la universidad Distrital Francisco José de Caldas se

carece de plataformas PLC de entrenamiento robustas, que facilite la profundización de

aprendizaje en los sistemas de control, debido al alto coste y limitaciones que tienen los

fabricantes, en cuanto a nuevas tecnologías y software que permitan hacer un acercamiento

real a los problemas de automatización encontrados en la industria, debido a esto se

evidencia una mala interacción de aprendizaje entre alumnos y profesores.

Page 14: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

4

Objetivos

General.

Diseño de un Soft-Plc basado en un computador de placa reducida (SBC) Raspberry

Específicos.

Diseñar una metodología de comunicación entre los distintos sistemas Raspberry y

PSoC.

Implementar el circuito definitivo que integra todos los sistemas Raspberry, PSoC

y periféricos.

Establecer un test del protocolo de comunicación ModBus RTU y TCP/IP operado

desde Codesys.

Implementar una aplicación para el ejercicio de prueba con el prototipo de PLC.

Page 15: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

5

Marco teórico conceptual

Raspberry

Se realizará una descripción a profundidad sobre la placa de desarrollo Raspberry

Pi, partiendo del análisis de cada una de sus partes en hardware, hasta el análisis que nos

puede ofrecer en cuestión de software. También se encontrará comparación con otras

placas desarrollo, para obtener las ventajas y desventajas de otras placas de desarrollo con

respecto a la Raspberry Pi.

¿Qué es Raspberry Pi?

Según sus fabricantes la Raspberry Pi es un ordenador de bajo costo del tamaño de

una tarjeta de crédito, que se conecta a un monitor de ordenador o un televisor, y utiliza un

teclado y un ratón estándar. Es un dispositivo pequeño que les permite a personas de todas

las edades explorar la computación, y aprender a programar en lenguajes como lo son

Python y Scratch. Es capaz de hacer todo lo que esperaría hacer con una computadora de

escritorio, desde navegar por Internet y reproducción de vídeo de alta definición, hacer

hojas de cálculo, usar procesadores de texto, y hasta divertirse con videojuegos. (Dennis

2013)

Es más, La Raspberry Pi tiene la capacidad de interactuar con el mundo exterior, y

se ha utilizado en una amplia gama de fabricación de proyectos digitales, desde las

máquinas de música y detectores de padres hasta estaciones meteorológicas.(Palma et al.

2017) Queremos ver que la Raspberry Pi sea utilizada por los niños de todo el mundo para

aprender a programar y que entienda cómo funcionan los computadores. (LAGU 2014)

Page 16: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

6

Historia de Raspberry Pi

La “Raspi”, Es una SBC (Single-Board Computer). Es decir, un ordenador de placa

única. En el caso de la Raspberry Pi, existe un repertorio amplio de sistemas operativos

basados en Linux como: Archlinux ARM, OpenELEC, Pidora, Raspbmc, RISC OS,

Raspbian y otros (openSuSE, Slackware ARM, FreeBSD, Plan 9, OpenWrt, Kali Linux,

Instant Web Kiosk, Ark OS y Minepeon).

La SBC de la Raspberry Pi Fundación es la auténtica y oficial, aunque hayan salido

competidores. Esta placa surgió como estímulo para las escuelas y el acercamiento de las

ciencias de la computación a más personas. El primer germen apareció en 2006, aunque

era una placa basada en microcontrolador Atmel ATmega 644 similar a los de Arduino. Al

ser abierta, tanto sus esquemas y los datos de diseño están disponibles para su descarga, y

es aquí donde radica su mayor éxito, junto con su precio asequible.(Sandeep et al. 2015)

Pero no sería hasta 2009 cuando se creó la Fundación Raspberry Pi en Caldecote,

South Cambridgeshire (Reino Unido) y sus fundadores son: Eben Upton, David Braden,

Jack Lang, Pete Lomas, Alan Mycroft y Robert Mullins. (Palma et al. 2017)

El cofundador Upton, director técnico del departamento sobre arquitectura ASIC

de Broadcom, quería llevar a los niños y entusiastas la misma filosofía del ordenador Acorn

BBC Micro de 1981. Y su proyecto sería apadrinado por la Universidad de Cambridge y

la compañía Broadcom (creadora de los SoCs integrados en la placa). (Rostyslav,

Tkatchenko, and Golovatsyy 2015)

Dos años más tarde de aparecer la fundación, se fabricarían las primeras placas

prototipo para luego comenzar a venderse años después. Su éxito fue tal que se agotó y las

Page 17: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

7

manufactureras no daban abasto para sacar al mercado tantos dispositivos como demanda.

El primer lote se fabricaría en Taiwán y China, unas 10.000, para luego trasladar la

producción al Reino Unido. Se fabrican miles al día gracias a una fábrica de Sony en

Pencoed, Gales. (García and López 2014)

Placas Oficiales

Raspberry Pi Modelo A:

Apareció con un precio de unos 25 dólares de coste en fábrica, con un Soc.

Broadcom BCM2835 que integra una CPU, GPU, DSP, RAM y controlador USB. Este

chip es común a todos los modelos, tanto B como B+. La CPU es una ARM1176JZF-S de

la familia ARM11 y con un set de instrucciones ARMv6. Trabaja a 700 Mhz, pero no está

sola dentro del Soc., también incluye una GPU Videocore IV a 250Mhz encargada de los

gráficos y el inicio. Esta GPU soporta OpenGL ES como API gráfica. Además, se

complementa con una memoria SDRAM de 256MB que comparten CPU y GPU. Por otro

lado, dispone de una conexión HDMI para una pantalla externa y un Jack RCA, Jack para

audio, ranura para SD y MMC, pines GPIO, conexión de alimentación por micro USB de

5v o por los cabezales GPIO. El peso y dimensiones son parecidos en las tres placas

oficiales.

Figura 1. Raspberry Pi A

Page 18: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

8

Raspberry Pi A+:

Sus características son similares, excepto que su tamaño es más pequeño (solo mide

65 x 56 mm) y que su memoria RAM se ha reducido a 256 MB. También ha cambiado su

conectividad, que ahora reincide de su conexión Ethernet. Igual que ocurría con la

Raspberry Pi A y Raspberry Pi B iniciales, la A+ es más barata. Al igual que ocurría con

la B+, esta placa es más eficiente energéticamente que las anteriores.

Figura 2. Raspberry Pi A+

Raspberry Pi Modelo B

Con un precio de unos 35 dólares de coste en fábrica, las únicas diferencias con el

modelo A son los 512MB SDRAM incluidos en el Soc., dos puertos USB y la integración

de un adaptador Ethernet para conexión a red. El consumo, al tener más elementos sube de

los 300 mA (1,5w) hasta los 700 mA (3,5w). El resto de características son comunes. Es el

modelo más vendido (más de 3 millones de ventas).

Page 19: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

9

Figura 3. Raspberry Pi B

Raspberry Pi Modelo B+

Es la actualización del modelo B, cuyas ventajas son la integración de más pines

GPIO (pasando de los 26 de los modelos anteriores a los 40, respetando el esquema de

patillaje anterior), un consumo inferior (600mA, 3w), inclusión de 4 puertos USB on-board

y una mejora en la fuente de alimentación para reducir el ruido y mejorar el sistema de

sonido. Por el resto de características es idéntica a la B. Lo más práctico es lo de los puertos

USB, que se echan mucho en falta en los modelos anteriores, aunque puede ser solucionado

con un hub. Todo esto manteniendo el mismo precio del Modelo B, debido a que la

tecnología ha madurado y permite su manufactura a un menor coste.

Figura 4. Raspberry Pi B+

Page 20: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

10

Raspberry Pi 2 Modelo B

Por sorpresa y muy probablemente motivado por la competencia que le estaba

saliendo últimamente, La Fundación Raspberry Pi ha sacado ya la versión 2 Modelo B de

su placa. Una actualización más que necesaria, que no la convierte en la mejor del mercado,

pero que la mete de nuevo en la pelea ya que, si unimos esta mejora con la comunidad que

arrastra y la buena optimización de su software, tenemos la combinación perfecta. Las

dimensiones son las mismas, pero su construcción ha cambiado casi radicalmente, ahora

con 1Gb de RAM, también usa un Quad-Core a 900MHz que a los que estamos

acostumbrados a ella, nos va a resultar muy extraño tanta agilidad. Por otro lado, al cambiar

su arquitectura, vamos a poder disfrutar de otros sistemas operativos más complejos, como

el nuevo Windows 10, que tendrá una versión para desarrolladores gratuita en Raspberry

Pi 2.

Figura 5. Raspberry Pi 2 B

Raspberry Pi Zero

Es una SBC oficial por tan solo 5$ de coste, es decir, la SBC más barata por el

momento. Uno de los principales motivos del triunfo de la Raspberry Pi es su reducido

coste, pues ahora bajan aún más el precio en este nuevo modelo para seguir sumando

Page 21: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

11

millones a los usuarios existentes. La placa se fabricará en Gales y vendrá equipada con un

Soc. Broadcom BCM2835, que integra un procesador ARM11 a 1Ghz que es un 40% más

rápido que la Raspberry Pi 1. Segura manteniendo los 512MB de RAM DDR2, ranura

microsd, conexión mini HDMI (con capacidad para vídeo 1080p60), microUSB, 40 pines

GPIO (que respetarán el orden seguido en la A+, B+ y 2B). Todo en un empaquetado con

un factor de 65x30x5mm, sin duda la más pequeña. Pero a pesar de su tamaño, seguirá

permitiendo ejecutar los diestros como Raspbian y disfrutar de todo el software del que

gozamos en el resto de modelos.

Figura 6. Raspberry Pi Zero

Raspberry Pi 3 Modelo B

Es el nuevo modelo de Raspberry Pi lanzado en enero de 2016, su precio se ha

mantenido igual al de otros Modelo B anteriores, pero se ha implementado un hardware

más potente. Ahora va equipada con un Soc. Broadcom BCM 2837 que integra una CPU

que trabaja a 1.2Ghz de 64-bit de cuatro núcleos. También se ha incluido una GPU

Broadcom Videocore IV a 400 Mhz capaz de llegar a los 28.8GFLOPS de potencia de

cálculo y compatible con OpenGL ES 2.0. Se mantiene la conexión Ethernet, aunque el

Wifi y Bluetooth 4.1 son novedad. Los GPIO se han mantenido inalterados con respecto al

modelo anterior y la potencia ha subido debido al mayor rendimiento hasta los 2500 mA

Page 22: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

12

(12.5w). Todos los cambios se traducen en mayor funcionalidad y el doble de potente que

su predecesora, la Raspberry Pi 2. (Gonzalez 2015)

Figura 7. Raspberry Pi 3 B

PSoC

Se presentará una descripción de PSoC y su comparación con sus homólogos, se

pretende dar a conocer la facilidad que presenta PSoC cuando se incursiona en las

aplicaciones industriales puesto que dado su precio son muy utilizados en transmisores,

redes de sensores entre otros.

Los PSoC son microprocesadores que en la última década han tomado gran

esfuerzo debido a sus grandes ventajas frente a los tradicionales microprocesadores, estos

ofrecen una arquitectura que agilizan el análisis de información, estos procesan a una gran

velocidad pueden llegar hasta 74 MHz, estas plataforma de diseño por sus prestaciones se

han ido afianzando en aplicaciones como redes de sensores y transmisores inteligentes,

puesto que estos dispositivos son de bajo costo comparado con las funcionalidades que

tienen, puesto que estos tiene bloques digitales como temporizadores, contadores,

protocolos de comunicación PWM, Además de eso cuentan con bloques analógicos como

ADC, DAC, entre otros con los cuales se pueden ayudar al usuario a reducir circuitos y

bajar costos. (López and Charry 2016)

Page 23: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

13

Características de PSoC

El PSoC es un dispositivo que utiliza arquitectura Harvard que hace referencia a la

arquitectura de computadora la cual está dividida la memoria de instrucciones y datos.

Estos dispositivos están diseñados para reemplazar los microcontroladores básicos. El

PSoC cuenta con timers, counter, filtros, PGA, comunicación por UART, I2C, ADC, DAC,

los cuales varían de acuerdo a su referencia. Estos cuentan con pines como: Digitales I/O,

entradas análogas, salidas análogas, entradas analógicas directas , estos se pueden utilizar

directamente como entradas análogas para los bloques de capacitancias conmutadas(SC),

entrada de referencia, estos pines se pueden utilizar como suministro para un voltaje de

referencia AGND externa y para una tensión de referencia VREF, estas referencias

externas proporcionan una mayor flexibilidad para los diseños analógicos, también cuenta

con comunicación I2C, entrada externa de reloj (EXT CLK), entre otras muchas más

herramientas.

Núcleos del PSoC.

Un PSoC ofrece subsistemas de la CPU sofisticados con SRAM, EEPROM y

memoria flash, así como una gran variedad de núcleos y de recursos del sistema, donde

podemos encontrar: Osciladores internos, conectividad con oscilador de cristal externo de

precisión, reloj programable, Watchdog y sleep timers. Estos chips también incluyen

interfaces de comunicación como I2C, USB FULL, Y UART.

Page 24: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

14

Bloques digitales

Un PSoC cuenta con hasta 18 bloques digitales dependiendo del modelo, los cuales

nueve de tipos básicos y los otros nueve son de comunicaciones.(Cypress Semiconductor

Corporation 2017) Los módulos de estos bloques son los siguientes:

● PWMs with dead band (8- and 16-bit)

● Counters (8- to 32-bit)

● Timers (8- to 32-bit)

● UART 8-bit with selectable parity (up to 2)

● SPI slave and master (up to 2)

● I2C Master Y slave

● CRC generator (8- to 32-bit)

● IrDA (up to 2)

● Pseudo Random source (PRS) generators (8- to 32-bit) USB, Wireless USB

Bloques análogos

En los bloques analógicos, se pueden integrar hasta doce bloques, los cuales se

encuentran divididos en tres grupos de cuatro bloques: de tiempo continuo, de cambio de

capacitor en tiempo continuo y de cambio de capacitor en tiempo discreto, estos módulos

están compuestos por:

● Amplificadores:

○ Amplificadores de ganancia programable (PGA).

○ Amplificadores de instrumentación

○ Amplificadores inversores

Page 25: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

15

○ Comparador programable

○ Marcador de tonos DTMF

● Filtros

○ Filtro pasa bajos de 2 polos

○ Pasa bandas de 2 polos

● Conversores D/A

○ Conversor D/A de 6,8 y 9 bits

○ Multiplicadores de 6 y 8 bits

● Conversor análogo digital

○ 6-bits Aproximaciones sucesivas (SAR)

○ 8-bits Delta sigma

○ 11-bits Delta sigma

○ 12-bits incremental

○ 7-13 bits Variable incremental

○ De doble entrada 7-13 bits Variable incremental

○ De triple entrada 7-13 bits Variable incremental

Page 26: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

16

Comparación de tarjetas PSoC

Tabla 1. Comparación característica PSoC parte 1

PSoC CPU CLOCK MEMORIA FLASH

PSoC 1 8 bit Hasta 24 MHz, 4 MIPS 8 KB-32 KB

PSoC 3 8-bit 8051 Hasta 67 MHz, 33 MIPS 8KB-64KB

PSoC 4 32-bit Hasta 48 MHz, 32KB con lectura acelerada

PSoC LP 5 32-bit Hasta 74 MHz 256 kB

Tabla 2. Comparación característica PSoC parte 2

PSoC VOLTAJE DE

OPERACIÓN

ADC DAC MÓDULOS

PSoC 1 0.5 a

5.5 V

6 a 14 bits 2 DAC de 6-8 bits I2C, SPI, UART,

PSoC 3 1.71 a

5.5 V

8 a 20 bits 4 DAC de 8 bits FS USB2.0, I2C,

SPI, UART, CAN,

LIN,I2S

PSoC 4 1.71 a

5.5 V

12 bits (SAR) 2 DAC Propósitos

generales

I2C, SPI, UART,

PSoC LP 5 1.71 a

5.5 V

8 a 20 bits 4 DAC de 8 bits 20 a 24 bloques que

pueden tener 8-, 16-, 24-,

and 32-bit timers,

counters, and PWMs, I2C,

UART, SPI, I2S, LIN 2.0

interfaces

Page 27: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

17

85+Arquitectura de PSoC 5LP.

Figura 8. Esquema general de PSoC 5LP

Los subsistemas que componen el PSoC 5LP son los siguientes: 1. Unidad central

de procesamiento (CPU). 2. Memoria. 3. Recursos del sistema. 4. Sistema digital. 5.

Sistema analógico. Figura 38. Esquema general del PSoC 5LP viene dotado de un

procesador ARM Cortex-M3, el cual tiene unas propiedades diseñadas específicamente

para microcontroladores que lo hacen muy eficiente para las diversas exigencias en las que

se vea comprometido. La familia de procesadores ARM Cortex establece una arquitectura

estándar dirigida a un amplio espectro de tecnologías. Esta familia se basa en la arquitectura

ARMv7 que tiene tres distintos perfiles dirigidos a aplicaciones específicas:

Perfil A: diseñado para plataformas de aplicación abierta de alto rendimiento.

Page 28: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

18

Perfil R: diseñado para sistemas embebidos de alta gama, en las que es necesario el

rendimiento en tiempo real.

Perfil M: diseñado para los sistemas tipo microcontrolador profundamente

embebidos.

Este último perfil es el más relevante, por ser el que tiene incorporado el PSoC 5LP.

El ARM Cortex-M3 es un procesador de 32 bits, tanto la ruta de acceso como el banco de

registros y la interfaz de memoria son de 32 bits, es un procesador con arquitectura

Harvard, lo cual indica que los buses de instrucciones y datos están separados y aumentan

el rendimiento del procesador. Las interfaces de los buses, aunque están separadas

comparten el mismo espacio de memoria que es de 4 GB. En la figura 39 se observa el

esquema general del procesador.

Figura 9. Diagrama de bloques del procesador Cortex-M3 utilizado en el PSoC 5LP

Codesys

Codesys es como un sueño hecho realidad, una misma plataforma con un lenguaje

unificado para la programación de autómatas y controladores.

Page 29: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

19

Esto ha permitido a muchos fabricantes ofrecer soluciones sin tener que partir de cero en

el desarrollo de estas. Empresas que llevan muchos años en el mundo del PLC como

Siemens, Rockwell o Omron por ahora son ajenas a Codesys y siguen desarrollando y

utilizando sus plataformas. (3S - Smart Software Solutions GmbH 2010)

Actualmente existe una gran oferta de soluciones de automatización al margen de

“los tradicionales” que utilizando Codesys. Es un software muy utilizado, son decenas de

empresas del mundo de la Automatización Industrial que utilizan Codesys en sus equipos

de automatización: Beckhoff, Festo, EATON, KEBA, IFM, LENZE, Schneider Electric,

ABB, ESA, el software de programación de estas marcas está basado en Codesys, aunque

con ciertas personalizaciones.

Tener un conocimiento de su funcionamiento nos asegura poder prestar servicios a

diferentes máquinas y empresas que utilizan diferentes tecnologías.

IEC 61131-3

Codesys es un software que utiliza el estándar de programación de PLC IEC 61131-

3 con los 5 lenguajes de programación lo que te asegura que tu programación cumple la

norma. (John and Tiegelkamp 2010)

- Lenguaje escalera (LD - Ladder Diagram)

- Diagrama de bloque de funciones (FBD - Function Block Diagram)

- Texto estructurado (ST - Structured Text)

- Lista de instrucciones (IL - Instruction List)

- Bloques de función secuenciales (SFC - Sequential Function Chart)

Versión DEMO

Page 30: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

20

Codesys dispone una versión DEMO 100% operativa que te va a permitir aprender

a programar autómatas basados en el lenguaje IEC 61131-3 y poder simular los programas,

una mejor forma de aprender a programar.

Simulador

El simulador integrado permite testear y simular los programas, tanto del PLC como

de pantallas, la mejor forma de ir comprobando sus progresos en programación. CODESYS

Depictor permite insertar simulación 3D

HMI

Codesys dispone de editor HMI para programar interface gráficos para pantallas o

terminales de operador. Poder realizar el programa del autómata y su correspondiente

interfaz gráfica en un mismo software. También soluciones para la visualización HMI en

web como CODESYS WebVisu.

Motion Control

Hoy en día un sistema de automatización no se concibe sin una solución Motion

Control, el control de servo ejes es un hecho que cada día se utiliza en más máquinas.

Codesys dispone de las soluciones como SoftMotion y SoftMotion CNC para afrontar estos

sistemas Motion Control.

Evolución

Codesys es una plataforma que está en continua evolución ofreciendo soluciones

de automatización adaptadas a la evolución de la industria, así como un montón de

Page 31: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

21

complementos como CODESYS OPC UA, CODESYS IEC 61850 Server, CODESYS

Control para Raspberry Pi SL, EPLAN Exchange.

CODESYS Control para Raspberry Pi SL

CODESYS Control para Raspberry Pi SL contiene una aplicación de control

CODESYS para todos los Raspberry Pi, incluyendo el módulo Compute, así como la

capacidad de utilizar los módulos de extensión Raspberry PiFace Digital, Raspberry Pi

Camera Y varios dispositivos / rupturas con interfaz de comunicación SPI, I²C o 1 hilo.

Este producto se puede instalar con el plug-in CODESYS Deploytool incluido a través del

sistema de desarrollo CODESYS en una distribución Linux Raspbian. Después de cada

reinicio, el sistema de ejecución se iniciará automáticamente. Si no se puede encontrar una

licencia completa válida, CODESYS Control se ejecuta durante dos horas sin limitaciones

funcionales antes de apagarse.

Este producto admite las siguientes funcionalidades:

MODBUS-TCP Master / Slave

MODBUS-RTU Maestro / Esclavo

Ethernet / IP Escáner / Adaptador

PROFINET Controlador / Dispositivo

EtherCAT Master

CANopen Maestro / Esclavo

CAN / CANopen Maestro / Esclavo

J1939

Page 32: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

22

Tabla 3. especificaciones CODESYS para Raspberry pi

Sistema de programación Sistema de desarrollo CODESYS V3.5.6.0 o posterior

Objetivo del Sistema -

Plataformas / dispositivos compatibles Frambuesa Pi

- Pi Modelo B / B +

- Pi2 Modelo B

- Pi3 Modelo B

- Todos los modelos

Requerimientos adicionales - El control CODESYS requiere una interfaz de red (LAN, WLAN), especialmente con el

módulo de cálculo de frambuesa Pi y la frambuesa Pi ZERO.

- Si el producto se utiliza para fines industriales, es responsabilidad del fabricante del

sistema garantizar el cumplimiento de las especificaciones necesarias.

Restricciones - La combinación de Frambuesa Pi y un CODESYS Runtime se destina principalmente a

la prueba y la enseñanza.

- El sistema runtime no tiene un comportamiento en tiempo real. Su fluctuación depende

de muchos factores, especialmente en aplicaciones Linux ejecutadas en paralelo, e

idealmente es de aproximadamente 50 μs - con valores máximos de aproximadamente 400

μs.

Licencias - Activación en el Contenedor Soft CODESYS (parte de este paquete de software)

- Opcional: CODESYS Runtime Key

Si no hay una licencia válida, el sistema de ejecución funciona durante dos horas sin una

restricción funcional y luego termina automáticamente (demo).

Page 33: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

23

Accesorio requerido SD-tarjeta (mínimo 4GB)

Opcional: CODESYS Runtime Key

Sistema Operativo Raspbian

Comunicación SPI

Es un protocolo con un bus síncrono, lo que significa que utiliza líneas separadas

para datos y reloj, lo que dota a ambos dispositivos de perfecta sincronización.

El reloj le indica al dispositivo receptor el momento exacto en que puede tomar el

bit de la línea de datos enviado por el transmisor. El pulso de reloj puede ser tanto de subida

(rising) como de bajada (fallin). Cuando el receptor recibe este pulso, inmediatamente toma

el dato de la línea y lo almacena en un registro de corrimiento. Un dato importante a tener

en cuenta son los límites de velocidad del reloj del dispositivo receptor, ya que la frecuencia

de la señal generada por el reloj del transmisor, puede ser más alta que la soportada por el

receptor, causando problemas en la comunicación.(Perez 2008)

Figura 10. Transferencia de datos protocolo SPI

Page 34: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

24

Una de las razones por las que el protocolo SPI es muy popular es porque el

hardware que lo compone es un simple registro de desplazamiento (shift register), el cual

tiene un costo mucho más bajo que los chips USART/UART.

Descripción del protocolo SPI

La comunicación SPI, pronunciado spay o es-pi-ai (Serial Peripheral Interface por

sus siglas en inglés) es uno de los protocolos seriales síncronos más versátiles y más

utilizados en el mundo de los microcontroladores, por su facilidad de implementación y su

velocidad de comunicación en distancias cortas. Una gran infinidad de sensores, chips y

módulos de hardware se comunican por medio de este protocolo, por lo que saber

dominarlo y programarlo a la perfección nos abre un mundo de posibilidades a la hora de

crear proyectos y ampliar las capacidades de los mismos con periféricos y sensores que se

comuniquen por medio de este protocolo.

Este protocolo está basado en la arquitectura maestro-esclavo, en el que el

dispositivo maestro tiene el control de bus, el cual pone los datos y genera la señal de reloj

que se enviarán al dispositivo esclavo en particular. Los datos son enviados serial mediante

las 3 líneas que conforman al bus: MOSI (Master Output Slave Input), MISO (Master Input

Slave Output) y SCLK (Clock)(Perez 2008)

Figura 11. Conexión del bus SPI

Page 35: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

25

El comportamiento de estas señales depende de si el dispositivo está actuando como

maestro o como esclavo. En el dispositivo maestro, las señales MOSI y SCLK se

comportan como salida y la señal MISO como entrada y son generadas y controladas por

el mismo maestro. En el dispositivo esclavo, la señal MISO es configurada como salida y

las señales MOSI y SCLK como entrada, respondiendo con datos en el bus cuando se

detecta la señal de reloj y los datos de entrada.

Bus SPI

Como se mencionó anteriormente, el protocolo SPI se comunica mediante un BUS,

lo que permite conectar más de 1 dispositivo a este. Existen 2 maneras de conectar

múltiples dispositivos esclavos al bus, una de ellas es la configuración de esclavos

independientes, en el cual se necesita de hardware adicional o salidas digitales dedicadas y

controladas por el dispositivo maestro para seleccionar el dispositivo esclavo conectado al

bus.

La otra manera es la conexión en cascada o Daysi Chain, en la cual el maestro

genera una señal que habilita a todos los dispositivos a la vez y las salidas de datos de los

esclavos (MISO) se conecta en cascada con la entrada de datos (MOSI) del siguiente

esclavo, así el maestro enviará los datos sólo al primer esclavo y recibirá respuesta del

último esclavo.

Page 36: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

26

Figura 12. Conexión de múltiples esclavos independientes

Figura 13. conexión múltiple esclavos en cascada

Transferencia de datos

El intercambio de datos se hace bit por bit, el dispositivo maestro prepara el dato

en el bus: la señal MOSI se va a Alto (1) si el bit a enviar es 1 o a Bajo (0) si el bit es un

0, para después generar un pulso ya sea de bajada o de subida por la señal SCLK, con este

pulso el dispositivo esclavo toma como válido el dato puesto en el bus. Al mismo tiempo

Page 37: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

27

que el dispositivo maestro envía el dato y el pulso de reloj, el dispositivo esclavo responde

con un dato en la señal MISO, que es el dato que el dispositivo esclavo tiene en su registro

de salida.

Aunque el protocolo no especifica un numero de bits fijo para el tamaño del dato,

por lo regular se usan transferencias de 8 bits, pero el número de bits consecutivos que se

pueden enviar puede ser arbitrario y queda definido por el hardware (en caso de que se

utilice la comunicación por este medio) o por el software (en caso de que se implemente el

protocolo con el método de Bit Bang).

Figura 14. Transferencia de datos del protocolo SPI.

Polaridad del reloj

Ya vimos que los datos se trasmiten sobre el bus bit a bit con cada pulso de reloj,

pero lo que nos falta saber es en qué momento se toman los datos y en qué momento se

actualiza el dato en el bus, para esto se utiliza algo llamado polaridad y la fase.

Básicamente la polaridad indica si la señal de reloj iniciará con flanco de bajada o

de subida para el primer dato a enviar, y la fase indica cuando se toma y actualiza el dato

en el bus, esto puede ser de 2 maneras: Se toma el dato en flanco de subida y se actualiza

Page 38: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

28

en flanco de bajada o, al contrario, se toma el dato en flaco de bajada y se actualiza en

flanco de subida.

Controlador Lógico Programable (PLC)

¿Qué son los controladores Lógicos Programables?

Los Controladores Lógicos Programables (PLC) continúan evolucionando a

medida que las nuevas tecnologías se añaden a sus capacidades. El PLC se inició como un

reemplazo para los bancos de relevos. Poco a poco, las matemáticas y la manipulación de

funciones lógicas se añadieron. Hoy en día son los cerebros de la inmensa mayoría de la

automatización, procesos y máquinas especiales en la industria. Los PLCs incorporan ahora

más pequeños tamaños, más velocidad de las CPU y redes y tecnologías de comunicación

diferentes. (Palma et al. 2017)

Se puede pensar en un PLC como un pequeño computador industrial que ha sido

altamente especializado para prestar la máxima confianza y máximo rendimiento en un

ambiente industrial. En su esencia, un PLC mira sensores digitales y analógicos y switch

(entradas), lee su programa de control, hace cálculos matemáticos y como resultado

controla diferentes tipos de hardware (salidas) tales como válvulas, luces, relés,

servomotores, etc. en un marco de tiempo de milisegundos.

Mientras los PLCs son muy buenos con el control rápido de información, no

comparten los datos y las señales con facilidad. Comúnmente los PLCs intercambian

información con paquetes de software en el nivel de planta como interfaces máquina

operador (HMI) o Control de Supervisión y Adquisición de Datos (SCADA). Todo

intercambio de datos con el nivel de negocios de la empresa (servicios de información,

Page 39: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

29

programación, sistemas de contabilidad y análisis) tiene que ser recogido, convertido y

transmitido a través de un paquete SCADA. (Hongbin et al. 2010)

Típicamente en la mayoría de PLCs, las redes de comunicación son exclusivas de

la marca y con velocidad limitada. Con la aceptación de Ethernet, las velocidades de

comunicación de la red han aumentado, pero todavía a veces usan se usan protocolos de

propiedad de cada marca.

Las empresas de hoy, que piensan en el futuro, se encuentran provistas de modernos

dispositivos electrónicos en sus máquinas y procesos de control. Hoy las fabricas

automatizadas deben proporcionar en sus sistemas, alta confiabilidad, gran eficiencia y

flexibilidad. Una de las bases principales de tales fabricas es un dispositivo electrónico

llamado Controlador Lógico Programable. Este dispositivo fue inicialmente introducido en

1970 y se ha sido refinando con nuevos componentes electrónicos, tales como Micro-

procesadores de alta velocidad, agregándole funciones especiales para el control de proceso

más complejos. Hoy los Controladores Programables son diseñados usando lo último en

diseño de Micro-procesadores y circuitería electrónica lo cual proporciona una mayor

confiabilidad en su operación en aplicaciones industriales donde existen peligro debido al

medio ambiente, alta respetabilidad, altas temperaturas, ruido ambiente o eléctrico,

suministro de potencia eléctrica no confiable, vibraciones mecánicas etc.

Este medio ambiente es el que el Control Lógico Programable se encuentra en su

elemento, ya que fue diseñado y concebido para su uso en el medio ambiente industrial.

Los Controladores Lógicos Programables, PLC como ellos son comúnmente llamados,

ofrecen muchas ventajas sobre otros dispositivos de control tales como relevadores,

Page 40: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

30

temporizadores electrónicos, contadores y controles mecánicos como del tipo tambor. El

objetivo de este manual es mostrar el funcionamiento interno y de programación de este

tipo de controladores, además de mostrar algunas de sus aplicaciones en la industria,

también realizar una serie de prácticas para que el técnico de la industria pueda iniciarse

en este apasionante rema de la automatización.

Descripción de funcionamiento de un PLC

Los Controladores Lógicos Programables, (PLC s, Programable Logic Controller),

nacieron esencialmente como tales, a finales de la década de los 60s y principios de los

70s. Las industrias que propiciaron este desarrollo fueron las automotrices. Ellas usaban

sistemas industriales basadas en reveladores, en sus sistemas de manufactura. Buscando

reducir los costos de los sistemas de control por relevadores, la General Motor preparo en

1968 ciertas especificaciones detallando un "Controlador Lógico Programable", Estas

especificaciones definían un sistema de control por relevadores que podían ser asociado no

solamente a la industria automotriz, si no prácticamente a cualquier industria de

manufactura.(Palma et al. 2017)

Estas especificaciones interesaron a ciertas compañías tales como GE-Fanuc,

reliance Electric, MODICON, Digital Equipment Co., De tal forma que el resultado de su

trabajo se convirtió en lo que hoy se conoce como Controlador Lógico Programable. Los

PLCs surgen como equipos electrónicos sustitutos de los sistemas de control basados en

relevadores, que se hacían más complejos y esto arrojaba ciertas dificultades en cuanto a

la instalación de los mismos, los altos costos de los equipos. Los altos costos de operación

y mantenimiento y la poca Flexibilidad y confiabilidad de los equipos.

Page 41: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

31

Los primeros PLCs se usaron solamente como reemplazo de relevadores, es decir,

su capacidad se reducía exclusivamente al control On -Off (de dos posiciones) en máquinas

y procesos industriales. De hecho, todavía se siguen usando en muchos casos como tales.

La gran diferencia con los controles por relevador fue su facilidad de instalación, ocupan

menor espacio, costo reducido, y proporcionan autodiagnósticos sencillos.

En su creación, los requerimientos sobre los cuales se han desarrollado los PLC s,

los enumero la General Motors de la manera siguiente

El dispositivo de control deberá ser fácil y rápidamente programable por el usuario con un

mínimo de interrupción.

Todos los componentes del sistema deben ser capaces de operar en plantas industriales sin

un especial equipo de soporte, de hardware o de ambiente.

El sistema debe ser de fácil mantenimiento y reparación. Deberá diseñarse con indicadores

de status y modularidad para facilitar las reparaciones y la búsqueda de errores.

El sistema deberá ocupar menor espacio que los sistemas de relevador y deberá consumir

menor potencia que los sistemas de control por relevadores.

1. El PLC deberá ser capaz de comunicarse con un sistema central de datos para

propósitos de monitoreo.

2. Deberá ser capaz de trabajar con 120 volts de corriente alterna y con elementos

estándar de control, con interruptores de presión interruptores de limite, etc.

3. Las señales de salida deberán ser capaces de manejar arranques de motores y

válvulas solenoides que operan a 120 volts de C.A.

Page 42: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

32

4. Deberá ser expandible desde su mínima configuración hasta su máxima, con una

mínima de alteración y de tiempo perdido.

5. Deberá ser competitivo en costo de venta e instalación, respecto de los sistemas en

base a relevadores.

6. La estructura de memoria empleada deberá ser expandible a un mínimo de 4000

palabras o elementos de memoria.

Campos de aplicaciones

EL PLC por sus especiales características de diseño tiene un campo de aplicación

muy extenso. La constante evolución del Hardware y Software amplia continuamente este

campo para poder satisfacer las necesidades que se detectan en el aspecto de sus

posibilidades reales.

Su utilización se da fundamentalmente en aquellas instalaciones en donde es

necesario realizar procesos de maniobra, control, señalización, etc.... por tanto, su

aplicación abarca desde procesos de fabricación industrial de cualquier tipo al de

transformaciones industriales, control de instalaciones, etc.

Sus reducidas dimensiones, las extremas facilidades de su montaje, la posibilidad

de almacenar los programas para su posterior y rápida utilización, la modificación o

alteración de los mismos, etc., hace que su eficiencia se aprecie fundamentalmente en

procesos en que se reduce necesidades tales como: Espacio reducido. Procesos de

producción periódicamente cambiantes Maquinaria de procesos variables. Instalación de

procesos complejos y amplios. Chequeo de programación centralizada de las partes del

proceso.(Palma et al. 2017)

Page 43: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

33

Nuevas tendencias

En general, los PLC son cada vez más rápidos y más pequeños y como resultado

de esto, están ganando capacidades que solían ser dominio exclusivo de la computadora

personal (PC) y de las estaciones de trabajo. Esto se traduce en manejo datos críticos de

manera rápida que se comparte entre el PLC en el piso de la fábrica y el nivel de negocios

de la empresa. Ya no se trata de los PLCs antiguos que únicamente controlaban salidas a

partir de una lógica y de unas entradas.

Algunas de las características que un PLC puede aportar a sus proyectos de

automatización son los servidores web, servidores FTP, envío de e-mail y Bases de Datos

Relacionales Internas.

Protocolo ModBus-rtu

El protocolo ModBus fue desarrollado por la empresa Modicon, parte de la

Schneider Automation. En el protocolo están definidos el formato de los mensajes utilizado

por los elementos que hacen parte de la red ModBus, los servicios (o funciones) que pueden

ser ofrecidos vía red, y también cómo estos elementos intercambian datos en la red.(Palma

et al. 2017)

Modos de transmisión

En la especificación del protocolo están definidos dos modos de transmisión: ASCII

y RTU. Los modos definen la forma como son transmitidos los bytes del mensaje. No es

posible utilizar los dos modos de transmisión en la misma red. En el modo RTU, cada

palabra transmitida posee 1 start bit, ocho bits de datos, 2 stop bits, sin paridad. De este

modo, la secuencia de bits para la transmisión de un byte es la siguiente:

Page 44: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

34

Start B0 B1 B2 B3 B4 B5 B6 B7 Stop Stop

En el modo RTU, cada byte de datos es transmitido como siendo una única palabra

con su valor directamente en hexadecimal. El SRW 01 utiliza solamente este modo de

transmisión para comunicación, no poseyendo, por lo tanto, comunicación en el modo

ASCII.

Estructura de los mensajes en el modo rtu

La red ModBus-RTU utiliza el sistema maestro-esclavo para el intercambio de

mensajes. Permite hasta 247 esclavos, más solamente un maestro. Toda comunicación

inicia con el maestro haciendo una solicitación a un esclavo, y esta contesta al maestro el

que fue solicitado. En ambos los telegramas (pregunta y respuesta), la estructura utilizada

es la misma: Dirección, Código de la Función, Datos y Checksum. Solo el contenido de los

datos posee tamaño variable.

Figura 15. Estructura de los mensajes

Dirección

El maestro inicia la comunicación enviando un byte con la dirección del esclavo

para el cual se destina el mensaje. Al enviar la respuesta, el esclavo también inicia el

Page 45: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

35

telegrama con él su propia dirección, posibilitando que el maestro conozca cuál esclavo

está enviándole la respuesta.

El maestro también puede enviar un mensaje destinado a la dirección “0” (cero), lo

que significa que el mensaje es destinado a todos los esclavos de la red (broadcast). En este

caso, ninguno esclavo irá contestar al maestro.

Código de la Función

Este campo también contiene un único byte, donde el maestro especifica el tipo de

servicio o función solicitada al esclavo (lectura, escrita, etc.). De acuerdo con el protocolo,

cada función es utilizada para acceder un tipo específico de dato. En el SRW 01, los datos

están dispuestos como registradores del tipo holding (words), o del tipo coil/input discrete

(bits), y, por lo tanto, el relé solo acepta funciones que manipulan estos tipos de datos.

Campo de Datos

Campo con tamaño variable. El formato y el contenido de este campo dependen de

la función utilizada y de los valores transmitidos. Este campo está descrito juntamente con

la descripción de las funciones.

CRC

La última parte del telegrama es el campo para el chequeo de errores de transmisión.

El método utilizado es el CRC-16 (Cycling Redundancy Check). Este campo es formado

por dos bytes, donde primero es transmitido el byte menos significativo (CRC-), y después

el más significativo (CRC+).

Page 46: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

36

El cálculo del CRC es iniciado cargándose una variable de 16 bits (referenciado a

partir de ahora como variable CRC) con el valor FFFFh. Después se debe ejecutar los pasos

de acuerdo con la siguiente rutina:

1. Se somete al primer byte del mensaje (solamente los bits de datos - start bit, paridad

y stop bit no son utilizados) a una lógica XOR (O exclusivo) con los 8 bits menos

significativos de la variable CRC, retornando el resultado en la propia variable

CRC;

2. Entonces, la variable CRC es desplazada una posición a la derecha, en dirección al

bit menos significativo, y la posición del bit más significativo es rellenada con 0

(cero);

3. Luego de este desplazamiento, el bit de flag (bit que fue desplazado para fuera de

la variable CRC) es analizado, ocurriendo lo siguiente:

● Si el valor del bit fuera 0 (cero), nada es hecho;

● Si el valor del bit fuera 1 (uno), el contenido de la variable CRC es sometida

a una lógica XOR con un valor constante de A001h y el resultado es

regresado a la variable CRC.

4. Se repiten los pasos 2 y 3 hasta que ocho desplazamientos tengan sido hechos;

5. Se repiten los pasos de 1 a 4, utilizando el próximo byte del mensaje, hasta que todo

el mensaje tenga sido procesado.

El contenido final de la variable CRC es el valor del campo CRC que es transmitido

en el final del telegrama. La parte menos significativa es transmitida primero (CRC-) y en

seguida la parte más significativa (CRC+).

Page 47: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

37

Metodología

La metodología que se siguió para el cumplimiento de cada uno de los objetivos se

basó en un proceso de investigación dedicado a funciones y protocolos en el mercado en

cuanto a dispositivos con los cuales se pudiese construir un controlador lógico

programable. Los distintos tipos, robustez y precios, seguido de una clasificación donde se

seleccionó los más aptos para la aplicación dentro de este prototipo, se realizó una nueva

selección de final de los componentes más óptimos de acuerdo a las necesidades y enfoque

principal para la facilidad de replicar en caso de fallas o reproducción del módulo, con la

robustez más alta posible. Después de estos procesos se realizó la programación y

acoplamiento de las tarjetas escogidas para la construcción del PLC diseñando una sola

PCB que acopla todos los dispositivos. Ya listo el diseño se realizó pruebas de

comunicación y un dispositivo para comprobar el éxito del funcionamiento.

Page 48: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

38

Desarrollo de la propuesta

Para describir el desarrollo y funcionamiento del sistema general del Soft-plc se va

a dividir en dos subsistemas los cuales consisten en una descripción del hardware y

software que van a cumplir las especificaciones técnicas dentro de los objetivos planteados,

después de obtener un estado del arte robusto y en consecuencia a este se planteó las

siguientes especificaciones técnicas.

Especificaciones técnicas

El controlador lógico programable, cuenta con las siguientes características: 8

entradas digitales aisladas, 6 salidas digitales relé, 2 salidas digitales transistor, 4 entradas

4-20 mA, 4 salidas 4-20 mA, comunicación TCP/IP, puerto serial aislado ModBus RTU.

La fuente de alimentación se estableció con una fuente de DC fija de 24V- 3A con

todas las protecciones contra riesgo eléctrico y cortocircuitos, esta será la encargada de la

alimentación de la Raspberry, el Psoc5 y I/O.

El dispositivo que se encarga del procesamiento es una Raspberry Pi que cuenta

con un microprocesador Quad Core Broadcom BCM 2837 con arquitectura de 64 bit CPU

a 1.2GHz. también cuenta con 1GB RAM, puerto Ethernet, GPIO extendido de 40 pines.

Estas especificaciones son perfectas para el desarrollo de ambientes de programación con

la suite de Codesys corre bajo sistema operativo Linux.

La tarjeta que se encarga de I/O es un Psoc5 este microcontrolador cumple con la

función de adicionar periféricos a la Raspberry, comunicándose mediante el protocolo

Serial Peripheral Interface (SPI), los cuales son: Convertidor análogo digital (ADC) con

una resolución de 12 Bits 4 canales, Convertidor digital análogo (DAC) con una resolución

Page 49: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

39

de 12 Bits 4 canales, 8 entradas digitales de alta velocidad, 8 salidas digitales de alta

velocidad.

La plataforma de programación es CODESYS con un entorno de programación de

PLC puede programar utilizando la lógica de escalera tradicional al texto estructurado más

moderno y al diagrama de flujo continuo (normas IEC 61131-3). Uno de los objetivos de

Codesys es poder usar Raspberry como un dispositivo PLC, de esta forma este entorno de

programación nos facilita drivers y packets para poder interactuar directamente desde la

versión de Codesys 3.5.

El aislamiento de tierras de I/O Digital y Análogo se usó circuitos que se encargan

de adaptar la señal eléctrica proveniente de sensores o transmitidas hacia actuadores,

agregan características de protección eléctrica: protección ante picos de voltaje, corriente,

e interferencia electromagnética (EMI). Su función principal es adaptar Lazos de corriente

4-20Ma, las entradas digitales y salidas digitales aisladas.

Hardware

Aquí vamos a describir todas las especificaciones de los componentes electrónicos

usados en el diseño del Soft-plc hasta convertirlo en un sistema adecuado para su trabajo

cumpliendo todos los parámetros de diseño en torno a las especificaciones técnicas

planteadas, con base a lo anterior una compilación de todos los circuitos necesarios en la

implementación de cada conexión.

Alimentación de voltaje

La alimentación de voltaje de todo el sistema es una fuente swichada de 12 voltios

a 3.2 amperios con capacita de 38.4 vatios la cual tiene como función alimentar el regulador

Page 50: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

40

de 5 voltios para alimentación del computador de placa reducida y el microcontrolador

encargado de entradas y salidas del sistema, en la figura 16 podemos observar cuanto

consume cada uno de los subsistemas con sus respectivos periféricos.

Figura 16. Consumo de potencia

Estudiando el consumo de corriente de cada uno de los sistemas se toma la decisión

de dejar la fuente de 24 voltios a 3.2 amperios ya que es suficiente para satisfacer la

necesidad del sistema Soft-plc sin ningún inconveniente.

Para la alimentación de las tarjetas raspberry y PSoC se usa el circuito lm2596 el

cual se configura como conversor DC-DC para obtener 5 voltios a máximo 3 amperios de

la fuente principal, la configuración de este sistema se hace a través de las recomendaciones

del fabrícate teniendo en cuenta la configuración de la figura 17.

Fue

nte

de

alim

enta

ció

n • 24 voltios a 3.2 amperios conectada a 110 vac

Ras

pb

erry

pi 3

• regulador

5 voltios 1.5 amperios P

SoC

5 L

P • 5 voltios 1 amperios

• salidas digitales con rele 24 voltios 0.4 amperio

Page 51: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

41

Figura 17. Configuración LM2596 24VDC a 5.1VDC

Conexión para comunicación SPI entre raspberry y PSoC

El hardware de conexión entre la Raspberry y PSoC 5 se hace a través de un canal

directo a los pines especificados según el fabricante para esta comunicación.

Figura 18. Conexión Raspberry y PSoC

Raspberry pi 3

MOSI

MISO

SCLK

GND

SS

PSoC 5LP

MOSI

MISO

SCLK

GND

SS

Page 52: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

42

Como se observó en el marco teórico la comunicación SPI funciona con estas 5

conexiones que se resumen en un pin emisor, un receptor, un reloj sincronizado, un pin de

tierra compartida, y un pin para determinar el número de esclavo.

En la raspberry pi 3 estos pines los podemos encontrar en los GPIO 17, 19, 21, 23

y 25 como se observar en la figura 19.

Figura 19. Conexión SPI en raspberry PI

La configuración SPI en PSoC 5LP la podemos encontrar en los pines GND, 12.2,

12.3, 12.4 y 2.0 como se observar en la figura 20.

Figura 20. Conexión SPI en PSoC 5 LP

Page 53: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

43

La configuración de la comunicación para la transmisión de datos se hace a través

de la programación de los dos dispositivos, esta configuración la podemos observar en la

sección de software.

Entradas digitales lógicas

Las ocho entradas digitales están configuradas con dos circuitos integrados

PS2502L los cuales tienen internamente 4 opto acopladores cada uno, y se encargan de

aislar tierras para la protección de procesador y la tarjeta encargada de las I/O.

Figura 21. Circuito integrado PL2502L internamente

La configuración de cada opto acoplador se hace a través de un circuito tomado de

una configuración de Allen Bradley con el fin de obtener un chip lógico personalizado con

una alimentación que puede ir de 10VDC a 30VDC según la necesidad de la aplicación.

Page 54: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

44

Figura 22. Configuración PL2502L como chip lógico

Este es un circuito inversor el cual se polariza en un rango de 10VDC a 30VDC y

produce que se cierre el opto transistor para generar un valor lógico bajo, el circuito está

compuesto por un diodo D3 que evita una polarización inversa, un divisor resistivo, un

condensador para evitar ruido y va polarizado directamente al diodo emisor del opto

acoplador el cual se polariza a un voltaje aproximando entre 1VDC y 3VDC, se hace una

división de escala de voltaje suficiente para que el transistor se polarice y podamos tener

el valor lógico a la salida, la resistencia pull up R6 no se agrega al circuito ya que van

conectadas directamente al PSoC y esté ya las trae incluidas y se pueden configurar.

El circuito permite la aislación por propiedades del opto acoplador cercanas a los

5000 VRMS y cada canal está aislado sin compartir tierras lo cual es beneficioso para

cualquier aplicación.

Salidas digitales lógicas

Las salidas ocho salidas digitales están configuradas en dos grupos, el primer grupo

de seis salidas, está configurado para poder recibir voltajes altos que están aislados a través

Page 55: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

45

de un relé de marca SONGLE que permite la conducción de 3 amperios a 24 voltios

suficiente para las aplicaciones típicas de un PLC, en caso que se requiera más corriente

este relé tiene que conectarse a un contactor que se encargue de manejar toda la parte de

corriente.

El relé SONGLE consta de un contacto normalmente cerrado y un contacto

normalmente abierto con el solenoide que hace el cierre del contacto.

Figura 23. Diagrama de contacto Relé SONGLE

Cada uno de estos relés tienen un voltaje nominal de 5VDC y aproximadamente un

consume de 0.066 amperios, donde se tiene un consumo de corriente máxima de 0.4

amperios con los seis relés activos.

El driver usado para estas salidas consta de un circuito integrado ULN2803A de

fácil acceso comercialmente que tiene la capacidad de manejar 8 canales en configuración

Darlington que se utiliza para aumentar corriente de 0.03 amperios.

Page 56: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

46

Figura 24. Diagrama Lógico ULN2803A

Figura 25. Diagrama Esquemático ULN2803A configuración Darlington

El otro grupo de dos salidas, este grupo está configurado como salidas

transistorizadas las cuales son compuestas por un transistor MOSFET FDS4953 el cual es

un MOSFET doble que permite por el transistor una capacidad de corriente de 5 amperios

y un voltaje de 30 voltios.

Page 57: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

47

Figura 26. Diagrama MOSFET FDS4953

Este MOSTEF está protegido con un fusible de alta velocidad en caso de

inconvenientes, también tiene un driver como circuito de polarización con dos transistores

complementarios un 2N3906 y 2N3904

Figura 27. Driver complementario salida transistorizada

También está aislado con un MOCD 213-M es cual se encarga de aislar todo el

circuito que tiene una capacidad de doble canal y esta polarizado los diodos emisores

conectados directamente al PSoC.

Page 58: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

48

Para el primer grupo se utilizó un condensador electrolítico y un condensador

cerámico que actúan como filtros pasa bajos para evitar interacción en el flujo DC y el

PSoC.

Salidas análogas 4-20Ma

Las cuatro salidas análogas están compuestas por un HCNR200 el cual es un opto

acoplador análogo de alta velocidad que consta de un emisor y dos fotodiodos los cuales

se usan para volver lineal la aplicación.

Figura 28. Configuración HCNR200 como trasmisor

La salida del DAC del PSoC está configurado linealmente en un rango de 0.8VDC

a 4VDC, se cambió el circuito operacional LM158 por un LM358 que es de fácil acceso,

y se ajustó un trimmer para ajustar lazos de corriente para manipular el spam y se cambió

el transistor de salida 2N3904 por cuestiones de temperatura por un 2SD400 el cual permite

hasta un amperio entre emisor y colector, el cambio se realiza para evitar inconvenientes

Page 59: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

49

cuando el PLC se enfrente a aplicaciones de campo donde se expone a una duración de

trabajo bastante altas.

Entradas análogas 4-20Ma

Las cuatro entradas también están compuestas por un circuito HCNR200

configurado de manera diferente.

Figura 29. Configuración HCNR200 como receptor

En los cuales se utiliza el convertidor de corriente ILOOP que lo convierte de

0VDC a 3.4VDC, el cual va directamente al ADC del psoc y se hace los mismos cambios

de la configuración de las salidas.

Por último, se agregó un filtro pasa bajos con un corte cercano a los 2300 HZ para

evitar ruidos de alta frecuencia y evitar atenuaciones en caso de que se usen dispositivos

de alta velocidad.

Comunicación ModBus RTU

Esta comunicación necesita un circuito aislado a través de un shield configurado

para la correcta comunicación la cual no se caiga por corriente.

Page 60: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

50

Figura 30. Circuito driver ModBus RTU

Software

Aquí vamos a describir todas las especificaciones de la composición de

programación usados en el diseño del Soft-plc dividiéndolo en dos subsistemas de software

que son programación de la Raspberry pi y programación de PSoC.

Programación Raspberry pi 3

La programación está configurada con el software Codesys 3.5 SP11 Patch 4 última

versión a la fecha a continuación, se muestra cada paso de configuración con detalle de

programación y adecuación de cada plataforma para su correcto funcionamiento.

Instalación de Raspbian en Raspberry pi 3

El sistema operativo y los datos de usuario se guardarán en una tarjeta microSD de

8 Gigabytes, aunque puede ser de mayor capacidad. El Sistema Operativo se llama

Page 61: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

51

Raspbian, que es una versión de GNU/Linux diseñada especialmente para su uso con

Raspberry Pi.

En primer lugar, formatea la tarjeta microSD. El ordenador debe tener algún lector

de tarjetas microSD, o un adaptador que lo permita, por ejemplo, USB.

1. Descarga el software SD Formatter 4.0 para Windows.

2. Sigue las instrucciones para instalar el software.

3. Inserta tu tarjeta microSD en el lector de tu ordenador y toma nota de cómo

se llama dicha unidad, por ejemplo F.

4. En el SD Formatted 4.0 elige la letra de la unidad de disco de tu tarjeta y

formatéala.

Figura 31. Ajuste memoria SDFormatter

5. Ingresar a la página www.raspberrypi.org y descargamos la última versión

de Raspbian

Page 62: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

52

Figura 32. página principal raspberry

6. Haz clic en el botón Download ZIP bajo “NOOBS (offline and network

install)” y elige la carpeta donde guardarlo.

7. Extrae los archivos del comprimido ZIP.

8. Una vez que se haya formateado la tarjeta microSD, arrastra los archivos

extraídos del directorio donde se hayan guardado y los sueltas en la unidad

de disco de la tarjeta microSD.

9. Los archivos se copiarán en la tarjeta microSD.

10. Cuando se hayan acabado de copiar, retira de forma segura la tarjeta

microSD y la introduces en la ranura de la tarjeta Raspberry Pi.

Instalar complementos de raspberry para Codesys

El complemento lo podemos descargar directamente de la página principal de

Codesys con el nombre de CODESYS FOR RASBERRY PI SL.

Page 63: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

53

Ya dentro de la plataforma Codesys e instalado el complemento podemos ir a la

pestaña herramienta y después administración de paquetes para comprobar que el

complemento este instalado.

Figura 33. Consulta administración de paquetes

Ya dentro del administrador de paquetes podemos verificar el complemento

instalado, también podemos encontrar un botón para la actualización de todos los

complementos instalados y también un acceso directo a la tienda de Codesys.

Figura 34. Complementos de Codesys

Page 64: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

54

Configuración de PLC en Codesys

Ya comprobado que tenemos el complemento instalado vamos a llevar a cabo la

configuración del PLC, para esto vamos a abrir un nuevo proyecto, le damos un nombre y

una dirección de ubicación de archivos, escogemos la opción proyecto estándar.

Figura 35. Opciones de inicio en nuevo proyecto

A continuación, vamos a escoger el dispositivo donde vamos a escoger CODESYS

for Raspberry y como lenguaje de programación texto estructurado, anotando que también

sirve con otros lenguajes de programación.

Figura 36. Opciones de lenguaje de programación

Page 65: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

55

Configuración comunicación SPI

Ya ingresado a la plataforma vamos a la subdivisión que se encuentra en la parte

izquierda y damos click derecho en SPI y seleccionamos agregar el dispositivo.

Figura 37. Selección de dispositivo SPI

Dejamos el nombre como SPI-master y le damos click al botón agregar dispositivo

Figura 38. Configuración SPI como master

Como ya está agregado el dispositivo de la comunicación SPI, se procede a

configurar para poder llamar las funciones del PSoC ya establecidas por la especificación,

Page 66: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

56

para esto vamos agregar un entorno de programación POU, damos click en aplicación,

agregar objeto, y seleccionamos POU.

Figura 39. Agregar POU a Codesys

En la configuración del POU vamos a ponerle el nombre SPI_16_RW y

seleccionamos el tipo bloque de funciones, texto estructurado y click en agregar.

Figura 40. Nombrar función SPI_16_RW

Ya agregado la aplicación POU el programa automáticamente nos deja unas líneas

de definición, variables de registro y los buffers.

Page 67: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

57

Figura 41. Definición automática POU para SPI_16_RW

Para agregar el dispositivo PLC se borra las líneas marcadas en el círculo de la

figura 41 de la definición automática y se remplazan por las líneas del Anexo 1

FUNCTION_BLOCK SPI_16_RW.

Figura 42. Definición modificada POU FUNCTION_BLOCK SPI_16_RW

Después de terminar de configurar la definición se configura el marco de la función

que tiene toda la configuración de registros y envían en total ocho paquetes de 16 bits, para

configurarlo escribimos las líneas del Anexo 2 Paquetes de función.

Page 68: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

58

Figura 43. Macro del POU FUNCTION_BLOCK SPI_16_RW

Con este paso ya está configurado la raspberry con las funciones predeterminadas

del PSoC, solo queda llamar la función desde un programa de cualquier aplicación, para

llamarlo podemos usar las líneas del anexo 3: llamada de función POU al PLC.

Figura 44. Llamado de función POU al PLC

Después de la definición tenemos que llamar la librería mediante la instancia

llamada psoc: SPI_16_RW que se encuentra en la definición, y agregamos las líneas del

anexo 4: main program, es importante siempre definir las variables enteras sin signo con

Page 69: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

59

una longitud máxima de 16 bits, si son entradas o salidas digitales es necesario definirlas

de 8 bits.

Por ultimo vamos a configurar el SPI master vamos a configurar el dMode en 1, el

dbitperword 8 y dmaxspeed 61000 Hz. Es importante recordar que la comunicación solo

se genera si el W_Register:UINT en igual 43690 solo con ese número abre la comunicación

SPI con el PSoC.

Figura 45. Main program de la función

La función retorna los ADC, DAC, entradas digitales y salidas digitales. Para

llamarlo simplemente se asigna valores a las funciones. Cada uno de los if significa una

salida de propósito general con tramas de 16 bits y en el main tags no es necesario

configurar un tiempo cíclico ya que no afecta a la comunicación.

Page 70: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

60

Programación PSoC 5 LP

Toda la programación de PSoC está configurada en el software PSoC Creator 4.1

update 1, se muestra cada paso de configuración con detalle de programación y adecuación

de cada plataforma para su correcto funcionamiento.

Configuración de top Desing

Dentro de la configuración esquemática del PSoC vamos a encontrar todas las

configuraciones I/O según las especificaciones técnicas.

Figura 46. Top Design PSoC 5

Dentro de top desing vamos a encontrar un bloque ADC el cual contiene 4 canales

con una resolución de 12 bits que convierten el voltaje de 0VDC A 5VDC configurado con

Page 71: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

61

un tiempo de muestreo de 50hz para simular un filtro tipo ventana para evitar ruido; cuenta

con un bloque de comunicación SPIS-1 encargado de la comunicación con la raspberry pi

configurado de modo de 16 bits para que cada vez que se entra un paquete desde la

raspberry se genere una interrupción para cambiar la rutina y tener en cuenta el número de

registro que se desea escribir; tienes 4 bloques DAC configuras a 12 bits conectados a un

seguidor de corriente PGA, ocho entradas digitales configurados con resistencia pull up

para complementar el hardware y ocho salidas digitales configuradas normalmente 6 de

relé y dos de alta velocidad.

Configuración main program PSoC

La configuración de programación del PSoC la podemos observar el Anexo 5,

donde podemos encontrar los buffers de comunicación para el control de cada uno de los

periféricos de top design. Este programa se encarga de enviar una trama completa para leer

y escribir los datos correspondientes a la aplicación.

Diseño de circuito impreso

El diseño del circuito impreso consta de componentes SMD donde vamos a

encontrar todos los circuitos nombrados en las especificaciones de hardware, todo el

circuito fue diseñado en proteus 8.4.

Page 72: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

62

Figura 47. Diseño PCB

Figura 48. Visualización 3D tarjeta de periféricos

Page 73: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

63

Conclusiones

El desarrollo de este proyecto, permite al estudiante profundizar de forma práctica

en la automatización y control de procesos industriales, al tener contacto directo con una

herramienta que conforma el hardware y software de un sistema PLC con el cual pueden

interactuar directamente hacia la manipulación de dispositivos de campo, donde se

implementan sensores, actuadores, sistemas electrónicos de control y se crean interfaz

humano-máquina interactuando a través de estructuras de programación cumpliendo la

norma IEC 61131-3, es lo esencial en el aprendizaje y experiencia que el estudiante llevara

a su entorno laboral.

Al momento de realizar el diseño de plataformas de entrenamiento fue importante

hacer una investigación exhaustiva ampliando el estado de arte actual de las tecnologías a

utilizar y a su vez es necesario conocer los documentos normativos que aplican para los

diferentes elementos que componen la plataforma.

El Soft-Plc propuesto tiene ventajas en el mercado por sus condiciones de robustez

y bajo precio, este se puede usar en ambientes académicos e industriales, las

especificaciones de diseño están exhaustivamente preparadas para su reproducción fácil

donde los estudiantes de la universidad distrital pueden preparar sus aplicaciones.

Page 74: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

64

Lista de referencias

3S - Smart Software Solutions GmbH. 2010. User Manual for PLC Programming with

Codesys 2.3. 3S - Smart Software Solutions GmbH Memminger Straße 151.

http://www.wago.com/wagoweb/documentation/759/eng_manu/333/m07590333_00

000000_1en.pdf.

Cypress Semiconductor Corporation. 2017. “PSoC 5LP: CY8C58LP Family Dadasheet.”

: 1–139.

Dennis, Andrew K. 2013. Raspberry Pi Home Automation with Arduino.

https://books.google.com/books?id=kvdjhugNV7AC&pgis=1.

García, Carlos, and Jose López. 2014. “Integración de Redes Telemáticas.” UOC

Universitat Oberta de Catalunya: 84.

http://openaccess.uoc.edu/webapps/o2/bitstream/10609/40187/6/cgmuelasTFC0115

memoria.pdf.

Gonzalez, Claudio. 2015. “Aplicaciones Orientadas a La Domótica Con Raspberry Pi.”

Hongbin, Gao, Zhou Yun2, Niu Xixian, and Zang Dan. 2010. “The Design and

Implementation of an Automatic Burdening System Based on PLC.” Proceedings -

2015 IEEE 12th International Symposium on Autonomous Decentralized Systems,

ISADS 2015: 3.

John, Karl Heinz, and Michael Tiegelkamp. 2010. “IEC 61131-3: Programming

Industrial Automation Systems: Concepts and Programming Languages,

Requirements for Programming Systems, Decision-Making Aids.” IEC 61131-3:

Programming Industrial Automation Systems: Concepts and Programming

Languages, Requirements for Programming Systems, Decision-Making Aids: 1–390.

Page 75: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

65

LAGU, SONALI S. 2014. “RASPBERRY PI FOR AUTOMATION OF WATER

TREATMENT PLANT.” 1: 5.

López, Julián Rolando Camargo, and César Andrey Perdomo Charry. 2016.

INTRODUCCIÓN AL PSoC5LP. Primera ed. ed. Nathalie De la Cuadra N. Bogotá.

Palma, l. Brito, V. Brito, J. Rosas, and P. Gil. 2017. “WEB PLC Simulator for ST

Programming.” In Lisboa, portugal, 6.

Perez, Eric López. 2008. “INGENIERIA EN MICROCONTROLADORES Protocolo

SPI( Serial Peripherical Interface).” Technology: 1–10. http://www.i-

micro.com/pdf/articulos/spi.pdf.

Rostyslav, Kryvyy, Serhiy Tkatchenko, and Ruslan Golovatsyy. 2015. “Features Home

Automation System Development Based Raspberry Pi Using Java ME SDK.”

Proceedings of 13th International Conference: The Experience of Designing and

Application of CAD Systems in Microelectronics, CADSM 2015 1: 3.

Sandeep, V. et al. 2015. “Globally Accessible Machine Automation Using Raspberry Pi.”

2015 International Conference on Advances in Computing, Communications and

Informatics, ICACCI 2015: 4.

Page 76: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

66

Anexos

Anexo 1: FUNCTION_BLOCK SPI_16_RW

FUNCTION_BLOCK SPI_16_RW

VAR_INPUT

DAC_1:UINT;

DAC_2:UINT;

DAC_3:UINT;

DAC_4:UINT;

GPO:UINT;

END_VAR

VAR_OUTPUT

ADC_1:UINT;

ADC_2:UINT;

ADC_3:UINT;

ADC_4:UINT;

GPI:UINT;

END_VAR

VAR

W_Register:UINT:=43690;

i:INT:=0;

RxdataHi:UINT;

RxdataLo:UINT;

dX:uint;

TxDataBuffer:ARRAY[0..1] OF BYTE;

RxDataBuffer:ARRAY[0..1] OF BYTE;

TxBuffer:POINTER TO ARRAY[0..1] OF BYTE;

RxBuffer:POINTER TO ARRAY[0..1] OF BYTE ;

RxState:POINTER TO ARRAY[0..1] OF BYTE;

SPI_State:BOOL;

END_VAR

Page 77: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

67

Anexo 2: Paquetes de función

i:=i+1;

IF(i=1)THEN

//*******************Registro**************//

TxDataBuffer[0]:=UINT_TO_BYTE(SHR(W_Register,8));

TxDataBuffer[1]:=UINT_TO_BYTE(W_Register AND 255);

TxBuffer:=ADR(TxDataBuffer);

SPI_State:=SPI_master.transferExt(pabyTxBuffer:=TxBuffer,pabyRxBuffer:=0,udiLen:=

2,uiDelayus:=5,udiSpeedHz:=61000);

//***********************************//

END_IF

IF(i=2)THEN

//**********************RW_Data**********************//

TxDataBuffer[0]:=UINT_TO_BYTE(SHR(DAC_1,8));

TxDataBuffer[1]:=UINT_TO_BYTE(DAC_1 AND 255);

TxBuffer:=ADR(TxDataBuffer);

SPI_State:=SPI_master.transferExt(pabyTxBuffer:=TxBuffer,pabyRxBuffer:=0,u

diLen:=2,uiDelayus:=5,udiSpeedHz:=61000);

//***********************************//

END_IF

IF(i=3)THEN

//*************RW_Data************************//

TxDataBuffer[0]:=UINT_TO_BYTE(SHR(DAC_2,8));

TxDataBuffer[1]:=UINT_TO_BYTE(DAC_2 AND 255);

TxBuffer:=ADR(TxDataBuffer);

RxBuffer:=ADR(RxState);

RxDataBuffer:=RxBuffer^;

RxdataHi:=BYTE_TO_UINT(RxDataBuffer[0]);

RxdataLo:=BYTE_TO_UINT(RxDataBuffer[1]);

dX:=SHL(RxdataHi,8) OR RxdataLo;

SPI_State:=SPI_master.transferExt(pabyTxBuffer:=TxBuffer,pabyRxBuffer:=Rx

Buffer,udiLen:=2,uiDelayus:=5,udiSpeedHz:=61000);

//****************************************//

END_IF

IF(i=4)THEN

//************RW_Data******************//

Page 78: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

68

TxDataBuffer[0]:=UINT_TO_BYTE(SHR(DAC_3,8));

TxDataBuffer[1]:=UINT_TO_BYTE(DAC_3 AND 255);

TxBuffer:=ADR(TxDataBuffer);

RxBuffer:=ADR(RxState);

RxDataBuffer:=RxBuffer^;

RxdataHi:=BYTE_TO_UINT(RxDataBuffer[0]);

RxdataLo:=BYTE_TO_UINT(RxDataBuffer[1]);

ADC_1:=SHL(RxdataHi,8) OR RxdataLo;

SPI_State:=SPI_master.transferExt(pabyTxBuffer:=TxBuffer,pabyRxBuffer:=Rx

Buffer,udiLen:=2,uiDelayus:=5,udiSpeedHz:=61000);

//****************************************//

END_IF

IF(i=5)THEN

//***************RW_Data***************//

TxDataBuffer[0]:=UINT_TO_BYTE(SHR(DAC_4,8));

TxDataBuffer[1]:=UINT_TO_BYTE(DAC_4 AND 255);

TxBuffer:=ADR(TxDataBuffer);

RxBuffer:=ADR(RxState);

RxDataBuffer:=RxBuffer^;

RxdataHi:=BYTE_TO_UINT(RxDataBuffer[0]);

RxdataLo:=BYTE_TO_UINT(RxDataBuffer[1]);

ADC_2:=SHL(RxdataHi,8) OR RxdataLo;

SPI_State:=SPI_master.transferExt(pabyTxBuffer:=TxBuffer,pabyRxBuffer:=Rx

Buffer,udiLen:=2,uiDelayus:=5,udiSpeedHz:=61000);

//**********************************************//

END_IF

IF(i=6)THEN

//***************RW_Data******************//

TxDataBuffer[0]:=UINT_TO_BYTE(SHR(GPO,8));

TxDataBuffer[1]:=UINT_TO_BYTE(GPO AND 255);

TxBuffer:=ADR(TxDataBuffer);

RxBuffer:=ADR(RxState);

RxDataBuffer:=RxBuffer^;

RxdataHi:=BYTE_TO_UINT(RxDataBuffer[0]);

RxdataLo:=BYTE_TO_UINT(RxDataBuffer[1]);

ADC_3:=SHL(RxdataHi,8) OR RxdataLo;

SPI_State:=SPI_master.transferExt(pabyTxBuffer:=TxBuffer,pabyRxBuffer:=Rx

Buffer,udiLen:=2,uiDelayus:=5,udiSpeedHz:=61000);

//*******************************************//

END_IF

IF(i=7)THEN

Page 79: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

69

//****************RW_Data*******************//

TxDataBuffer[0]:=UINT_TO_BYTE(SHR(0,8));

TxDataBuffer[1]:=UINT_TO_BYTE(0 AND 255);

TxBuffer:=ADR(TxDataBuffer);

RxBuffer:=ADR(RxState);

RxDataBuffer:=RxBuffer^;

RxdataHi:=BYTE_TO_UINT(RxDataBuffer[0]);

RxdataLo:=BYTE_TO_UINT(RxDataBuffer[1]);

ADC_4:=SHL(RxdataHi,8) OR RxdataLo;

SPI_State:=SPI_master.transferExt(pabyTxBuffer:=TxBuffer,pabyRxBuffer:=Rx

Buffer,udiLen:=2,uiDelayus:=5,udiSpeedHz:=61000);

//****************************************//

END_IF

IF(i=8)THEN

//*******************RW_Data********************//

TxDataBuffer[0]:=UINT_TO_BYTE(SHR(0,8));

TxDataBuffer[1]:=UINT_TO_BYTE(0 AND 255);

TxBuffer:=ADR(TxDataBuffer);

RxBuffer:=ADR(RxState);

RxDataBuffer:=RxBuffer^;

RxdataHi:=BYTE_TO_UINT(RxDataBuffer[0]);

RxdataLo:=BYTE_TO_UINT(RxDataBuffer[1]);

GPI:=SHL(RxdataHi,8) OR RxdataLo;

SPI_State:=SPI_master.transferExt(pabyTxBuffer:=TxBuffer,pabyRxBuffer:=Rx

Buffer,udiLen:=2,uiDelayus:=5,udiSpeedHz:=61000);

//***************************************//

i:=0;

END_IF

Page 80: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

70

Anexo 3: Llamada de función definición POU al PLC

PROGRAM PLC_PRG

VAR

Txdata1:UINT;

Txdata2:UINT;

Txdata3:UINT;

Txdata4:UINT;

Txdata5:UINT;

Rxdata1:UINT;

Rxdata2:UINT;

Rxdata3:UINT;

Rxdata4:UINT;

Rxdata5:UINT;

POT1:REAL;

POT2:REAL;

POT3:REAL;

POT4:REAL;

POT5:REAL;

i:INT:=0;

psoc: SPI_16_RW;

END_VAR

Page 81: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

71

Anexo 4: Main program

psoc(DAC_1:= Txdata1, DAC_2:=Txdata2, DAC_3:=Txdata3 , DAC_4:=Txdata4,

GPO:=Txdata5 , ADC_1=>Rxdata1 , ADC_2=>Rxdata2 , ADC_3=>Rxdata3 ,

ADC_4=>Rxdata4 , GPI=>Rxdata5 );

Txdata1:=REAL_TO_UINT(POT1*100);

Txdata2:=REAL_TO_UINT(POT2*100);

Txdata3:=REAL_TO_UINT(POT3*100);

Txdata4:=REAL_TO_UINT(POT4*100);

Txdata5:=REAL_TO_UINT(POT5*10);

Page 82: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

72

Anexo 5: main program PSoC

#include "project.h"

#define ADR_PSOC 43690u

int RxBuffer[5],TxBuffer[5];

int Rxdata,Txdata,F1=0,F2=0,i=0,k=0;

CY_ISR(Rx)

{

Rxdata=SPIS_1_ReadRxData();

if(F1==1)

{

RxBuffer[i]=Rxdata;

i++;

if(i==5)

{

i=0;

F1=0;

}

else i=i;

}

if(Rxdata==ADR_PSOC)

{

F1=1;

F2=1;

}

else

{

F1=F1;

F2=F2;

}

}

CY_ISR(Tx)

{

if(F2==1)

{

SPIS_1_WriteTxData(TxBuffer[k]);

k++;

if(k==5)

{

k=0;

F2=0;

Page 83: DISEÑO DE UN SOFT-PLC BASADO EN UN COMPUTADOR DE PLACA

73

}

}

else SPIS_1_WriteTxData(0);

}

CY_ISR(ADC)

{

TxBuffer[0]=ADC_GetResult16(0);

TxBuffer[1]=ADC_GetResult16(1);

TxBuffer[2]=ADC_GetResult16(2);

TxBuffer[3]=ADC_GetResult16(3);

TxBuffer[4]=IN_1_Read();

DAC_1_SetValue(RxBuffer[0]);

DAC_2_SetValue(RxBuffer[1]);

DAC_3_SetValue(RxBuffer[2]);

DAC_4_SetValue(RxBuffer[3]);

OUT_1_Write(RxBuffer[4]);

}

int main(void)

{

CyGlobalIntEnable; /* Enable global interrupts. */

SPIS_1_Start();

ADC_Start();

DAC_1_Start();

DAC_2_Start();

DAC_3_Start();

DAC_4_Start();

F1_Start();

F2_Start();

F3_Start();

F4_Start();

isr_1_StartEx(Rx);

isr_2_StartEx(Tx);

isr_3_StartEx(ADC);

for(;;)

{

}

}