CN113485228A - 可编程逻辑控制器的混合编译方法、存储介质及程序产品 - Google Patents

可编程逻辑控制器的混合编译方法、存储介质及程序产品 Download PDF

Info

Publication number
CN113485228A
CN113485228A CN202110822206.2A CN202110822206A CN113485228A CN 113485228 A CN113485228 A CN 113485228A CN 202110822206 A CN202110822206 A CN 202110822206A CN 113485228 A CN113485228 A CN 113485228A
Authority
CN
China
Prior art keywords
instruction
compiling
interpreted
file
program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202110822206.2A
Other languages
English (en)
Other versions
CN113485228B (zh
Inventor
戴正国
郭福坤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Inovance Technology Co Ltd
Original Assignee
Shenzhen Inovance Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Inovance Technology Co Ltd filed Critical Shenzhen Inovance Technology Co Ltd
Priority to CN202110822206.2A priority Critical patent/CN113485228B/zh
Publication of CN113485228A publication Critical patent/CN113485228A/zh
Application granted granted Critical
Publication of CN113485228B publication Critical patent/CN113485228B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/056Programming the PLC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13004Programming the plc

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Automation & Control Theory (AREA)
  • Programmable Controllers (AREA)

Abstract

本申请公开一种可编程逻辑控制器的混合编译方法、存储介质及程序产品,可编程逻辑控制器的混合编译方法,应用于编译端;方法包括:获取混合指令程序,混合指令程序包括解释型指令和伪解释型指令,伪解释型指令由编译型指令组成;通过解释型编译所有解释型指令形成解释指令编译文件;通过编译型编译所有伪解释型指令形成编译型执行文件;发送解释指令编译文件和编译型执行文件至目标平台,以便目标平台执行混合指令程序。本申请旨在兼顾可编程逻辑控制器编译操作的执行效率和提高跨平台应用的扩展性。

Description

可编程逻辑控制器的混合编译方法、存储介质及程序产品
技术领域
本申请涉及可编程逻辑控制器技术领域,尤其涉及一种可编程逻辑控制器的混合编译方法、存储介质及程序产品。
背景技术
传统的PLC(Programmable Logic Controllers,可编程逻辑控制器)编译器分为基于指令的解释型编译器和基于指令的编译型编译器。在对程序语言编译时,如果使用解释型编译器则需要将指令转成对应的解释型指令,然后生成解释型指令列表程序文件,解析端则循坏执行解析指令->执行指令操作;如果使用编译型编译器则需要编译成目标平台可执行程序文件,解析端直接运行可执行程序文件即可。
解释型编译器执行编译需要一边解释一边执行,速度相对较慢,处理复杂的逻辑运算非常困难,但是能较好的跨平台应用;而编译型编译器编译的程序文件能够在目标平台直接执行,速度快,但不能跨平台应用。
发明内容
本申请实施例提供一种可编程逻辑控制器的混合编译方法、存储介质及程序产品,旨在兼顾可编程逻辑控制器编译操作的执行效率和提高跨平台应用的扩展性。
本申请实施例提供了一种可编程逻辑控制器的混合编译方法,应用于编译端;所述方法包括:
获取混合指令程序,所述混合指令程序包括解释型指令和伪解释型指令,所述伪解释型指令由编译型指令组成;
通过解释型编译所述解释型指令形成解释指令编译文件;
通过编译型编译所述伪解释型指令形成编译型执行文件;
发送所述解释指令编译文件和所述编译型执行文件至目标平台,以便所述目标平台执行所述混合指令程序。
在一些实施例中,所述通过解释型编译所述解释型指令形成解释指令编译文件的步骤,包括:
通过词法扫描方式提取所述混合指令程序中所有的所述解释型指令;
按所述混合指令程序中指令顺序对所有的所述解释型指令执行解释型编译形成解释指令编译文件。
在一些实施例中,所述通过编译型编译所述伪解释型指令形成编译型执行文件的步骤,包括:
通过词法扫描方式提取所述混合指令程序中所有的所述伪解释型指令;
对所有的所述伪解释型指令中的第一伪解释型指令,执行源程序分析操作形成中间文件;
根据所述中间文件生成所述目标平台可执行的可重定位文件。
在一些实施例中,所述对所有的所述伪解释型指令中的第一伪解释型指令,执行源程序分析操作形成中间文件的步骤,包括:
对所述第一伪解释型指令执行词法分析;
对词法分析后的所述第一伪解释型指令执行语法分析,形成中间文件。
在一些实施例中,所述解释型指令包括:顺序功能图、梯形图、功能模块图、指令表中的至少一种。
在一些实施例中,所述编译型指令为结构文本。
本申请实施例还提供一种可编程逻辑控制器的混合编译方法,应用于目标平台的解析端;所述方法包括:
接收编译端对混合指令程序编译形成的解释指令编译文件和编译型执行文件;
在扫描周期内,按照所述混合指令程序的程序顺序执行所述解释指令编译文件和所述编译型执行文件,直至所述混合指令程序内的所有指令执行完毕。
在一些实施例中,所述按照所述混合指令程序的程序顺序执行所述解释指令编译文件和所述编译型执行文件的步骤包括:
按照所述混合指令程序的程序顺序判断所述解释指令编译文件和所述编译型执行文件的指令对象类型;
若指令对象类型为解释型指令,则将所述解释型指令解析成目标平台可执行指令,并执行所述目标平台可执行指令;
若指令对象类型为编译型指令,则执行所述编译型执行文件。
本申请实施例还提出一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现所述的可编程逻辑控制器的混合编译方法中的步骤。
本申请实施例还提出一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现所述的可编程逻辑控制器的混合编译方法的步骤。
本申请实施例通过对混合指令程序中的解释型指令进行解释型编译,以及对混合指令程序中的伪解释型指令进行编译型编译,再将编译后产生的解释指令编译文件和所述编译型执行文件至目标平台,以便所述目标平台执行所述混合指令程序。本实施例对混合指令程序同时采用解释型编译和编译型编译两种方法,在具有解释型编译的提高跨平台应用的扩展性的优点的基础上,兼备了编译型编译的执行效率高的优点,即本实施例的混合编译操作兼顾了较高执行效率和跨平台应用的扩展性。
附图说明
图1为本申请的可编程逻辑控制器的混合编译方法的一实施例的硬件框架图;
图2为本申请的可编程逻辑控制器的混合编译方法的一实施例的流程图;
图3为本申请的可编程逻辑控制器的混合编译方法的又一实施例的流程图;
图4为本申请的混合指令程序的一实施例的示意图。
具体实施方式
为了更好的理解上述技术方案,下面将参照附图更详细地描述本发明公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
传统的PLC(Programmable Logic Controllers,可编程逻辑控制器)编译器分为基于指令的解释型编译器和基于指令的编译型编译器。在对程序语言编译时,如果使用解释型编译器则需要将指令转成对应的解释型指令,然后生成解释型指令列表程序文件,解析端则循坏执行解析指令->执行指令操作;如果使用编译型编译器则需要编译成目标平台可执行程序文件,解析端直接运行可执行程序文件即可。
解释型编译器执行编译需要一边解释一边执行,速度相对较慢,处理复杂的逻辑运算非常困难,但是能较好的跨平台应用;而编译型编译器编译的程序文件能够在目标平台直接执行,速度快,但不能跨平台应用。
鉴于此,本申请提出一种可编程逻辑控制器的混合编译方法、存储介质及程序产品,旨在兼顾可编程逻辑控制器编译操作的执行效率和提高跨平台应用的扩展性。
请参照图1,下面介绍一种可编程逻辑控制器的混合编译设备,该可编程逻辑控制器的混合编译方法可以包括:处理器1001,例如中央处理单元(CPU),该处理器1001还可以是其他通用处理器,例如:数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)、其他可编程逻辑控制器等。存储器1005,用户接口1003,网络接口1004,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选包括无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图2中出示的可编程逻辑控制器的混合编译设备结构并不构成对可编程逻辑控制器的混合编译方法的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及可编程逻辑控制器的混合编译程序。其中,操作系统是管理和控制可编程逻辑控制器的混合编译方法硬件和软件资源的程序,支持可编程逻辑控制器的混合编译程序以及其它软件或程序的运行。
在图1所示的可编程逻辑控制器的混合编译方法中,网络接口1004主要用于后台服务器,与后台服务器进行数据通信;处理器1001可以用于调用存储器1005中存储的可编程逻辑控制器的混合编译程序,并执行如上所述的可编程逻辑控制器的混合编译方法的步骤。
在一实施例中,处理器1001可以用于调用存储器1005中存储的可编程逻辑控制器的混合编译程序,并执行以所述方法包括:
获取混合指令程序,所述混合指令程序包括解释型指令和伪解释型指令,所述伪解释型指令由编译型指令组成;
通过解释型编译所述解释型指令形成解释指令编译文件;
通过编译型编译所述伪解释型指令形成编译型执行文件;
发送所述解释指令编译文件和所述编译型执行文件至目标平台,以便所述目标平台执行所述混合指令程序。
在一实施例中,处理器1001可以用于调用存储器1005中存储的可编程逻辑控制器的混合编译程序,并执行以所述方法包括:
通过词法扫描方式提取所述混合指令程序中所有的所述解释型指令;
按所述混合指令程序中指令顺序对所有的所述解释型指令执行解释型编译形成解释指令编译文件。
在一实施例中,处理器1001可以用于调用存储器1005中存储的可编程逻辑控制器的混合编译程序,并执行以所述方法包括:
通过词法扫描方式提取所述混合指令程序中所有的所述伪解释型指令;
对所有的所述伪解释型指令中的第一伪解释型指令,执行源程序分析操作形成中间文件;
根据所述中间文件生成所述目标平台可执行的可重定位文件。
在一实施例中,处理器1001可以用于调用存储器1005中存储的可编程逻辑控制器的混合编译程序,并执行以所述方法包括:
对所述第一伪解释型指令执行词法分析;
对词法分析后的所述第一伪解释型指令执行语法分析,形成中间文件。
在一实施例中,处理器1001可以用于调用存储器1005中存储的可编程逻辑控制器的混合编译程序,并执行以所述方法包括:
所述解释型指令包括:顺序功能图、梯形图、功能模块图、指令表中的至少一种。
在一实施例中,处理器1001可以用于调用存储器1005中存储的可编程逻辑控制器的混合编译程序,并执行以所述方法包括:
所述编译型指令为结构文本。
在一实施例中,处理器1001可以用于调用存储器1005中存储的可编程逻辑控制器的混合编译程序,并执行以所述方法包括:
接收编译端对混合指令程序编译形成的解释指令编译文件和编译型执行文件;
在扫描周期内,按照所述混合指令程序的程序顺序执行所述解释指令编译文件和所述编译型执行文件,直至所述混合指令程序内的所有指令执行完毕。
在一实施例中,处理器1001可以用于调用存储器1005中存储的可编程逻辑控制器的混合编译程序,并执行以所述方法包括:
按照所述混合指令程序的程序顺序判断所述解释指令编译文件和所述编译型执行文件的指令对象类型;
若指令对象类型为解释型指令,则将所述解释型指令解析成目标平台可执行指令,并执行所述目标平台可执行指令;
若指令对象类型为编译型指令,则执行所述编译型执行文件。
本申请的可编程逻辑控制器的混合编译设备通过对混合指令程序中的解释型指令进行解释型编译,以及对混合指令程序中的伪解释型指令进行编译型编译,再将编译后产生的解释指令编译文件和所述编译型执行文件至目标平台,以便所述目标平台执行所述混合指令程序。本实施例对混合指令程序同时采用解释型编译和编译型编译两种方法,在具有解释型编译的提高跨平台应用的扩展性的优点的基础上,兼备了编译型编译的执行效率高的优点,即本实施例的混合编译操作兼顾了较高执行效率和跨平台应用的扩展性。
在本发明可编程逻辑控制器的混合编译方法的各实施例中包括以下技术术语:可编程逻辑控制器以及编译。
可编程逻辑控制器:英文名称为Programmable Logic Controllers,可编程逻辑控制器是种专门为在工业环境下应用而设计的数字运算操作电子系统。它采用一种可编程的存储器,在其内部存储执行逻辑运算、顺序控制、定时、计数和算术运算等操作的指令,通过数字式或模拟式的输入输出来控制各种类型的机械设备或生产过程。
编译:英文名称为compilation,具有两个方面的含义。1、利用编译程序从源语言编写的源程序产生目标程序的过程。2、用编译程序产生目标程序的动作。简言之,编译就是把高级语言变成计算机可以识别的2进制语言,由于计算机只认识1和0,通过编译程序可将人们熟悉的语言换成例如2进制的机器语言。
请参照图2,基于上述可编程逻辑控制器的混合编译设备硬件架构,下面提出本申请的可编程逻辑控制器的混合编译方法的实施例一,所述可编程逻辑控制器的混合编译方法应用于编译端;可编程逻辑控制器的混合编译方法包括:
S100、获取混合指令程序,所述混合指令程序包括解释型指令和伪解释型指令,所述伪解释型指令由编译型指令组成;
编译端获取混合指令程序。为了兼顾解释型编译与编译型编译的优点,本实施例将混合指令程序分成两部分,一部分为解释型指令,而另一部分为伪解释型指令。其中伪解释型指令由编译型指令组成。通过将混合指令程序划分成解释型指令和伪解释型指令,为下面混合编译的步骤打下基础。
需要说明的是,所述解释型指令包括:顺序功能图(SFC)、梯形图(LD)、功能模块图(FBD)、指令表中(IL)的至少一种。即混合指令程序中的解释型指令可包括多种不同种类的指令。例如,请参照图4,图4表示一个实施例中混合指令程序的示意图,混合指令程序包括解释型指令LD M8000,伪解释型指令EXECUTE以及解释型指令MC Power。在一个可行的实施例,解释型指令LD M8000可以是梯形图,解释型指令MC Power可以是功能模块图。
在一个可行的实施例中,所述编译型指令选用结构文本(ST)。伪解释型指令EXECUTE中包括多个结构文本(ST)语句。需要说明的是,结构文本(ST)是为IEC61141-3标准创建的的一种专用高级语言,与梯形图相比,它能实现复杂的数学运算,编写的程序更加简洁紧凑。
由于结构文本中包括较多的语法。例如,结构文本包括IF...THEN语法、REPEAT语法、WHILE语法、FOR语法以及CASE语法等,因此结构文本中涉及较多的逻辑运算。此时再采用解释型编译方法处理显然效率不高。因此,本实施例中采用编译型编译处理伪解释型指令,即结构文本。
在其他的实施例中,编译型指令也可以是指令表。
S200、通过解释型编译所述解释型指令形成解释指令编译文件;
编译端通过原有的解释编译器编译混合指令程序中的所述解释型指令,形成解释指令编译文件。
在一个可行的实施例中,S200、所述通过解释型编译所述解释型指令形成解释指令编译文件的步骤,包括:
S210、通过词法扫描方式提取所述混合指令程序中所有的所述解释型指令;
编译端从左至右逐个字符地对混合指令程序进行词法扫描,根据已知的指令配置文件数据标识符获取指定的所述解释型指令,形成述解释型指令列表。
需要说明的是,指令配置文件数据标识符是预先规定好的各种数据标识符。根据已知的指令配置文件数据标识符获取指定的所述解释型指令。
S220、按所述混合指令程序中指令顺序对所有的所述解释型指令执行解释型编译形成解释指令编译文件。
编译端按指令顺序,对所有的所述解释型指令通过解释型编译器执行解释型编译形成解释指令编译文件。
例如,编译端在混合指令程序中提取解释型指令LD M8000和解释型指令MC Power后,通过解释型编译器按顺序分别对解释型指令LD M8000和解释型指令MC Power进行解释编译形成解释指令编译文件。
S300、通过编译型编译所述伪解释型指令形成编译型执行文件;
编译端通过编译型编译混合指令程序中的所述伪解释型指令,形成编译型执行文件。
在一个可行的实施例中,S300、所述通过编译型编译所述伪解释型指令形成编译型执行文件的步骤,包括:
S310、通过词法扫描方式提取所述混合指令程序中所有的所述伪解释型指令;
编译端从左至右逐个字符地对混合指令程序进行词法扫描,根据已知的指令配置文件数据标识符获取指定的所述伪解释型指令。
S320、对所有的所述伪解释型指令中的第一伪解释型指令,执行源程序分析操作形成中间文件;
对于第一伪解释型指令(即结构文本),编译端首先提取结构文本中的内部源程序,对内部源程序执行源程序分析操作形成中间文件。
需要说明的是,所述伪解释型指令中的第一伪解释型指令指的是混合指令程序中的任一用于编译型编译的伪解释型指令。
例如,对于混合指令程序中的伪解释型指令EXECUTE,伪解释型指令EXECUTE中包括多种结构文本语句。编译端提取伪解释型指令EXECUTE的内部源程序,对内部源程序执行源程序分析操作形成中间文件。需要说明的是,该中间文件是与目标平台无关的语言文件。中间文件有多种形式,例如逆波兰记号、四元式、三元式和树等。
在一个可行的实施例中,S320、所述对所有的所述伪解释型指令中的第一伪解释型指令,执行源程序分析操作形成中间文件的步骤,包括:
S321、对所述第一伪解释型指令执行词法分析;
编译端对所述第一伪解释型指令执行词法分析。从左至右逐个字符地对源程序进行扫描,产生一个个的单词符号,把作为字符串的源程序改造成为单词符号串的中间程序。即,通过词法分析将源程序中的‘单词’(Token)找出来。
例如,对于伪解释型指令EXECUTE中的源程序“a=b+c;”通过词法分析后看到的是“a”,“=”,“b”,“+”,“c”这样5个“单词”。
S322、对词法分析后的所述第一伪解释型指令执行语法分析,形成中间文件。
在对所述第一伪解释型指令执行词法分析之后,编译端对第一伪解释型指令执行语法分析,形成中间文件。
以步骤S321的中的例子为例,通过语法分析把“a”,“=”,“b”,“+”,“c”这样5个“单词”按预先定义好的语法组装成有意义的语句。通过语法分析按定义的语法,先把他们组装成表达式“b+c”,再组装成“a=b+c”的语句。
值得一提的是,在其他一些实施例中,步骤S322中语法分析之后还包括语义(semantic checking)检查。例如检测参与运算的变量是否属于同一类型,以及进行简单的错误处理。
S330、根据所述中间文件生成所述目标平台可执行的可重定位文件。
编译端根据所述中间文件生成所述目标平台可执行的可重定位文件。需要说明的是,目标平台可以包括各种平台,例如ARM平台等。
S400、发送所述解释指令编译文件和所述编译型执行文件至目标平台,以便所述目标平台执行所述混合指令程序。
编译端对混合指令程序的解释型指令通过解释型编译产生解释指令编译文件,对混合指令程序的伪解释型指令(例如结构文本)通过编译型编译产生编译型执行文件(即可重定位文件),并将解释指令编译文件和编译型执行文件至目标平台,以便所述目标平台执行所述混合指令程序。
通过对混合指令程序中的解释型指令进行解释型编译,以及对混合指令程序中的伪解释型指令进行编译型编译,再将编译后产生的解释指令编译文件和所述编译型执行文件至目标平台,以便所述目标平台执行所述混合指令程序。本实施例对混合指令程序同时采用解释型编译和编译型编译两种方法,在具有解释型编译的提高跨平台应用的扩展性的优点的基础上,兼备了编译型编译的执行效率高的优点,即本实施例的混合编译操作兼顾了较高执行效率和跨平台应用的扩展性。
实施例二
基于同一发明构思,本申请还提出实施例二,实施例二应用于目标平台的解析端;
请参照图3,一种可编程逻辑控制器的混合编译方法,所述方法包括:
S500、接收编译端对混合指令程序编译形成的解释指令编译文件和编译型执行文件;
在一个可行的实施例中,目标平台的解析端可通过串口接收混合指令程序编译形成的解释指令编译文件和编译型执行文件。
需要说明的是,目标平台的解析端还可通过UART口、COM口、USB口等方式接收混合指令程序编译形成的解释指令编译文件和编译型执行文件。
S600、分别对所述解释指令编译文件和所述编译型执行文件进行初始化处理;
目标平台的解析端首先通过对解释指令编译文件进行解析与初始化,然后再对可重定位文件进行变量和函数的重定位以及初始化加载。
S700、在扫描周期内,按照所述混合指令程序的程序顺序执行所述解释指令编译文件和所述编译型执行文件,直至所述混合指令程序内的所有指令执行完毕。
目标平台的解析端在扫描周期内,按照所述混合指令程序的程序顺序执行所述解释指令编译文件和所述编译型执行文件,直至所述混合指令程序内的所有指令执行完毕。
在一个可行的实施例中,所述按照所述混合指令程序的程序顺序执行所述解释指令编译文件和所述编译型执行文件的步骤包括:
S710、按照所述混合指令程序的程序顺序判断所述解释指令编译文件和所述编译型执行文件的指令对象类型;
目标平台的解析端按照所述混合指令程序的程序顺序判断所述解释指令编译文件和所述编译型执行文件的指令对象类型;
S720、若指令对象类型为解释型指令,则将所述解释型指令解析成目标平台可执行指令,并执行所述目标平台可执行指令;
当目标平台的解析端判断指令对象类型为解释型指令,则将所述解释型指令解析成目标平台可执行指令,并执行所述目标平台可执行指令。
可以理解的,由于此时解释型指令属于目标平台不能识别的中间指令,因此需要将解释型指令解析成对应目标平台可执行的指令,即目标平台可执行指令,才能够进行解释型指令的执行。对于解释型指令仍然使用解释型编译方法,保证具有较好的跨平台应用的拓展性。
S730、若指令对象类型为编译型指令,则执行所述编译型执行文件。
当目标平台的解析端判断指令对象类型为所述编译型执行文件(即可重定位文件),直接执行所述编译型执行文件。
可以理解的,由于编译端已经将伪解释型指令编译成目标平台可执行的可重定位文件,因此目标平台的解析段直接执行所述编译型执行文件。由于编译型执行文件含有较多的结构文本语句,也具有较多的逻辑运算,通过将伪解释型指令编译成可重定位文件,并在扫描周期内直接执行,提高程序执行效率。
下面沿用实施例一的例子说明,混合指令程序由解释型指令LD M8000→伪解释型指令EXECUTE→解释型指令MC Power组成。在扫描周期开始时,目标平台的解析端按顺序判断LD M8000为解释型指令,解析解释型指令LD M8000并执行指令;判断EXECUTE为伪解释型指令,直接执行LD M8000并执行编译型执行文件(即可重定位文件);判断MC Power为解释型指令,解析解释型指令MC Power并执行指令;扫描周期结束。
本实施例通过接收编译端对混合指令程序编译形成的解释指令编译文件和编译型执行文件,对解释指令编译文件先解析后执行,对编译型执行文件(即可重定位文件)直接执行,通过采取解释型编译与编译型编译相结合的方式,既能兼容之前的解释型编译流程,能够较好的扩展到其他跨平台应用。又能在逻辑运算较多时(结构文本较多)显著的提高执行效率。
本申请还提出一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现所述的可编程逻辑控制器的混合编译方法中的步骤。
本发明还提出一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上所述的可编程逻辑控制器的混合编译方法的步骤,本发明可编程逻辑控制器的混合编译方法、计算机可读存储介质和计算机程序产品的各实范例,均可参照本发明可编程逻辑控制器的混合编译方法各个实施例,此处不再资述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本申请可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (10)

