[发明专利]一种将C语言代码自动封装为功能块的方法和系统在审
申请号: | 202210469723.0 | 申请日: | 2022-04-30 |
公开(公告)号: | CN115033231A | 公开(公告)日: | 2022-09-09 |
发明(设计)人: | 邬惠峰;孙丹枫;陈佰平;胡俊杰 | 申请(专利权)人: | 杭州电子科技大学 |
主分类号: | G06F8/36 | 分类号: | G06F8/36;G06F8/51;G06F8/30;G05B19/05 |
代理公司: | 浙江永鼎律师事务所 33233 | 代理人: | 陆永强 |
地址: | 310018*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 语言 代码 自动 封装 功能块 方法 系统 | ||
本发明实例提供了一种将C语言代码自动封装为功能块的方法和系统,所述方法包括:将待封装的C语言函数的参数映射到功能块的引脚;根据所述映射结果生成可被可编程逻辑控制器(Programmable Logic Controller,简称PLC)编程软件导入的、与所述待封装的C语言函数一致的功能块XML节点。本发明提供的方法能够根据现有C代码自动生成相应功能块,提高已有C代码在PLC开发平台中的封装效率。
技术领域
本发明实施例涉及可编程逻辑控制器(PLC)编程领域,尤其涉及一种自动封装功能块的方法,具体是将C语言代码自动封装为功能块的方法和系统。
背景技术
可编程逻辑控制器(PLC)在工业控制领域备受青睐,尤其是在各类离散设备的控制中得到广泛应用。一些编辑软件已经能支持IEC61131-3编程标准定义的5种编程语言,也支持将这5种语言编写的逻辑直接封装成功能块供后续使用,极大地提高了代码的复用效率。
但是,许多可编程语言开发者更擅长使用C语言进行编程,同时在一些应用场景中,存在大量现有C语言代码能够满足其功能需求,如果能直接以功能块的形式来使用这些代码将大大减少PLC开发的工作量。现有的编辑软件或不支持将C语言封装成功能块,或只提供手动封装途径。
为此,本发明提出了一种自动封装功能块的方法,以提高已有C代码在PLC开发平台中的封装效率。
发明内容
为了克服现有技术存在的技术缺陷,本发明提供一种将C语言代码自动封装为功能块的方法和系统,能够直接将现有C语言代码自动封装为功能块,大大减少PLC开发的工作量。
为了解决现有技术存在的技术问题,本发明的技术方案如下:
一种将C语言代码自动封装为功能块的方法,其特征在于,至少包括以下步骤:
步骤S1:获取导入的C代码文本;
步骤S2:从导入的C代码文本中划分出若干个代码块,生成待封装的C代码块的集合并遍历该集合;
步骤S3:将每个待封装的C代码块的参数映射到功能块的引脚;
步骤S4:根据步骤S3的映射结果生成与该待封装的C代码块功能一致的功能块XML节点;
步骤S5:将XML节点导出,以作为功能块进行调用。
作为进一步的改进方案,还包括:
对所述每一个待封装的C代码块进行语法校验,以预先判断该代码块是否可以被封装为功能块。
作为进一步的改进方案,待封装的C代码块为C语言函数。
作为进一步的改进方案,步骤S3中,映射符合从C语言标准C18规定的变量类型到PLC编程标准IEC61131-3规定的变量类型的转换。
作为进一步的改进方案,步骤S4中,所生成的XML节点可被PLC编程软件导入。
作为进一步的改进方案,步骤S5中,还包括:
对功能块列表中的对应节点进行增删改处理,以进行去重操作。
作为进一步的改进方案,步骤S4中,将映射后的代码按照标准的功能块存储格式来保存,根据标准的功能块XML模板节点和映射后的代码来生成新的功能块XML节点。
作为进一步的改进方案,标准功能块XML模板节点包括引脚节点和代码节点两个子节点。
作为进一步的改进方案,封装后的功能块都以XML文本文件的形式保存。
为了解决现有技术存在的技术问题,本发明的还提供了一种将C语言代码自动封装为功能块的系统,至少包括封装单元和文件单元,其中,
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州电子科技大学,未经杭州电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210469723.0/2.html,转载请声明来源钻瓜专利网。