System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 编程语言转换方法及系统、计算机设备及可读存储介质技术方案_技高网

编程语言转换方法及系统、计算机设备及可读存储介质技术方案

技术编号:42708464 阅读:7 留言:0更新日期:2024-09-13 12:00
本申请提供了一种编程语言转换方法及系统、计算机设备及可读存储介质。所述配置方法包括:获取指令表语言文本中待转换代码,并对所述待转换代码进行解析,确定第一指令和第一操作数。基于所述第一指令确定第一转换函数,并通过所述第一转换函数基于第一操作数和/或第一中间变量输出与所述第一指令的逻辑对应的第一程序集,或者,通过所述第一转换函数基于所述第一指令的逻辑输出所述第一程序集。其中,所述第一程序集的编程语言为结构化文本语言,所述第一中间变量用于模拟所述指令表语言运行时的内存空间。本申请通过上述方法可实现指令表语言到结构化文本语言的转换。

【技术实现步骤摘要】

本申请涉及软plc,特别是涉及编程语言转换方法及系统、计算机设备及可读存储介质


技术介绍

1、早期的plc(programmable logic controller,可编程逻辑控制器)编程中,不同的电气设备提供商都有各自的plc编程语言规范。这对不同厂商设备之间的plc程序移植工作造成了巨大困难。为了解决该困难,国际电工委员会颁布了plc编程的国际标准iec61131-3.该标准统一了五种plc编程语言(梯形图、功能块图、顺序功能表图、结构化文本以及指令表语言)的规范,从而为解决不同设备间的plc程序移植问题提出了解决方案。

2、为了满足不同plc编程人员的使用,以及适应不同的plc应用场景,iec61131-3的五类语言具有不同的特征。其中,梯形图语言源于电气系统逻辑控制图。功能块图源于信号处理领域。顺序功能表图用于描述顺序功能系统的过程、功能及特性。指令表语言与汇编语言类似,是一种较为底层的语言,而结构化文本语言是一种较高级的文本语言。

3、基于不同语言的基本特性,目前已有一些plc语言之间的转换工作,如由梯形图到结构化文本语言的转换、由顺序功能表图到结构化文本语言的转换等,但由指令表语言到结构化文本语言之间还不能实现转换。因此,实现由指令表语言到结构化文本语言的转换是亟待解决的问题。


技术实现思路

1、基于此,本申请提供了一种编程语言转换方法及系统、计算机设备及可读存储介质,以解决上述技术问题。

2、一种编程语言转换方法,包括:

3、获取指令表语言文本中待转换代码,并对待转换代码进行解析,确定第一指令和第一操作数;

4、基于第一指令确定第一转换函数,并通过第一转换函数基于第一操作数和/或第一中间变量输出与第一指令的逻辑对应的第一程序集,或者,通过第一转换函数基于第一指令的逻辑输出第一程序集;

5、其中,第一程序集的编程语言为结构化文本语言,第一中间变量用于模拟指令表语言运行时的内存空间。

6、在其中一个实施例中,获取指令表语言文本中待转换代码,并对待转换代码进行解析,确定第一指令和第一操作数的步骤包括:

7、获取指令表语言文本中的第一程序段,并对第一程序段进行逐行解析,确定每行待转换代码所对应的第一指令和第一操作数。

8、在其中一个实施例中,编程语言转换方法还包括:

9、获取指令表语言文本中的第二程序段,分析并确定第二程序段与第一程序段是否属于同一程序块;

10、响应于第二程序段与第一程序段属于同一程序块,则对第二程序段进行逐行解析时复用第一中间变量。

11、在其中一个实施例中,编程语言转换方法还包括:

12、分析并确定当前待转换代码行所对应的第一指令是否为块调用指令;

13、响应于第一指令为块调用指令,则继续对第一程序段进行逐行解析,并基于参数传递语句确定第二操作数;

14、基于块调用指令确定第二转换函数,并通过第二转换函数基于第二操作数输出与块调用指令对应的第二程序集,其中,第二程序集的编程语言为结构化文本语言。

15、在其中一个实施例中,响应于第一指令为块调用指令,则继续对第一程序段进行逐行解析,并基于参数传递语句确定第二操作数的步骤包括:

16、响应于第一指令为块调用指令,则继续对第一程序段进行逐行解析,并基于参数传递语句判断是否结束解析;

17、若对第一程序段进行逐行解析时识别到待转换代码行为参数传递语句,则继续对第一程序段进行逐行解析;

18、若对第一程序段进行逐行解析时识别到待转换代码行为非参数传递语句,则结束解析并确定第二操作数。

