WinCE系统流程场景化设计方法研究与应用
2016-11-04马军霞丁国强
马军霞 张 铎 丁国强 熊 明
(郑州轻工业学院软件学院1,河南 郑州 450002;郑州轻工业学院电气信息工程学院2,河南 郑州 450002)
WinCE系统流程场景化设计方法研究与应用
马军霞1张铎2丁国强2熊明2
(郑州轻工业学院软件学院1,河南 郑州450002;郑州轻工业学院电气信息工程学院2,河南 郑州450002)
随着工业设备在复杂控制领域的不断发展,其控制系统越来越庞大。为了降低系统设计的复杂度,针对嵌入式控制系统的特点进行研究,提出了一种基于WinCE系统的流程场景化设计方法。该方法以应用场景为基础配置工作流程,通过有限状态机和多线程技术结合来实现动作机构自动化运行,并将其应用到触摸式工业分析仪控制系统的设计中。研究结果表明,该方法具有业务集中、结构松耦合、代码复用效率高的优点,适用于嵌入式控制系统的开发。
嵌入式控制系统WinCE系统流程场景化有限状态机多线程技术工业分析仪线性回归修正自动化
Linear regression correctionAutomation
0 引言
近年来,嵌入式系统得到了广泛的应用,但是其设计方法仍然相对滞后。由于嵌入式设备往往针对某一类应用场景进行单独的设计和定制,其设计思路和方法不能用于其他设备,将导致应用场合受到限制[1-2]。本文参考了企业管理信息系统中业务流程管理和流程自动化的方法[3-5],结合嵌入式设备软硬件协同设计的特点,对工业分析仪控制系统进行设计,并从中提炼出流程场景化的设计方法。该方法适用于基于微软公司嵌入式、移动计算平台基础(windows embedded compact,WinCE)的嵌入式控制系统,并以业务集中、结构松耦合的特点,为程序设计开发和维护升级提供了便利。
流程场景化设计是将系统工作流程与业务场景相结合的一种设计方法。通过对任务需求进行分析,把整个系统划分为多个功能模块,分别实现不同的功能。在每个工作场景下,对各自需要的功能模块进行组合,最后根据工作流程将这些场景组合起来,构成一个完整的处理过程。这就是流程场景化设计的总体思想,这种方法设计的程序具有业务集中、结构松耦合的特点。
流程场景化设计方法主要应用在嵌入式控制系统中,可以明显减少代码数量,提高代码复用率。在实现过程中,通过有限状态机建模、有限状态机和多线程结合的方式,可自动判断系统状态,实现复杂场景的切换控制,从而满足系统实时性、可扩展性和可靠性方面的要求。由于该方法对系统硬件没有特别的要求,理论上可满足大多数嵌入式系统的实际需要。
1 系统设计
根据流程场景化的方法,对基于WinCE的工业分析仪控制系统进行设计。系统硬件部分采用了SMART 210-S70触摸屏作为人机交互终端,配置了三星S5PV210的主处理器。该处理器采用ARM CortexTM-A8内核和ARM V7指令集,可实现2 000 DMIPS的高性能运算,完全满足了工业分析仪系统的需求。同时,该系统使用了58 mm热敏打印机进行数据输出,打印速度快、占用空间少。
在Windows 32位系统环境下,使用Microsoft Visual Studio 2005开发工具以及MFC类库对工业分析仪控制系统进行开发[6-7]。
工业分析仪控制系统可以划分为如下模块。
①交互界面模块:负责以表格形式实时更新试验结果、被选取坩埚的位置以及系统硬件状态指示等最直观的试验数据。
②工作测试模块:该模块是流程场景化方法应用的核心部分,分为水分试验、灰分试验以及挥发分试验三种,用户可根据需要选取相应的测试项目并检测,最后对试验结果进行分析,得出样品的成分含量。
③参数设置模块:负责试验前各种参数的设置,包括硬件通信接口及其波特率的设置、不同试验的加热温度和保持时间、PID参数设置、系统修正值设置等。
④系统调试模块:主要完成对系统硬件部分的独立调试,以保证系统硬件各部分的功能正常。
⑤数据管理模块:将每次试验完成后的分析结果保存在系统非易失储存器内,并根据用户需要提供数据的查询、上传及打印功能。
系统功能模块结构如图1所示。
图1 系统功能模块图Fig.1 Function module diagram of system
2 系统工作流程
根据测试需求,仪器会按照热重分析原理[8],遵循测试流程自主进行样品测试。试验启动后,仪器将逐项进行操作员选择的检测项目,并根据试验的不同阶段、不同类型提示操作员配合执行相关操作,直至检测完成,得到检测数据。
在系统初始化完成以后,开始执行系统自检、机构复位等操作,操作人员根据系统提示和实际需要设置合适的恒温温度、恒温时间及PID参数等,然后再根据系统提示称量空坩埚和煤样质量;经操作人员确认,仪器进入自动测试模式,利用分段式PID温度控制算法,精确控制加热温度达到并保持在设定值;待水分、灰分及挥发分试验达到相应的测试时间后,仪器将对样品进行冷却,再由天平进行称量;最后系统根据测量数据计算试样水分、灰分和挥发分等技术指标,将计算结果显示在触摸屏上的程序主界面中,并在后台自动保存到非易失存储器中。
在系统进行工作测试的过程中,负责项目测试的核心文件为EXPER.H以及EXPER.CPP。这两个文件主要规定了工分仪在检测过程中处于不同阶段时的动作过程控制。试验过程分为三个时期:准备期、试验期、结果期。准备阶段负责加热前的样品称重,试验阶段集中处理不同种类的试验,最后将准备阶段与试验阶段的检测数据进行比较并计算,得到试验结果。
系统流程如图2所示。
图2 系统流程图Fig.2 System flowchart
试验期试验又分为三种不同类型,分别是水分试验、灰分试验、挥发分试验,它们都是以热重法为分析原理,具有相似的试验步骤,仅在算法、加热温度、加热时间、检测过程等方面存在差异性。通过分析,每种试验可分为进入阶段、等待温度阶段、等待计时器阶段和离开测试阶段,在不同的阶段完成相应的动作。以水分试验为例,系统在进入阶段把水分PID参数送给系统,然后给高温炉内通入氮气,开始加热;在等待温度阶段,检测实际温度与设定温度差值,判断是否加热到预定值;当温度加热至预定值时,进入等待计时器阶段,利用PID分段控制算法,使温度保持在107 ℃,并计时保持30 min;计时完成后离开试验阶段,关闭氮气,对样品进行称重并计算水分结果。除放样和参数设置外,整个试验过程无需人工干预,均由系统自动完成,且可保证试验精度和安全性。
3 流程场景化技术内涵及特点
试验类型分为水分试验、灰分试验及挥发分试验三种,根据流程场景化设计方法,分别使之对应三种不同的场景:水分测试场景(CWaterState)、灰分测试场景(CAshState)和挥发分测试场景(CVolState)。每个场景下的流程相同,分为进入试验(StaEntry)、等待温度(StaWaitTemp)、等待计时(StaWaitTimer)、结束试验(StaLeave)。每个流程按照顺序执行设定好的动作,共同完成工业分析仪对煤样三种指标的自动化测量,其检测流程如图3所示。这种设计使得不同种类的试验可以复用代码,整个程序结构更加清晰,也减少了开发人员的工作量。
图3 检测流程场景化结构图Fig.3 Structure of process scenarios
3.1业务集中
流程场景化设计的特点之一就是业务集中。在称重处理中,由于不同场景下对被测样品的物理化学性质的测试需求有所不同,称量时要考虑坩埚带盖和不带盖这两种情况。在这两种情况下,分别进行空坩埚和坩埚加样品的称重,通过前后对比计算样品质量。如果按照试验流程顺序编写程序,会导致系统业务分散、条理性差的结果。针对这种情况,把试验阶段和准备阶段分开编写,用OnScalageProcess()函数统一处理坩埚和样品在水分、灰分、挥发分三种试验场景中各个阶段的称量过程;后期在试验过程中,只需调用该函数即可实现称重处理的功能,使整个系统体现出业务集中、结构松散的特点。
3.2结构松耦合
为了便于不同场景下对各模块的调用,工分仪控制系统采用松耦合的结构,其优点是模块之间依赖性很小,改变一个模块几乎不会影响到其他模块[8-10];在灵活性方面,它能够根据不同的业务需求灵活组合,减少开发成本。在可维护性方面,紧耦合系统因为其组件的接口与功能结构之间联系很紧密,当对程序某个部分进行修改时,系统会变得很脆弱;松耦合系统在改变程序某个部分时,其他组件仍能正常运行,便于研究人员后期调试。
在系统的灰分试验场景中,有经典法和快速法这两种检测方式。如果用户选择经典法加热,在第一阶段,系统缓慢升温至500 ℃,并保持30 min,第二阶段继续升温至815 ℃,保持在此温度下灼烧规定时间;如果是快速法加热,系统将直接升温至815 ℃,并在此温度下灼烧到规定时间。在对快速法进行设计时,仅需对经典法加热过程的StaWaitTemp()函数重新设定温度值,无需对系统其他组件进行改动,体现出松耦合结构的优越性。
3.3有限状态机与多线程技术
在对本程序项目试验阶段进行设计的过程中,研究人员参考了游戏开发中经常用到的有限状态机(finite state machine,FSM)的思想,并将这种设计思想和分析方法引入到工业分析仪的控制系统中。
有限状态机的本质是一种数学模型,用来描述有限多个状态以及在这些状态之间的转移和动作。一个完整的有限状态机由状态、事件、动作及状态转移函数等几个要素组成[11-12]。系统通过事件驱动在各个状态间迁移:从一个初始状态开始,系统接收到有效的事件输入,产生一个动作输出,经状态转移函数变换到一个新的状态。将这种机制用于软件设计中,控制复杂场景的切换,具有很好的适应性,可以使程序变得简洁高效、复用性强。
在对坩埚及样本进行称量的过程中,由于系统每次只能对一个坩埚进行称量,设计人员引入有限状态机抽象出称量过程的自动化流程。系统对待测坩埚的称量及对转盘的动作控制,是以用户预先设定的检测条件及待测坩埚数量为依据的。通过与串口通信,可得外部硬件设备信息,以判断状态机是否进行状态转移。系统按照升盘、转动定位、降盘、称重和复位这几个状态节点自动进行状态转换。UML有限状态机结构如图4所示。
图4 UML有限状态机图Fig.4 UML finite state machine
为保证对试验过程的实时监控,一方面,系统使用多线程技术来实时读取被测样品所处状态,并实时更新到主界面,在主界面上会有一个区域专门显示转盘位置,方便操作人员随时掌握试验进度;另一方面,在判断有限状态机是否进行状态转换时,读取线程周期性获得的状态数据,并将其作为状态转换的判断依据。在系统运行过程中,这些线程与负责程序主要流程的工作者线程和负责响应用户事件的用户接口线程相互独立,CPU按照优先级分时处理。利用MFC框架下的多线程技术与有限状态机结合,使得系统能够并发执行多个不同的业务流程,保证了测试流程的正确执行。
4 数据处理
系统在完成对煤样的水分、灰分、挥发分等指标的分析后,使用MFC类库中的CArchive类文件,以二进制的形式将分析结果自动保存在非易失存储器中。另外,系统也可以将分析结果通过标准以太网端口上传到远程服务器。用户可以通过局域网覆盖范围内的任何一台设备进行查询,大大提高了分析结果的实时性和有效性。
系统根据国标规定的计算公式[13],对检测数据进行分析计算。由于在高温和低温情况下坩埚的质量会发生变化,因此在工业分析仪的计算过程中,需要分别采集低温和高温下空坩埚质量、加样坩埚质量。此外,在测定水分、灰分时采用不加盖的坩埚数据,而在测定挥发分时采用加盖的坩埚数据。将0#坩埚与1#坩埚置于同等条件下进行测验,其中0#坩埚不放置样品,仅作为数据修正使用。对1#坩埚与0#坩埚分别称重,计算加热前的样品质量;在仪器内加热到指定温度,待持续到指定时间后,对托盘内的坩埚分别称重。通过0#坩埚加热前后的质量对比,可以得出坩埚容器质量随温度变化的系数。通过1#坩埚加热前后的质量变化,减去坩埚本体随温度变化量,则可得到高温加热后的试样残重。将加热后的试样残重与加热前的样品质量进行对比,即可得到1#坩埚中样品的水分或灰分含量。
对于挥发分含量的计算,只需将加盖的坩埚数据代入上述流程参与计算即可。
由于实际应用中存在温度和湿度等客观环境因素的影响[14],系统测得的结果可能会有偏差,因此需要对仪器设备进行线性回归修正。这就是通过测量标准煤样,在其水分、灰分以及挥发分的含量都已知的情况下,对仪器进行标定的过程。用户将标准煤样的标准数据输入后,系统自动计算和保存线性回归系数,并利用该回归系数数值对测试结果进行自动修正。
5 系统测试
将编写好的程序进行编译链接,生成解决方案。编译完成后,使用ActiveSync软件在PC端和硬件设备上同步调试程序。点击调试按钮后,PC端桌面和触摸屏上同时出现TYGF-6000工业分析仪系统主界面。联调过程中,利用单步执行监控程序执行过程,并在程序关键位置设置断点,检查执行的中间结果。经调试无误后再把系统软件装载到WinCE平台中,进行整机测试。
在参数设置完毕及各部件单项测试完成以后,进行工业分析仪的精确度测试。采用5组干基标准煤样和19组普通煤样,分别进行分析,全部测试过程严格按照GB/T 212-2008《煤的工业分析方法》的规定执行。5组干基标准煤样编号分别为GBW11103h、GBW11104h、GBW11107s、GBW11109j、GBW11110h,其标准煤样灰分及挥发分的分析结果如表1所示。
表1 标准煤样灰分和挥发分分析结果Tab.1 Analysis results of ash content and volatile component in standard coal samples
表1中,5组标准煤样的测量值均按照3次测量得出的平均值来计算,通过将平均测量值与给定标准值相比较,试验误差均小于0.2%,满足国标规定的精确度要求,说明工业分析仪可以进行准确测试。根据GB/T 212-2008《煤的工业分析法》中对煤样灰分、挥发分测试精密度的规定,本次设计所使用的工业分析仪其差值及重复性均在国标规定的再现性临界差及重复性限的范围内,表明其水分、灰分及挥发分三个指标的检测精度都能够满足国标要求。
6 结束语
本文提出了一种WinCE系统流程场景化设计方法。该方法将系统工作流程与业务场景相结合,可根据用户选择的应用场景灵活配置工作模块,具有结构松耦合、业务集中的特点;通过有限状态机和多线程技术结合的方式,自动判断动作状态,可实现系统动作的自动化控制。结合触摸式工业分析仪控制系统设计实例,进行了详细说明,验证了该方法对于嵌入式系统设计具有一定的优越性,对于同类应用开发也具有一定的参考价值。
[1] 肖中华,张扬,王靖鑫,等.基于WinCE 6.0嵌入式工业控制系统开发[J].工业控制计算机,2014,27(6):1-6.
[2] 赵琰.嵌入式软件设计方法与基本设计思路分析[J].电子技术与软件工程,2015(6):66.
[3] 张亚.基于QoS服务选择机制的设计与实现[D].长沙:国防科学技术大学,2007.
[4] 李泳驱.基于SOA的场景化网上银行系统[D].广州:中山大学,2014.
[5] 韦瑞录,覃能杰,麦艳红.场景化技术在智能工器具库房管理系统中的应用[J].广西电力,2015,38(1):63-65.
[6] 孔亚军.邓湘凤.基于ARM的煤质工业分析仪的设计[D].长沙:湖南大学,2007.
[7] XIONG Y H,JIANG T Y,ZOU X H.Automatic proximate analyzer of coal based on isothermal thermogravimetric analysis (TGA) with twin-furnace[J].Thermochimica Acta,2003(17):97-101.
[8] ZHANG L,GONG Y,LI Y F,et al.Development of a coal quality analyzer for application to power plants based on laser-induced breakdown spectroscopy [J].Spectrochimica Acta Part B: Atomic Spectroscopy,2015(11):167-173.
[9] BAGCHI S.Admission control and scheduling of remote processes in loosely-coupled distributed systems[J].Computers & Electrical Engineering,2014,40(7):1666-1682.
[10]CHAUDHARI M B,DIETRICH S W,ORTIZ J,et al.Towards a hybrid relational and XML benchmark for loosely-coupled distributed data sources[J].Journal of Systems and Software,2015,109(11):78-87.
[11]YEH C H,JIANG S J F,LIN C Y,et al.A new intra prediction with adaptive template matching through finite state machine[J].Journal of Visual Communication and Image Representation,2015,29(5):33-45.
[12]KIM J,KIM D.Accurate abandoned and removed object classification using hierarchical finite state machine[J].Image and Vision Computing,2015,44(12):1-14.
[13]GB/T 212-2008,煤的工业分析方法[S].北京:中国标准出版社,2008.
[14]SHI L,LIU Q Y,GUO X J,et al.Pyrolysis of coal in TGA: Extent of volatile condensation in crucible[J].Fuel Processing Technology,2014(5):91-95.
Research and Application of the WinCE- based Design Method for Process Scenarios
With the development of industrial facilities in sophisticated control field,related control systems are becoming increasingly large.In order to reduce the complexity of system design,the characteristics of embedded control systems are studied and a process scenarios design method based on WinCE is proposed.On the basis of application scenarios,the workflow is configured; automatic operation of actuating mechanism is implemented by combining finite state machine with multi-thread technology.The method is also applied in the design of control system of touch-type industrial analyzer.The result of research shows that the method has many advantages,including business concentrated,structure loosely coupled,and high efficiency of code reuse; it is suitable for development of embedded control systems.
Embedded control systemWinCE systemProcess scenariosFinite state machineMultithread technologyIndustrial analyzer
马军霞(1974—),女,2007年毕业于郑州大学软件与理论专业,获硕士学位,讲师;主要研究方向为计算机控制技术、软件工程开发应用。
TH-3;TP216+.1
ADOI:10.16086/j.cnki.issn 1000-0380.201610003
国家自然科学基金资助项目(编号:U1204603);
郑州轻工业学院研究生创新基金资助项目(编号:2014004)。