7
西门子6ES7214-2AD23-0XB8销售
1.问题的提出
我公司拥有较多流量计量器具,在公用系统工艺中对流体流量、流速等重要参数进行测量控制。具有一套能够准确反映流体实际使用情况的测量装置是十分必要的。因此,为了提高计量水平,保证计量器具能够准确显示,经过对各系统的仔细分析研究,结合我公司实际情况,我们由采用转子流量计测量,逐渐转为使用声波流量计测量。系统运行3年来,大幅度提高了计量工作准确性,并且安装、使用方便,从而获得了明显的经济效益。
2.原理介绍
目前通常采用两种类型的声波流量计,一种为多普勒声波流量计,另一类为时差式声波流量计。多普勒型是利用相位差法测量流速,即某一已知频率的声波在流体中运动,由于液体本身有一运动速度,导致声波在两(或)之间的频率或相位发生相对变化,通过测量这一相对变化就可获得液体速度;时差型是利用时间差法测量流速,即某一速度的声波由于流体流动而使得其在两(或)之间传播时间发生变化,通过测量这一相对变化就可获得流体流速。目前采用了时差式声波流量计。
3.安装方法介绍
目前通常采用三种安装方式:W型,V型,Z型。根据不同的管径和流体特性来选择安装方式,通常W型适用于小管径(25~75mm),V型适用于中管径(25~250mm),Z型适用于大管径(250mm以上),总之,为了提高测量的准确性和灵敏度,选择合适的安装方式,使得测量信号(即差值)与二次仪表相匹配。目前我用了Z型安装。
为了保证仪表的测量准确度,应选择满足一定条件的场所定位:通常选择上游10D、下游5D以上直管段;上游30D内不能装泵、阀等扰动设备。
针对我公司Z型安装,浅谈声波流量计探头的安装方法,具体采用"坐标法安装",即先将管道外表面处理干净,涂上偶合剂,固定其中一个探头的位置,用纸带绕管道一周,量出周长作好对折标记,在周长1/2处确定另一探头轨道的位置,同样该轨道应与管道轴心平行,再根据仪表显示的安装距离,确定两探头在轨道上的相对距离,保证声波有足够的信号强度,通常使得面板上显示的信号强度大于2%,待读数显示稳定,说明安装调试结束,仪表可正常工作。
4.流量计的使用
(1)零流量的检查
当管道液体静止,而且周围无强磁场干扰、无强烈震动的情况下,表头显示为零,此时自动设置零点,零点飘移,运行时须做小信号切除,通常可流量小于满程的5%,自动切除。同时零点也可通过菜单进行调整。
(2)仪表面板键盘操作
启动仪表运行前,要对参数进行有效设置,例如,使用单位制、安装方式、管道直径、管道壁厚、管道材料、管道粗糙度、流体类型、两探头间距、流速单位、小速度、大速度等。只有所有参数输入正确,仪表方可正确显示实际流量值
(3)流量计的定期校验
为了保证流量计的准确度,我们进行定期的校验,通常我们采用的便携式流量计进行直接对比,利用所测数据进行计算:误差=(测量值-标准值)/标准值,利用计算的相对误差,修正系数,使得测量误差满足±2%的误差,即可满足计量要求。该操作简单方便,可有效提高计量的准确度。
5.结束语
流量是企业能源消耗的指标,是企业生产过程中受探重要参数之一,流量仪表得到越来越多的应用,随着科学技术的飞速发展,人们对、高性、高智能化仪表备受欢迎。我公司选用的SERIES
TFX声波流量计真正体现安装方便,测量,易于操作的特点。
摘要:嵌入式系统的低功耗设计需要分析各方面因素,统筹规划。在设计之初,各个因素往往是相互制约、相互影响的,一个降低系统功耗的措施有时会带来其他方面的“负效应”。因此,降低系统整体功耗,需要仔细分析和计算。本文从硬件和应用软件设计两个方面,阐述一个以单片机为的嵌入式系统低功耗设计时所需考虑的一些问题。
关键词:低功耗设计 硬件设计 应用软件设计 低功耗模式
在嵌入式应用中,系统的功耗越来越受到人们的重视,这一点对于需要电池供电的便携式系统尤其明显。降低系统功耗,延长电池的寿命,就是降低系统的运行成本。对于以单片机为的嵌入式应用,系统功耗的小化需要从软、硬件设计两方面入手。
随着越来越多的嵌入式应用使用了实时操作系统,如何在操作系统层面上降低系统功耗也成为一个值得关注的问题。限于篇幅,本文仅从硬件设计和应用软件设计两个方面讨论。
1 硬件设计
选用具有低功耗特性的单片机可以大大降低系统功耗。可以从供电电压、单片机内部结构设计、系统时钟设计和低功耗模式等几方面考察一款单片机的低功耗特性。
1.1 选用尽量简单的CPU内核
在选择CPU内核时切忌一味追求性能。8位机够用,就没有必要选用16位机,选择的原则应该是“够用就好”。现在单片机的运行速度越来越快,但性能的提升往往带来功耗的增加。一个复杂的CPU集成度高、功能强,但片内晶体管多,总漏电流大,即使进入STOP状态,漏电流也变得不可忽视;而简单的CPU内核不仅功耗低,成本也低。
1.2 选择低电压供电的系统
降低单片机的供电电压可以有效地降低其功耗。当前,单片机从与TTL兼容的5 V供电降低到3.3 V、3 V、2 V乃至1.8 V供电。供电电压降下来,要归功于半导体工艺的发展。从原来的3 μm工艺到现在的0.25、0.18、0.13 μm工艺, CMOS电路的门限电平阈值不断降低。低电压供电可以大大降低系统的工作电流,但是由于晶体管的尺寸不断减小,管子的漏电流有增大的趋势,这也是对降低功耗不利的一个方面。
目前,单片机系统的电源电压仍以5 V为主,而过去5年中,3 V供电的单片机系统数量增加了1倍,2 V供电的系统也在不断增加。再过五年,低电压供电的单片机数量可能会过5 V电压供电的单片机。如此看来,供电电压降低将是未来单片机发展的一个重要趋势。
1.3 选择带有低功耗模式的系统
低功耗模式指的是系统的等待和停止模式。处于这类模式下的单片机功耗将大大小于运行模式下的功耗。过去传统的单片机,在运行模式下有wait和stop两条指令,可以使单片机进入等待或停止状态,以达到省电的目的。
等待模式下,CPU停止工作,但系统时钟并不停止,单片机的外围I/O模块也不停止工作;系统功耗一般降低有限,相当于工作模式的50%~70%。
停止模式下,系统时钟也将停止,由外部事件中断重新启动时钟系统时钟,进而唤醒CPU继续工作,CPU消耗电流可降到μA级。在停止模式下,CPU本身实际上已经不消耗什么电流,要想进一步减小系统功耗,就要尽量将单片机的各个I/O模块关掉。随着I/O模块的逐个关闭,系统的功耗越来越小,进入停止模式的深度也越来越深。进入深度停止模式无异于关机,这时的单片机耗电可以小于20 nA。其中特别要提示的是,片内RAM停止供电后,RAM中存储的数据会丢失,也就是说,唤醒CPU后要重新对系统作初始化。因此在让系统进入深度停止状态前,要将重要系统参数保存在非易失性存储器中,如EEPROM中。深度停止模式关掉了所有的I/O,可能的唤醒方式也很有限,一般只能是复位或IRQ中断等。
保留的I/O模块越多,系统允许的唤醒中断源也就越多。单片机的功耗将根据保留唤醒方式的不同,降至1μA至几十μA之间。例如,用户可以保留外部键盘中断,保留异步串行口(SCI)接收数据中断等来唤醒CPU。保留的唤醒方式越多,系统耗电也就会多一些。其他可能的唤醒方式还有实时钟唤醒、唤醒等。停机状态较浅的情况下,外部晶振电路还是工作的。
图1以Freescale的HCS08单片机为例,给出不同运行模式下的系统功耗。HCS08是8位单片机,有多个系列,各系列I/O模块数目有所不同,但低功耗模式下的电流消耗大致相同。
图1HCS08单片机各模式下的耗电
以R系列单片机为例:在室温(25℃)下,不包括I/O口的负载,以2 V供电,将可编程锁相环时钟设为16 MHz(总线时钟8 MHz),典型电流值为2.6 mA,当温度升高到85℃时,供电电流也升高到3.6 mA;而采用3 V供电,这一组数据升高至3.8 mA和4.8 mA。用2 V供电,直接使用外部晶振2 MHz(总线时钟1 MHz)时,典型运行电流降至450 μA。在等待状态下,因时钟并没有停止,耗电情况和时钟频率有很大关系,节省的功耗有限;而进入轻度停止(stop3),以外部中断唤醒,电流消耗在0. 5 μA左右。在中度停止态(stop2),功耗可进一步降低。使用内部1 kHz的时钟,保持1个运行的时钟,周期性唤醒CPU,所增加的电流约为0.3 μA。在深度停止态(stop1),RAM的数据也不再保留,只能通过外部复位重启系统,此时的电流消耗可降到20 nA。以上数据都是在室温下测量所得。当环境温度升高到85℃时,电流消耗可能增加3~5倍。
1.4选择合适的时钟方案
时钟的选择对于系统功耗相当敏感,设计者需要注意两个方面的问题:
是系统总线频率应当尽量低。单片机内部的总电流消耗可分为两部分——运行电流和漏电流。理想的CMOS开关电路,在保持输出状态不变时,是不消耗功率的。例如,典型的CMOS反相器电路,如图2所示,当输入端为零时,输出端为1,P晶体管导通,N晶体管截止,没有电流流过。而实际上,由于N晶体管存在一定漏电流,且随集成度提高,管基越薄,漏电流会加大。温度升高,CMOS翻转阈电压会降低,而漏电流则随环境温度的增高变大。在单片机运行时,开关电路不断由“1”变“0”、由“0”变“1”,消耗的功率是由单片机运行引起的,我们称之为“运行电流”。如图2所示,在两只晶体管互相变换导通、截止状态时,由于两只管子的开关延迟时间不可能一致,在某一瞬间会有两只管子同时导通的情况,此时电源到地之间会有一个瞬间较大的电流,这是单片机运行电流的主要来源。可以看出,运行电流几乎是和单片机的时钟频率成正比的,因此尽量降低系统时钟的运行频率可以有效地降低系统功耗。
二是时钟方案,也就是是否使用锁相环、使用外部晶振还是内部晶振等问题。新一代的单片机,如飞思卡尔的HCS08系列单片机,片内带有内部晶振,可以直接作为时钟源。使用片内晶振的优点是可以省掉片外晶振,降低系统的硬件成本;缺点是片内晶振的精度不高(误差一般在25%左右,即使校准之后也可能有2%的相对误差),而且会增加系统的功耗。
现代单片机普遍采用锁相环技术,使单片机的时钟频率可由程序控制。锁相环允许用户在片外使用频率较低的晶振,可以很大地减小板级噪声;而且,由于时钟频率可由程序控制,系统时钟可以在一个很宽的范围内调整,总线频率往往能升得很高。但是,使用锁相环也会带来额外的功率消耗。
单就时钟方案来讲,使用外部晶振且不使用锁相环是功率消耗小的一种。
2 应用软件方面的考虑
之所以使用“应用软件”的说法,是为了区分于“系统软件”或者“实时操作系统”。软件对于一个低功耗系统的重要性常常被人们忽略。一个重要的原因是,软件上的缺陷并不像硬件那样容易发现,同时也没有一个严格的标准来判断一个软件的低功耗特性。尽管如此,设计者仍需尽量将应用的低功耗特性反映在软件中,以避免那些“看不见”的功耗损失。
2.1 用“中断”代替“查询”
一个程序使用中断方式还是查询方式对于一些简单的应用并不那么重要,但在其低功耗特性上却相去甚远。使用中断方式,CPU可以什么都不做,甚至可以进入等待模式或停止模式;而查询方式下,CPU不停地访问I/O寄存器,这会带来很多额外的功耗。
2.2 用“宏”代替“子程序”
程序员清楚,读RAM会比读Flash带来大的功耗。正是因为如此,低功耗性能的ARM在CPU设计上仅允许一次子程序调用。因为CPU进入子程序时,会将当前CPU寄存器推入堆栈(RAM),在离开时又将CPU寄存器弹出堆栈,这样至少带来两次对RAM的操作。因此,程序员可以考虑用宏定义来代替子程序调用。对于程序员,调用一个子程序还是一个宏在程序写法上并没有什么不同,但宏会在编译时展开,CPU只是顺序执行指令,避免了调用子程序。的问题似乎是代码量的增加。目前,单片机的片内Flash越来越大,对于一些不在乎程序代码量大一些的应用,这种做法无疑会降低系统的功耗。
2.3 尽量减少CPU的运算量
减少CPU运算的工作可以从很多方面入手:将一些运算的结果预先算好,放在Flash中,用查表的方法替代实时的计算,减少CPU的运算工作量,可以有效地降低CPU的功耗(很多单片机都有快速有效的查表指令和寻址方式,用以优化查表算法);不可避免的实时计算,算到精度够了就结束,避免“过度”的计算;尽量使用短的数据类型,例如,尽量使用字符型的8位数据替代16位的整型数据,尽量使用分数运算而避免浮点数运算等。
2.4 让I/O模块间歇运行
不用的I/O模块或间歇使用的I/O模块要及时关掉,以节省电能。RS232的驱动需要相当的功率,可以用单片机的一个I/O引脚来控制,在不需要通信时,将驱动关掉。不用的I/O引脚要设置成输出或设置成输入,用上拉电阻拉高。因为如果引脚没有初始化,可能会增大单片机的漏电流。特别要注意有些简单封装的单片机没有把个别I/O引脚引出来,对这些看不见的I/O引脚也不应忘记初始化。
3 结论
一个成功的低功耗设计应该是硬件设计和软件设计的结合。从硬件设计开始,就应该充分意识到一个低功耗应用的特性,选择一款合适的单片机,通过对其特性的了解,设计系统方案;在软件设计上,要考虑到低功耗编程的特殊性,并尽量使用单片机的低功耗模式。
限于篇幅,仅仅讨论了低功耗设计中的一些常见问题,多的问题只能靠设计者去实际分析和解决了。
关键字:嵌入式;模块化
嵌入式设计已经成为工业现代化、智能化的必经之路,嵌入式产品已经深入到各行各业。嵌入式系统的程度较高,系统的整体继承性相对较小,为了保证系统的稳定性,软件的测试成为嵌入式开发的一个重要环节。由于嵌入式软件自身的特点,传统的软件测试理论不能直接用于嵌入式软件的测试,因此,研究嵌入式软件的测试有重要意义。
1 基本概念简述
1.1 模块化设计
软件的设计是以一定的方法为基础的。面对越来越复杂的软件开发,人们提出了各种软件设计的模型。从用户需求和系统要实现的任务功能出发,把大型的软件划分为相对较小的模块。为了减少模块与模块之间的关联性,模块之间的逻辑结构相对立,无函数的交叉调用,数据传递由全局变量完成,这就是模块化设计的基本思想。模块化设计的是模块的立性,主要包括功能立性和结构立性,这使得软件开发的分工易于实现。软件测试是软件开发中的关键环节,基于模块化设计的软件测试模型简单,查错和纠错都易于实现。下面以单链路数据传递的软件模型说明模块化软件设计的软件测试的基本原则。函数F(X-Y)定义为软件模块X到软件模块Y的接口函数,用来通过终端显示由模块X进入模块Y的数据。如果模块C执行后发生错误,则由模块B和模块C的数据接口函数F(B-C)判断是否是模块B出来的数据就是错误的。如果F(B-C)不错,则证明模块C存在错误;如果F(B-C)传递数据错误,再察看F(A-B)传出的数据是否错误,如果不错则证明模块B存在错误。用此依次前推孤立错误的方法,即可以很容易地定位错误所在的模块。这就是模块化设计时软件测试的基本原则。
1.2 嵌入式系统
嵌入式系统开发有其自身的特点。一般行硬件部分的开发,主要包括形成裸机平台,根据需要移植实时操作系统,开发底层的硬件驱动程序等。硬件平台测试通过后,应该软件的开发调试是基于该硬件平台进行的,这同时也是对硬件平台的一个测试。因此可以说,嵌入式系统的开发过程是一个软硬件互相协调,互相反馈和互相测试的过程。一般来说,在嵌入式系统软件中,底层驱动程序、操作系统和应用程序的界线是不清晰的,根据需要甚至混编在一起。这主要是由于嵌入式系统中软件对硬件的依赖性造成的。嵌入式软件对硬件的依赖性要求,软件测试时大限度地模拟被测软件的实际运行环境,以保证测试的性。底层程序和应用程序界限的不清晰增加了测试时的难度,测试时只有确认嵌入式系统平台及底层程序正确的情况下才能进行应用程序的测试,而且在系统测试时,错误的定位较为困难。软件的性也是嵌入式软件的一个重要特点。由于嵌入式软件设计是以一定的目标硬件平台为基础的、面向固定的任务进行的,因此,一旦被加载到目标系统上,功能确定。这个特点决定了嵌入式应用软件的继承性较差,延长的系统的测试时间,增加了测试费用。嵌入式软件的另外一个重要特点就是实时性。这是从软件的执行角度出发说明的,也就是说嵌入式软件的执行要满足一定的时间约束。嵌入式系统中,应用软件自身算法的复杂度和操作系统任务调度,决定了系统资源的分配和消耗,因此,对系统实时性进行测试时,要借助一定的测试工具对应用程序算法复杂度和操作系统任务调度进行分析测试。可见嵌入式软件与传统的面向对象和面向过程的软件相比有其自身的特点。针对这些特点对嵌入式软件的测试进行研究是必要的,有意义的。
1.3 嵌入式软件测试
软件测试是从经济、效率的角度出发,对软件代码进行质量、正确性保证的一个过程。软件测试是软件开发中的一个重要环节,也是软件从开发过程到应用过程的关键一环。嵌入式软件也不例外,软件测试逐渐成为一门成熟的学科,前人针对面向对象和面向过程的非实时软件的测试作了大量的研究,其中大部分方法可以用到嵌入式软件的测试。
根据不同的指标,软件测试方法有不同的划分方法。从软件开发过程中测试所处的不同阶段可分为模块测试、集成测试和系统测试。根据是否需要运行目标代码分为动态测试和静态测试;根据目标代码的可见性可分为白盒测试(结构测试)和黑盒测试(功能测试)。在软件的测试中,每种测试方法都不是孤立的。为了经济有效地达到测试的目的,各种测试方法往往是互相嵌套的。例如,在软件的单元测试阶段,可以用黑盒测试和白盒测试的方法分别进行动态测试。
值得一提的是,近年来软件测试中,测试代码的覆盖率逐渐成为软件测试的统一标准,因此不管采用何种测试方法,尽可能地提高软件测试中的代码覆盖率是必需的。软件测试代码覆盖率是基于白盒测试方法的,因此,为了提高软件测试的代码覆盖率,测试人员清楚源代码的结构,拥有程序设计文档,以便设计测试用例使测试尽可能地覆盖程序内部结构的每条语句,提高代码的覆盖率。
2 基于模块化设计的嵌入式软件四级测试流程
根据嵌入式系统的开发流程,为了经济地实现系统的功能,采用自向下、层层推进的方法对嵌入式系统进行测试,在四级测试中,本测试阶段以前的测试完成后,当发现错误时,可排队此测试阶段以前的错误,在本测试阶段内查找错误。这并不是一个准确的方法,但大限度地节了错误定位的时间。
2.1 系统平台测试
这部分包括硬件电路测试、操作系统及底层驱动程序的测试等。硬件电路的测试需要用专门的测试工具进行测试。这里不再多述。操作系统和底层驱动程序的测试主要包括测试操作系统的任务调度、实时性能、通信端口的率。该阶段测试完成后,系统应为一个完整的嵌入式系统平台,用户只需添加应用程序即可完成特定的任务。
2.2 模块测试
把大型的嵌入式软件系统划分为若干个相对较小的任务模块,由不同的程序员分别同时对其进行编码。编码完成后,把各个模块集成起来前,对单个模块进行测试。由于没有其它数据模块进行数据传递的支持,该阶段测试一段是在宿主机上进行的(宿主机有丰富的资源和方便的调试环境)。此阶段主要是进行白盒测试,尽可能地测试每一个函数、每一个条件分支、每一个程序语句,提高代码测试的覆盖率
。由于只有单个模块正确才有整体集成的必要性,因此,单个模块测试时测试一定要充分、完整。模块测试阶段,测试用例的构造不但要测试系统正常的运行情况,还要进行边界测试。边界测试就是进行某一数据变量的大值和小值的测试,同时进行越界测试,即输入不该输入的数据变量测试系统的运行情况。理想的嵌入式系统是不应该由用户的信息交互导致死机的,这也是嵌入式设计的一个基本要求。因此,不论进行何种测试,系统死机都该被作为测试错误处理。在模块测试阶段,由模块化编程的基本思想,根据模块内部的紧凑程序,也可以把大的模块划分成小的模块。在程序内部,小模块之间数据传递的入口设计接口函数,用于快速地定位错误。用此模块嵌套的思想进行软件测试,需要模块内部结构清晰,数据链路简单。
2.3 集成测试
单个软件模块测试正确之后,将所有模块集成起来进行测试。本阶段主要是找出各模块之间数据传递和系统组成后的逻辑结构的错误。在宿主机上采用黑盒与白盒相结合的方法进行测试,要大限度地模拟实际运行环境,可以屏蔽掉一些不影响系统执行的和数据传递的难以模拟的函数。集成测试是模块化设计软件的测试优点充分体现的阶段。集成测试前,应该由程序员根据模块之间的数据的输入输出编写模块接口函数,这需要负责不同软件模块的程序员共同协调完成,然后将模块接口函数集成到接收数据模块的入口处。由的分析可知,单链路数据传递的软件模块集成测试时容易定位错误所在的软件模块。一个软件模块的数据不一定只有另外一个模块提供,即软件模块的数据链路不一定只是单链路的,测试时可以把复杂链路结构的数据传递划分为单链路结构数据传送进行错误定位。修改输出数据的软件模块时,可能导致输入数据的软件模块引入新的错误,因此在这里引入关联矩阵确定修改某一模块后需要重要测试的模块。
定模块化设计的嵌入式系统软件由软件模块Ai(i=1,2,…,m,n)组成,m表示矩阵的行号,n表示矩阵的列号。在关联矩阵中,Aij=1表示Aj接受了Ai输出的数据,故修改了Ai重新测试Ai的同时也需重新测试Aj。集成测试是在拥有程序设计文档、程序结构和数据结构时,对软件模块在集成中出现的错误进行测试。集成测试时,根据模块接口函数定位错误修改代码,根据关联矩阵确定重新测试的软件模块。
2.4 系统测试
集成测试完成后,退出宿主机测试环境,把系统移植到目标机上来,完成应用到现场环境中,从用户的角度对系统进行黑盒测试,验证每一项具体的功能。由于测试者对程序内容程序执行情况一无所知,因此本测试阶段的错误定位比较困难。系统测试阶段应该进行意外测试和破坏性测试,即测试系统正常执行情况下不该发生的激发活动和人为的破坏性的测试,进一步验证系统性能。系统测试阶段不应该确定错误后立即修改代码,应根据一定的错误发生频率,确定测试周期,在每个测试周期结束时修改代码,进行反复测试;否则,不但增加了测试的任务量,而且降低了测试的可信度。
2.5 测试结果分析
测试结果的分析可以定位错误,指导程序员修改代码,同时指出测试进行的程序并进一步指明测试方向。测试结果的分析是一个由测试结果和测试预得结果进行分析、比较和定位错误的过程。测试结果的分析是一次测试的后环节,分析时应该考虑软件的运行环境和实际运行环境的差异以及各种外界因素的影响等。
2.6 测试用例的构造与管理
测试用例是为了测试目标程序设计的包括输入项和预得结果的一种文件,根据测试环境和测试目标程序的不同,可分为某种格式的文档或某种输入行为(如一次按键)等。测试用例的构造要尽可能覆盖所有可能的取值范围,使测试尽可能地覆盖所有程序代码,提高代码的测试覆盖率,同时又不作多余、重复和无意义的测试。在嵌入式软件测试的不同阶段,要构造不同的测试用例;在系统平台测试阶段,要构造针对系统任务调度、实时性能和底层驱动程序的测试用例;在模块测试阶段,应构造针对某一模块进行测试的测试用例;在集成测试阶段,针对系统集成时数据传递、结构斜接的问题构造相应的测试用例;在系统测试阶段,要构造针对某项功能的或多项功能结合在一起的测试用例,或使用已经在同类产品上已经验证正确的测试用例。测试用例是可复用的。此外大型的软件开发过程中,测试用例的种类繁多,应该按一定的方法进行管理。用数据库的来管理测试用例是一个很好的选择。根据测试阶段将测试用例进行划分,然后用关键字确定。这样在使用、修改和保存测试用例时都很方便,直接用查询的方式就可以调出测试用例。
3 数控系统软件测试
本数控系统采用ARM7处理器,操作系统采用μC/OS实时操作系统,是一个典型的嵌入式系统。由于数控系统较为复杂,开发过程中将任务进行了详细的划分,软件的开发采用模块化开发。开发过程中,几个模块由不同的程序员分别进行编码,分别由程序员进行模块测试,并按白盒测试的方法进行覆盖测试。后集成测试前,根据关联矩阵,程序员协作编写了模块接口函数F(A1-A2)、F(A1-A4)、F(A1-A5)、F(A1-A6)、F(F2-A3)、F(A3-A4)、F(A4-A5)、F(F5-A6)、F(A6-A2),分析可知,一些关键模块,如译码模块和补模块的测试代码覆盖率达到90%之上。
4 结论
文章对嵌入式软件的特点和传统的测试方法作了分析之后,提出了四级测试流程和集成测试的模型。此测试方法用于工程机械控制器和数控系统开发的测试。测试的效率和性满足要求。文中的单链路数据传递的错误定位、模块接口函数、关联矩阵等方法也可以用于面向对象的和面向对象的软件系统。
1 引言
隧道自动化是一个整体的概念,包括消防管理系统、交通控制系统、照明控制系统、通风控制系统、报警系统、摄像监控系统、信息管理系统、电源及配电控制系统和交通自动化等。而以计算机+隧道可编程序控制器(现场总线+PLC+手操屏),构成的隧道自动化系统既能完成隧道机电设备、隧道环境状况监控的功能,又可完成隧道信息管理的功能,其中的监控部分采用了具有高性的PLC组成的,基于现场总线的集散控制结构的隧道可编程序控制器。使得整个自动化系统的性得到保证。同时,PLC可以立工作,完成基本控制任务;现场总线的采用将使各个区域的监控任务变成相应PLC的分散监控任务,使得隧道布线加简单、合理。PLC的灵活配置使得隧道监控系统形成模块结构,PLC系统可大可小,可根据现场要求进行合理分布。下面就福建漳州至龙岩高速公路大为主的隧道通、照明及通风监控系统为例介绍隧道可编程序控制器在实际中的开发和应用。
2 系统要求
漳龙高速公路共有6个隧道,分别是万松关隧道、风霜岭隧道、大隧道、后隧道、南靖隧道,石崆门隧道(不属于本次施工范围),大隧道是一个双洞、长约2.6km的高速公路隧道,在双洞单向行驶时,设计车速为80km/h,当单洞双向行驶时,设计车速为60km/h。为了达到上述要求,洞内交通、照明和通风均有相应的要求,分别由所对应机电设备的数量、功率、安装位置来保证。由相应的控制系统、监测系统对洞内照明和通风进行优化控制,以达到节能和行驶。如,由照明监控系统保证洞内照明,在白天,由洞口到洞内的照度能够较平缓地过渡等措施避免玄光和黑洞现象;由通风控制系统保证洞内CO浓度、能见度和洞内风速达到设计要求。
3 系统构成
3.1道可编程控制器介绍
隧道可编程控制器遵循人民共和国交通行业标准JT/T 608-2004,此标准2005年1月1日实施,北京云星宇交通工程公司依此行业标准研发了相应的产品YXY-RTU。隧道可编程控制器PCT是现场总线+PLC+手操屏的集成产品,此产品充分利用了PLC的高稳定性,现场总线的率,以及手操屏的现场灵活控制,实现了公路隧道的稳定控制。
按照GB/T18567-2001的规定,隧道可编程控制器按照其安装位置的不同可分为隧道监控站内和隧道洞内的区域可编程控制器。
3.1.1隧道监控站内的可编成控制器是指:
a) 隧道监控系统的节点,公路交通监控子系统(隧道监控)的节点端机。
b) 与公路监控(分)远程通讯,执行(分)上位机的动作指令和本机的控制程序。
下图是福建漳龙路隧道群的网络,可以诠释隧道区域控制器和监控的网络通信连接。数据上传由主控本地控制器的以太网模块通过数字光端机直接与监控分连接,采用TCP/IP传输协议,使信息层数据共享。
图3-1 隧道群网络
3.1.2隧道洞内的区域可编程控制器是指:
a) 环网(或总线)拓扑结构的隧道监控子系统(区与监控)的节点端机;
b) 通过光、电传输介质的连接,执行隧道站上位机的动作指令和本机的控制程序。
图3-2是漳龙路大隧道的光线环网拓扑图
隧道的现场控制网络选用OMRON公司的controller bbbb工业级控制网络,具有高性和稳定性。采用4芯多模光缆,每个现场控制器通过Controller bbbb光纤接口模块连接构成多模光纤冗余环结构,其中2芯为备用,即环网上任何一点被截断,通信传输依然可以保持,保证了现场总线避免外界干扰,传输通畅,并提高了的性。
特点:
1)网络为对等网,任意节点故障不会影响干网运行。
2)光纤自愈环网的通讯速度2Mbps。
3)光纤ST头直接进模块,减少了中间环节,工作。
4)网络节点之间无须编程可以传输数据,便于今后检修与维护。
3.1.3隧道可编程序控制器PCT的功能
隧道可编程序控制器PCT的监控任务分成以下几个部分:
(1) 自动时通过检测交通、气象等参数,根据运算可得出交通状况,采用相应的控制方案。手动时控制计算机或手操屏根据实际情况确定交通模式。
(2) 通过现场总线,将车流量信息、CO/VI/TW信息送到CS1,在控制计算机中,生成通风工作状态和照明工作状态。
(3) 通风PLC从现场总线读取风机组启/停控制要求,进行风机组的现场控制。
(4) 照明PLC,根据照度进行洞内照明的控制或控制控制室的定时控制指令来控制照明。
3.2漳龙路隧道群的系统构成
本隧道群自动化方案采用控制计算机+隧道可编程序控制器YXY-RTU,控制计算机由多台互连的工业PC组成,构成隧道信息,负责隧道各种信息的汇集和处理、控制指令的产生和发布、隧道模拟大屏幕的控制、各种报表的生成及紧急事故的处理等任务,并进行整个系统的协调。隧道可编程序控制器采用北京云星宇交通工程公司的YXY-RTU,隧道可编程序控制器中,现场总线采用OMRON Controller bbbb,总控PLC为OMRON CS1-G-42H,现场PLC采用OMRON CS1-G-42H。网络由数据上传和现场控制网络组成。
4系统工作过程概述
光强检测仪测得反映光照度的4~20mA形式电信号,送到相应的隧道可编程序控制器PCT。由该控制器控制相应的照明开关(交流接触器),使洞内照度与洞外照度得到比较平缓的过渡。照明控制也可以采用按季节定时控制方式。每个控制点具有回检信号和报警信号,PLC通过现场总线将照明系统的现场检测结果返回到控制计算机,进行信息汇总、协调,并显示在隧道大屏幕上。
VI/CO/TW检测仪以4~20mA形式电信号,送到就近的隧道可编程序控制器,由现场总线返回到控制计算机,由控制计算机根据这些参数断定所开启的风机是否合适,进行合适的增加、减少或不变,修正风机控制规则表,同时将风机控制指令发送到风机控制器,在大屏幕中显示洞内环境信息。
车流量检测线圈以串行码信息的形式送入相应的隧道可编程序控制器,由现场总线返回到控制计算机,根据车流量决定风机开启组数,经现场总线下载到风机控制器,对风机组的启/停进行控制。风机控制器同时检测各个风机的回检信号和告警信号,将它们返回到控制计算机断定风机的运行是否正常,并在大屏幕中进行显示和整个通风系统的协调。
5控制软件的二次开发
PLC采用OMRON公司的CS1-G-42H系列产品,现场总线采用OMRON Controller bbbb现场总线,其软件是对CX-PROGRAMMER控制组态软件及通讯软件的二次开发,定义各个控制器的通讯地址,进行有关信息的交换。各个控制器的直接控制和检测软件根据系统的硬件来实现,可以用CX-PROGRAMMER的梯形图或语句表等语言来设计和实现。成功的OMRON CONTROLLER bbbb现场总线,使所有编程工作变得比较简单,大大缩短了开发和施工周期。
6小结
本系统由于采用了控制计算机+隧道可编程序控制器构成的隧道自动化控制方案,充分发挥了现场总线的灵活组态方式,使得整个系统的有用信息得到共享,便于系统集成和相关设备日常检修。同时Controller bbbb的高速度数据通讯和光纤自愈环网所带来的高性,使得整个监控系统十分适合隧道自动化系统;增加整个系统的抗干扰能力,缩短外部信号的引线长度和控制信号电缆长度,减少接线端子。这种监控方式较好地发挥了工业PC和PLC的各自优势,充分利用了工业PC在信息管理和处理上的强大能力及PLC在现场控制中的灵活性。