The application provides a compiler, which includes: intermediate code acquisition module, which is used for lexical analysis, syntax analysis and semantic analysis of the source code in turn to obtain the intermediate code converted in the unit of program organization unit; error tracking logic insertion module, which is used for parsing the intermediate code and inserting error tracking logic to get the updated intermediate code; optimization module, which is used to update the intermediate code The new intermediate code performs code optimization to get the optimized update intermediate code; the target code generation module is used to generate the target code by using the optimized update intermediate code. It can be seen that by inserting the error tracking logic into the source code compilation process, the application finally generates the target code with the error tracking logic. When the target code is loaded by the DCS controller to execute the error tracking logic, it will obtain the configuration logic execution process, generate the error tracking information, and locate the fault cause. The application also provides compilation method, tracking method and DCS controller, all of which have the above beneficial effects.
【技术实现步骤摘要】
一种编译器、编译方法和追踪方法及DCS控制器
本申请涉及通信
,特别涉及一种编译方法、编译器和追踪方法及DCS控制器。
技术介绍
DCS是分布式控制系统的英文缩写(DistributedControlSystem),目前已经成熟应用于炼制、冶金、化工、建材、电力等行业。控制器是DCS的核心设备,负责采集现场数据,运行控制逻辑及算法,控制现场设备输出。控制器组态逻辑错误将会导致现场严重故障,如不能及时、准确的追踪原因并彻底解决,将导致更加严重后果,此类故障特点如下:紧急性、复杂性、滞后性、不可操作性。即使控制器开发人员及时赶到现场,也只能进行理论静态分析,无法进行操作实验进行验证,定位问题手段有限。如何高效准确定位现场控制器组态逻辑错误的根本原因,一直是各个DCS厂家需要面对的难题,现在一般的控制器错误追踪方法如下:目前所采用的主要方法是程序逻辑分析、逐个记录。组态逻辑工程师在编写组态程序的过程中,针对于可能错误进行单点追个分析,增加程序断言、超限报警日志记录等信息,此种方法对于定位现场问题可以启动一定的作用,但作用有限,但此种方法主要缺陷如下:容易出现设计盲区,产生遗漏,依靠于人工分析每个故障点,并在组态程序中增加断言、超限报警等故障判断逻辑,通过这种方法,往往无法对复杂多变的现场环境全面诊断;工作量较大,对工程中的组态程序逻辑的故障点进行全面的分析、添加故障判断逻辑代码过程是比较大的工作量,这不仅增加人力成本、更消耗项目时间。每位组态工程师的水平以及对程序的理解程度不同,此工作完成的质量也有所 ...
【技术保护点】
1.一种编译器,其特征在于,包括:/n中间代码获取模块,用于将源代码依次进行词法分析、语法分析、语义分析,得到以程序组织单元为单位转化的中间代码;/n错误跟踪逻辑插入模块,用于解析所述中间代码,并插入错误跟踪逻辑,得到更新中间代码;/n优化模块,用于将所述更新中间代码执行代码优化,得到优化更新中间代码;/n目标代码生成模块,用于利用所述优化更新中间代码生成目标代码。/n
【技术特征摘要】
1.一种编译器,其特征在于,包括:
中间代码获取模块,用于将源代码依次进行词法分析、语法分析、语义分析,得到以程序组织单元为单位转化的中间代码;
错误跟踪逻辑插入模块,用于解析所述中间代码,并插入错误跟踪逻辑,得到更新中间代码;
优化模块,用于将所述更新中间代码执行代码优化,得到优化更新中间代码;
目标代码生成模块,用于利用所述优化更新中间代码生成目标代码。
2.根据权利要求1所述的编译器,其特征在于,所述中间代码是语法森林,所述语法森林包括每个所述程序组织单元对应的层语法森林,且每个层语法森林包括多个语法树。
3.根据权利要求2所述的编译器,其特征在于,所述错误跟踪逻辑插入模块,包括:
标记单元,用于遍历所述语法森林,标记所述语法森林的所有的所述语法树的位置;
确定单元,用于确定标记有位置的语法树的语法树类型;
更新中间代码获取单元,用于按照所述语法树类型插入预设函数调用语法树,得到所述更新中间代码。
4.根据权利要求2所述的编译器,其特征在于,所述更新中间代码获取单元,包括:
插入子单元,用于当所述语法树类型是顺序结构语法树时,在所述顺序结构语法树的开始节点与所述开始节点的原始右兄弟节点之间插入顺序函数调用语法树的根节点,其中,所述根节点是所述开始节点的右兄弟节点、所述开始节点的原始右兄弟节点的左兄弟节点;
其中,所述顺序函数调用语法树包括所述根节点,所述根节点的左子节点用于接收输入参数,所述根节点的右子节点用于保存逻辑追踪数据。
5.根据权利要求2所述的编译器,其特征在于,所述更新中间代码获取单元,包括:
插入子单元,用于当所述语法树类型是选择结构语法树,在所述选择结构语法树的所有中子节点的左兄弟节点处插入选择函数调用语法树的根节点,...
【专利技术属性】
技术研发人员:王欣,黄玲,李蒙,
申请(专利权)人:杭州和利时自动化有限公司,北京和利时系统工程有限公司,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。