JAM1003_24012-2011-03-181.rar

  • WGSXSZ
    了解作者
  • C/C++
    开发工具
  • 261KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 22
    下载次数
  • 2012-07-16 20:58
    上传日期
本软件主要实现光伏逆变,并且有很好的对电流和MPPT跟踪功能。
JAM1003_24012-2011-03-181.rar
  • JAM1003_24012-2011-03-18
  • JM1003_IC.lk
    9B
  • JM1003_SI.PRI
    12.4KB
  • Main.o
    107.3KB
  • JM1003_SI.PO
    776B
  • Main.h.bak
    1.8KB
  • JM1003_SI.IAD
    648B
  • JM1003_IC.mp
    7.3KB
  • Main.c
    60.6KB
  • Main.cof
    0B
  • JM1003_IC.SRC
    59B
  • Main.lis
    407.4KB
  • JM1003_SI.IAB
    32KB
  • JM1003_IC.cof
    37.4KB
  • iom16v.h
    12.1KB
  • M16Lib.a
    14.5KB
  • Common.h
    3.9KB
  • Main._h
    6.7KB
  • JM1003_SI.WK3
    30.7KB
  • JM1003_IC.lst
    250KB
  • YZZ.SRC
    33B
  • JM1003_SI.PFI
    24B
  • JM1003_IC.mak
    921B
  • JM1003_SI.IMB
    20KB
  • Main.dp2
    260B
  • JM1003_IC.dbg
    34.1KB
  • Main._c
    61.6KB
  • jm1003_ic_cof.aws
    380B
  • Main.s
    170.4KB
  • Main.c.bak
    12.2KB
  • macros.h
    1.1KB
  • JM1003_SI.IMD
    528B
  • JM1003_SI.PS
    138.1KB
  • JM1003_IC_cof.aps
    3.3KB
  • JM1003_SI.SearchResults
    347B
  • JM1003_IC.hex
    36.1KB
  • JM1003_SI.PR
    2.3KB
  • Main.h
    13.9KB
  • JM1003_IC.prj
    891B