1.一种可编程逻辑控制器的混合编译方法,其特征在于,应用于编译端;所述方法包括:
获取混合指令程序,所述混合指令程序包括解释型指令和伪解释型指令,所述伪解释型指令由编译型指令组成;
通过解释型编译所述解释型指令形成解释指令编译文件;
通过编译型编译所述伪解释型指令形成编译型执行文件;
发送所述解释指令编译文件和所述编译型执行文件至目标平台,以便所述目标平台执行所述混合指令程序。
2.根据权利要求1所述的方法,其特征在于,所述通过解释型编译所述解释型指令形成解释指令编译文件的步骤,包括:
通过词法扫描方式提取所述混合指令程序中所有的所述解释型指令;
按所述混合指令程序中指令顺序对所有的所述解释型指令执行解释型编译形成解释指令编译文件。
3.根据权利要求1所述的方法,其特征在于,所述通过编译型编译所述伪解释型指令形成编译型执行文件的步骤,包括:
通过词法扫描方式提取所述混合指令程序中所有的所述伪解释型指令;
对所有的所述伪解释型指令中的第一伪解释型指令,执行源程序分析操作形成中间文件;
根据所述中间文件生成所述目标平台可执行的可重定位文件。
4.根据权利要求3所述的方法,其特征在于,所述对所有的所述伪解释型指令中的第一伪解释型指令,执行源程序分析操作形成中间文件的步骤,包括:
对所述第一伪解释型指令执行词法分析;
对词法分析后的所述第一伪解释型指令执行语法分析,形成中间文件。
5.根据权利要求1所述的方法,其特征在于,所述解释型指令包括:顺序功能图、梯形图、功能模块图、指令表中的至少一种。
6.根据权利要求1所述的方法,其特征在于,所述编译型指令为结构文本。
7.一种可编程逻辑控制器的混合编译方法,其特征在于,应用于目标平台的解析端;所述方法包括:
接收编译端对混合指令程序编译形成的解释指令编译文件和编译型执行文件;
在扫描周期内,按照所述混合指令程序的程序顺序执行所述解释指令编译文件和所述编译型执行文件,直至所述混合指令程序内的所有指令执行完毕。
8.根据权利要求7所述的方法,其特征在于,其特征在于,所述按照所述混合指令程序的程序顺序执行所述解释指令编译文件和所述编译型执行文件的步骤包括:
按照所述混合指令程序的程序顺序判断所述解释指令编译文件和所述编译型执行文件的指令对象类型;
若指令对象类型为解释型指令,则将所述解释型指令解析成目标平台可执行指令,并执行所述目标平台可执行指令;
若指令对象类型为编译型指令,则执行所述编译型执行文件。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1至8中任一项所述的可编程逻辑控制器的混合编译方法中的步骤。
10.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序被处理器执行时实现权利要求1-8任一所述的可编程逻辑控制器的混合编译方法的步骤。
CN202110822206.2A 2021-07-19 2021-07-19 可编程逻辑控制器的混合编译方法、存储介质及程序产品 Active CN113485228B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110822206.2A CN113485228B (zh) 2021-07-19 2021-07-19 可编程逻辑控制器的混合编译方法、存储介质及程序产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110822206.2A CN113485228B (zh) 2021-07-19 2021-07-19 可编程逻辑控制器的混合编译方法、存储介质及程序产品

