A programmable logic controller is a device with a processor capable of executing algorithms stored in its memory to activate/deactivate output signals (analog and/or discrete) based on input signals (analog and/or discrete) coming from field sensors.
The main idea arises when trying to replace an old control logic (relay logic) by a more versatile equipment, with better response times, lower installation volume, higher reliability and better maintenance times.
Then, taking advantage of the benefits of electronics and semiconductors (microcontrollers of course), we sought to migrate the old control in a new device called PLC.
Un controlador lógico programable es un equipo con un procesador capaz de ejecutar algoritmos grabados en su memoria para activar/desactivar señales de salida (analógicas y/o discretas) basados en señales de entradas (analógicas y/o discretas) que provienen de los sensores de campo.
La idea principal surge al intentar reemplazar una lógica de control antigua (lógica de relés) por un equipo más versátil, con mejores tiempos de respuestas, menor volumen en la instalación, mayor confiabilidad y mejores tiempos en mantenimiento.
Entonces, aprovechando las prestaciones de la electrónica y los semiconductores (microcontroladores por supuesto), se buscó migrar el antiguo control en un nuevo dispositivo llamado PLC.
Now, instead of making physical connections at the terminals of each relay was necessary to program a logic by which the switching (activation of outputs) would occur, but we know that programming requires a programming language and it was sought that the introduction of the PLC in the industrial environment was easy, that could be handled by technicians and control engineers without the need to study a new career.
Since these professionals in control perfectly handled the control based on relay logic was sought a similar programming language in which they could connect the contacts open or closed digitally (in the program) and activate the outputs connected to these contacts, this language was called ladder and was easily understood by anyone who had worked with relay logic.
Ahora, en lugar de hacer conexiones físicas en los terminales de cada relés era necesario programar una lógica mediante la cual se producirían las conmutaciones (activación de salidas), pero sabemos que las programaciones ameritan un lenguaje de programación y se buscaba que la introducción del PLC en el entorno industrial fuese fácil, que pudiese ser manejable por los técnicos e ingenieros de control sin necesidad de estudiar una nueva carrera.
Ya que estos profesionales en control manejaban a la perfección el control basado en la lógica de relés se buscó un lenguaje de programación similar en el que se pudiesen conectar los contactos abiertos o cerrados de forma digital (en el programa) y activar las salidas conectadas a dichos contactos, este lenguaje recibió el nombre de escalera y era de fácil comprensión para cualquiera que hubiera trabajado con lógica de relés.
But let's be clear, a device based on microcontrollers, as we have shown in our blog, has more to offer than just relay emulation, so the ladder language soon began to add function blocks, those functions that we can run in a computer programming language began to come in the form of blocks in order to add features to the PLC's.
Pero seamos claros, un dispositivo basado en microcontroladores, cómo hemos demostrado en nuestro blog, tiene más para ofrecer que solo la emulación de relés, por eso al lenguaje escalera pronto se le comenzaron a añadir bloques de funciones, esas funciones que podemos ejecutar en un lenguaje de programación informático comenzaron a venir en forma de bloques con la finalidad de añadir prestaciones a los PLC's.
Soon the function blocks would become more relevant to the point of displacing completely (in some cases) the ladder language to give way to a new language called function block or FB.
The ladder language is standard for all PLC's changing only the way in which the inputs and outputs are addressed, by introducing the FB language each manufacturer was integrating PLC own functions making it necessary that the programmer has to learn new things to improve their programming skills with a specific PLC.
Pronto los bloques de funciones irían cobrando mayor relevancia al punto de desplazar por completo (en algunos casos) al lenguaje escalera para dar paso a un nuevo lenguaje llamado bloque de funciones o FB.
El lenguaje escalera es estándar para todos los PLC's cambiando únicamente la forma en que se direccionan las entradas y salidas, al introducir el lenguaje FB cada fabricante fue integrando funciones propias del PLC haciendo necesario que el programador tenga que aprender cosas nuevas para mejorar sus habilidades de programación con un PLC específico.
And when it comes to being flexible, manufacturers will do anything to try to sell more, so, since we are in the business of adapting programming languages to the PLC to facilitate the creation of projects, let's think about a language that facilitates projects based on sequential logic.
This is how we welcomed another new programming language called GRAFCET which is a very different way of programming compared to previous languages but very efficient for sequential logic.
Y cuando se trata de ser flexibles los fabricantes harán cualquier cosa por intentar vender más, entonces, ya que andamos en eso de adaptar al PLC lenguajes de programación que faciliten la creación de proyectos pensemos en un lenguaje que facilite proyectos basados en lógica secuencial.
Es así como se dio la bienvenida a otro nuevo lenguaje de programación llamado GRAFCET que es una forma muy distinta de programar en comparación a los anteriores lenguajes pero muy eficiente para lógicas secuenciales.
But seriously, what about those who don't like graphical programming but love to write code?
If we are being flexible with everyone we can't make an exception for the one who is the native way of programming (writing codes), well, let's make everyone happy!
That's why many PLC's support code programming in a language called SCL.
Pero en serio. ¿Qué pasa con aquellos a los que no les gusta la programación gráfica sino que aman escribir códigos?
Si estamos siendo flexibles con todos no podemos hacer la excepción con aquel que de por sí es la forma nativa de programar (escribiendo códigos), bien. ¡Hagamos a todos felices!
Es por eso que muchos PLC's admiten la programación por códigos en un lenguaje llamado SCL.
And maybe there are more but as someone said: "All roads lead to Rome", in this case no matter which language you use at the end the PLC will remain a device that receives input signals and activates output signals, the programming will only decide the how, when, where and why but the programming languages will be the tool that will facilitate you to write these decisions.
Don't worry, in the end they are not difficult languages to learn and we are going to approach each one of them little by little.
But, as if that were not enough, we have also taken advantage of the digital communication features offered by microcontrollers, so it is no longer only about discrete and analog inputs and outputs but in data transmission between devices for which different communication protocols come into play.
Of course, variables that store and manipulate data are necessary to make use of all the data received, so that today we have robust automation systems.
Y tal vez haya más pero como alguien dijo: "Todos los caminos llevan a Roma", en este caso sin importar cual lenguaje uses al final el PLC seguirá siendo un dispositivo que recibe señales de entrada y activa señales de salida, la programación solo va a decidir el cómo, cuando, donde y por qué pero los lenguajes de programación serán la herramienta que te facilitará el escribir estas decisiones.
No te preocupes, al final no son lenguajes difíciles de aprender y vamos a irlos abordando poco a poco a cada uno de ellos.
Pero, por si fuera poco también se han aprovechado las prestaciones de comunicación digital que ofrecen los microcontroladores, entonces ya no solo se trata de entradas y salidas discretas y analógicas sino en transmisión de datos entre dispositivos para lo cual entran en escena diferentes protocolos de comunicación.
Por supuesto son necesarias las variables que almacenan y manipulan datos para dar uso a todos los recibidos, de esa forma tenemos hoy en día sistemas de automatización robustos.
So a PLC is a programmable logic device for control actions, but the magic does not happen in the hardware that although it is very necessary the understanding is somewhat basic (inputs and outputs + communication) but in the programming of it together with the different languages and techniques used.
Entonces un PLC es un dispositivo lógico programable para acciones de control, pero la magia no ocurre en el hardware que aunque es muy necesario la comprensión es algo básica (entradas y salidas + comunicación) sino en la programación del mismo junto a los diferentes lenguajes y técnicas utilizados.
If you want to give an extra boost to the blog with a donation you can send it to the addresses:
Si quieres darle un impulso extra al blog con una donación puedes enviarla a las direcciones:
BEP-20: 0x5Aee5e3e3ED3203e77eF0d8Bb3E3a420E5229Ce0
ERC-20: 0x5Aee5e3e3ED3203e77eF0d8Bb3E3a420E5229Ce0
Arbitrum One: 0x5Aee5e3e3ED3203e77eF0d8Bb3E3a420E5229Ce0
Polygon: 0x5Aee5e3e3ED3203e77eF0d8Bb3E3a420E5229Ce0
Avalanche: 0x5Aee5e3e3ED3203e77eF0d8Bb3E3a420E5229Ce0