Según altos estándares industriales

Busca en nuestro Blog. Encontrarás múltiples aplicaciones, soluciones, ejemplos de código. Navega utilizando la nube de etiquetas o busca utilizando criterios específicos

Cómo trabajar con las salidas PWM en el PLC industrial Raspberry

Familia de PLCs industriales Raspberry Pi

  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 >> 


¿Estás buscando tu PLC ideal?

Mira esta comparativa con otros controladores industriales

Comparamos entradas, salidas, comunicaciones y otras características con las de algunas de las marcas relevantes


Comparación de controladores PLC industriales >>

¿Quieres más información? 

¡Solo llena el formulario! 

¡Quiero saber más!  Por favor, llene el formulario correctamente.