Introducción
En este post, vamos a explicar cómo hacer lo básico para trabajar con las entradas analógicas de los controladores lógicos programables Industrial Shields Raspberry Pi. Al leerlo, entenderás cómo conectar, configurar y trabajar con las entradas de tu PLC industrial Raspberry Pi.
Lecturas previas
Te recomendamos que leas los siguientes posts para entender la programación de este blog. Hemos utilizado las siguientes entradas ara este ejemplo:
Requisitos
Para trabajar con salidas analógicas, necesitará cualquiera de nuestros controladores industriales para la automatización industrial:
Tipos de entrada
En todos los PLCs de Industrial Shields, las entradas analógicas pueden trabajar a:
Entrada de 0 Vdc - 10 Vdc
Cada una de ellas tiene un dibujo particular en la carcasa del PLC:
0 - 10 Vdc Entrada analógica
Software
Cómo trabajar con scripts Bash
Zona Analógica/Digital
> cd /home/pi/test/analog
Zona relé
> cd /home/pi/test/relay
El script get-digital-input mostrará el valor del pin de entrada seleccionado. Solo se proporcionará el pin con el que vamos a trabajar. El valor de retorno estará en el rango de 0 a 2047 (10 Vdc). Para llamar a la función, debes hacer lo siguiente:
> ./get-analog-input <input>
Ejemplo de I0.12 devolviendo el valor máximo (2047) debido a recibir un voltaje de 10Vdc en el pin de entrada:
> ./get-analog-input I0.12
2047
Cómo trabajar con Python
Los comandos bash son la base para trabajar fácilmente con el PLC industrial Raspberry. Para trabajar con archivos python, si quieres interactuar con las IOs del PLC, tendrás que llamar a estos scripts.
Para editar los archivos se trabajará con el editor Nano incluido por defecto y con Python3.
nano analog_inputs.py
Python le permite ejecutar un comando de shell que se almacena en una cadena utilizando la Librería de subprocesos. Para poder trabajar con ella, tendrás que importarla al principio del archivo.
import subprocess
Python te permite ejecutar un comando de shell que se almacena en una cadena utilizando la biblioteca de subprocesos. Para poder trabajar con ella, tendrás que importarla al principio del archivo.
import subprocess import time def str2dec(string): return (string[0:-1]) def adc(value): return (10*int(str2dec(value)))/4096 if __name__ == "__main__": print("Start") while True: try: x = subprocess.run(["./get-analog-input","I0.12"], stdout=subprocess.PIPE, text=True): print(adc(x.stdout)) time.sleep(1) except KeyboardInterrupt: print("\nExit") break
Para ejecutar el programa Python, lo llamarás como sigue:
> python3 analog_inputs.py
Para salir del programa, basta con pulsar ^C.