[发明专利]一种结构化文本代码处理方法和系统在审

专利信息
申请号: 201710052306.5 申请日: 2017-01-22
公开(公告)号: CN106844310A 公开(公告)日: 2017-06-13
发明(设计)人: 陈宏君;张磊;周磊;谭良良;刘克金;文继锋;徐卫峰;周强;牛洪海 申请(专利权)人: 南京南瑞继保电气有限公司;南京南瑞继保工程技术有限公司
主分类号: G06F17/22 分类号: G06F17/22
代理公司: 暂无信息 代理人: 暂无信息
地址: 211106 江*** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 结构 文本 代码 处理 方法 系统
【说明书】:

技术领域

发明属于工业控制编程领域,具体涉及结构化文本代码的处理方法。

背景技术

IEC61131标准将结构化、模块化编程引入工业控制领域,可提高PLC、DCS等控制系统的开放性、兼容性、可维护性。符合IEC61131标准的控制器产品,即使是不同厂家制造,其编程语言和使用方法也是相同的,产品维护人员和用户可以一次学习,多次使用,可减少人员培训、系统维护的成本。其中结构化文本由于不涉及到图形的存储格式,以纯文本的代码来实现程序的逻辑,可实现复杂的控制算法,并利于不同版本、不同厂家的程序复用,得到了广泛应用。

结构化文本(ST)是一种是类似于Pascal的高级编程语言,特别适合复杂的算法技术,程序结构清晰,便于编程人员和操作维护人员进行算法沟通。结构化文本需要转换为装置可运行的目标文件才能运行。常规的实现方案是将结构化文本转换为解释型指令,在装置内解释执行,其缺点是运行效率低,不适用实时性要求高的应用场景。有厂家将ST代码直接转换为机器指令,当更新硬件型号时,需要修改转换表,同时从ST代码转换到机器汇编指令的过程复杂,出现错误时很难定位和排查,存在隐患。也有文献提出将ST代码转换为C语言,并将整个工程编译为1个二进制目标文件后运行,将ST代码转换为C语言,转换关系明确可视,之后调用经过严格测试和大规模应用的第三方编译器编译C代码,过程可靠,C代码的运行效率高,适用于实时性要求高的场景。然而工业控制和其它行业编程的一个显著差异是,需要在装置运行时刻能部分更新替换程序,装置的实时任务不能中断。如果编译为1个可执行程序,即使只修改一行代码,也需重新形成代码,重新编译链接形成可执行程序,并停止装置程序运行,重新加载可执行程序,无法满足在线无扰更新的场景。因此,在面向工业控制应用开发中,用户需要使用标准的结构化文本,转换后的代码需要高效率运行,还需要支持增量无扰更新等关键需求,尚未有文献提出同时满足上述需求的可行解决方案,为了解决上述问题,本案由此产生。

发明内容

本发明的目的是将结构化文本转换为高效率运行的目标代码,并以程序组织单元(POU)为单位独立编译为二进制组件库,实现程序高效率运行和在线增量更新。为了达成上述目的,本发明提供一种结构化文本代码处理方法,其特征在于包括如下步骤:

将结构化文本代码按照程序组织单元转换为C代码文件;

在转换过程中嵌入预定义的接口函数;

将各个程序组织单元转换后的C代码文件编译为独立的二进制组件库;

装置获取并加载若干二进制组件库,运行接口函数。

优选地,所述方法还包括:

装置的功能代码由若干编译后二进制组件构成,装置在初始化时加载各个组件,获取固定名称的C接口函数地址,形成初始化、运行函数链表。

装置运行过程中,可替换更新二进制组件库。装置在非实时线程中更新替换加载组件,记录新的接口函数地址,在实时任务运行阶段更新组件接口函数地址,实现组件增量更新。

单个程序组织单元转换后的C代码包括如下内容:输入变量声明、输出变量声明、功能块实例名声明、系统功能回调函数指针变量、组件的初始化接口函数、组件的任务接口函数、组件变量读写接口函数。

在代码转换前,预先建立IEC61131-3标准定义的变量类型、函数、功能块、语句的转换映射表,根据转换映射表,将结构化文本代码转换为有限子集的C代码。

优选地,所述的装置包括嵌入式装置和PC机虚拟装置。针对嵌入式Linux操作系统的装置,组件编译为*.so文件,针对嵌入式Vxworks操作系统的装置,组件编译为*.cdf文件,针对PC机虚拟装置,组件编译为*.dll文件。

优选地,装置在加载组件时,将全局变量读写接口函数地址赋给组件内系统功能回调函数指针变量,组件之间的数据交互通过调用函数指针实现。

一种结构化文本代码处理系统,其特征在于,所述系统包括:结构化文本编辑模块、代码转换模块、代码编译模块、通信模块、系统软件模块。其中:

所述的结构化文本编辑模块,提供文本编辑界面,编写结构化文本代码,并以程序组织单元为单位存储多个文本代码;

所述的代码转换模块,以程序组织单元为单位分析结构化文本代码,转换为对应的C代码文件,并在C代码中嵌入和系统软件模块预定义的接口函数;

所述的代码编译模块,自动形成Makefile文件,调用嵌入式装置或PC机虚拟装置对应的编译器,将C代码文件编译形成二进制组件库;

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京南瑞继保电气有限公司;南京南瑞继保工程技术有限公司,未经南京南瑞继保电气有限公司;南京南瑞继保工程技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201710052306.5/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top