| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- #ifndef PWM_H
- #define PWM_H
- #ifdef __TEMPCTRL_DEF
- #define TEMPCTRLEXTERN
- #else
- #define TEMPCTRLEXTERN extern
- #endif
- #include <stdio.h>
- #include <ctype.h>
- #include <stdlib.h>
- #include <math.h>
- #include <stdarg.h>
- #include <string.h>
- #define RadiatorTemp 400
- #define LoopChannel 6
- TEMPCTRLEXTERN double dTemperature[16];
- TEMPCTRLEXTERN unsigned int dTemperatureAD[16];
- TEMPCTRLEXTERN unsigned int g_uiGetPWM[6];
- TEMPCTRLEXTERN unsigned int PumpLPwm;
- TEMPCTRLEXTERN unsigned int g_usTlimit;
- TEMPCTRLEXTERN unsigned int DA_FAM,DA_VIC,DA_ROX,DA_CY5;
- //TEMPCTRLEXTERN unsigned int g_uiOverTempCnter,g_uiOverTempCnter1,g_uiOverTempCnter2;
- TEMPCTRLEXTERN unsigned int g_uiOverTempCnter[6];
- TEMPCTRLEXTERN unsigned int mn;
- typedef enum
- {
- PID_COM_INC = 0, /*调速*/
- PID_COM_HEAT = 1, /*加热*/
- PID_COM_COOL = 2, /*制冷*/
- PID_COM_TEMPDRV8870 = 3, /*加热制冷*/
- PID_COM_THIRDPART_MOTOR ,/*第三方模块*/
- PID_COM_TEMPDRV8873 , /*加热制冷*/
- PID_PROPORTIONALVALVE , /*真空比例阀*/
- PIDTYPENUMBER
- } enPidTypeDefine;
- typedef enum
- {
- PID_IDL, /*空闲*/
- PID_OVERHEAT, /*快速拉升*/
- PID_OVERHEATLAST, /*过充维持*/
- PID_NORMAL, /*PID调节*/
- PID_ERR, /*传感器故障ERROR*/
- } enPIDStatsDef;
- typedef struct _TEMPCHN_{
- double fTargetTemperature;
- double fCurrentTemperature;
- double fBlockTargetTemp;
- double fTubeTargetTemp;
- double OverTempthreshold;
- double OverTempCoolthreshold;
- float fTargetSpeed;
- float fCurrentSpeed;
- long fHoldPWM;
- long MAXPWM;
- long lSetPWM;
- unsigned int timer0;
- float HOTtemp;
- float CODEtemp;
- unsigned char cCtrlMode;
- unsigned char cHeatOrRefrig;
- unsigned char cBlockTempAriv,cBlockFirstAriv;//
- unsigned char PeltierOvertempCnter,TimerForPeltier,cRefrigTimer;
- unsigned char cRefrigMode;
- unsigned char cTubeTempAriv;//
- unsigned char fistAriv;//
- unsigned char cOverTempCnter;//
- unsigned char FallingTempCter;
- unsigned char cTubeMode;//0: block; 1:tube ; default->tube
-
- unsigned char cPeltierRun;
- enPIDStatsDef pidst;
- unsigned int pidRumtime;
- }TEMPCHN;
- TEMPCTRLEXTERN TEMPCHN TempChn[6];
- typedef struct __TEMPPARA{
- double fHwK1;
- double fHwK2;
- double fHwB;
- float fK1;
- float fK2;
- float fB;
- float TTk1;
- float TTk2;
- float TTb;
- double fSum;
- double fErr;
- double fErrLast;
- double fDerr;
- double fVlSum;
- float fVlOutP;
- float fVlOut;
- float fVlOutR;
- float realVlOutR;
- short iKp[3];
- short iKi[3];
- short iKd[3];
- float fPowerCoef;
- float fPowerCoefdown;
- float HoldPWMa;
- float HoldPWMb;
- float HoldPWMc;
- float HoldPWMa1;
- float HoldPWMb1;
- float HoldPWMc1;
-
- }TEMPPARA;
- TEMPCTRLEXTERN TEMPPARA TempPara[7];
-
- #define MODEMRANGE 3
- #define TUBERANGE 3
- #define TUBEADD 2
- #define TUBESUB 2
- TEMPCTRLEXTERN unsigned int MCUAdcBuff[9][25],Bubble_MCUAdcBuff[15][25];
- TEMPCTRLEXTERN unsigned int Target_temp,Target_temp1,Target_temp2;
- TEMPCTRLEXTERN unsigned int Real_temp[8];
- TEMPCTRLEXTERN unsigned char Temp_count;
- TEMPCTRLEXTERN unsigned char Temp_count1;
- TEMPCTRLEXTERN double g_dTarget_temp;
- TEMPCTRLEXTERN unsigned int CAPTarget_temp[2];
- TEMPCTRLEXTERN unsigned int CAPTarget_temp1[2];
- TEMPCTRLEXTERN double CAPReal_temp[2];
- TEMPCTRLEXTERN float CAPTk[2],CAPTTk[2];
- TEMPCTRLEXTERN float CAPTb[2],CAPTTb[2];
- TEMPCTRLEXTERN float g_fFINReal_Temp;
- TEMPCTRLEXTERN unsigned int set_Target_temp;
- TEMPCTRLEXTERN void PeltierCtrler(void);
- TEMPCTRLEXTERN void CAPPeltierCtrler(void);
- TEMPCTRLEXTERN void SetPWM(unsigned char ucChannel ,long uiDuty);
- TEMPCTRLEXTERN void InitPWM(void);
- TEMPCTRLEXTERN void InitTempCtlr(void);
- TEMPCTRLEXTERN unsigned char ScheduleOperate(unsigned char chn);
- TEMPCTRLEXTERN char fBlockbuffer;
- TEMPCTRLEXTERN short delays;
- #endif
|