Introducción
Existen múltiples lenguajes de programación así como herramientas de programación mediante las cuales se puede programar un PLC industrial Raspberry.
En este post, mostramos un tutorial sobre cómo programar el PLC industrial Raspberry Pi con lenguajes y/o herramientas como Python, Bash script, node.js o Node-RED.
Últimas publicaciones
Lenguajes de programación
Aunque hay muchos lenguajes de programación útiles para la automatización de Raspberry Pi, no a todo el mundo le gustará programar con todos ellos. Entre ellos, hay una diferencia en términos de sintaxis, también la velocidad cuyo sistema operativo ejecutará los comandos, algunos de ellos son de bajo nivel y se puede ir a modificar el hardware, etc.
A continuación te presentamos una lista de los 3 lenguajes de programación más útiles para jugar con sus controladores lógicos programables:
1- Python
Python es un lenguaje de programación interpretado, dinámico y multiplataforma cuya filosofía hace hincapié en la legibilidad de su código.
Si sigues el siguiente tutorial, encontrarás cómo utilizar el Librería Python para Raspberry PLC >> que puedes encontrar en nuestro github >>.
Basado en esa Librería, puedes ver un ejemplo de un parpadeo básico:
from rpiplc_lib import rpiplc
def digitalreadwrite():
rpiplc.pin_mode("Q0.0", 1)
rpiplc.digital_write("Q0.0", rpiplc.HIGH)
rpiplc.delay(1000)
rpiplc.digital_write("Q0.0", rpiplc.LOW)
rpiplc.delay(1000)
def main():
rpiplc.init("RPIPLC_21")
while True:
digitalreadwrite()
if __name__ == "__main__":
main()
2- Javascript, Node.JS y Node-RED
JavaScript (comúnmente abreviado JS) es un lenguaje de programación interpretado, dialecto del estándar ECMAScript. Se define como orientado a objetos, basado en prototipos, imperativo, poco tipado y dinámico.
Se utiliza principalmente en el lado del cliente, implementado como parte de un navegador web que permite mejoras en la interfaz de usuario y páginas web dinámicas, entre otras.
Node.js® es un tiempo de ejecución de JavaScript construido sobre el motor de JavaScript V8 de Chrome. Como un JavaScripBased asíncrono impulsado por eventos en esa Librería, se puede ver un ejemplo de un tiempo de ejecución básico blink:t, Node.js está diseñado para construir aplicaciones de red escalables.
Y Node-RED es una herramienta de programación, basada en Node.JS, para conectar dispositivos de hardware, API y servicios en línea de formas nuevas e interesantes. Ofrece un editor basado en el navegador que facilita el cableado de flujos utilizando la amplia gama de nodos de la paleta que pueden desplegarse en su tiempo de ejecución con un solo clic.
Desde los siguientes enlaces, aprenderás a controlar las entradas y salidas del PLC Raspberry a través de Node-RED:
1- Tutorial de Node-RED: Cómo leer las entradas digitales del PLC Raspberry >>
2- Tutorial de Node-RED: Cómo leer las entradas analógicas del PLC Raspberry >>
3- Tutorial de Node-RED: Cómo configurar las salidas digitales del PLC Raspberry >>
4- Tutorial de Node-RED: Cómo configurar las salidas analógicas del PLC Raspberry >>
Encontrarás más ejemplos sobre cómo programar con Node-RED en el Raspberry Blog >>
3- C o C++
El lenguaje de programación C es uno de los más utilizados en el mundo. Los programas se escriben en C:
puede funcionar en una amplia gama de plataformas.
su código se ejecuta casi tan rápido como el código ensamblador.
puede acceder a potentes funciones de máquina de bajo nivel
puede leerse con una sintaxis más fácil que el código ensamblador.
C++ es un lenguaje multiplataforma que permite crear aplicaciones de alto rendimiento. C++ fue desarrollado por Bjarne Stroustrup, como una extensión del lenguaje C. C++ ofrece un alto nivel de control sobre los recursos del sistema y la memoria.
Puedes descargar el rpiplc-lib de nuestro Github >> ¡escrito en C y C++, para controlar las salidas de tu PLC Raspberry desde un lenguaje de programación de bajo nivel!
Basado en esa Librería, puedes ver un ejemplo de un parpadeo básico:
void setup() { printf("Num digital outputs: %d\n", numDigitalOutputs); for (int i = 0; i < numDigitalOutputs; ++i) { pinMode(digitalOutputs[i], OUTPUT); } }
void loop() { value = value == 0 ? 1 : 0; printf("Set value %d\n", value); for (int i = 0; i < numDigitalOutputs; ++i) { digitalWrite(digitalOutputs[i], value); }
delay(1000); }