Publications (2)

Publication Number Publication Date
CN113485228A true CN113485228A (zh) 2021-10-08
CN113485228B CN113485228B (zh) 2022-07-26

Family

ID=77942594

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110822206.2A Active CN113485228B (zh) 2021-07-19 2021-07-19 可编程逻辑控制器的混合编译方法、存储介质及程序产品

Country Status (1)

Country Link
CN (1) CN113485228B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024109090A1 (zh) * 2022-11-23 2024-05-30 深圳市汇川技术股份有限公司 可编程逻辑控制器的混合执行方法、装置、设备及介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10312202A (ja) * 1997-05-12 1998-11-24 Sharp Corp プログラマブルコントローラ
CN104239115A (zh) * 2014-07-24 2014-12-24 汕头大学 一种plc编程语言的编译方法
CN104820393A (zh) * 2015-03-17 2015-08-05 浪潮集团有限公司 一种基于plc梯形图矩阵编译解释方法
CN106648681A (zh) * 2016-12-29 2017-05-10 南京科远自动化集团股份有限公司 一种可编程语言编译装载系统及方法
CN108375952A (zh) * 2018-03-08 2018-08-07 山东超越数控电子股份有限公司 一种plc连续功能图编译和解释方法与装置
CN112835323A (zh) * 2020-12-31 2021-05-25 深圳市雷赛控制技术有限公司 可编程逻辑控制语言编译方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10312202A (ja) * 1997-05-12 1998-11-24 Sharp Corp プログラマブルコントローラ
CN104239115A (zh) * 2014-07-24 2014-12-24 汕头大学 一种plc编程语言的编译方法
CN104820393A (zh) * 2015-03-17 2015-08-05 浪潮集团有限公司 一种基于plc梯形图矩阵编译解释方法
CN106648681A (zh) * 2016-12-29 2017-05-10 南京科远自动化集团股份有限公司 一种可编程语言编译装载系统及方法
CN108375952A (zh) * 2018-03-08 2018-08-07 山东超越数控电子股份有限公司 一种plc连续功能图编译和解释方法与装置
CN112835323A (zh) * 2020-12-31 2021-05-25 深圳市雷赛控制技术有限公司 可编程逻辑控制语言编译方法及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024109090A1 (zh) * 2022-11-23 2024-05-30 深圳市汇川技术股份有限公司 可编程逻辑控制器的混合执行方法、装置、设备及介质

