[发明专利]ST语言源代码编译方法、装置、计算机设备及介质在审
| 申请号: | 202010328050.8 | 申请日: | 2020-04-23 |
| 公开(公告)号: | CN111488154A | 公开(公告)日: | 2020-08-04 |
| 发明(设计)人: | 李胤颉;宋健玮 | 申请(专利权)人: | 北京东土科技股份有限公司 |
| 主分类号: | G06F8/41 | 分类号: | G06F8/41 |
| 代理公司: | 北京华夏正合知识产权代理事务所(普通合伙) 11017 | 代理人: | 韩登营 |
| 地址: | 100144 北京市石景*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | st 语言 源代码 编译 方法 装置 计算机 设备 介质 | ||
一种ST语言源代码编译方法,包括:获取ST语言源代码中的业务源代码;对所述业务源代码根据词法和语法规则进行词法和语法分析获得抽象语法树;由GCC后端根据所述抽象语法树生成目标设备可识别的指令代码。还相应的提供了编译装置、计算设备和存储介质。使用本发明可以实现基于GCC后端的ST语言源代码的编译,从而支持对ST语言源代码的直接调试。
技术领域
本发明涉及计算机软件技术领域,特别是指一种ST语言源代码编译方法、装置、计算机设备及介质。
背景技术
ST语言源代码是IEC61131-3标准中的可编程控制器(PLC)编程语言之一,适用在大中型系统中编写结构复杂的PLC程序。PLC是为工业控制应用而设计制造的,其逻辑控制是通过PLC编程语言实现,国际标准IEC61131-3定义了5种PLC编程语言:梯形图(LD),功能块图(FBD),顺序功能图(SFC),指令表(IL)和结构化文本(ST)。前三种是可视化的编程语言,特点是简单直观,其中梯形图与传统继电控制图相似,用户不需要具备专业的计算机编程知识,就能编写梯形图程序,从而极大推进了PLC在生产实践中的运用;指令表和ST语言源代码属于文本化编程语言,指令表类似于汇编语言,与梯形图之间存在对应关系;ST语言源代码类似于C语言和PASCAL语言,适用于复杂程序编写,更符合程序员的使用习惯。
ST编译器用于将程序员编写的ST语言源代码,按照IEC-61131-3中的ST语言源代码词法分析、语法分析的规则,转化为PLC可识别的代码指令。目前ST编译器比较少,大多由各大厂商自己实现,实现方式也大致相同,基本采用的方式是如图1流程图示出的编译方案:首先对ST语言源代码进行词法分析与语法分析,转换成C语言,然后调用GCC编译器将该C语言编译为PLC可识别的代码指令,以实现下装到PLC中。例如开源软件iec2c就采用了该方案实现对ST语言源代码的编译。该种编译方式易于实现,但缺点也很明显,例如:
1.编译过程需两个阶段,导致编译速度慢:需要先经iec2c编译为C语言后,再继续调用GCC进行二次编译。
2.调试困难:经GCC编译好的下装程序的代码指令是由C语言转换来的,因此调试过程中所显示的代码是该转换后的C语言代码,无法直接与ST语言源代码进行比对,难以支持断点调试。
3.报错信息不准确:由于下装程序的代码指令是由GCC对C语言的编译,因此调试过程中,代码指令运行过程中的提示都是对C语言的错误的提示,并不直接对ST语言源代码的错误进行提示,因此需要ST编译器的开发人员做转换来提示工程人员,不仅繁琐,且经常会由于开发人员与工程人员的交流不畅造成对工程人员的信息误导,可见对ST语言源代码的调试支持性差。
发明内容
有鉴于此,本发明的主要目的在于提供一种ST语言源代码编译方法、装置、计算设备及介质,以能实现直接对ST语言源代码的编译,从而支持对ST语言源代码的直接调试。
本发明提供了一种ST语言源代码编译方法,包括:
获取ST语言源代码中的业务源代码;
对所述业务源代码根据词法和语法规则进行词法和语法分析获得抽象语法树;
由GCC后端根据所述抽象语法树生成目标设备可识别的指令代码。
由上,本发明通过对ST语言源代码中的业务源代码进行词法、语法分析获得抽象语法树,再由GCC后端据此进行编译,生成机器代码指令。本申请的编译方法实现了对ST语言源代码中的直接编译,不需使用C语言作为中间语言,因此编译速度快,且实现了ST语言源代码中的业务源代码直接映射到debug_info中,故调试过程中可直接与业务源代码对比,以及调试过程中针对业务源代码进行编译报错,进而实现对调试过程的良好支持,解决了背景技术中所提到技术问题。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京东土科技股份有限公司,未经北京东土科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010328050.8/2.html,转载请声明来源钻瓜专利网。