内容介绍
/********************************************************************************************* **********************************************************************************************/ #include <iom16v.h> #include <macros.h> #include "Common.h" #include <eeprom.h> #include "Main.h" //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- void SoftStartCurrent(void); void PidInit(void); uint OutCurrentPidControl( int Iref, int Ifb ); void SoftStart(void); //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- /********************************************************************************************* * 函数名称 :IniData * 函数功能 :初始化数据 * 入口参数 :无 * 出口参数 :无 **********************************************************************************************/ void IniData(void) { uchar i; uchar cA1,cA2,cA3; uchar cB[8]; //初始化IO ALMOVP_IN(); ALMFAN_IN(); FAILHALF_IN(); ALMAC_IN(); PWRON_IN(); TEMPOVP_IN(); CHANGEVEN_IN(); ADDR_IN(); ANTEMP_IN(); ANDI_IN(); ANDV_IN(); SHORTCTR_OUT(); SHORTCTR_L(); DGRST_OUT(); DGRST_H(); FANCTR_OUT(); FANCTR_H(); LEDGOOD_OUT(); LEDGOOD_L(); LEDALM_L(); LEDALM_OUT(); R485EN_OUT(); R485EN_L(); OUTCTR_OUT(); OUTCTR_L(); i=0; i=BIT(nSwChangeVEn)|BIT(nSwFailHalf)|BIT(nSwAlmAc)|BIT(nSwTempOvp); sTrSwitchSample.cNewValue=sTrSwitchSample.cOldValue=i; sTrSwitchSample.cAddrNew=sTrSwitchSample.cAddrOld=0; sTrSwitchSample.cSampleTime=0; for(i=0;i<nSwichSampleMax;i++) { sTrSwitchSample.cSampleCount[i]=0; } iOutV=iOutI=0; cEnvTemp=0; sTrAdcTeam.cOverTime=0; sTrAdcTeam.cSelect=0; sTrAdcTeam.cCount=0; for(i=0;i<10;i++) { sTrAdcTeam.cBuff[i]=0; } cA1=cA2=cA3=0; while(1) { cA1=ADDR0_R(); cA2=ADDR0_R(); cA3=ADDR0_R(); if((cA1!=cA2)||(cA2!=cA3)) continue; cDevAddress=cA1; break; } // iOutISet = 5000; // iOutVSet = 4800; iOutISet = 500; // output current 5A 2010-10-25 iOutVSet = 20000; // output voltage 200V //cPowerStatus=nPWR_OFF; cPowerStatus=nPWR_ON; // set power on flag when power on. cPowerAlarmFlag=0; iPwrDelay=1500; iFanOffDelay=0xba98; iOutDelay=0; cOutOvpOffDelay=0; iFanAlarmOffDealy=0; iOipAlmOnDelay=0; iOipAlmOffDelay=0; cReceiveFlag=0; cRecPoint=0; cSendPoint=0; cSendLen=0; cRecLen=0; cReceiveOverTime=0; cSendOverTime=0; cLicenceFlag=0; cSendRepeat=0; cChangeVI=0; iRemoteOnDelay1=0; iRemoteOnDelay2=0; cRemoteOnDelay3=0; cBroadCastCmd=0; cFanStatus=nFanOff; iIopAlmFirstDelay=4500; iFanAlmCheckDelay=0; iIopAlmCheckDelay=0; iIopAlmCheckDelay2=0; iAdjustA=100; // voltage coeff1 2010-10-25 iAdjustB=0; // voltage coeff2 iAdjustC=100; // current coeff1 iAdjustD=0; // current coeff2 EEPROMReadBytes(0x10,cB,8); if(!(((cB[0]==0xff)&&(cB[1]==0xff))||((cB[2]==0xff)&&(cB[3]==0xff)))) { iAdjustA=cB[0]*256+cB[1]; iAdjustB=cB[2]*256+cB[3]; } if(!(((cB[4]==0xff)&&(cB[5]==0xff))||((cB[6]==0xff)&&(cB[7]==0xff)))) { iAdjustC=cB[4]*256+cB[5]; iAdjustD=cB[6]*256+cB[7]; } //cPcChangeParaFlag = 0;//如果上位机SU设置了参数,则下位机PU在改变设置(旋转电流电位器)之前,PU按上位机的设置值。 PidInit(); } /********************************************************************************************* * 函数名称 :ReceiveOn * 函数功能 :置接收状态 * 入口参数 :无 * 出口参数 :无 **********************************************************************************************/ void ReceiveOn() { uchar i; for(i=0;i<40;i++) R485EN_L(); } /********************************************************************************************* * 函数名称 :SendOn * 函数功能 :置发送状态 * 入口参数 :无 * 出口参数 :无 **********************************************************************************************/ void SendOn(void) { uchar i; for(i=0;i<40;i++) R485EN_H(); } /********************************************************************************************* * 函数名称 :CompareCommand * 函数功能 :判断命令、长度是否正确, * 入口参数 :无 * 出口参数 :正确返回1,不正确返回0 **********************************************************************************************/ uchar CompareCommand(void) { if(cRecBuff[3]!=0xc8) return(0); //如果单板类型不是电源盒 switch (cRecBuff[4]) { case nReplyLicence: //注册响应 if(cRecBuff[2]!=4) return(0); break; case nGetVersion: //取版本号 if(cRecBuff[2]!=4) return(0); break; case nGetAlarm: //获取告警量 if(cRecBuff[2]!=4) return(0); break; case nGetAnalog: //获取模拟量 if(cRecBuff[2]!=4) return(0); break; case nOnOff: //控制开关机 if(cRecBuff[2]!=6) return(0); break; case nGetBarCode: //获取条形码设置结果 if(cRecBuff[2]!=0x2f)return(0); break; case nGetSerialNO: //获取条形码 if(cRecBuff[2]!=4) return(0); break; case nGetOutSetRes: //获取输出电压电流设置结果 if(cRecBuff[2]!=8) return(0); break; case nGetOutPara: //获取输出电压电流设置参数 if(cRecBuff[2]!=4) return(0); break; case nGetMkType: //获取模块型号 if(cRecBuff[2]!=4) return(0); break; case nSetAdjustV: //设置校准电压系数 if(cRecBuff[2]!=8) return(0); break; case nGetAdjustV: //获取校准电压系数 if(cRecBuff[2]!=4) return(0); break; case nSetAdjustI: //设置校准电流系数 if(cRecBuff[2]!=8) return(0); break; case nGetAdjustI: //获取校准电流系数 if(cRecBuff[2]!=4) return(0); break; default: return(0); } return(1); } /********************************************************************************************* * 函数名称 :CopyToSendBuf * 函数功能 :复制数据到发送缓冲区 * 入口参数 :无 * 出口参数 :无 **********************************************************************************************/ void CopyToSendBuf(void) { uchar j,k; uchar cAddr; k = cQcmd&0x80; cQcmd &= 0x7f; cAddr = ( cSendRepeat? cDevAddress | 0x20: cDevAddress); switch (cQcmd) { case nReplyLicence: //注册请求未得到响应时 cSendBuff[0]=cAddr; cSendBuff[1]=0; cSendBuff[2]=13; cSendBuff[3]=0xC8; cSendBuff[4]=0x01; cSendBuff[5]=0xFF; cSendBuff[6]=0xFF; cSendBuff[7]=0; cSendBuff[8]=0; cSendBuff[9]=nVerMain; cSendBuff[10]=nVerSlave; cSendBuff[11]=nVerPcb; cSendBuff[12]=nVerLogic; cSendBuff[13]=nYear; cSendBuff[14]=nMonth; cSendBuff[15]=nDay; cSendBuff[16]=0; for(j=1;j<16;j++) { cSendBuff[16]+=cSendBuff[j]; } cSendLen=17; cSendPoint=0; break; //------------------------------------------------------- case nGetVersion: //版本信息入发送缓冲区 cSendBuff[0]=cAddr; cSendBuff[1]=0; cSendBuff[2]=0x2c; cSendBuff[3]=0xC8; cSendBuff[4]=cQcmd; cSendBuff[5]=cQhandleH; cSendBuff[6]=cQhandleL; cSendBuff[7]=0; cSendBuff[8]=nVerMain; cSendBuff[9]=nVerSlave; cSendBuff[10]=nVerPcb; cSendBuff[11]=nVerLogic; cSendBuff[12]=nYear; cSendBuff[13]=nMonth; cSendBuff[14]=nDay; for(j=0;j<32;j++) cSendBuff[15+j]=0xff; cSendBuff[47]=0; for(j=1;j<47;j++) { cSendBuff[47]+=cSendBuff[j]; } cSendLen=48; cSendPoint=0; break; //------------------------------------------------------- case nGetAlarm: //告警量信息入发送缓冲区 cSendBuff[0]=cAddr; cSendBuff[1]=0; cSendBuff[2]=0x11; cSendBuff[
评论
    相关推荐
    • PV_MPPT.rar
      基于matlab的光伏mppt仿真,MPPT控制器能够实时侦测太阳能板的发电电压,并追踪最高电压电流值(VI),使系统以最大功率输出对蓄电池充电。 应用于太阳能光伏系统中,协调太阳能电池板、蓄电池、负载的工作,是光伏...
    • PV MPPT仿真.rar
      分析外界环境对于光伏电池输出特性曲线的影响,以及选择了基本的光伏排布方式,型号以及MPPT控制方法:针对MPPT算法进行改进,实现三步法MPPT控制。
    • pv_mppt.rar
      MPPT Algorithm for PV system
    • MPPT PV SYS.rar
      MAXIMUM POWER POINT TRACKING PHOTOVOLTAIC SYSTEM PERTURB OBSERVS
    • MPPT.zip
      光伏电池最大功率点跟踪mppt的simulink仿真
    • mppt.zip
      基于扰动观察法的光伏最大功率跟踪MPPT控制
    • MPPT PV by cuckoo search algorithm under partial shading:MPPT PV
      实施基于 CS 的光伏 MPPT 以在部分阴影条件下跟踪 MPP。 DC/DC 和降压转换器已被用于获得额定所需的额定电压。 选择采样时间以达到最佳功率跟踪时间。
    • mppt_pv.rar
      simulink matlab project
    • PV MPPT仿真
      PV 最大功率追踪仿真,采用boost电路。 matlab 2016a版本,可以运行.
    • PV-MPPT.pdf.rar
      PV MPPT controller for pv energy systems