add VARH to PECO

This commit is contained in:
pique_n 2021-12-21 16:51:13 +01:00
parent 3464b100f3
commit ff5a05d32b
3 changed files with 45 additions and 25 deletions

View File

@ -70,28 +70,31 @@ LOCAL osMutexId_t m_pstMutexID = NULL;
// Description: Definition of local constants (visible by this module only). // Description: Definition of local constants (visible by this module only).
//================================================================================================= //=================================================================================================
/*
Modes:
- Const_Temp -> Default
- Const_Voltage
*/
LOCAL CONST VARH_StVarInfo m_astVarInfo[VARH_eNumberOfVariables] = LOCAL CONST VARH_StVarInfo m_astVarInfo[VARH_eNumberOfVariables] =
{ {
{ VARH_FLAGINFO_NONE, (VARH_UVariable)0, (VARH_UVariable)0, (VARH_UVariable)1} // VARH_eMode { VARH_FLAGINFO_NONE, (VARH_UVariable)1, (VARH_UVariable)0, (VARH_UVariable)1}, // VARH_eMode
{ VARH_FLAGINFO_READONLY | VARH_FLAGINFO_FLOAT, (VARH_UVariable)0.0f, (VARH_UVariable)-60.0f, (VARH_UVariable)100.0f }, // VARH_eTemp_H, { VARH_FLAGINFO_FLOAT, (VARH_UVariable)0.0f, (VARH_UVariable)-2.0f, (VARH_UVariable)12.0f}, // VARH_eControlVoltage
{ VARH_FLAGINFO_READONLY | VARH_FLAGINFO_FLOAT, (VARH_UVariable)0.0f, (VARH_UVariable)-60.0f, (VARH_UVariable)100.0f }, // VARH_eTemp_C,
{ VARH_FLAGINFO_READONLY | VARH_FLAGINFO_FLOAT, (VARH_UVariable)0.0f, (VARH_UVariable)-50.0f, (VARH_UVariable)70.0f }, // VARH_eTemp_Diff,
{ VARH_FLAGINFO_READONLY | VARH_FLAGINFO_FLOAT, (VARH_UVariable)0.0f, (VARH_UVariable)-5.0f, (VARH_UVariable)14.0f }, // VARH_ePeltier_U, { VARH_FLAGINFO_FLASH | VARH_FLAGINFO_FLOAT, (VARH_UVariable)0.0f, (VARH_UVariable)0.0f, (VARH_UVariable)100.0f }, // VARH_ePID_kp
{ VARH_FLAGINFO_READONLY | VARH_FLAGINFO_FLOAT, (VARH_UVariable)0.0f, (VARH_UVariable)-10.0f, (VARH_UVariable)10.0f }, // VARH_ePeltier_I, { VARH_FLAGINFO_FLASH | VARH_FLAGINFO_FLOAT, (VARH_UVariable)0.0f, (VARH_UVariable)0.0f, (VARH_UVariable)100.0f }, // VARH_ePID_ki
{ VARH_FLAGINFO_READONLY | VARH_FLAGINFO_FLOAT, (VARH_UVariable)0.0f, (VARH_UVariable)0.0f, (VARH_UVariable)5.0f }, // VARH_ePeltier_R, { VARH_FLAGINFO_FLASH | VARH_FLAGINFO_FLOAT, (VARH_UVariable)0.0f, (VARH_UVariable)0.0f, (VARH_UVariable)100.0f }, // VARH_ePID_kd
{ VARH_FLAGINFO_READONLY | VARH_FLAGINFO_FLOAT, (VARH_UVariable)0.0f, (VARH_UVariable)-50.0f, (VARH_UVariable)150.0f }, // VARH_ePeltier_P, { VARH_FLAGINFO_FLOAT, (VARH_UVariable)23.0f, (VARH_UVariable)-40.0f, (VARH_UVariable)50.0f }, // VARH_ePID_Temp
{ VARH_FLAGINFO_FLASH | VARH_FLAGINFO_FLOAT, (VARH_UVariable)10.0f, (VARH_UVariable)0.0f, (VARH_UVariable)12.0f }, // VARH_ePID_Max
{ VARH_FLAGINFO_FLASH | VARH_FLAGINFO_FLOAT, (VARH_UVariable)-2.0f, (VARH_UVariable)-2.0f, (VARH_UVariable)0.0f }, // VARH_ePID_Min
{ VARH_FLAGINFO_READONLY | VARH_FLAGINFO_FLOAT, (VARH_UVariable)0.0f, (VARH_UVariable)20.0f, (VARH_UVariable)30.0f }, // VARH_eSupply_U, { VARH_FLAGINFO_READONLY | VARH_FLAGINFO_FLOAT, (VARH_UVariable)0.0f, (VARH_UVariable)-60.0f, (VARH_UVariable)100.0f }, // VARH_eTemp_H
{ VARH_FLAGINFO_READONLY | VARH_FLAGINFO_FLOAT, (VARH_UVariable)0.0f, (VARH_UVariable)0.0f, (VARH_UVariable)5.0f }, // VARH_eSupply_I, { VARH_FLAGINFO_READONLY | VARH_FLAGINFO_FLOAT, (VARH_UVariable)0.0f, (VARH_UVariable)-60.0f, (VARH_UVariable)100.0f }, // VARH_eTemp_C
{ VARH_FLAGINFO_READONLY | VARH_FLAGINFO_FLOAT, (VARH_UVariable)0.0f, (VARH_UVariable)0.0f, (VARH_UVariable)150.0f }, // VARH_eSupply_P, { VARH_FLAGINFO_READONLY | VARH_FLAGINFO_FLOAT, (VARH_UVariable)0.0f, (VARH_UVariable)-50.0f, (VARH_UVariable)70.0f }, // VARH_eTemp_Diff
{ VARH_FLAGINFO_READONLY | VARH_FLAGINFO_FLOAT, (VARH_UVariable)0.0f, (VARH_UVariable)-5.0f, (VARH_UVariable)14.0f }, // VARH_ePeltier_U
{ VARH_FLAGINFO_READONLY | VARH_FLAGINFO_FLOAT, (VARH_UVariable)0.0f, (VARH_UVariable)-10.0f, (VARH_UVariable)10.0f }, // VARH_ePeltier_I
{ VARH_FLAGINFO_READONLY | VARH_FLAGINFO_FLOAT, (VARH_UVariable)0.0f, (VARH_UVariable)0.0f, (VARH_UVariable)5.0f }, // VARH_ePeltier_R
{ VARH_FLAGINFO_READONLY | VARH_FLAGINFO_FLOAT, (VARH_UVariable)0.0f, (VARH_UVariable)-50.0f, (VARH_UVariable)150.0f }, // VARH_ePeltier_P
{ VARH_FLAGINFO_READONLY | VARH_FLAGINFO_FLOAT, (VARH_UVariable)0.0f, (VARH_UVariable)20.0f, (VARH_UVariable)30.0f }, // VARH_eSupply_U
{ VARH_FLAGINFO_READONLY | VARH_FLAGINFO_FLOAT, (VARH_UVariable)0.0f, (VARH_UVariable)0.0f, (VARH_UVariable)5.0f }, // VARH_eSupply_I
{ VARH_FLAGINFO_READONLY | VARH_FLAGINFO_FLOAT, (VARH_UVariable)0.0f, (VARH_UVariable)0.0f, (VARH_UVariable)150.0f }, // VARH_eSupply_P
}; };
LOCAL CONST osMutexAttr_t m_stMutexAttr = LOCAL CONST osMutexAttr_t m_stMutexAttr =

