PyADS: Comunicación Industrial con Python y ADS

PyADS: Comunicación Industrial con Python y ADS

PyADS es una librería Python que permite la comunicación con dispositivos industriales a través del protocolo ADS (Automation Device Specification). ADS es un protocolo estándar que se utiliza en una amplia gama de dispositivos industriales, como PLCs, HMIs y sensores.

PyADS proporciona una interfaz sencilla para acceder a los datos y funciones de los dispositivos ADS. La librería es compatible con una amplia gama de dispositivos, incluyendo los siguientes:

  • PLCs de Siemens: S7-300, S7-400, S7-1200, S7-1500
  • PLCs de Allen-Bradley: CompactLogix, ControlLogix, SLC 500
  • PLCs de Schneider Electric: Modicon M340, Modicon M580
  • PLCs de Omron: CJ1M, CJ2M, CJ2N
  • HMIs de Omron: NS1000, NS1200
  • Sensores de Phoenix Contact: I/O-Link, PROFIBUS DP

Instalación

PyADS se puede instalar desde el repositorio de PyPI con el siguiente comando:

pip install pyads

Conexión a un dispositivo ADS

Para conectar a un dispositivo ADS, se utiliza la función connect(). Esta función requiere la dirección IP o el nombre DNS del dispositivo, el puerto ADS y el nombre de usuario y contraseña, si es necesario.

Python
from pyads import AdsClient

client = AdsClient()
client.connect("192.168.1.100", 9400, "admin", "admin")

Lectura de datos

Para leer datos de un dispositivo ADS, se utiliza la función read(). Esta función requiere el ID del objeto ADS y el tipo de dato.

Python
value = client.read(12345, AdsTypes.INT)
print(value)

Escritura de datos

Para escribir datos en un dispositivo ADS, se utiliza la función write(). Esta función requiere el ID del objeto ADS, el tipo de dato y el valor.

Python
client.write(12345, AdsTypes.INT, 100)

Funciones adicionales

PyADS proporciona una serie de funciones adicionales para interactuar con dispositivos ADS. Estas funciones incluyen:

  • list_objects(): Lista todos los objetos ADS disponibles en un dispositivo.
  • get_object_info(): Obtiene información sobre un objeto ADS.
  • subscribe(): Suscribe a un evento ADS.
  • unsubscribe(): Cancela la suscripción a un evento ADS.

Ejemplo de código

El siguiente ejemplo de código conecta a un PLC Siemens S7-1200 y lee el valor de un bit de entrada:

Python
from pyads import AdsClient

client = AdsClient()
client.connect("192.168.1.100", 9400, "admin", "admin")

# Lista todos los objetos ADS disponibles
objects = client.list_objects()

# Busca el objeto de la entrada digital DI0
for object in objects:
    if object.name == "DI0":
        break

# Lee el valor del bit de entrada
value = client.read(object.id, AdsTypes.BOOL)

print(value)

Más información

Para obtener más información sobre PyADS, consulte la documentación: https://pyads.readthedocs.io/en/latest/.

Conclusión

PyADS es una librería Python potente y flexible que permite la comunicación con dispositivos industriales a través del protocolo ADS. La librería es fácil de usar y proporciona una amplia gama de funciones para interactuar con dispositivos ADS.