内容发布更新时间 : 2024/12/24 0:46:09星期一 下面是文章的全部内容请认真阅读。
第4章 电动机保护器系统软件设计
软件的功能是以硬件为基础完成各种保护算法及方案,并提供丰富灵活的手段对装置进行整定、监视和维护,是整套装置的灵魂。电动机智能保护装置的软件设计主要任务是:
(1)提供准确、实时的保护算法。
(2)为用户提供简洁、方便、清晰的人机对话界面。 (3)提供简便快速的整定值设定方法,时间校准方法。 (4)及时、可靠地完成对各种故障的保护。
由于保护装置担负着保证电动机安全稳定运行的重大使命,它时刻处于工作状态,且必须能够准确地完成保护动作,所以微机保护的软件可靠性是对软件开发的最主要的要求。为保证整个系统的可靠性,在进行软件设计时应始终以以下几个原则为基础:
(1)确保A/D转换不受干扰,保证外部数据能够实时且准确地输入到处理器。 (2)确保处理各个中断处理程序的优先级,确保实时性要求高的中断能够得到最快的处理;对临界代码段进行必要的保护,确保数据的J下确性。
(3)注重程序的模块化设计,提高整个程序的可靠性和可读性。 (4)正确处理慢速外设的数据传输问题。
(5)本保护装置的软件设计采用模块化程序设计方法,将整个应用程序以硬件模块为基础划分为若干个独立的程序模块,各个模块单独设计、编写代码和调试,然后将所有模块装配连接成一个整体进行综合调试,最终成为一个完成全部功能,具有实用价值的程序。
4.1 程序设计语言选择
电动机智能保护器的软件是一种实时功能处理软件。软件是微机应用的关键,是数据处理、运算、逻辑判断的具体实现。电动机智能保护装置与传统的保护方式的主要区别是可通过软件编程去控制硬件执行来实现保护功能。电动机的保护软件实现的功能较多、任务繁重,所以必须采用合理、高效的语言和方式编写。
使用C语言进行软件设计具有编程速度快、可靠性高、程序结构清晰、可读性和可移植性好、调试与维护方便、开发周期短等优点。C语言主要特点如下:语言简洁、紧凑、使用方便、灵活;运算符、数据结构丰富;具有结构化的控制语句;允许直接访问物理地址,能进行位操作,可以直接对硬件进行操作。采用高级语
24
言C语言编程可使编程人员有更多的时间考虑功能的实现、软件结构的设计,而减少编程本身花费的时间。但是,采用C语言编写的程序生成的指令代码会较长,因
24
此C语言编写的程序执行起来会较汇编程序花费的时间长。
汇编语言具有程序代码短小精悍,程序效率高等优点。但是,汇编语言与高级语言相比存在诸多不利因素:工作量大、变量组织困难、地址安排复杂、容易出错、调试困难、开发周期长、通用性差、可读性差,不利于软件的升级和保护功能的改进。
为达到设计要求并充分利用单片机的资源和性能,课题的软件设计采用C语言与汇编语言混合编程。对于大量的数据运算,例如数据采集、软件滤波、程序逻辑判断等的实现采用C语言:对于设计硬件、端口操作以及其它实时性要求较高的操作采用汇编语言编程;软件整体结构采用C语言编写,这样就兼顾了程序的效率和可读性。
4.2 保护器软件系统整体设计
软件系统采用主循环加中断处理程序的模式。主程序循环完成键盘扫描和显示刷新任务,响应用户输入的键盘命令并实时显示故障处理程序输出信息;中断处理程序主要有定时器定时时间到中断、A/D转换完成中断、串行口接收发送完成中断等。在主循环执行过程中一旦出现中断申请,系统在运行完临界代码后立即暂停执行主循环程序,转而执行中断服务程序。中断执行完成后,回到主循环程序的断点处继续执行主循环程序。系统程序根据中断处理任务的重要性,给中断处理程序赋予不同的优先级,高优先级的中断可以暂停低优先级的中断处理程序,使CPU转而执行高优先级的中断处理程序。
根据模块化的思想,软件系统按照功能可以划分为如下几个模块: (1)人机接口模块:包括液晶显示子模块和键盘检测子模块。液晶显示模块负责电量显示、装置信息显示、整定值和控制值显示;键盘检测子程序主要检测按键状态与键值处理子程序相配合完成系统运行参数的设置。
(2)通信子程序模块:通过串行口将电动机以及电动机保护装置本身的运行参数传输到上位机PC中。
(3)数据采集程序模块:通过数据采集通道将外界的模拟量、开关量全部转换成数字量送入单片机,然后利用软件滤波程序对采集到的数据进行软件滤波。
(4)数据处理、保护决策程序模块:对采集到的数据进行一定的运算,并根据数据进行保护决策。
(5)系统抗干扰程序设计:包括数据滤波以及看门狗程序等。
27
4.3 保护器主程序设计
主程序的主要功能是对系统各个外设模块进行初始化、调用各个子程序完成
24
各项功能和开中断等。上电复位后,单片机将复位向量装载到程序地址寄存器,然后CPU就从复位向量处开始执行程序。主程序先进行初始化,为各个子程序的调用和系统各个模块的使用做好准备,然后查询按键,判断是否需要进行各种控制参数的调整。如果需要调整参数则进入参数调整子程序,进行各种参数的设置;最后程序进入主循环。
主程序的主体结构为一个无限循环,单片机不断重复调用电压、电流、温度的判断程序,一旦出现故障便输出保护动作并报警。同时进行按键的扫描和显示刷新。
主程序并不参与具体的工作,而是去管理各子程序,各种工作均由不同的子程序分别完成。这种方式可以实现程序的模块化设计。使主程序和子程序的修改及调试工作都变得十分方便。
主程序流程图如图4.1所示:
28