View File

@ -67,6 +67,15 @@ typedef enum
{ {
VARH_eMode, VARH_eMode,
VARH_eControlVoltage,
VARH_ePID_kp,
VARH_ePID_ki,
VARH_ePID_ki,
VARH_ePID_Temp,
VARH_ePID_Max,
VARH_ePID_Min,
VARH_eTemp_H, VARH_eTemp_H,
VARH_eTemp_C, VARH_eTemp_C,
VARH_eTemp_Diff, VARH_eTemp_Diff,

View File

@ -33,9 +33,12 @@
#include "../PDEF_ProjectDefinitions.h" #include "../PDEF_ProjectDefinitions.h"
#include "PECO_PeltierController.h" #include "PECO_PeltierController.h"
//Application
#include "../Application/VARH_VariableHandler.h"
// Driver // Driver
#include "../Drivers/ANPO_AnalogPortsOut.h" #include "ANPO_AnalogPortsOut.h"
#include "../Drivers/DIPO_DigitalPorts.h" #include "DIPO_DigitalPorts.h"
// Toolbox // Toolbox
#include "../Toolbox/UTIL_Utility.h" #include "../Toolbox/UTIL_Utility.h"
@ -235,8 +238,13 @@ VOID PECO_vTask( PVOID arg )
if( u32Flags & EVENT_TIMER_UPDATE ) if( u32Flags & EVENT_TIMER_UPDATE )
{ {
if (VARH_uGetVariableData(VARH_eMode) == PECO_eConstTemp)
{
// PID Regelung
} else if (VARH_uGetVariableData(VARH_eMode) == PECO_eConstVoltage)
{
boSetPeltierVoltage(VARH_uGetVariableData(VARH_eControlVoltage))
}
} }
@ -251,13 +259,13 @@ VOID PECO_vTask( PVOID arg )
// Parameters: S8 Voltage (12V - -3V) // Parameters: S8 Voltage (12V - -3V)
// Returns: Boolean TRUE if successful // Returns: Boolean TRUE if successful
//------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------
BOOL boSetPeltierVoltage( S16 Voltage ){ BOOL boSetPeltierVoltage( FLOAT Voltage ){
BOOL boOK = TRUE; BOOL boOK = TRUE;
if( Voltage > 14000 ) Voltage = 12000; if( Voltage > 12 ) Voltage = 12;
if( Voltage < -8000 ) Voltage = -3000; if( Voltage < -3 ) Voltage = -3;
ANPO_boSetVoltage( ((((FLOAT)Voltage)/1000) + 20.088) / 34.103 ); ANPO_boSetVoltage( (((FLOAT)Voltage) + 20.088) / 34.103 );
return( boOK ); return( boOK );
} }