软件设计.pdf
重庆大学硕士学位论文 6 软件设计 43 6 软件设计 6.1 主程序流程 主程序的主要功能为显示,包括读DS1302、写液晶屏、按键设置等。其流程 如图6.1 主程序入口 单片机自检 液晶初始化 时钟芯片初始化 上电复位 Y 欢迎界面10S N 通道0 A/D 开T0 T1 刷新 跳闸 显示电压、电流 时间、开关状态 显示故障原因 时间 状态 确认键 关中断 按键程序 Y N Y N Y N 读设定值到RAM 初始化 关中断 图6.1 主程序流程图 Figure 6.1 The main program flowchart 6.1.1 液晶显示 受开关柜的限制, 保护器的主机和显示器相距有0.5米左右。 保护器采用12864 液晶显示器。因此选择了具有串行接口的液晶显示器以减少连接线的数量。 保护器的显示有如下几种 ①欢迎界面。显示保护器生产厂家的名称、售后服务电话、欢迎使用等内容。 ②工作界面。显示当前电压、电流、时间、开关柜分合闸状态等。 ③跳闸界面。显示跳闸时间、跳闸原因、开关柜状态。当跳闸时开关柜未脱 开则显示拒分字样。 ④按键界面。按键界面是最复杂的界面显示。共有多个不同的界面显示,在 重庆大学硕士学位论文 6 软件设计 44 按键程序种有详述。 6.1.2 按键程序 井下操作要求越简单越直观越好,防爆要求使得开关柜上的按钮加工困难, 因此生产厂家要求按键越少越好。保护器将按键减少到两个,直接安装到柜门上, 使得不开柜门就能进行各项参数的设定和常用试验的进行,极大地方便了井下操 作。 保护器的按键程序流程如图6.2所示 入口 查询 参数查询跳闸次数故障查询故障次数清楚 显示故障11项3屏显示100项 显示次数为零50屏显示 参数 11项参数 设定 试验 试验 故障处理 退出 时间 7项时间 参数设定 模拟 出口 按键选择界面 图6.2 按键流程图 Figure 6.2 Click flowchart 需要说明的是 ①完成按键功能的两个键是确认键和移位键 ②按确认键程序向下运行,按移位键水平选择 ③程序中有60s不按键程序自动退出功能,此处未显示 ④参数设定共11项1额定电流 2过载值 3 过载延时 4 零序电压 5 零 序电流 6漏电延时 7 高低压开关 8 监视开关 9 漏电开关 10平衡开关 11短路时间 ⑤故障查询可查询最近的100次跳闸,显示跳闸时间和原因,每屏显示2次故 障,按移位键进入下一屏,共50屏,结束时显示“谢谢查询”字样。未完成保护器记 忆的所有故障查询时按确认键可直接退出, 在退出时显示“查询未完成”, 询问是否 退出,经确认后退出。 ⑥试验可完成短路、监视、漏电的模拟试验,跳闸后进入跳闸状态,不会回 到工作状态。 ⑦时间设定共7项年、月、日、时、分、秒和星期。 重庆大学硕士学位论文 6 软件设计 45 6.2 A/D 中断流程 C8051F010单片机拥有自带的A/D,外部信号共10路信号。 其中9路为交流信号, 1路为直流信号,有效值(或平均值)算法统一按两点初测和半周方均根详测来完 成。 其流程如图6.3所示 INT0中断入口 保护现场 是初测 通道0 数据累加/有效值计算 5ms到 恢复现场 中断返回 详测程序 Y N N Y N Y 更换通道 显示计算 选漏初测超 超限判别/标志 Uo初态 选漏详测标志 Uo通道 启动A/D 其它超限 单通道详测标志 相应通道号 启动A/D 够256次 计算电压/电流平均值 刷新标志 通道0 启动A/D 启动A/D 数据累加 N N NY Y Y 图6.3 A/D中断流程图 Fig.6.3 The A/D interrupt flow chart 从图5.4可以看出,单片机对A/D值进行了两点法初测和方均根法详测,两次的 结果相同才能作为跳闸的依据,这在很大程度上剔除了粗大信号对保护器的影响, 提高了保护器的可靠性。 注初测将所有通道的值进行平方计算,5ms后再次计算并累加,对计算结果 除以2后开平方,就得到采样信号的有效值。 实际计算时未减小波形畸变对两点法的影响,一是采样电路中有低通或带通滤 重庆大学硕士学位论文 6 软件设计 46 波,二是在求初测有效值时未除以2,直接开平方了。这样相当于将被测信号放大 到1.414倍。即实际信号达到动作值的70%就开始进行详测。 但在计算电压/电流平均值值时,各累加了256次,但求平均值时按512来除。即 电压/电流平均值计算并不按70%来计算。 细微差别文中未能尽述。 6.2.1 详测流程 详测功能在图5.4中未能尽述,现将详测流程流程图给出,如图6.4所示 选漏详测 Uo通道 选漏详测始 选漏结束计算 选漏结束 计算超限/设标志 计算Uo/Io值 其它详测 置通道号/启动A/D 单通道详测 初测标志 通道0/启动A/D 启动T0 换通道0 数据累加 启动A/D 极性变化 选漏详测始 数据累加 Io通道/启动A/D 极性变化标志 启动A/D 漏电详测始 N Y 5ms到 清5ms到标志 选漏相位计算 Uo通道/启动A/D 数据累加 入口 出口 单通道详测 Y Y Y Y Y YY N N N N N NN 图6.4 详测流程图 Figure 6.4 Detailed measure flow chart 注①详测共分两种选漏详测和单通道详测。选漏详测同时对零序电源Uo和零 序电流Io进行计算,并要求幅值超限且相差在90~270之间电,才满足选择性漏 电跳闸条件。单通道详测则只对某一通道进行方均根计算,由于篇幅所现,单通 道详测放在5.2.2中介绍。 ②极性变化是指Uo信号的过零点变化。若Uo上次值为负,本次为正,则为正 跳变,设极性变化标志为1。若Uo上次值为正,本次为负,则为负跳变,设极性变 化标志为0。 ③选漏详测采用半波方均根计算方法,即计算Uo正半周或副半周的值。如果 是Uo正跳变,则Uo变为负值(极性为0)时计算结束;如果是Uo负跳变时,则Uo 变为正值(极性为1)时计算结束。 重庆大学硕士学位论文 6 软件设计 47 如果Uo极性变化标志用A表示,Uo当前极性用B表示,用Y表示选漏结束标志 位,为1时表示结束。即有如下卡诺图6.5 0 1 01 A B 10 01 图6.5 选漏结束计算卡诺图 Figure 6.5 Karnaugh table for the ending flag of leakage 显然有YA○ B,所以流程图“选漏结束计算”处的内容实际上就是Uo极性变化标志 位和当前极性的异或,异或值为1表示半波计算结束。 ④零序电流Io的计算和Uo同步进行,因此和单通道详测比起来,Io和Uo通道 的累加次数为单通道详测时累加次数的一半,在计算有效值时二者有差别,在本 框图中没有显示。 ⑤在计算选漏条件(即Uo超前Io 90~180的电角度)时,可以将Uo进行滞后 90变换,变换以后的 0 U 将超前Io 0~180。即有 0 U 发生正跳变时(即Uo发生正跳 变后延时5ms) ,Io应还为负值, 则满足选漏条件。 同理,Uo负跳变延时5ms结束时, Io为正,满足选漏条件。 如果Uo极性变化标志用A表示(下降沿为0,上升沿为1) ,Uo跳变(即开始详 测)后5ms(90)时Io极性用B表示(1表示正,0表示负) ,为用Y表示选漏相位计 算(1表示满足相差条件,0表示不满足) 。则有如下卡诺图6.6 0 1 01 A B 01 10 图6.6 选漏相位计算卡诺图 Figure 6.6 Karnaugh table for the phase flag of leakage 显然有YA○ B,所以流程图“选漏相位计算”处的内容实际上就是Uo极性变化标志 位和Io极性的同或,值为1表示选漏相差计算满足。 重庆大学硕士学位论文 6 软件设计 48 6.2.2 单通道详测流程 单通道详测是对某一通道进行方均根计算并求出有效值的计算方法。图5.8给 出了单通道详测的流程图。 单通道详测是对单一通道进行的正半周方均根计算。求上升沿就是找到正半 周的起始点。此处和选漏查找起始点略有不同。由于Uo通道是最后一个A/D通道, 在初测结束时的最后一个值就是Uo的值,所以可以很方便的确定Uo的初始状态。 在单通道找起始点时,由于不知道该通道的初始状态,应该将首测值的极性作为 该通道的初始状态,然后求下次状态,判别是否为上升沿。考虑到所求的是上升 沿,将单通道的初始状态设为1,不管下次检测该通道的状态如何,均不影响上升 沿的判断。这样简化了程序结构。图中未能明确显示出来。 另外选漏详测和单通道详测均含有多次检测找不到起始点自动退出的功能, 以防找不到起始点而进入死循环的可能。同时所有详测均对采样次数作了相应要 求,有效的解决了电路中尖峰信号的干扰问题。由于结构复杂,流程判别较多, 本文未详细给出,此处只给出说明。 入口 单通道 详测始 当前值0 求有效值 越界判别/标志 还有详 测要求 通道0启动A/D 初测 启动相应通道 启动T0 启动A/D 数据累加 出口 上升沿 数据累加 启动A/D Y Y Y N N N N Y 图6.7 单通道详测的流程图 Fig.6.7 Single channel measure flow chart 6.3 定时器 T0 流程 T0在设计中的左右有两个一是初测时定时5ms,为两点发初测提供相位上 相差90的两个点。设计时在开始初测时,一方面T0开始计时,另一方面A/D开 重庆大学硕士学位论文 6 软件设计 49 始转换。由于A/D转换远远快于TO定时时间,所以A/D很快就完成了所有通道 的检测。在最后一个通道检测结束后,停止下一个A/D转换,返回主程序。在 TO定时结束后,有T0完成对A/D的从新启动,A/D很快进入到A/D中断中, 然后自行对所有通道进行计算。并根据T0给出的5ms到的标志,在最后一个通 道结束时,对相隔90的两组测量值进行两点发计算,得到各个通道的有效值。 TO的另一个作用是对Uo进行90的移相,在选漏中已有详述。 T0流程如图6.8所示 T0中断入口 中断返回 置5ms到标志 初测 通道0/启动A/D Y N 图 6.8 定时器 T0 流程图 Fig. 6.8 T0 program flow chart 6.4 定时器 T1、跳闸、分合闸程序结构 定时器T1完成对故障的延时处理。包括过载和漏电延时。保护器功能中的 其它延时均采样程序本身结构或循环延时,跟T1无关。T1在程序初始化完成进 入主循环时就将T1打开,知道保护器跳闸才关闭。在此过程中,每次T1中断时 T1都根据保护器详测的故障标志位来确定计时是加还是减, 并在定时超限时指挥 保护器跳闸。程序流程见图5.10。 跳闸功能是指在故障出现并达到所设定的时间时保护器指挥断路器切断电路 的功能。发出跳闸指令在主程序的跳闸判断中。这是出于抗干扰的考虑。CPU检 测到故障并决定跳闸,可能是在A/D中断中(需要立即跳闸的故障) ,也可能在 定时器T1中(需要延时跳闸的故障) ,理论上讲放在何处跳闸均一样,因为跳闸 程序是个死循环。 重庆大学硕士学位论文 6 软件设计 50 如果从抗干扰的角度出发,将指挥断路器跳闸放在主程序中的安全性更高一 些。即使程序飞跑,一方面软件陷阱捕捉到可以简单地将程序送回起始处,另一 方面如果故障还未被切除,程序流程会方便的进入到再次进行A/D检测,从而再 次跳闸。即使进入飞跑后不能回来,不能进入到A/D程序,硬狗也能将其拉回到 起始点,也很容易重新进入跳闸程序。 T1中断入口 中断返回 保护现场 增加计时A Y N 漏电有 延时 Y 漏电值 超限 Y 计时A 超限 跳闸 置漏电标志 保护现场 Y 过载值 超限 计时A复位 N 增加计时B减少计时B Y 计时B 正超限 N 跳闸 置过载标志 Y 计时B 负超限 N 计时B复位 N N 图 6.9 定时器 T1 流程图 Fig.6.9 T1 program flow chart 在显示刷新时和跳闸时CPU均查询开关状态并在液晶屏上显示。 在跳闸时如 果CPU发出指令如果检测不到分闸状态,将显示“拒分”字样。 跳闸、分合闸的具体程序流程略。 6.5 本章小结 本章给出了本次设计的保护器的软件流程图。从软件流程图上可以看出本次 设计的对于多通道交流信号的实时处理方法。软件流程给出了初测和详测相结合 的方法,对于提高单片机的运算速度起了关键的作用。