70

智能分析仪器中的小语言环境设计

2020-5-30

用于工业过程中组分含量检测的智能型分析仪器具有在线下多组分检测和方便地与DCS系统构建信息通讯的功能从而实现以物流成分含量为控制目标的直接质量控制系统。由于仪器所用的工业场合不同对于仪器实现的功能要求可能不同除了其嵌入式系统应设置各种通用功能选择外还应具备可用于源程序编程和执行的小语言环境从而提高仪器的性能及其适用性。为此在基于PC/104的国产双通道多流路防爆型工业色谱仪中,设计了小语言环境。用户可通过编辑页面用普通BASIC语句对仪器就分析操作激据处理、报警预置、信息通信等功能需求进行程序编写该程序在环境编译系统支持下,可于在线分析的时间列表中直接运行,也可在编辑页面中离线运行从而实现用户在特定场合下对工业色谱仪的功能需求。本文介绍小语言环境在工业色谱仪PC/104嵌入式系统中的实现环境的结构与组成。由于仪器为长期在线下的实时分析因此在小语言环境下源程序的编译和执行均需将可靠运行和减少对CPU的占有机时作为主要指标来设计。

  2小语言环境组成PC/104是一种微型化的PC机。作为其嵌入式功能的小语言环境采用C语言编写编译程序。环境的设计基于计算机编译原理由源程序文本编辑器和解释器两部分组成。一般编译器采用较为接近自然语法的高级设计语言编写源程序,在借助于特定的编译程序软件将它翻译成机器语言程序,即生成目标程序。

  而本嵌入式编译系统并不产生目标程序而是在调用源程序时雁据源程序语言定义边解释边执行;由于没有代码生成,语言分析较为简单适用于工业色摺仪在线工作的实时特性,也节省了对内存空间的占用而许多用于编译程序的构造技术也同样适用于解gy释程序。

  文本编辑器为用户提供源程序的编写的操作界面。源程序的编写模式为易于学习掌握的BASIC程序。为该文本编辑器的界面显示图,可通过工业色谱仪的仪表键盘输入源程序界面下方的软键用于选择从文档调入、保存、删除、运行源程序的功能。利用嵌入式系统为仪器提供的通信功能用户可在上位PC机或DCS系统的操作平台上编写好源程序,通过RS485或网络接口送入工业色谱仪系统。前者由于系统的限制,注释语句只能使用英文后者则可通过各种文本编写软件生成源程序,注释语句可以是汉字,以方便阅读。嵌入式系统在固态盘中专□为小语言环境设置了源程序的存储空间。

  技术创新语法分析令、运算命令、仪器操作命令。控制类命令和运算命令为基本BASIC的子集控制命令含常用的IF语句、FOR循环、GOTO跳转、显示、打印和注释语句逻辑命令含常用的算术、指数、对数运算语句等这样可以基本满足对运算操作的需要;仪器操作命令为满足分析过程中功能要求所设置主要为组分结果运算、流路切换、报警处理、实时钟操作等命令。由这些命令组合成的源程序可在仪器的时间列表中直接在线运行,以实现用户对工业色谱仪的操作控制和谱峰处理功能要求也可以在文本编辑器界面上运行此时可在界面上看到源程序的运行状况对仪器来讲则处于离线状态。

  2.2解释器解释器的编辑过程经过分析和执行两个阶段。分析阶段包括词法分析语法分析和语义分析。语法分析将不产生分析树输出而是在分析过程中解释并执行源程序*终输出为运行结果其结构框图如所示。

  源程序17字符序列:丨词法分析二单词序列:丨解释执行卩二执行运行结果BASIC源程序可以看成是由一串字符流组成分为命令字、变量名、数字和分界符四大类被统称为记号(token)。词法分析从字符流中识别出记号形成单词序列交由解释器语法分析和执行。词法分析功能由gettoken函数芫成。其工作原理和流程可参阅。

  由于该分析器对串字符流逐字符分析,因此运行频繁,占用机时较多放需采取优化措施。

  22语法分析器语法分析器将表达式规则转变为一组相互递归的链函数以形成递归下降的语法分析器,函数名为getexp,下面给出该分析器的部分分析程序f其中LevelO至Level6为运算类操作primitive执行数字、变量及命令函数的操作,并求取相应运算的值。错误检查中调用serror函数用于报告语法错误并显示。

  223源程序的解释与执行BASIC源程序除了行标外,均以变量或命令关键字作为开始。如果是变量则一定是赋值语句,由as- signment函数完成。首先调用gettoken得到变量名,您的论文得到相关企业家品评嵌入式计算机应用开始并找到变量在变量表中的存储位置;再次调用getto-ken得到赋值号=“由getexp得到表达式的值,并需指定通道和流路。以下为对组分链表中第i组分的分析含量重新赋值的命令操作函数。

  结束技术创新如果得到的记号是命令关键字见」调用该命令的处理函数并执行相应的功能。为解释器运行的主循环流程图。由于本小语言环境用于工业色谱仪,下面仅介绍其要求的仪器操作部分。一般编译器实现的运算及程序控制操作的程序编写可有关。

  针对智能工业色谱仪的功能需求,小语言环境设置四大类函数操作,卩包括:谱峰处理操作如当前通道及流路的组分含量、峰高及峰面积积分、组分计算的标正因子、保留时间、组分名等;报警操作各组分含量的上下限,仪器设置的报警口输出该输出可送至DCS系统;模拟量、数字量的输入输出操作。该操作可将选中组分含量是以4-20mA形式送至DCS系统;通道流路操作。可改变分析仪器中对流路序列和通道的安排包括仪器通信方式及网络的设置与修改。

  以上操作命令在解释器中可分为两大类一类为取值命令操作如将当前分析的谱峰数据或仪器状态以数字形式读出并赋予变量本文上节所给程序中的仪器命令即为此类操作。另一类为赋值命令操作即将经过运算处理的谱峰数据、重命名的组分名送组分链表中或将报警信息送至输出口等。这些函数将调用软件系统的功能函数和链表以实现相应操作。与国外同类仪器不同的是此类操作均无需指定通道和流路因为在线下源程序的执行需在时间事件列表中设定执行的通道和流路均为当前状态这样可以简化用户对源程序的编写。若在文本编辑下离线运行时则3小语言环境下源程序执行的实时性和优化对于实时性要求由于本仪器测控系统的软件采用基于DOS操作系统的循环结构。因此在小语言环境的编译程序中由在执行*频繁的gettoken程序的getdata函数加以解决。该函数包含对实时多任务的分配管理,分析数据的采集和处理,诸如温度控制、时间事件、网络通信、报警操作均被赋予相应级别任务级较高的优先处理。显然,小语言环境的源程序解释的执行在多任务系统中级别*低。这样可以保证系统的实时运行。

  由于编译器采用解释执行方式,常见的代码优化成为次要因素,而解释执行运行速度的快慢影响较大。如前所述对语法分析中对源程序中串字符流逐字符分析,占用机时多因此有必要做优化处理。其思路为对于数字、命令关键字等在gettoken函数中一次提取即不仅确定类别tokentype而且将数字、命令字、变量名在函数运行时芫整取出置于tok中。对于变量若采用与内存定义一致的变量名,可加快识别却增加了用户的麻烦;因为用户由于习惯往往对变量赋以易于理解的各种名称。为此采用预编译的优化措施当用户在文本编辑器上编写芫一个后缀为BAS的源程序并选择保存时预编译器将对该源程序中所有变量名排序并重新命名局部变量安排为V1~V37,全局变量和局部变量组也作了相应安排,并生成后缀为BEX的新程序该程序与后缀为BAS的(见第24页)技术创新器编程。编程算法完成后,进入读取数据状态。在这里通过DSP对Flash的控制芫成对Flash的读写。用C语言芫成如下:1对XINTF寄存器进行设置XintfRegs.XTIM.化工自动化及仪表KennethC.Louden著、冯博琴等译编译原理及实践网机械工业出鸿健编译c语言高级程序员编程指南中科院希望电脑公司1991南京南分分析仪器有限责任公司cx8800智能工业色谱仪操作手册人/副教授,研究方向为测控技术、智能仪器。Email:danwymsina.com(210009江苏南京南京工业大学自动化学院)程明霄吴雁鸣胡铟张华(210009江苏南京南京工业大学丁家桥校区自动化学院测控系)程明霄