Cómo trabajar con las salidas PWM en el PLC industrial Raspberry
Familia de PLCs industriales Raspberry Pi
24 febrero, 2021 por
Cómo trabajar con las salidas PWM en el PLC industrial Raspberry
Boot & Work Corp. S.L., Quesada Dani Salvans

  Introducción

Los dispositivos de la familia de PLC basados en Raspberry Pi tienen un número definido de salidas digitales. Todas ellas pueden ser programadas como salidas PWM, si es necesario. Como sabemos, el PWM (Pulse Width Modulation) es un tipo de señal de tensión que se utiliza para enviar información o para modificar la cantidad de potencia enviada por cada carga. Así que, en este blog, vas a ver cómo configurar las salidas PWM. 


Requisitos

Los puntos clave que debes tener en cuenta son los siguientes: 

  • Familia de PLCs Raspberry Pi industriales

  • Acceso al PLC: shh. En la Guía del usuario del controlador PLC Raspberrym, puedes encontrar un tutorial sobre cómo acceder al dispositivo a través de Linux o Windows.


 Enlaces relaciondos 

Conceptos básicos sobre salidas digitales del PLC industrial Raspberry
Leer >>

Conceptos básicos sobre salidas analógicas del PLC industrial Raspberry
Leer >>

Cómo encontrar tu PLC industrial ideal
Leer >>

Cómo programar en Python las entradas de interrupción del PLC industrial Raspberry

Leer >>

Familia de productos RAspberry PLC
Leer >>


 Explicación y uso del Script Bach

En primer lugar, el Script Bash que tenemos que ejecutar para gestionar las salidas PWM es el llamado "set-analog-output" situado en la ruta "/home/pi/test/analog/". Hay que asegurarse de que la salida que queremos configurar como PWM no está configurada como analógica o digital por lo que, para asegurarnos, podemos ejecutar la función "stop" (para que deje de ser salida analógica o digital: 

./set-analog-output A0.5 stop

O bien  :

./set-digital-output Q0.5 stop


Para ejecutar el script, hay que llamar al script "set-analog-output" pero introduciendo como parámetros una salida digital y el ancho del pulso. La anchura del pulso es el periodo de tiempo alto del ciclo de trabajo y tiene un rango de 0 a 4095 (12 bits). Por ejemplo, si se quieres un periodo de tiempo alto del 25%, hay que poner 1024 y, si se quiere un periodo de tiempo alto del 100%, hay que poner 4095. 

./set-analog-output Q0.5 4095


Nota: Consulte la Guía del usuario para saber qué salidas son compatibles con PWM. 


Los parámetros PWM del script no tienen que ser modificados para asegurar un correcto comportamiento PWM. Aquí podemos ver el script: 

#!/bin/bash

# PWM period in nanoseconds
PERIOD="2000000"

case ${1} in
	A0.5) ADDR=40; INDEX=10 ;;
	A0.6) ADDR=40; INDEX=1 ;;
	A0.7) ADDR=40; INDEX=0 ;;
	A1.5) ADDR=40; INDEX=3 ;;
	A1.6) ADDR=40; INDEX=5 ;;
	A1.7) ADDR=40; INDEX=8 ;;
	A2.5) ADDR=41; INDEX=2 ;;
	A2.6) ADDR=41; INDEX=1 ;;
	A2.7) ADDR=41; INDEX=0 ;;
	Q0.0) ADDR=40; INDEX=15 ;;
	Q0.1) ADDR=40; INDEX=14 ;;
	Q0.2) ADDR=40; INDEX=13 ;;
	Q0.3) ADDR=40; INDEX=12 ;;
	Q0.4) ADDR=40; INDEX=11 ;;
	Q0.5) ADDR=40; INDEX=10 ;;
	Q0.6) ADDR=40; INDEX=1 ;;
	Q0.7) ADDR=40; INDEX=0 ;;
	Q1.0) ADDR=40; INDEX=2 ;;
	Q1.1) ADDR=40; INDEX=9 ;;
	Q1.2) ADDR=40; INDEX=6 ;;
	Q1.3) ADDR=40; INDEX=4 ;;
	Q1.4) ADDR=40; INDEX=7 ;;
	Q1.5) ADDR=40; INDEX=3 ;;
	Q1.6) ADDR=40; INDEX=5 ;;
	Q1.7) ADDR=40; INDEX=8 ;;
	Q2.0) ADDR=41; INDEX=6 ;;
	Q2.1) ADDR=41; INDEX=7 ;;
	Q2.2) ADDR=41; INDEX=5 ;;
	Q2.3) ADDR=41; INDEX=4 ;;
	Q2.4) ADDR=41; INDEX=3 ;;
	Q2.5) ADDR=41; INDEX=2 ;;
	Q2.6) ADDR=41; INDEX=1 ;;
	Q2.7) ADDR=41; INDEX=0 ;;
	*)
		echo "Output not defined" >&2
		exit 1
		;;
esac

VALUE="${2:-50}"

if [ -z "${PWM}" ]; then
	CHIP_BASE_DIR="/sys/bus/i2c/devices/1-00${ADDR}/pwm"
	CHIP_NAME="$(ls ${CHIP_BASE_DIR})"
	CHIP_DIR="${CHIP_BASE_DIR}/${CHIP_NAME}"
	CHIP="${CHIP_NAME#pwmchip}"

	PWM="${INDEX}"
fi

if [ "${VALUE}" = "stop" ]; then
	echo "${PWM}" > ${CHIP_DIR}/unexport
	exit 0
fi

if [ ! -d ${CHIP_DIR}/pwm${PWM} ]; then
	echo "${PWM}" > ${CHIP_DIR}/export
fi

echo "${PERIOD}" > ${CHIP_DIR}/pwm${PWM}/period

DUTY_CYCLE="$((${2} * ${PERIOD} / 4095))"
echo "${DUTY_CYCLE}" > ${CHIP_DIR}/pwm${PWM}/duty_cycle


Odoo image and text block

¿Tienes preguntas?

Contacta con nuestro equipo técnico-comercial y resuelve tus dudas sobre programación o cuestiones técnicas.

Te ayudaremos a encontrar la mejor solución para automatizar tus instalaciones.


Contáctanos Ahora >> 


Cómo trabajar con las salidas PWM en el PLC industrial Raspberry
Boot & Work Corp. S.L., Quesada Dani Salvans
24 febrero, 2021
Compartir
Archivar

¿Buscas tu controlador lógico programable ideal?

Echa un vistazo a esta comparativa de producto de varios controladores industriales basados en Arduino.

Comparamos entradas, salidas, comunicaciones y otras especificaciones con las de los equipos de otras marcas destacadas.


Comparación PLC industrial>>>

¿Quieres más información?

¡Rellena el formulario!

¡Cuéntame más!