一种编译型制造技术

技术编号:39838122 阅读:14 留言:0更新日期:2023-12-29 16:23
本发明专利技术公开了一种编译型

【技术实现步骤摘要】
一种编译型PLC程序的在线调试方法


[0001]本专利技术涉及一种
PLC
程序调试方法,特别是一种编译型
PLC
程序的在线调试方法


技术介绍

[0002]目前市场上,基于
PLC
硬件的编程软件大多基于符合
IEC

61131
‑3标准的编程语言
(ST

FBD

SFC

LD

IL
,以下简称编程语言
)。
标准规定了编程语言,对于在
PLC
上的运行时,目前分为编译型以及动态运行两种方式,编译型将编程语言编译为目标平台的二进制代码,或编译为指定虚拟机的字节码

由于编程语言众多,一般会将多种编程语言转换为一种语言
(
一般为
ST)
,然后对生成结果再进行后续操作

目前,多数
PLC
编程软件仅支持
ST
调试,不支持其它形式语言的调试,一些方案依赖于
PLC
运行时
(RTE)
读取加载调试信息,对
PLC
的主频要求较高,且为
PLC
运行时增加了不需要的负担

还有一些方案依赖于对编译前的代码进行插入,导致生成的文件体积庞大,不利于中小型
PLC
的使用

[0003]因此,现有的技术存在着调试麻烦的问题


技术实现思路

[0004]本专利技术的目的在于,提供一种编译型
PLC
程序的在线调试方法

本专利技术具有调试方便且快速的特点

[0005]本专利技术的技术方案:一种编译型
PLC
程序的在线调试方法,一种编译型
PLC
程序的在线调试方法,其特征在于,包括以下步骤:
[0006]S1、
上位机软件编译
FBD
用户程序,并构建对应关系语法树,生成可执行二进制的用户程序;
[0007]S2、
上位机软件下载用户程序到
PLC
控制器,
PLC
控制器运行时加载用户程序并运行;
[0008]S3、
用户在上位机软件中对用户程序进行断点;当上位机软件开启调试模式后,上位机软件读取项目中的程序文件,获取每个程序文件的对应关系语法树,获取断点的内存地址;
[0009]S4、
通过通信协议将断点的内存地址发送给
PLC
控制器运行时,
PLC
控制器运行时在断点的相对内存地址保存当前的指令,随后将当前指令替换为目标平台上的调试中断指令;
[0010]S5、
当用户程序运行到断点处时,用户程序将引发调试中断,由
PLC
控制器运行时接管,
PLC
控制器运行时将内存地址的当前指令还原,并通知上位机已进入断点模式;
[0011]S6、
用户在上位机软件点击下一步,上位机软件查找当前断点的下一条表达式的内存地址并通讯
PLC
控制器运行时,
PLC
控制器运行时执行新断点的内存替换,退出调试状态并继续运行用户程序

[0012]前述的一种编译型
PLC
程序的在线调试方法中,上位机软件编译
FBD
用户程序的过程为:
[0013]S11)
分析
ST
块,每个
FBD
块都对应一条或多条
ST
语句,根据
FBD
块创建一个语法关系树对象,将
Block
的标识符填写到
BlockId

[0014]S12)
依次转换
FBD
块为
ST
表达式;
[0015]S13)

FBD
块的对应
ST
表达式填充到
FBD
语法关系树对象的
Expressions
数组中;
[0016]S14)
将各种语言生成的
ST
表达式转换为
C
语言表达式,并写入
C
语言源文件;
[0017]S15)

ST
表达式的对应
C
语言源文件填充到
ST
表达式的语法关系树对象的
Expressions
中,并填写生成的
C
语言源文件行号;
[0018]S16)
编译生成的
C
语言源文件为可执行二进制用户程序

[0019]前述的一种编译型
PLC
程序的在线调试方法中,步骤
S3
中,断点的内存地址获取的方法为:
[0020]S31)、
上位机软件通过
FBD

BlockId
查找对应关系树对象;
[0021]S32)、
查找
ST
对应关系树对象的
Expressions
,取出第一条
ST
表达式对象;
[0022]S33)、
查找
ST
对应关系树对象的
Expressions
,取出第一条
C
语言表达式对象;
[0023]S34)、
根据
C
语言表达式对象的
Line
获取
C
语言代码的行号;
[0024]S35)、
通过
C
语言代码的行号,通过
C
语言编译的调试文件找到
C
语言指令的内存地址

[0025]与现有技术相比,本专利技术通过上位机软件在编译流程中记录转换关系,构建对应关系语法树,通过对语法对应关系树的生成,实现任意
IEC

61131
‑3语言编译后仍可进行断点调试,并由
PLC
控制器通过内存指令来实现处理断点指令

本专利技术可以兼容任意的
IEC

61131
‑3语言,并且不需要对
PLC
控制器程序进行大的改动,对用户程序产生的二进制编译文件大小没有任何影响,对用户程序的运行速度没有任何影响,可以让性能较差
PLC
控制器快速实现在线调试功能,极大提升了上位机软件的可用性,提高开发人员的使用体验,帮助快速定位问题代码

综上所述,本专利技术具有调试方便且快速的特点本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种编译型
PLC
程序的在线调试方法,其特征在于,包括以下步骤:
S1、
上位机软件编译
FBD
用户程序,并构建对应关系语法树,生成可执行二进制的用户程序;
S2、
上位机软件下载用户程序到
PLC
控制器,
PLC
控制器运行时加载用户程序并运行;
S3、
用户在上位机软件中对用户程序进行断点;当上位机软件开启调试模式后,上位机软件读取项目中的程序文件,获取每个程序文件的对应关系语法树,获取断点的内存地址;
S4、
通过通信协议将断点的内存地址发送给
PLC
控制器运行时,
PLC
控制器运行时在断点的相对内存地址保存当前的指令,随后将当前指令替换为目标平台上的调试中断指令;
S5、
当用户程序运行到断点处时,用户程序将引发调试中断,由
PLC
控制器运行时接管,
PLC
控制器运行时将内存地址的当前指令还原,并通知上位机已进入断点模式;
S6、
用户在上位机软件点击下一步,上位机软件查找当前断点的下一条表达式的内存地址并通讯
PLC
控制器运行时,
PLC
控制器运行时执行新断点的内存替换,退出调试状态并继续运行用户程序
。2.
根据权利要求1所述的一种编译型
PLC
程序的在线调试方法,其特征在于,上位机软件编译
FBD
用户程序的过程为:
S11)
分析
ST
块,每个
FBD
块都对应一条或多条
ST
语句,根据
FBD
块创建一个语法关系树对象,将
Block
的标识符填写到
BlockId

S12)
依次转换
FBD
块为
ST

【专利技术属性】
技术研发人员:张海洋谭灿李耀廷史文斌吴孝朝
申请(专利权)人:浙江源创智控技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1