19、在其中一个实施例中,编程语言转换方法还包括:

20、分析并确定当前待转换代码行所对应的第一指令是否为标签指令;

21、响应于第一指令为标签指令,则基于标签指令确定第三转换函数,并通过第三转换函数基于第一中间变量和第二中间变量输出与标签指令的逻辑对应的第三程序集;

22、其中,第三程序集的编程语言为结构化文本语言,第二中间变量用于存储第一中间变量的当前数据。

23、在其中一个实施例中,基于第一指令确定第一转换函数的步骤包括:

24、获取第一指令的标识信息,并基于标识信息匹配映射表中与第一指令对应的第一转换函数。

25、一种编程语言转换系统,转换系统包括:

26、解析单元,用于获取指令表语言文本中待转换代码,并对待转换代码进行解析,确定第一指令和第一操作数;

27、转换单元,与解析单元连接,用于基于第一指令确定第一转换函数,并通过第一转换函数基于第一操作数和/或第一中间变量输出与第一指令的逻辑对应的第一程序集,或者,通过第一转换函数基于第一指令的逻辑输出第一程序集;

28、其中,第一程序集的编程语言为结构化文本语言,第一中间变量用于模拟指令表语言运行时的内存空间。

29、一种计算机设备,包括:包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现如上述实施例中任一项方法的步骤。

30、一种计算机可读存储介质,其上存有计算机程序,计算机程序被处理器执行时实现如上述实施例中任一项方法的步骤。

31、与传统技术相比,上述编程语言转换方法及系统、计算机设备及可读存储介质。编程语言转换方法首先获取指令表语言文本中待转换代码,并对待转换代码进行解析,确定第一指令和第一操作数;然后基于第一指令确定第一转换函数,并通过第一转换函数基于第一操作数和/或第一中间变量输出与第一指令的逻辑对应的第一程序集,或者,通过第一转换函数基于第一指令的逻辑输出第一程序集;其中,第一程序集的编程语言为结构化文本语言,第一中间变量用于模拟指令表语言运行时的内存空间。本申请采用上述方法,通过第一中间变量模拟指令表语言运行时的真实状态,保持寄存器与状态位数据与真实运行时一致,并输出符合指令表语言的逻辑、且运行结果与指令表语言的运行结果完全一致的结构化文本语言(即第一程序集),从而实现由指令表语言到结构化文本语言的转换。

本文档来自技高网
...

【技术保护点】

1.一种编程语言转换方法,其特征在于,所述方法包括:

2.根据权利要求1所述的编程语言转换方法,其特征在于,所述获取指令表语言文本中待转换代码,并对所述待转换代码进行解析,确定第一指令和第一操作数的步骤包括:

3.根据权利要求2所述的编程语言转换方法,其特征在于,所述方法还包括:

4.根据权利要求2所述的编程语言转换方法,其特征在于,所述方法还包括:

5.根据权利要求4所述的编程语言转换方法,其特征在于,所述响应于所述第一指令为块调用指令,则继续对所述第一程序段进行逐行解析,并基于参数传递语句确定第二操作数的步骤包括:

6.根据权利要求2所述的编程语言转换方法,其特征在于,所述方法还包括:

7.根据权利要求1所述的编程语言转换方法,其特征在于,所述基于所述第一指令确定所述第一转换函数的步骤包括:

8.一种编程语言转换系统,其特征在于,所述转换系统包括:

9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-7中任一项所述方法的步骤。

10.一种计算机可读存储介质,其特征在于,其上存有计算机程序,所述计算机程序被处理器执行时,实现如权利要求1-7中任一项所述方法的步骤。

...

【技术特征摘要】

1.一种编程语言转换方法,其特征在于,所述方法包括:

2.根据权利要求1所述的编程语言转换方法,其特征在于,所述获取指令表语言文本中待转换代码,并对所述待转换代码进行解析,确定第一指令和第一操作数的步骤包括:

3.根据权利要求2所述的编程语言转换方法,其特征在于,所述方法还包括:

4.根据权利要求2所述的编程语言转换方法,其特征在于,所述方法还包括:

5.根据权利要求4所述的编程语言转换方法,其特征在于,所述响应于所述第一指令为块调用指令,则继续对所述第一程序段进行逐行解析,并基于参数传递语句确定第二操作数的步骤包括:

<...

【专利技术属性】
技术研发人员:刘海飞请求不公布姓名请求不公布姓名请求不公布姓名
申请(专利权)人:北京万旺科技有限公司
类型:发明
国别省市:

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

1