Buenas tardes Ariel,
En el archivo adjunto
TemperaturaControl_v01.zip te paso el proyecto en Pawn para
StxLadder que
implementa un control de temperatura básico para tu horno.
Según entendí, la termocupla genera 0.84V por grado celsius. Para el material refrigerante, serian aproximadamente 0.02V por cada
grado celsius que se quiere bajar en el horno.
Dicho esto, el funcionamiento del programa es el siguiente. Se establece un SET_POINT=100.0 con la temperatura final
deseada del horno. Un ciclo de HISTERESIS= +/-1.5 celsius, que es la tolerancia donde no se agrega mas material refrigerante
si la temperatura entra en esa zona.
El programa utiliza un temporizador timer1 que se llama cada 1000 mS, y muestrea la temperatura. Si esta por encima del
SET_POINT, agrega material refrigerante (la cantidad depende de cuanto es la diferencia de temperatura final con la actual,
si es muy grande, por ejemplo mas de 50 grados, agrega mas cantidad, si es menor, agrega menos).
La velocidad del timer te da la respuesta del sistema, a menor valor mas rápido responde.
Todo es configurable en el programa que te paso, fíjate en las constantes #define, de allí podes configurar SET_POINT,
relaciones de temperatura de la termocupla y del material refrigerante, como leer los datos, velocidad de muestreo,
etc.
Para estructurar mejor todo, dividí el código en varios archivos, por ejemplo:
- PlcMain.p: Punto de entrada principal.
- Control.p: se realiza el control de temperatura.
- Temperature.p: están las rutinas relacionadas a la temperatura del horno.
- Cooler.p: Rutinas para agregar material refrigerante.
Nota como se emplean funciones para agrupar rutinas en común y hacer el programa mas robusto a cambios.
También, en el display LCD de la placa se muestra: Temperatura actual, diferencia de temperatura respecto al set-point,
y temperatura o cantidad de material se esta poniendo como refrigerante.
Para la cantidad de material refrigerante, utilizo como unidad grados celsius, ya que según explicas en tu mensaje anterior, utilizas
0.02V por cada grado que deseas bajar. Entonces las rutinas especifican cuantos grados hay que bajar y
automáticamente se convierte a un valor de tensión.
Para probar el programa te recomiendo:
- Tester para medir tensión en salida analógica VOUT1, que indica cantidad de material refrigerante.
- Fuente variable, de rango 0-3.3 para simular temperatura en entrada VIN1.
- Colocar jumper en J7.
- Colocar jumper en J5.
- Display LCD de la placa conectado.
- Tener ultima version de firmware de placa STX8081 y de software StxLadder.
Entonces, comenza por colocar una tensión de 2.5V en la entrada
VIN1, eso serian 300 grados y observa
como sube la tensión en la salida analógica para agregar material refrigerante.
Anda bajando progresivamente la tensión hasta que en el display de la placa te indique 100 grados
y la cantidad de material ira disminuyendo hasta 0.
Prioritariamente lee el código programa e intenta comprender todo, así podes realizar los
ajustes necesarios y mejorarlo.
Con esto tenes una base para empezar el control de temperatura.
Esperemos que te sirva y cualquier duda avísanos.
Estamos a disposición.