电梯专用变频器是中小功率变频器中的高端产品,尽管我国是世界第一电梯制造大国,但电梯的核心部件电梯专用变频器却被国外品牌所垄断,针对电梯特性的专门控制算法需要在长期生产实践中积累完善;电梯变频器软件系统是一个庞大的复杂实时混杂型(Hybrid)软件系统,开发稳定成熟的电梯变频器软件是一个严峻的工程挑战,本文主要介绍在该DSP的C/C++集成开发环境CCS(Code Composer Studio)下,如何基于面向对象技术,开发电梯变频器实时多任务软件系统,该软件系统开发的核心理念是软件层次化和基于虚拟设备的
1.电梯变频器的功能需求与软件系统结构
用层次化意见研究电梯变频器的功能需求,电梯变频器软件系统采用四层递阶层次结构,即某一层只能被其上层调用,而每一层中的大模块组是平行的,同一层模块之间无耦合关系,从而实现软件功能的并行扩展。设计软件模块的基本准则是模块间尽大概无耦合关系。
电梯变频器软件是实时多任务软件,本设计直接对于DSP的硬件中断机制,采用有优先级别的中断任务机制实实际时多任务调度与办理。这种方法的好处是能精确确定每个任务的执行时间,这对任务实时性一定精确到微秒级的电机控制软件是绝对必要的。
2.DSP硬件外设管理层面
由于TMS320F2811的外设编程十分复杂,并且保持软件对硬件平台的兼容性在软件的整个生命周期至关重要,因此DSP硬件外设管理层面设计的首要任务是实现分割软件模块的硬件相关性,使上层软件模块独立于硬件。
2.1定义对象结构体
通过面向对象编程技术,把DSP的每种外设用相应的软件结构体定义,同一类对象仅定义一种结构体,然后经过对象实例指向具体的外设。比如:DSP中有多个定时器,定义定时器结构体structCPUTIMER_REGS描述定时器的控制寄存器,该结构体如下所示:structCPUTIMER_REGS{
Uint32 TIM; //定时器计数寄存器
Uint32 PRD; //周期寄存器
Uint32 TCR;//定时器控制寄存器
Uint32 rsvd1;//保留
Uint32 TPR;//定时器预定值寄存器低位
Uint32 TPRH;//定时器预定值寄存器高位};
定义了结构体后,再定义三个以上结构体的变量,就能分别描述DSP中的三个定时器。
2.2控制寄存器位域访问功能
曾经的控制寄存器访问直接操纵寄存器的某个位,这种程序阅读性较差,特别在寄存器数量非常多时很容易出错,且不便于查错。应用访问C语言联合结构体的方法直接操纵外设简单易用。
2.3统一的外设与上层软件数据交换方法
每一个外设都定义为一个标准对象,上层软件经过访问这些对象的数据成员获取外设信息或操控外设,而实时中断任务经过调用外设对象的方法函数来实现对外设的更新操纵或外设事件响应处理。经过ADC_DRV对象获得ADC外设的转换结果,彻底分割了软件功能模块的硬件相关性,并且实现外设接口办理的标准化,大大提升软件的可移植性。对象的不一样的方法函数在不一样进程中执行,这是面向对象编程与传统瀑布式结构化编程的显著不一样点。
3.功能算法模块层
功能算法模块层分为两相当多。
第一部分:基本运算和信号处理功能库。针对32位的TMS320F281x系列DSP,TI公司提供了基础虚拟浮点运算库和较丰富的数字信号处理库。
第二部分:电机参数辨识和矢量控制模块库,这部分是电机控制的核心算法。开发的关键是控制系统信号流程图与软件模块结构图之间的一一对应关系。采用可视化的信号流程图是表现复杂控制策略的基本方法。
由于是采用面向对象的开发方法,可以针对以上控制算法采用软件对象逐一实现具体的控制模块,并经过对象成员变量直接表现控制信号的传递整个过程。
采用面向对象技术使控制算法与软件模块一一对应,有以下几个好处:①控制算法调试方便。②控制算法扩展方便。③极大降低软件开发难度,大大减少软件出错概率。
4.用户接口管理层面
从外表看,电梯变频器的复杂性体现了繁杂的用户接口功能上。
按具体接口方式划分有三种,分别是:数字式操纵器、异步串行通信接口、CAN总线功能扩展。按通信协议实现层次划分,用户接口管理层面大抵分为通信子层和参数传递解析层。通信子层中异步串行通信采用Mod bus协议,这是在PLC、变频器中普遍采用的通信协议,保持了与工业标准的一致性。
参数传递子层用于面向不一样软件应用层的参数传递与修改。在电梯控制整个过程中,一定能修改软件各层中有关模块的参数,有的时候用户对一个应用参数的修改在软件系统内部大概有关到许多个不一样层模块。为了确保参数修改的一致性,设立多种参数解析传递对象,以包管参数修改的正确性,并滤除各种非法操纵和错误的参数输出。经过调用不一样操纵对象,就可以实现特定接口办理功能。
5.设备运行逻辑管理层面
电梯变频器是一个混杂系统,既有连续控制,也有复杂时序逻辑控制,一定有恰当的方法描述这种复杂系统。在电梯运行整个过程中,有许多差别很大的工作情形,不大概用单一控制策略涵盖所有工况,并且一定有完善的故障控制策略,这增加了软件开发的复杂性。避免由于控制的复杂性使得软件模块间的相互偶合是设备运行逻辑管理层面设计的关键,为此引入“虚拟设备”概念。这里的设备是表现混杂对象的工具,而不是工业中的具体设备。
设备运行逻辑管理层面由不一样虚拟设备对象构成,主要有变频器设备、可编程逻辑设备等。虚拟设备逻辑具体定义如下:
5.1模式逻辑
描述虚拟设备怎么样从一种模式转化为另一种模式。一个虚拟设备可定义多个模式组,比如变频器设备可定义“运行模式组”、“操控模式组”等。
5.2状态逻辑
描述能观(observable)能控(controllable)的虚拟设备状态成立条件,原因是经过判断外部命令、模式、故障、给定值等决定现在的设备状态。
5.3控制逻辑
描述在所处状态中怎么样根据内部变量值决定系统的物理输出值。
5.4故障逻辑
描述设备异常的判断条件,并且一旦判断有故障,则中断变频器的正常运行,进入故障办理模式。在执行状态逻辑前先执行故障逻辑。
5.5报警逻辑
描述设备不是很严重的异常情形的判断条件,有报警时并不中断变频器的正常运行,但要告之应用者。
从上可知,设备逻辑的编程实现关键是把每一个虚拟设备处理为五个逻辑范畴,实现了混杂对象实时控制软件的逻辑解偶,也大大降低复杂实时软件的描述难度,极大提升软件的可靠性与扩展性。
6.结论
所设计的电梯变频器软件系统已完成实验室开发阶段,正在工厂做运行测试,样机系统已投入现场实际测试运行。在软件开发测试整个过程中,深深体会到经过引入设备逻辑的概念,实现软件模块的宏观逻辑解耦,极大地提升了软件的易扩展性。既然复杂实时软件的开发整个过程都依照Microsoft公司所特别倡导(率先提议)的里程碑式开发方法,但在软件开发整个过程怎么样确定软件里程碑,主要取决于对软件结构的深思熟虑,设备逻辑五范畴为具体科学划分软件里程碑提供了实际操纵依据,为复杂实时软件开发办理提供了宏观指导。设备逻辑的概念也为开发别的复杂实时控制软件(如汽车发动机控制软件)提供了借鉴经验。