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.
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.
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.
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.
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 c o m o fue, el Ingeniero Juan
Carlos Casas (Gerente de Proyectos e ingeniería).
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
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
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
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
Lista de tablas
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
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
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.
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.
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
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.
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
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.
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
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
(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
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
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
○ 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
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
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 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
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)
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
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
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
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)
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)
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
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
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
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
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,
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
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.
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
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
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
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 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
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
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
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
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
n
te
de
ali
ment
aci
ón
• 24 voltios
a 3.2
amperios
conectada
a 110 vac
R
asp
berr
y
pi 3
• regulador
5 voltios
1.5
amperios
P
SoC 5 LP
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
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.
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
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 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
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
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
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ó
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
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
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
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
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.
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.
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
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
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
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
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
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