Also Published As

Publication number Publication date
CN113485228B (zh) 2022-07-26

Similar Documents

Publication Publication Date Title
CN108388425B (zh) 一种基于lstm自动补全代码的方法
CN109254776B (zh) 多语言代码编译方法及编译器
US8762962B2 (en) Methods and apparatus for automatic translation of a computer program language code
JP4822817B2 (ja) コンパイルシステム
CN109143952B (zh) 可编程逻辑控制器编程语言转换系统
JPH08202545A (ja) ターゲット言語コードを生成するためのオブジェクト指向システム及びその方法
CN112835323B (zh) 可编程逻辑控制语言编译方法及装置
CN109739512B (zh) 一种解析型语言文本式分析转换方法
CN107291522B (zh) 一种面向自定义规则文件的编译优化方法及系统
JPH11513512A (ja) ディジタル信号プロセッサの製造方法
Naujokat et al. Domain-specific code generator modeling: a case study for multi-faceted concurrent systems
CN109032056B (zh) 可编程逻辑控制器编程语言转换方法
CN113485228B (zh) 可编程逻辑控制器的混合编译方法、存储介质及程序产品
Fedorchenko et al. Equivalent transformations and regularization in context-free grammars
Fischer et al. Abstract syntax trees-and their role in model driven software development
CN104915199A (zh) 一种将Flash项目转换为Html5项目的方法与装置
CN107122184A (zh) 一种虚拟现实软件开放式开发系统及方法
Paakki Prolog in practical compiler writing
JP2007122187A (ja) プログラム・コード生成装置
CN114817124A (zh) 多核微控制器间映射方法、设备及计算机可读存储介质
Bowen et al. Occam's Razor: the cutting edge of parser technology
CN112860262B (zh) 一种代码解析的方法、装置、电子设备及存储介质
Grigorev et al. String-embedded language support in integrated development environment
CN116560667B (zh) 一种基于预编译延迟执行的拆分调度系统及方法
US11650802B2 (en) Idiomatic source code generation

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant