36kVA补偿装置综合控制箱软件详细设计说明书编写:魏晓刚校核:批准:日期:目录1.概述2.控制功能需求3.硬件资源介绍4.硬件资源分配5.软件流程框图1概述1.1编写目的本详细设计说明书的编写目的是为了说明程序系统的各个层次中的每个软件对象(包括每个模块和程序)的设计考虑,每个功能模块的具体实现等。1.2项目概况项目名称:36kVA补偿装置综合控制箱软件详细设计说明书。项目背景:将三台6.6kVA单相STATCOM的主功率线路接入综合控制箱内,两组无功补偿电容器通过各自的切换电容接触器与STATCOM并联接在主功率线路上,并在主功率线路上配以熔断器、接触器、空开,用以保护和控制整个设备。综合控制箱装有一个空开,用以给整个装置上电;一个紧急停机按钮;一个启停按钮;一个复位按钮;三个指示灯(红、白、绿分别代表故障状态、通电状态、运行状态);一个液晶显示屏,用以显示电网、负载以及设备的参数与状态,并通过触摸功能实现启动/停止功能。综合控制箱配有辅助电源、开关状态检测电路以及主控芯片DSP2407,实现对三台单相STATCOM、无功补偿电容器以及液晶显示屏的控制。整个系统结构图如图1所示。单相模块BCAN通信主功率线单相模块C单相模块A电容组一电容组二综合控制箱液晶显示SCI通信主电接入图1装置系统结构图Loadsu无功电流提取suLiqi电压环PIdcUDCrefU电容容量计算电流环PIPWM产生PWM驱动投切电容控制投切信号电容电流+-CAPqiLqipik(电容组数)sIkCUCQonoff液晶显示综合控制箱模块ABC数据数据处理ci电容器组负载无功功率计算图2综合控制系统框图综合控制箱配置的液晶显示屏共有2幅显示界面,如图2所示。界面1界面2图3液晶显示界面2控制功能需求根据单相STATCOM的详细参数设计报告,其软件部分控制功能需求如下:1、实现启动按钮、复位按钮检测。2、实现控制箱与下位机(三台单相STATCOM)进行CAN通信。接收下位机发来的三相电网电压有效值、补偿电流有效值、负载电流有效值、负载电流无功分量、负载电流有功分量、保护状态,并给下位机发送启停指令、电容器投切状态。3、实现控制箱与智能终端显示进行SCI通信。将从下位机得来的数据通过一定运算处理后送至智能终端进行显示,包括:各相电网电压有效值、补偿电流有效值、负载有功功率、负载无功功率、负载视在功率、补偿后电网功率因数、以及各类保护状态(电网过欠压、电流过流、直流过压、硬件保护、通信故障)。4、接收智能终端发来的开机指令。5、通过对下位机发来的数据进行处理,实现对补偿电容的准确投切。软件控制系统图如图4所示启/停状态检测函数持续10ms为有效状态复位状态检测函数持续10ms为有效状态交替发送远程帧CAN接收数据SCI接收触摸信号将从下位机接收的数据转换为可读数据计算负载无功容量计算当前电网电压下电容组容量(60s计算一次)向下位机发送启停指令、电容投切状态三个单相模块智能终端su机械开关信号紧急停机复位启/停故障运行上电Pro投切电容子程序启/停状态标志CAN握手成功Pro保护YNY界面切换数据、状态显示(1s显示一次)延时1S12345678910111213131414151610171819202122623242526T1中断SCI函数CAN函数720图4软件控制系统图3硬件资源介绍DSP2407控制平台主要用到以下几个模块:SCIDigitalI/O开关输出放大SCI驱动CAN驱动2×2×5×2×2×2×2×开关信号调理(序号1~2)(序号8~9)(序号3~7)(序号10~11)DSP2407CAN图5DSP2407硬件资源各硬件模块在此功能如下:1、开关信号调理模块:该模块主要负责检测启动按钮、复位按钮的逻辑电平,并对电平进行处理,转换成DSP能处理的3.3V电平。2、开关输出放大模块:对DSP输出的开关信号进行放大、以便驱动信号灯和继电器工作。3、CAN驱动:提供对CAN总线的差动发送和接收功能。4、SCI驱动:提供对SCI总线的差动发送和接收功能。4硬件资源分配该控制箱所用芯片为TI公司的TMS320LF2407芯片,其硬件资源分配如下表1所示。表1硬件资源分配序号板上资源信号名称信号含义引脚功能1IOPA6GPB10启停按钮输入IO2IOPA7GPB6复位按钮输入IO3IOPB0GPB9工作指示灯输出IO4IOPB1GPB5故障指示灯输出IO5IOPB2GPB8继电器信号(控制交流接触器)输出IO6IOPE1Kcap1继电器信号(控制电容组一接触器)输出IO7IOPE2Kcap2继电器信号(控制电容组二接触器)输出IO8SCIRXDSCIRXDSCI接收脚基本功能9SCITXDSCITXDSCI发出脚基本功能10CANTXCANTXCAN发出脚基本功能11CANRXCANRXCAN接收脚基本功能5软件流程框图该程序主要包括以下几个主要功能模块:系统初始化模块、I/O初始化、定时器T1初始化、CAN初始化、液晶界面坐标初始化、SCI初始化、SCI函数、CAN函数、T1下溢中断。5.1系统初始化模块系统初始化模块主要是对系统需要用到的各功能模块使能并进行初始化配置,包括I/O口初始化和定时器T1初始化。5.1.1I/O初始化根据表1通过寄存器MCRx将DSP各复用引脚设置成相应的基本功能或者一般I/O功能,对于一般I/O功能,我们可通过寄存器PxDATDIR,设置其输入输出方向。5.1.2定时器T1初始化定义定时器T1连续增减计数模式,128分频内部CPU时钟,下溢中断,周期为20ms。初始化后不使能定时器工作。系统初始化禁止所有可屏蔽中断通过SCSR1使能ADC、CAN、SCIEVA、EVB模块变量清零通过控制寄存器MCRA/B/C进行I/O引脚功能配置定时器T1设置一般I/O引脚数据方向设置返回禁止看门狗图6系统初始化5.2CAN初始化使能邮箱MBOX0、MBOX2、MBOX3、MBOX4、MBOX5,其中邮箱MBOX3配置为接收邮箱,与邮箱MBOX0一起接收下位机发来的数据。MBOX2配置为发送邮箱,与MBOX4一起以一定的频率向下位机发送远程帧(下位机在接收到此远程帧后,相应地配置为自动应答远程帧的邮箱将自动将数据发给上位机,完成数据传输)。邮箱MBOX5向下位机发送开关机指令以及电容投切状态。波特率为125Kb/s,局部接收屏蔽高位寄存器。邮箱的标识符以及功能具体设置如下表2。表2邮箱配置功能标识符数据MBOX0接收(接收中断)MSGID0H=xC222MSGID0L=x5555MBX0A=usrmsMBX0B=icrms(极性)MBX0C=握手信号MBX0D=保护信号MBOX2发送远程帧MSGID0H=xC222MSGID0L=x6666MBOX3接收(接收中断)MSGID0H=xC222MSGID0H=x6666MBX3A=IicrmsMBX3B=ilprmsMBX3C=ilqrmsMBX3D=ilqhrmsMBOX4发送远程帧MSGID0H=xC222MSGID0H=x5555MBOX5发送MSGID0H=xCAAAMSGID0H=x3333MBX5A=启停指令MBX5B=电容工作状态5.3液晶界面坐标初始化要将数据显示在已做好的界面上,通过XY坐标确定其在界面上的具体位置。该坐标为字符或汉字的左上角坐标,不能超出液晶实际点阵。各相显示数据坐标如表3所示。表3坐标初始化A相B相C相XYXYXY系统侧COS003500A2003500CE003500F4负载侧Us008500A2008500CE008500F4IL00C400A200C400CE00C400F4P010500A2010500CE010500F4Q014800A2014800CE014800F4S018E00A2018E00CE018E00F4STATCOMIC01E500A201E500CE01E500F4Qc022F00A2022F00CE022F00F4故障状态过压004601580046017A00460199欠压007901580079017A00790199过流00B0015800B0017A00B00199直流过压00F4015800F4017A00F40199硬件保护014E0158014E017A014E0199通讯故障01A8015801A8017A01A80199电容状态组一02360187组二025A01875.4SCI初始化SCI串行通信主要用于DSP与终端显示进行数据通信,设置其工作模式为地址位多处理器模式,字符长度为8位,波特率为115200bps。5.5SCI函数(FUNC_SCI)SCI函数主要完成两个功能:数据计算与转换、界面显示,每隔1s钟进行一次函数调用(50个T1下溢中断)。数据计算与转换:对下位机发来的数据进行处理,将其转变为可读的实际值,以便于在液晶显示界面上进行显示,包括电网电压有效值、补偿后功率因数、负载电流有效值、负载有功含量、负载无功含量、负载视在功率、补偿电流有效值以及极性。界面显示:通过SCI串口通信,按照智能终端的通信协议完成界面切换与相应界面的数据、状态显示。SCI函数流程图如图所示。SCI函数数据处理SAMPLE_REAL()FLAGS_SCITX==1界面一pic_num==0标志位置1FLAGS_NUM1=1按规定协议与显示屏通信显示界面一界面二pic_num==1标志位清0FLAGS_NUM1=0FLAGS_NUM1==0按规定协议与显示屏通信显示界面二显示数据显示保护状态清标志位与计数器FLAGS_SCITX=0COUNT_SCITX返回NNNNYYYY图7SCI函数流程图5.6CAN函数(FUNC_CAN)在CAN函数中向下位机发送启停信号、电容器投切状态以及握手信号,并判断握手是否成功。未成功则表示发生通信故障,置相应状态。CAN接收中断下位机发生保护读取邮箱MBXOD数据置相应标志位PRO_INF=1CAN_TX=1WORK_STATUS=0送出保护信号驱动保护指示灯亮计数标志置1STAR_COUNT=1计数器清零TX_COUNT=0A、B、C握手信号清零X_HAND=0判断保护具体相读取邮箱数据返回NY图8CAN函数5.7T1下溢中断在T1中断(20ms)中完成以下几个主要功能:当做时间片、电容组投切控制、两个开关按钮(复位和启停按钮)状态检测以及向下位机发远程帧。其流程图如图所示。T1下溢中断启动延时电容容量计算延时计数(60s)SCI发送延时计数(1s)握手延时CAN发送延时电容投切滞环计时投切电容选择K1开关状态检测K2开关状态检测发送远程帧返回图9T1下溢中断5.8主函数综合控制箱主函数程序流程图如图9所示。开始系统初始化CAN初始化坐标初始化使能中断延时3S(液晶屏上电延时3S给信号)SCI初始化FUNC_SCI()FUNC_CAN()LOOP图10主程序流程图