论文部分内容阅读
【摘要】电梯专用变频器是中小功率变频器中的高端产品,尽管我国是世界第一电梯制造大国,但电梯的核心部件电梯专用变频器却被国外品牌所垄断,针对电梯特性的专门控制算法需要在长期生产实践中积累完善;电梯变频器软件系统是一个庞大的复杂实时混杂型(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公司所特别倡导的里程碑式开发方法,但在软件开发过程如何确定软件里程碑,主要取决于对软件结构的深思熟虑,设备逻辑五范畴为具体科学划分软件里程碑提供了实际操作依据,为复杂实时软件开发管理提供了宏观指导。设备逻辑的概念也为开发其它复杂实时控制软件(如汽车发动机控制软件)提供了借鉴经验。■
【参考文献】
[1]谭茀娃.电梯驱动技术的国内外发展趋势[J].变频器世界,2007,4:710.
[2]蘇奎峰,吕强等.TMS320F2812原理与开发[M].北京:电子工业出版社,2005.
【关键词】电梯变频器;层次化设计;虚拟设备
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公司所特别倡导的里程碑式开发方法,但在软件开发过程如何确定软件里程碑,主要取决于对软件结构的深思熟虑,设备逻辑五范畴为具体科学划分软件里程碑提供了实际操作依据,为复杂实时软件开发管理提供了宏观指导。设备逻辑的概念也为开发其它复杂实时控制软件(如汽车发动机控制软件)提供了借鉴经验。■
【参考文献】
[1]谭茀娃.电梯驱动技术的国内外发展趋势[J].变频器世界,2007,4:710.
[2]蘇奎峰,吕强等.TMS320F2812原理与开发[M].北京:电子工业出版社,2005.