分析仪器流程编程和控制的方法

文档序号:6556091阅读:132来源:国知局
专利名称:分析仪器流程编程和控制的方法
技术领域
本发明涉及仪器的流程控制方法,特别涉及一种对分析仪器的流程进行编程和控制的方法。
背景技术
分析仪器的工作流程一般可分为采样、预处理、进样计量、混合、消解反应、测定、 消洗、数据处理、显示和通讯这十大功能(或者称为子流程)。现有的分析仪器均采用一个或多个控制器加若干执行器和传感器的系统构架来实施对上述各功能的控制,其分析流程都固化在控制软件中,或者只提供少量的几个参数入口以允许设计人员或用户对流程进行裁剪或更改运行参数。上述已知的设计具有下列不足由于分析流程都固化在控制软件中,仪器出厂后,系统只能提供少量的几个参数入口以允许用户对流程进行选择、裁剪或更改运行参数,当用户需要根据现场情况对分析流程的顺序进行前后调整、更改逻辑跳转条件、甚至重新设计时,往往需要设计人员将控制软件重新进行代码更改并编译,无法实现对流程的灵活编程。

发明内容
为了解决现有技术缺乏灵活编程能力的不足,本发明提供了一种实现分析仪器的检测流程编程和控制的方法。实现本发明的技术方案是一种用于分析仪器实现流程编程和控制方法,其特征在于将仪器按功能抽象划分成一个主流程控制单元和多个在控制技术或运算处理上可独立触发执行的子功能单元,所述子功能单元分别具有一个预先设定的子流程集,所述每个子流程集中至少有一个子流程可以被参数化。仪器的每一个任务流程均由所述各子功能单元的某些子流程按顺序排列而成,同时遵循流程条件跳转规则,仪器所有的任务流程和子流程的信息被记录在流程配置文件中并可被编辑。在仪器的初始化阶段,主流程控制单元将流程配置文件中的流程信息读出并解析后存入内存,当需要运行某个任务流程时,再将该任务流程的子流程序列调出运行,用户可通过编辑流程配置文件来实现对仪器流程的编程和修改。当某个任务流程需要被运行时,主流程控制单元将遵循流程控制算法,按该任务流程中预先编制好的子流程序列依次向各子功能单元发出子流程触发指令。所述的子流程触发指令分属下列五类操作指令发送指令、接收指令、运算指令、 界面交互指令和错误处理指令。子功能单元收到指令或处理完毕后将处理结果或状态存入指定的寄存器中或直接发送给主流程控制单元,主流程控制单元将根据各子流程所属的操作指令的类别和返回信息按流程控制算法执行相应的控制处理。所述子流程的五类操作指令均包含各自的操作属性参数,此外,各操作指令还包含下列五种流程控制属性中的一种或多种显示属性、延时属性、赋值属性、比较属性和跳转属性。所述流程配置文件记录了各子流程的下列信息子流程索引、该子流程的操作指令及操作属性参数、显示属性及显示属性参数、延时属性及延时属性参数、赋值属性及赋值属性参数、比较属性及比较属性参数、跳转属性及跳转属性参数;所述流程配置文件还记录了各任务流程的下列信息任务流程索引、该任务流程的名称、该任务流程的子流程索引序列。所述发送指令和接收指令的操作属性包含下列两个参数执行该指令的子功能单元在仪器系统总线上的地址、该指令所激活的子流程能被子功能单元识别的索引;另一种情况是所述发送指令和接收指令的操作属性包含下列两个参数执行该指令的子功能单元在仪器系统软件内的寻址地址、该指令所激活的子流程能被子功能单元识别的索引。所述发送指令的操作属性的参数包含按约定规则排列的能被子功能单元识别的子流程运行数据。所述发送指令的操作属性的参数包含子流程结束前子功能单元应当向主流程控制单元回报状态或结果的应答次数。所述发送指令的操作属性的参数包含下列信息子流程执行完毕的预计耗时,或者与所述预计耗时成比例关系的时间值。所述计算指令的操作属性的参数包含该计算指令所需运算的计算公式的表达式。所述界面交互指令的操作属性包含下列三个参数需要显示给用户的提示内容、 是否允许用户输入反馈的提示模式参数、以及等待用户回应的时间。所述错误处理指令的操作属性包含下列参数该错误的索引。所述五类操作指令的显示属性定义了主流程控制单元在执行操作指令之前和之后所做的显示操作,显示属性包含下列参数前显示模式、前显示内容、后显示模式、后显示内容。其中,前显示模式参数可输入两种选项不显示任何信息、显示前显示内容参数中定义的信息;后显示模式参数可输入三种选项不显示任何信息、显示后显示内容参数中定义的信息、显示子功能模块执行完该操作指令后的返回值。所述前显示内容是数种针对该操作指令的不同版本前显示内容的集合,所述后显示内容是数种针对该操作指令的不同版本后显示内容的集合,主流程控制单元可根据其他外部参数确定在仪器子流程运行之前和之后实际显示第几种版本的内容。所述五类操作指令的延时属性定义了主流程控制单元在执行操作指令之前和之后需要延时的时间,延时属性包含下列参数前延时模式、前延时时间、后延时模式、后延时时间。其中,前延时时间和后延时时间可输入一固定的时间数值或者一个包含延时时间数值的变量地址。前延时模式可输入两种选项按前延时时间参数定义的固定时间数值延时、 按前延时时间参数定义的变量值延时;后延时模式可输入两种选项按后延时时间参数定义的固定时间数值延时、按后延时时间参数定义的变量值延时。所述五类操作指令的赋值属性定义了主流程控制单元在执行操作指令之后需要执行的赋值操作,赋值属性包含下列参数赋值模式、被赋值变量的地址。赋值模式有两种选项不赋值、或者赋值。如赋值模式参数选择不赋值,主流程控制单元将不执行赋值操作; 如赋值模式参数选择赋值,主流程控制单元将该子流程的返回值赋给被赋值变量。
所述五类操作指令的比较属性定义了主流程控制单元在执行操作指令的赋值操作之后需要执行的比较操作,比较的结果将作为流程跳转操作的依据。其中,所述比较属性包含下列参数比较模式、上限值和下限值。所述比较模式有五种选项不比较、子流程返回值 < 下限值、下限值< 子流程返回值 < 上限值、上限值< 子流程返回值、子流程返回值< 下限值或者上限值<子流程返回值。所述五类操作指令的跳转属性定义了主流程控制单元在执行操作指令的比较操作之后根据比较结果将执行的流程跳转操作,所述跳转属性包含下列参数需要跳转到的子流程在流程配置文件中定义的子流程索引号所述流程控制算法按下列步骤执行1)定义子流程属性结构体,该结构体用于存储子流程操作属性参数和流程控制属性参数;2)当某个任务流程需要被执行时,由主流程控制单元读入该任务流程的子流程序列信息,并根据子流程步骤数生成一个子流程属性结构体数组^ep [i],然后依次将子流程序列中各子流程的操作属性参数和流程控制属性参数写中;3) i = 0,从子流程序列的第1步开始执行;4)开始执行第i步子流程,按Mep [i]中存储的该子流程延时属性参数执行前延时操作;5)按Mep[i]中存储的该子流程显示属性参数执行前显示操作;6)按Mep[i]中存储的该子流程操作属性向子功能单元发送操作指令,与子功能单元进行通讯并实施控制,最后获得子功能单元执行完该子流程后返回的返回值,如果执行该子流程时出现错误,则返回故障错误码;7)判断返回值是否是故障错误码,如果是故障错误码,则进行相应的错误处理流程并跳转到第12步结束;如果不是故障错误码,则按Mep [i]中存储的该子流程赋值属性参数将子流程返回值赋给指定变量,流程继续往下执行;8)按Mep [i]中存储的该子流程显示属性参数执行后显示操作;9)按Mep [i]中存储的该子流程延时属性参数执行后延时操作;10)判断是否满足Mep [i]中存储的比较和跳转属性参数定义的流程跳转条件, 如果满足,则执行子流程跳转操作,此时i值将被重新赋值为需跳转到的子流程在子流程序列中的索引号;如果不满足跳转条件,则i = i+Ι,继续执行下一步操作;11)判断Mep[i]是否是任务流程最后的结束子流程,如果不是,则跳转到第4步继续执行下一步子流程;如果已经到达最后的结束子流程,则执行第12步;12)任务流程结束。本发明与现有技术相比,具有以下有益效果1.本发明的应用使得仪器在出厂后,用户可通过更改仪器的流程配置文件米更改仪器的分析流程,不需要软件人员重新对系统控制软件进行代码变更和编译。允许更改的操作包括调整分析流程的先后顺序、增加或删除子流程步骤、更改逻辑跳转条件、更改各子流程的前后延时时间和显示内容、重新设计分析流程等。本发明扩展了仪器的功能,增强了仪器的灵活性和可扩展性,为仪器生产商快捷、低成本地为用户提供流程定制服务提供了技术基础。
2.基于本发明的方法,设计人员在仪器的研发阶段可对仪器流程进行高级编程, 大大缩短开发测试周期,提高研发效率。
具体实施例方式一种水质分析仪器,用于检测水样中重金属离子六价铬的浓度,其基本的分析原理是比色法,检测方法是标准曲线法。具体的检测过程分为曲线标定和待测水样测量两步 首先测得一空白标液的显色前后吸光度的差为ΔAtl,然后再测得含有一定六价铬离子浓度 C1的标液在显色前后吸光度的差为AA1,利用空白标液的浓度、(^、八&和AA1可做出一标准曲线,这一工作通常被称为曲线标定;基于比色分析的郎伯-比尔定律,如果待测溶液在显色前后吸光度差值测得为Δ Α,则待测溶液的六价铬离子浓度C为C = C1* Δ A/ ( Δ A1- Δ A0)通过测量待测溶液显色前后的吸光度差值Δ Α,则计算得到待测溶液的六价铬离子浓度C。
在仪器的曲线标定工作已经完成后,通常最简单的测量任务流程如下
水样测量流程开始仪器进50毫升水样入比色皿; 测量该水样未加入显色剂前的吸光度Atl ; 仪器进1毫升显色剂二苯碳酰二胼溶液; 等待显色反应3分钟,然后测量显色后的吸光度A ; 计算得到待测溶液显色前后的吸光度差值为ΔΑ = A-A0 ; 计算得到待测溶液的六价铬离子浓度为C = C1^AAZ(AA1-AA0); 仪器用50毫升蒸馏水清洗比色皿; 水样测量流程结束。
为实现对上述流程的编程和控制,首先在主流程控制单元的软件中定义一个公共变量数组V[i]、一个任务流程结构体数组Task[j]和一个子流程属性结构体数组乂印DO。在仪器的流程配置文件中,与上述测量任务相关的语句如下。其中约定V[1]为任务流程运行标志符;V[2]为空白标液显示前后的吸光度差值;V[3]为含有一定六价铬离子浓度C1的标液在显示前后的吸光度差值;V[4]为待测水样在显色前后吸光度的差值; V[5]为待测水样在显色前吸光度的值;V[6]为待测水样在显色后吸光度的值;V[7]为标液六价铬离子浓度值C1 ;V[8]计算得到的待测水样的六价铬含量浓度值。本实例中代码来源于实际产品中的类真实代码,其中“”内的内容为注释氺氺1. Oj氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺[Step]子流程信息行起始标示段1 = CALCULATE (VI = 1) ;DELAY (0,0,0,0) ;DISPLAY (1,1# 流程开始邶流程开始, 0,1#2#) ;VALUE (1,VI) ;COMPARE (0,0. 00,0. 00) JUMP (0,0,0);子流程索引号=1;操作指令计算指令-流程开始,将任务流程运行标志位置“ 1” ;延时属性无前后延时;显示属性前显示分2级显示,无后显示;
赋值属性将计算值赋给变量V[l];比较属性不比较;跳转属性不跳转
2 = CALCULATE (VI = 0) ;DELAY (0,0,0,0) ;DISPLAY (1,1# 流程结束邶流程结束, 0,1#2#) ;VALUE (1,VI) ;COMPARE (0,0. 00,0. 00) JUMP (0,0,0);子流程索引号=2;操作指令计算指令-流程结束,将任务流程运行标志位置“0” ;延时属性无前后延时;显示属性前显示分2级显示,无后显示;赋值属性将计算值赋给变量V[l];比较属性不比较;跳转属性不跳转3 = SEND (0030,3001,01000000,2,20) ;DELAY (1,30,0,0) ;DISPLAY(1,1# 测最显色前吸光度邶显色前吸光度=,2,1#2#0) ;VALUE(1,V5) ;COMPARE(0,0. 00,0. 00) ;JUMP(0, 0,0);子流程索引号=3;操作指令发送指令-测定单元测量显色前吸光度;操作属性测定子功能单元地址为0030,测量吸光度的子流程在子功能单元中的索引为3001,子功能单元收到指令后有2次应答,该子流程的运行时间预计为20秒, “01000000”是子流程运行数据,表示测量第一通道的吸光度值;延时属性前延时30秒,无后延时;显示属性前显示分2级显示,后显示第一级不显示,第二级显示返回的吸光度值;赋值属性将计算值赋给变量V[5];比较属性不比较;跳转属性不跳转4 = SEND (0030,3001,01000000,2,20) ;DELAY(1,180,0,0) ;DISPLAY(1,1#测量比色后吸光度邶比色后吸光度=,2,1#2#0) ;VALUE(1,V6) ;COMPARE(0,0. 00,0. 00) ;JUMP(0, 0,0);子流程索引号=4;操作指令发送指令-测定单元测量显色后吸光度;操作属性测定子功能单元地址为0030,测量吸光度的子流程在子功能单元中的索引为3001,子功能单元收到指令后有2次应答,该子流程的运行时间预计为20秒, “01000000”是子流程运行数据,表示测量第一通道的吸光度值;延时属性前延时180秒,无后延时;显示属性前显示分2级显示,后显示第一级不显示,第二级显示返回的吸光度值;赋值属性将计算值赋给变量V[6];比较属性不比较;
跳转属性不跳转
5 = SEND (0010,1001,05015090,2,120) ;DELAY (0,0,0,0) ;DISPLAY (1,1# 进水样邶进 50 毫升水样,1,1#2# 进液完毕);VALUE(0,0) ;COMPARE(0,0. 00,0. 00) JUMP(0,0, 0);子流程索引号=5;操作指令发送指令-进液计量单元向比色皿中进液50毫升待测水样;操作属性进液子功能单元地址为0010,50毫升精确进液计量子流程在子功能单元中的索引为1001,子功能单元收到指令后有2次应答,该子流程的运行时间预计为120 秒,“05015090”是子流程运行数据,表示从第5 口进液入第1 口,进液量为50毫升,进液速度为90转/分钟;延时属性无前后延时;显示属性前显示分2级显示,后显示第一级不显示,第二级显示“进液完毕”;赋值属性不赋值;比较属性不比较;跳转属性不跳转6 = SEND (0010,1002,06010105,2,100) ;DELAY(0,0,0,0) ;DISPLAY(1,1# 进显色剂邶进 1 毫升显色剂,1,1把# 进液完毕);VALUE (0,0) ;COMPARE (0,0. 00,0. 00) ;JUMP(0, 0,0);子流程索引号=6;操作指令发送指令-进液计量单元向比色皿中进液1毫升显色剂;操作属性进液子功能单元地址为0010,1毫升进液计量子流程在子功能单元中的索引为1002,子功能单元收到指令后有2次应答,该子流程的运行时间预计为100秒, “06010105”是子流程运行数据,表示从第6 口进液入第1 口,进液量为1毫升,进液速度为 5转/分钟;延时属性无前后延时;显示属性前显示分2级显示,后显示第一级不显示,第二级显示“进液完毕”;赋值属性不赋值;比较属性不比较;跳转属性不跳转7 = SEND (0010,1003,04015090,2,150) ;DELAY (0,0,0,0) ;DISPLAY (1,1# 清洗比色皿姊进50毫升蒸馏水清洗比色皿,1,1把#清洗完毕);VALUE (0,0) ;COMPARE (0,0. 00, 0. 00) JUMP (0,0,0);子流程索引号=7;操作指令发送指令-进液计量单元向比色皿中进液50毫升蒸馏水清洗比色皿并排空;操作属性进液子功能单元地址为0010,10毫升快速进液计量子流程在子功能单元中的索引为1003,子功能单元收到指令后有2次应答,该子流程的运行时间预计为150 秒,“04015090”是子流程运行数据,表示从第4 口进液入第1 口,进液量为50毫升,然后再排空,进液和排液速度均为90转/分钟;
延时属性无前后延时;显示属性前显示分2级显示,后显示第一级不显示,第二级显示“清洗完毕”;赋值属性不赋值;比较属性不比较;跳转属性不跳转
8 = CALCULATE (V4 = V6-V5) ;DELAY(0,0,0,0) ;DISPLAY (0,1#2#,0,1#2#); VALUE (1,V4) ;COMPARE (0,0. 00,0. 00) JUMP (0,0,0);子流程索引号=8;
操作指令计算指令-计算得到待测溶液显色前后的吸光度差值为Δ A = AO-A ;
延时属性无前后延时;
显示属性无前后显示;
赋值属性将计算值赋给变量V [4];
比较属性不比较;
跳转属性不跳转

9 = CALCULATE(V8 = V7*V4/(V3-V2)) ;DELAY(0,0,0,0) ;DISPLAY(1,1#待测水样
六价铬离子浓度=姊待测水样六价铬离子浓度=,2,1#拟#0) ;VALUE(1, V8) ;COMPARER, 0. 00,0. 00) JUMP (0,0,0);子流程索引号=8;操作指令计算指令-计算得到待测溶液六价铬离子浓度C = C1^AA/ (AA1-AA0);延时属性无前后延时;显示属性无前后显示;赋值属性将计算值赋给变量V[8];比较属性不比较;跳转属性不跳转[Task]任务流程信息行起始标示段1 =测量水样浓度,(1,5,3,6,4,7,8,9,2);任务流程索引号=1;任务流程的名称=测量水样浓度;任务流程的子流程索引序列=(1,5,3,6,4,7,8,9,2)2=其他任务流程信息............氺氺1. 0 ^ J氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺以上为仪器最简单的测量任务流程的配置文件信息。如果用户需要在显色前加入 1毫升的屏蔽剂,则只需在流程配置文件1. 0的基础上添加一行子流程并更改测量任务流程序列即可,改动如下氺氺2. Oj氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺[Step]子流程信息行起始标示段
......10 = SEND (0010,1002,07010105,2,100) ;DELAY (0,0,0,0) ;DISPLAY (1,1# 进屏蔽剂邶进 1 毫升屏蔽剂,1,1把# 进液完毕);VALUE (0,0) ;COMPARE (0,0. 00,0. 00) ;JUMP(0, 0,0);子流程索引号=10;操作指令发送指令-进液计量单元向比色皿中进液1毫升屏蔽剂;操作属性进液子功能单元地址为0010,1毫升进液计量子流程在子功能单元中的索引为1002,子功能单元收到指令后有2次应答,该子流程的运行时间预计为100秒, “07010105”是子流程运行数据,表示从第7 口进液入第1 口,进液量为1毫升,进液速度为 5转/分钟;延时属性无前后延时;显示属性前显示分2级显示,后显示第一级不显示,第二级显示“进液完毕”;赋值属性不赋值;比较属性不比较;跳转属性不跳转[Task]任务流程信息行起始标示段1 =测量水样浓度,(1,5,10,3,6,4,7,8,9,2);在子流程5,3间添加了新的子流程10......氺氺2. 0 ^ J氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺如果用户需要在显色时实时观察吸光度的变化曲线,则可在流程配置文件版本 2. 0的基础上添加一行子流程,并在流程配置文件中做如下更改氺氺3. Oj氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺[Step]子流程信息行起始标示段......11 = RECEIVE (0030,3002,180) ;DELAY (0,0,0,0) ;DISPLAY (1,1# 实时监测吸光度邶实时监测吸光度 180 秒,0,1#2#) ;VALUE (0,0) ;COMPARE (0,0. 00,0. 00) JUMP (0,0,0);子流程索引号=11;操作指令接收指令-要求测定子功能单元在180秒内不间断地返回吸光度的实时监测值;操作属性测定子功能单元地址为0030,实时回报吸光度子流程在子功能单元中的索引为3002,子功能单元收到指令后在180秒内不间断地返回吸光度的实时监测值;延时属性无前后延时;显示属性前显示分2级显示,后显示不显示;赋值属性不赋值;比较属性不比较;跳转属性不跳转[Task]任务流程信息行起始标示段
1 =测量水样浓度,(1,5,10,3,6,11,4,7,8,9,2);在子流程6,4间添加了新的子流程11......**流程配置文件版本3.0结束*******************************************如果用户需要在流程中加入错误判断处理,例如当显色前电压不正常时,仪器将询问用户是否需要停止流程并报错,则可在流程配置文件版本3. 0的基础上做如下更改**流程配置文件版本4.0********************************************[Step]子流程信息行起始标示段......3 = SEND (0030,3001,01000000,2,20) ;DELAY(0,30,0,0) ;DISPLAY(1,1# 测量显色前吸光度邶显色前吸光度=,2,1#2#0) ;VALUE(1,V5) ;COMPARE(4, 3. 00,5. 00) ;JUMP(1, 2,9);子流程索引号=3;操作指令发送指令-测定单元测量显色前吸光度;比较属性执行比较操作,参数“4”表示主流程控制单元将判断该指令的返回值 V[5]是否小于下限值3. 00或者大于上限值5. 00,如果满是判断条件,则执行跳转属性中定义的操作;跳转属性“1”表示将执行跳转操作,“2”表示向后跳转,“12”表示跳转到索引为 “12”的子流程......12 = PROMPT( “显示前吸光度异常,是否继续?选择[是]继续,选择[否] 则报错并停止流程”,1,10) ;DELAY(0,0,0,0) ;DISPLAY(0,1#2#,0,1#2#) ;VALUE(0,0); COMPARE (2,0. 00,2. 00) ;JUMP(1,1,9);子流程索引号=12;操作指令界面交互指令-当显色前电压不正常时,仪器将弹出一提示框,询问用户是否需要继续,或者停止流程并报错;操作属性引号内文字为提示框内的提示信息,“1”表示提示模式为允许用户选择 “是”或“否”,选择“是”则返回1,选择“否”则返回-1,“10”表示仪器等待10秒,如用户不输入,则10秒后提示框自动关闭并返回“1”;延时属性无前后延时;显示属性无前后显示;赋值属性不赋值;比较属性“2,0.00,2.00”表示提示框返回“1”后则满足判断条件 (0. 00彡1彡2. 00),可执行跳转;跳转属性“1”表示将执行跳转操作,“1”表示向前跳转,“9”表示跳转到索引为 “9”的子流程13 = ERROR(301) ;DELAY(0,0,0,0) ;DISPLAY(1,1# 显色前吸光度错误邶显色前吸光度错误,0,1#2#) ;VALUE (0,0) ;COMPARE (5,0. 00,0. 00) ;JUMP(1,1,9);
子流程索引号=13;操作指令错误处理指令-显色前吸光度错误,要求进行错误处理;操作属性“301”是错误代码;延时属性无前后延时;显示属性前显示分2级显示,无后显示;赋值属性不赋值;比较属性“5”表示强行执行跳转;跳转属性“1”表示将执行跳转操作,“1”表示向后跳转,“9”表示跳转到索引为 “9”的子流程[Task]任务流程信息行起始标示段1 =测量水样浓度,(1,5,10,3,6,11,4,7,8,9,2,12,13);在子流程2后面添加了新的界面交互子流程12和错误处理子流程13......氺氺4. 0 ^ J氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺在仪器的初始化阶段,主流程控制单元将上述流程配置文件中的流程信息读出并解析后存入内存,当需要运行某个任务流程时,再将该任务流程的子流程序列调出运行,如上所示,用户可通过编辑流程配置文件来实现对仪器流程的编程和修改,而不需要对控制软件重新进行代码更改和编译调试;当某个任务流程需要被运行时,主流程控制单元将遵循流程控制算法,按该任务流程中预先编制好的子流程序列依次向各子功能单元发出子流程触发指令。所述流程控制算法按下列步骤执行1)定义子流程属性结构体,该结构体用于存储子流程操作属性参数和流程控制属性参数;2)当某个任务流程需要被执行时,由主流程控制单元读入该任务流程的子流程序列信息,并根据子流程步骤数生成一个子流程属性结构体数组^ep [i],然后依次将子流程序列中各子流程的操作属性参数和流程控制属性参数写中;3) i = 0,从子流程序列的第1步开始执行;4)开始执行第i步子流程,按Mep[i]中存储的该子流程延时属性参数执行前延时操作;5)按Mep [i]中存储的该子流程显示属性参数执行前显示操作;6)按Mep[i]中存储的该子流程操作属性向子功能单元发送操作指令,与子功能单元进行通讯并实施控制,最后获得子功能单元执行完该子流程后返回的返回值,如果执行该子流程时出现错误,则返回故障错误码;7)判断返回值是否是故障错误码,如果是故障错误码,则进行相应的错误处理流程并跳转到第12步结束;如果不是故障错误码,则按Mep [i]中存储的该子流程赋值属性参数将子流程返回值赋给指定变量,流程继续往下执行;8)按Mep [i]中存储的该子流程显示属性参数执行后显示操作;9)按Mep [i]中存储的该子流程延时属性参数执行后延时操作;
10)判断是否满足Mep [i]中存储的比较和跳转属性参数定义的流程跳转条件, 如果满足,则执行子流程跳转操作,此时i值将被重新赋值为需跳转到的子流程在子流程序列中的索引号;如果不满足跳转条件,则i = i+Ι,继续执行下一步操作;11)判断Mep[i]是否是任务流程最后的结束子流程,如果不是,则跳转到第4步继续执行下一步子流程;如果已经到达最后的结束子流程,则执行第12步;12)任务流程结束。这里公开的实施例是示例性的,其仅是为了对本发明进行解释说明,而并不是对本发明的限制,本领域或技术人员可以预见的改良和扩展(例如流程配置文件中各操作指令和属性名称的改变、流程配置文件的语法调整、各属性具体参数值所映射的物理意义的定义等)都包含在本发明的保护范围之内。
权利要求
1.一种用于分析仪器实现流程编程和控制的方法,其特征在于将仪器按功能抽象划分成一个主流程控制单元和多个在控制技术或运算处理上可独立触发执行的子功能单元, 所述子功能单元分别具有一个预先设定的子流程集,所述每个子流程集中至少有一个子流程可以被参数化;仪器的每一个任务流程均由所述各子功能单元的某些子流程按顺序排列而成,同时遵循流程条件跳转规则,仪器所有的任务流程和子流程的信息被记录在流程配置文件中并可被编辑;在仪器的初始化阶段,主流程控制单元将流程配置文件中的流程信息读出解析后存入内存,当需要运行某个任务流程时,再将该任务流程的子流程序列调出运行,用户可通过编辑流程配置文件来实现对仪器流程的编程利修改;当某个任务流程需要被运行时,主流程控制单元将遵循流程控制算法,按该任务流程中预先编制好的子流程序列依次向各子功能单元发出子流程触发指令,所述的子流程触发指令分属下列五类操作指令发送指令、接收指令、运算指令、界面交互指令和错误处理指令,子功能单元收到指令或处理完毕后将处理结果或状态存入指定的寄存器中或直接发送给主流程控制单元,主流程控制单元将根据各子流程所属的操作指令的类别和返回信息按流程控制算法执行相应的控制处理。
2.根据权利要求1所述的实现分析仪器流程编程和控制的方法,其特征在于所述子流程的五类操作指令均包含各自的操作属性参数,此外,各操作指令还包含下列五种流程控制属性中的一种或多种显示属性、延时属性、赋值属性、比较属性和跳转属性。
3.根据权利要求1所述的实现分析仪器流程编程和控制的方法,其特征在于所述流程配置文件记录了各子流程的下列信息子流程索引、该子流程的操作指令及操作属性参数、显示属性及显示属性参数、延时属性及延时属性参数、赋值属性及赋值属性参数、比较属性及比较属性参数、跳转属性及跳转属性参数。
4.根据权利要求1所述的实现分析仪器流程编程和控制的方法,其特征在于所述流程配置文件记录了各任务流程的下列信息任务流程索引、该任务流程的名称、该任务流程的子流程索引序列。
5.根据权利要求2所述的实现分析仪器流程编程和控制的方法,其特征在于所述发送指令和接收指令的操作属性包含下列两个参数执行该指令的子功能单元在仪器系统总线上的地址、该指令所激活的子流程能被子功能单元识别的索引。
6.根据权利要求2所述的实现分析仪器流程编程和控制的方法,其特征在于所述发送指令和接收指令的操作属性包含下列两个参数执行该指令的子功能单元在仪器系统软件内的寻址地址、该指令所激活的子流程能被子功能单元识别的索引。
7.根据权利要求2所述的实现分析仪器流程编程和控制的方法,其特征在于所述发送指令的操作属性的参数包含按约定规则排列的能被子功能单元识别的子流程运行数据。
8.根据权利要求2所述的实现分析仪器流程编程和控制的方法,其特征在于所述发送指令的操作属性的参数包含子流程结束前子功能单元应当向主流程控制单元回报状态或结果的应答次数。
9.根据权利要求2所述的实现分析仪器流程编程和控制的方法,其特征在于所述发送指令的操作属性的参数包含下列信息子流程执行完毕的预计耗时,或者与所述预计耗时成比例关系的时间值。
10.根据权利要求2所述的实现分析仪器流程编程和控制的方法,其特征在于所述计算指令的操作属性的参数包含该计算指令所需运算的计算公式的表达式。
11.根据权利要求2所述的实现分析仪器流程编程利控制的方法,其特征在于所述界面交互指令的操作属性包含下列两个参数需要显示给用户的提示内容、是否允许用户输入反馈的提示模式参数。
12.根据权利要求2所述的实现分析仪器流程编程和控制的方法,其特征在于所述错误处理指令的操作属性包含下列参数该错误的索引。
13.根据权利要求2所述的实现分析仪器流程编程和控制的方法,其特征在于所述五类操作指令的显示属性定义了主流程控制单元在执行操作指令之前和之后所做的显示操作,显示属性包含下列参数前显示模式、前显示内容、后显示模式、后显示内容;其中,前显示模式参数可输入两种选项不显示任何信息、显示前显示内容参数中定义的信息;后显示模式参数可输入三种选项不显示任何信息、显示后显示内容参数中定义的信息、显示子功能模块执行完该操作指令后的返回值。
14.根据权利要求13所述的实现分析仪器流程编程和控制的方法,其特征在于所述前显示内容是数种针对该操作指令的不同版本前显示内容的集合,所述后显示内容是数种针对该操作指令的不同版本后显示内容的集合,主流程控制单元可根据其他外部参数确定在仪器子流程运行之前和之后实际显示第几种版本的内容。
15.根据权利要求2所述的实现分析仪器流程编程和控制的方法,其特征在于所述五类操作指令的延时属性定义了主流程控制单元在执行操作指令之前和之后需要延时的时间,延时属性包含下列参数前延时模式、前延时时间、后延时模式、后延时时间;其中,前延时时间和后延时时间可输入一固定的时间数值或者一个包含延时时间数值的变量地址。
16.根据权利要求2所述的实现分析仪器流程编程和控制的方法,其特征在于所述五类操作指令的赋值属性定义了主流程控制单元在执行操作指令之后需要执行的赋值操作, 赋值属性包含下列参数赋值模式、被赋值变量的地址;赋值模式有两种选项不赋值、或者赋值;如赋值模式参数选择不赋值,主流程控制单元将不执行赋值操作;如赋值模式参数选择赋值,主流程控制单元将该子流程的返回值赋给被赋值变量。
17.根据权利要求2所述的实现分析仪器流程编程利控制的方法,其特征在于所述五类操作指令的比较属性定义了主流程控制单元在执行操作指令之后需要执行的比较操作, 比较的结果将作为流程跳转操作的依据;其中,所述比较属性包含下列参数比较模式、上限值利下限值;所述比较模式有五种选项不比较、子流程返回值<下限值、下限值<子流程返回值< 上限值、上限值< 子流程返回值、子流程返回值《下限值或者上限值 <子流程返回值。
18.根据权利要求2所述的实现分析仪器流程编程和控制的方法,其特征在于所述五类操作指令的跳转属性定义了主流程控制单元在执行操作指令的比较操作之后根据比较结果将执行的流程跳转操作,所述跳转属性包含下列参数需要跳转到的子流程在流程配置文件中定义的子流程索引号。
19.根据权利要求1所述的实现分析仪器流程编程和控制的方法,其特征在于所述流程控制算法按下列步骤执行1)定义子流程属性结构体,该结构体用于存储子流程操作属性参数和流程控制属性参数;2)当某个任务流程需要被执行时,由主流程控制单元读入该任务流程的子流程序列信息,并根据子流程步骤数生成一个子流程属性结构体数组^ep [i],然后依次将子流程序列中各子流程的操作属性参数和流程控制属性参数写入Mep [i]中;3)i= 0,从子流程序列的第1步开始执行;4)开始执行第i步子流程,按Mep[i]中存储的该子流程延时属性参数执行前延时操作;5)按乂印[1]中存储的该子流程显示属性参数执行前显示操作;6)按乂印[1]中存储的该子流程操作属性向子功能单元发送操作指令,与子功能单元进行通讯并实施控制,最后获得子功能单元执行完该子流程后返回的返回值,如果执行该子流程时出现错误,则返回故障错误码;7)判断返回值是否是故障错误码,如果是故障错误码,则进行相应的错误处理流程并跳转到第12步结束;如果不是故障错误码,则按Mep[i]中存储的该子流程赋值属性参数将子流程返回值赋给指定变量,流程继续往下执行;8)按乂印[1]中存储的该子流程显示属性参数执行后显示操作;9)按乂印[1]中存储的该子流程延时属性参数执行后延时操作;10)判断是否满足Mep[i]中存储的比较和跳转属性参数定义的流程跳转条件,如果满足,则执行子流程跳转操作,此时i值将被重新赋值为需跳转到的子流程在子流程序列中的索引号;如果不满足跳转条件,则i = i+Ι,继续执行下一步操作;11)判断Mep[i]是否是任务流程最后的结束子流程,如果不是,则跳转到第4步继续执行下一步子流程;如果已经到达最后的结束子流程,则执行第12步;12)任务流程结束。
全文摘要
一种对分析仪器的流程进行编程和控制的方法,该方法将仪器按功能抽象划分成一个主流程控制单元和多个子功能单元,每一个任务流程均由各子功能单元的某些子流程按顺序排列而成,同时遵循流程条件跳转规则,仪器所有的任务流程和子流程的信息被记录在流程配置文件中并可被编辑。本发明扩展了仪器的功能,增强了仪器的灵活性和可扩展性,为仪器生产商快捷、低成本地为用户提供流程定制服务提供了技术基础。
文档编号G06F9/44GK102270127SQ20111014109
公开日2011年12月7日 申请日期2011年5月30日 优先权日2011年5月30日
发明者李志超 申请人:桂林欧博仪器技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1