• 美文
  • 文章
  • 散文
  • 日记
  • 诗歌
  • 小说
  • 故事
  • 句子
  • 作文
  • 签名
  • 祝福语
  • 情书
  • 范文
  • 读后感
  • 文学百科
  • 当前位置: 柠檬阅读网 > 范文 > 正文

    跨平台核安全级DCS图形组态软件设计与实现

    时间:2022-12-08 17:30:08 来源:柠檬阅读网 本文已影响 柠檬阅读网手机站

    张智慧,杨 利,刘大鹏

    (北京广利核系统工程有限公司,北京 100094)

    数字化控制系统DCS是核电厂的“中枢神经”系统,它对确保核电厂的安全、经济运行起着至关重要的作用,是构成大型核电站的关键技术和装备之一。

    在国内首个实现商用的核电站安全级DCS平台“和睦系统”中,安全控制显示系统是重要的组成部分之一,主要用于对安全级设备的监控以及对安全设备进行开关控制。仪控工程师使用图形组态软件提供的图形化建模工具进行图形组态,工具将图形组态自动生成图形代码,代码最终被下装到安全控制显示装置中,实现用户组态画面的显示。

    如何实现图形组态软件运行于国产操作系统,并且其生成的图形代码满足核安全级设备显示要求,无疑是图形组态软件所面临的巨大挑战。本文提出了一种基于WEB技术的图形组态软件实现方案,不仅可以实现图形组态运行于国产操作系统的目标,同时还可以将图形组态画面通过中间转换过程转换成可以在核安全级设备运行的C代码。由于该代码是明文的,可以通过对该代码进行安全级V&V来确保生成的图形代码的安全性,满足核安全级DCS要求。

    核安全级图形组态软件主要功能是为核安全级控制显示装置提供组态画面以及画面运行逻辑,并将组态画面编译成可在核安全级控制显示装置上运行的可执行程序,完成用户图形组态显示的功能。图形组态软件主要包括两部分:图形组态界面部分(简称:图形组态IDE)和图形组态转换部分(简称:图形代码生成器GCG)。

    图形组态IDE主要提供集成化的图形组态开发环境,用户根据需要可以通过拖拽方式在该环境中组态需要的页面。

    图形代码生成器GCG通过形式化的方法将经IDE组态生成的图形组态源文件,转化成绘制图形的C代码并调用编译器编译成可在目标机器上运行的图形组态目标文件。代码转换过程采取形式化方法开发,可以最大程度保证生成代码的安全性。

    图形组态软件整体上要满足跨平台运行的要求,就需要图形组态IDE和图形代码生成器GCG都要既能运行在Windows操作系统中,又要可以运行于国产操作系统中。并且图形代码生成器作为直接生成可运行于安全控制显示装置中的软件,必须满足安全性的要求。后面将详细描述组态软件是如何实现跨平台和满足核安全级要求的。

    随着Web技术的发展,浏览器界面已经成为计算机桌面的基本平台,将浏览器技术运用于组态软件及将浏览器界面作为组态软件的人机界面,可以解决图形软件跨平台运行的难题。该基于Web技术的图形组态界面既可以运行于Windows操作系统,也可以运行于国产中标麒麟操作系统,满足跨平台和国产化的要求。

    2.1 软件的架构设计

    基于Web技术的组态软件架构设计如图2所示。

    在B/S模式下采用传统的三层体系结构来设计组态软件,并不能直接实现与被控对象进行数据通信,因此基于Web技术的组态软件采用五层体系结构进行设计,如图2所示。它是在一般的三层体系结构的基础上进行了细化,用来实现组态软件的目的。各层功能如下:

    图2 图形组态软件架构设计Fig.2 Graphic configuration software architecture design

    1)展现层

    它是组态软件的用户接口部分,是用户与组态软件交互信息的窗口,即人机交互界面。用户通过该界面可以进行工程画面组态以及图元对象进行修改,编译。

    图1 图形组态软件整体流程Fig.1 Graphic configuration software overall process

    2)业务层

    主要处理组态软件的事务逻辑,包括图形对象、图层渲染、坐标转换、脚本编辑器、图符管理,以及基本的IDE框架以及UI组件库。

    3)应用支持层

    主要包括异常处理、通信接口以及框架。主要是通过功能层的数据处理请求,调用相关处理程序以实现对数据库的查询、增加和删除等功能。

    4)工具链层

    主要包括该图形组态软件用到的常用工具链。

    5)语言层

    主要包括图形组态软件用到的开发语言TypeScript。

    2.2 IDE设计

    组态软件集成开发环境是基于Web的多窗口集成开发环境。集成环境在实现复杂的多文档、多窗口、停靠、浮动界面等基础功能外,还为集成其他功能的插件的开发预留足够的二次开发接口,以实现插件式集成开发环境。

    图形组态逻辑和集成开发IDE分离的实现方案,如图3所示。

    图3 组态逻辑和IDE框架分离实现方案Fig.3 Configuration logic and IDE framework separation implementation scheme

    如图3所示,集成开发环境本身作为一套通用容器来管理页面中各类面板和子窗口并提供对应的API和事件,而组态编辑相关逻辑只作为集成开发环境的一个插件而存在。该架构中集成开发环境的代码支持以插件的形式扩展其他功能。

    该设计可以实现同一套软件可以运行于Windows操作系统中,也可以运行于国产操作系统中,可以实现软件的跨平台运行,完全实现软件的国产化要求。

    图形代码生成器GCG总体目标是设计实现一个面向图形组态软件的安全代码生成工具,将图形组态源语言翻译成符合安全级标准的目标语言,通过编译器编译成可在目标机器上运行的可执行程序。图形代码生成器全部采用C语言开发,不依赖Windows系统任何库函数和API,可以运行于国产操作系统中,可以实现软件的跨平台运行,完全实现软件的国产化要求。

    3.1 总体方案

    图形代码生成器GCG实现从源语言SAML(safety graphic markup language) 到 目 标 语 言(FirmC)的自动代码生成过程。其中,图形组态源语言SAML(safety graphic markup language) 为 本 公 司 自 定义的一种图形描述语言。以下是SAML的语法定义如下所示:Program的定义:

    生成的目标语言为FirmC,是参考国际标准(IEC60880-2006)以 及MISRA-C:2004选 取 的 一 种兼容于关键嵌入式软件推荐使用的较大的C语言子集[1]。FirmC中包括C语言中大部分的类型和操作,包括基本类型、指示字运算、函数指针、数组类型、指针类型、函数类型、结构体类型,以及C中除非结构化的goto、dowhile、while和switch之外的控制结构[2]。

    代码生成器整体实现方案如图4所示,由于图形组态源语言SAML是与C程序差异太大,直接将其翻译到C,验证起来会非常困难。为此引入一系列中间语言,即图4中依次经过了I层,S层和Q层等几种中间语言的程序形式。这样步步简化,降低语义描述和证明的难度。

    图4 GCG转换过程图Fig.4 GCG Conversion process diagram

    1)从组态图形源语言到I层语言的转换过程

    这一层的转换负责图形源语言,经过读取用户图形组态文件,对图形组态文件进行词法分析、语法分析和一些基本的静态检查(拼写错误、遗漏数据等)转换到I层。

    2)从I层到S层的预处理过程

    这一层的转换负责精简输入语法,将图元根据用户组态的顺序进行排序,同时消去语法不需要的,例如实例号、外部交互变量等用户组态信息。

    3)从S层到Q层的转换过程

    这一层的转换负责将图形组态语言中编辑框图元转换为图形组态语言基本图形元素线段或者矩形,并将对应基本图形元素存储在抽象语法树节点中。这一层单独处理编辑框图元,目的是为了能简化后续证明。转换过程分成两部分,首先分拆编辑框属性,然后将属性转换到抽象语法树的基本元素节点。

    4)从Q层到R层的转换过程

    这一层的转换负责将图形组态语言中高级图元类型趋势曲线转换为图形组态语言基本图形点类型或者线段类型表示,并将对应基本图形元素存储在抽象语法树节点中。这一层单独处理趋势曲线,目的是为了简化证明。转换过程分成两部分,首先根据时间间隔为颗粒度,将曲线逻辑分解为线段类型或者点类型,然后将分解出的类型存储到抽象语法树曲线类型所属的节点。

    5)从R层到T层的转换过程

    这一层的转换将图形组态语言中高级图元窗口类型转换为图形组态语言基本图形线段类型和矩形,并将对应基本图形元素存储在抽象语法树节点中。这一层单独处理窗口类型,目的是为了简化后续证明。具体转换过程步骤:将窗口类型分解为矩形类型和线段类型,同时将窗口的各项属性转换为结构类型存储到抽象语法树。

    6)从T层到轻量级C语言过程

    本层是转换的最后一步,将程序由T层转换为FirmC,将其中图元部分转换为轻量级C语言的函数调用方式,将涉及变量的部分按照赋值运算的分类转换。

    3.2 形式化开发

    形式化开发主要由下面几部分构成:词法分析、语法分析、语义分析、翻译过程[3],如图5所示。

    图5 形式化开发框架Fig.5 Formal development framework

    1)词法分析

    使用正则表达式(Regular expression)来定义构词规范,正则表达式是一种形式化的字符串描述方法,用很少的代码就可以描述需要用到的字符串格式,示例如下:

    可以利用开源工具Flex生成SAML语言的词法分析程序,以识别符合上述词法规则的SAML程序。

    2)语法分析

    语法分析是对SAML图形原文件的第二次重组,SAML图形原文件是有序的字符串,词法分析是第一次重组,即将有序的字符串转换成单词序列;
    而语法分析则是在第一次重组的基础上将单词序列转换为对应的语句,并生成抽象语法树AST,它使用的是上下文无关文法的“巴科斯范式”形式规则。巴科斯范式是一种用形式化符号精确描述程序设计语言的语法的一种形式系统[4]。

    语法分析的示例如下:

    可以利用开源工具Bison生成SAML语言的语法分析器,以识别符合上述语法规则的SAML程序。

    3)语义分析

    语义分析的输入是由语法分析器生成的抽象语法树AST,通过语法树构建符号表,然后结合符号表对语法树进行具体的语义分析,语义分析的过程包括下面几大方面:

    ◇域名分析

    ◇类型分析

    ◇因果分析

    ◇初始化分析

    整个语法树采用前序遍历方式,在使用前序遍历过程中遍历到树中的某些关键节点时,对这些关键节点的子节点采用后续遍历方式。语义检查按照一定的优先级顺序,从域名分析到因果分析,再到类型分析,最后是初始化分析。某个节点检查出错误并不影响其兄弟节点和其他节点的检查。

    4)翻译过程

    经过词法分析、语法分析和语义分析,如果没有发现相应的错误,即可以进行翻译处理。翻译处理过程主要包括预处理、拓扑排序、高阶消去等步骤,最后生成FirmC形式的程序。

    针对图形组态软件既要满足国产化问题,又要满足生成代码的可靠性和安全性问题。本文通过对DCS图形组态软件进行研究和分析,提出了一种采用Web技术的能生成满足核安全级设备应用的图形代码的组态软件实现方法,通过该方法既能解决运行于国产操作系统又具备传统DCS桌面软件安全性要求,同时可生成满足核安全级设备应用的图形显示代码,该技术还可应用于航空、航天、高铁等高安全领域,应用前景非常广阔。

    猜你喜欢 组态代码语法 浅谈力控ForceControl V7.2组态软件在自动化控制工程中的应用科学与财富(2022年6期)2022-07-04DCS模拟组态技术研究砖瓦世界·下半月(2020年10期)2020-10-20跟踪导练(二)4时代英语·高一(2019年1期)2019-03-13组态软件技术现状与发展电脑知识与技术(2018年8期)2018-05-07高职“工业组态技术”课程建设探析青年时代(2017年7期)2017-03-28参考答案时代英语·高三(2017年1期)2017-03-01神秘的代码新高考·高二数学(2016年7期)2017-01-23一周机构净增(减)仓股前20名股市动态分析(2016年17期)2016-10-20重要股东二级市场增、减持明细股市动态分析(2016年17期)2016-10-20近期连续上涨7天以上的股股市动态分析(2015年16期)2015-09-10
    相关热词搜索: 组态 图形 设计

    • 文学百科
    • 故事大全
    • 优美句子
    • 范文
    • 美文
    • 散文
    • 小说文章