CN111104205A - 一种st语言的解释执行方法及系统 - Google Patents

一种st语言的解释执行方法及系统 Download PDF

Info

Publication number
CN111104205A
CN111104205A CN201911344990.XA CN201911344990A CN111104205A CN 111104205 A CN111104205 A CN 111104205A CN 201911344990 A CN201911344990 A CN 201911344990A CN 111104205 A CN111104205 A CN 111104205A
Authority
CN
China
Prior art keywords
program
language
input parameters
parameters
output parameters
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.)
Pending
Application number
CN201911344990.XA
Other languages
English (en)
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.)
Zhejiang Supcon Technology Co Ltd
Original Assignee
Zhejiang Supcon 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 Zhejiang Supcon Technology Co Ltd filed Critical Zhejiang Supcon Technology Co Ltd
Priority to CN201911344990.XA priority Critical patent/CN111104205A/zh
Publication of CN111104205A publication Critical patent/CN111104205A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45516Runtime code conversion or optimisation
    • G06F9/4552Involving translation to a different instruction set architecture, e.g. just-in-time translation in a JVM

Landscapes

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

Abstract

本发明公开了一种ST语言的解释执行方法及系统,通过解析读取的ST程序文件中ST程序的语法和语义,得到ST程序的输入参数、输出参数以及输入参数与输出参数的逻辑关系,将输入参数、输出参数以及逻辑关系转换成ST语言功能块的通用语言程序,该通用语言程序支持基本数据结构和逻辑控制语句,并将通用语言程序下载至程序运行装置上执行,实现对ST语言的解释执行。本发明省去了ST程序的编译步骤,可以直接解释执行ST程序,另外,由于本发明是将ST程序转换成ST语言功能块的通用语言程序,该通用语言程序支持基本数据结构和逻辑控制语句,因此,本发明可以使ST语言功能块程序运行在支持通用语言程序的装置载体。

Description

一种ST语言的解释执行方法及系统
技术领域
本发明涉及断路器技术领域,更具体的说,涉及一种ST语言的解释执行方法及系统。
背景技术
在工业控制领域,ST(Structured text,结构化文本/结构式文件编程语言)作为一种较为通用的程序编程语言被广泛应用。当前,ST语言可编写工业控制的ST语言功能块程序,ST语言功能块程序的主要运行载体包括PLC(Programmable Logic Controller,可编程逻辑控制器)、单片机等设备。ST语言的主要运行流程为:首先,在ST编写工具中编写ST程序,其次,ST程序通过编译程序生成ST语言功能块程序,然后,将ST语言功能块程序转换成可执行二进制机器代码程序,最后将可执行二进制机器代码程序下载至程序运行装置上执行。
传统方案中,在解释运行ST语言时,需要对ST语言进行编译操作,并且,由于是将ST语言功能块程序转换成可执行二进制机器代码程序运行,因此,只有支持二进制机器代码的程序运行装置才可以支持运行ST语言功能块程序,从而限制了ST语言功能块程序运行的装置载体。
发明内容
有鉴于此,本发明公开一种ST语言的解释执行方法及系统,以实现省去ST程序的编译步骤,可以直接解释执行ST程序,另外,由于本发明是将ST程序转换成ST语言功能块的通用语言程序,该通用语言程序支持基本数据结构和逻辑控制语句,因此,本发明可以使ST语言功能块程序运行在支持通用语言程序的装置载体,而不是局限于只有支持二进制机器代码的程序运行装置才可以支持运行ST语言功能块程序。
一种ST语言的解释执行方法,包括:
读取ST程序文件;
解析所述ST程序文件中ST程序的语法和语义,得到所述ST程序的输入参数、输出参数以及所述输入参数与所述输出参数的逻辑关系;
将所述输入参数、所述输出参数和所述逻辑关系转换成ST语言功能块的通用语言程序,其中,所述通用语言程序支持基本数据结构和逻辑控制语句;
将所述通用语言程序下载至程序运行装置上执行。
可选的,所述将所述输入参数、所述输出参数和所述逻辑关系转换成ST语言功能块的通用语言程序,具体包括:
将所述输入参数、所述输出参数和所述逻辑关系中的关键字转换成所述通用语言程序中的关键字。
可选的,所述基本数据结构包括:布尔值、整型值、字符串和数组。
可选的,所述逻辑控制语句包括:if/else、for循环、while循环和函数声明。
一种ST语言的解释执行系统,包括:
读取单元,用于读取ST程序文件;
解析单元,用于解析所述ST程序文件中ST程序的语法和语义,得到所述ST程序的输入参数、输出参数以及所述输入参数与所述输出参数的逻辑关系;
转换单元,用于将所述输入参数、所述输出参数和所述逻辑关系转换成ST语言功能块的通用语言程序,其中,所述通用语言程序支持基本数据结构和逻辑控制语句;
下载单元,用于将所述通用语言程序下载至程序运行装置上执行。
可选的,所述转换单元具体用于:
将所述输入参数、所述输出参数和所述逻辑关系中的关键字转换成所述通用语言程序中的关键字。
可选的,所述基本数据结构包括:布尔值、整型值、字符串和数组。
可选的,所述逻辑控制语句包括:if/else、for循环、while循环和函数声明。
从上述的技术方案可知,本发明公开了一种ST语言的解释执行方法及系统,读取ST程序文件,通过解析ST程序文件中ST程序的语法和语义,得到ST程序的输入参数、输出参数以及输入参数与输出参数的逻辑关系,将输入参数、输出参数以及逻辑关系转换成ST语言功能块的通用语言程序,该通用语言程序支持基本数据结构和逻辑控制语句,并将通用语言程序下载至程序运行装置上执行,实现对ST语言的解释执行。相对于传统方案而言,本发明省去了ST程序的编译步骤,可以直接解释执行ST程序,另外,由于本发明是将ST程序转换成ST语言功能块的通用语言程序,该通用语言程序支持基本数据结构和逻辑控制语句,因此,本发明可以使ST语言功能块程序运行在支持通用语言程序的装置载体,而不是局限于只有支持二进制机器代码的程序运行装置才可以支持运行ST语言功能块程序。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据公开的附图获得其他的附图。
图1为本发明实施例公开的一种ST语言的解释执行方法流程图;
图2为本发明实施例公开的一种ST语言的解释执行系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种ST语言的解释执行方法及系统,读取ST程序文件,通过解析ST程序文件中ST程序的语法和语义,得到ST程序的输入参数、输出参数以及输入参数与输出参数的逻辑关系,将输入参数、输出参数以及逻辑关系转换成ST语言功能块的通用语言程序,该通用语言程序支持基本数据结构和逻辑控制语句,并将通用语言程序下载至程序运行装置上执行,实现对ST语言的解释执行。相对于传统方案而言,本发明省去了ST程序的编译步骤,可以直接解释执行ST程序,另外,由于本发明是将ST程序转换成ST语言功能块的通用语言程序,该通用语言程序支持基本数据结构和逻辑控制语句,因此,本发明可以使ST语言功能块程序运行在支持通用语言程序的装置载体,而不是局限于只有支持二进制机器代码的程序运行装置才可以支持运行ST语言功能块程序。
参见图1,本发明一实施例公开的一种ST语言的解释执行方法流程图,该方法包括步骤:
步骤S101、读取ST程序文件;
其中,ST程序文件中包含有ST程序。
步骤S102、解析所述ST程序文件中ST程序的语法和语义,得到所述ST程序的输入参数、输出参数以及所述输入参数与所述输出参数的逻辑关系;
本实施例中,语法和语义的区别是:语法用于描述程序的构成,语义用于描述程序的含义,例如,程序为:雪是白的,则该程序的语法正确,语义正确;程序为:雪是红的,则该程序的语法正确,语义错误。
在实际应用中,可以设置一个ST程序语法语义解析装置,ST程序语法语义解析装置为一个虚拟模块,用于解析所述ST程序文件中ST程序的语法和语义,得到所述ST程序的输入参数、输出参数以及所述输入参数与所述输出参数的逻辑关系。
步骤S103、将所述输入参数、所述输出参数和所述逻辑关系转换成ST语言功能块的通用语言程序;
其中,本实施例中的通用语言程序支持基本数据结构和逻辑控制语句。基本数据结构包括:布尔值、整型值、字符串和数组等数据结构。逻辑控制语句包括:if/else、for循环、while循环和函数声明等。
在实际应用中,步骤S103的实现过程具体可以为:将所述输入参数、所述输出参数和所述逻辑关系中的关键字转换成所述通用语言程序中的关键字。
需要说明的是,通用语言程序可以认为是一种轻量级编程语言,包括但不限于C++、java等常用语言。
在实际应用中,可以设置一个转换装置,该装换装置可以将将所述输入参数、所述输出参数和所述逻辑关系转换成ST语言功能块的通用语言程序。
步骤S104、将所述通用语言程序下载至程序运行装置上执行。
其中,程序运行装置包括但不限于:PLC、单片机、PC、企业级服务器等电子计算机载体。
在实际应用中,当程序运行装置获取通用语言程序后,就可以基于该通用语言程序解析执行ST程序。
具体的,程序运行装置获取一个数据采集周期内的待运行ST程序的输入参数,基于该输入参数和通用语言程序,得到ST程序的输出参数,并将输出参数输出。
综上可知,本发明公开的ST语言的解释执行方法,读取ST程序文件,通过解析ST程序文件中ST程序的语法和语义,得到ST程序的输入参数、输出参数以及输入参数与输出参数的逻辑关系,将输入参数、输出参数以及逻辑关系转换成ST语言功能块的通用语言程序,该通用语言程序支持基本数据结构和逻辑控制语句,并将通用语言程序下载至程序运行装置上执行,实现对ST语言的解释执行。相对于传统方案而言,本发明省去了ST程序的编译步骤,可以直接解释执行ST程序,另外,由于本发明是将ST程序转换成ST语言功能块的通用语言程序,该通用语言程序支持基本数据结构和逻辑控制语句,因此,本发明可以使ST语言功能块程序运行在支持通用语言程序的装置载体,而不是局限于只有支持二进制机器代码的程序运行装置才可以支持运行ST语言功能块程序。
与上述方法实施例相对应,本发明还公开了一种ST语言的解释执行系统。
参见图2,本发明一实施例公开的一种ST语言的解释执行系统的结构示意图,该系统包括:
读取单元201,用于读取ST程序文件;
其中,ST程序文件中包含有ST程序。
解析单元202,用于解析所述ST程序文件中ST程序的语法和语义,得到所述ST程序的输入参数、输出参数以及所述输入参数与所述输出参数的逻辑关系;
本实施例中,语法和语义的区别是:语法用于描述程序的构成,语义用于描述程序的含义,例如,程序为:雪是白的,则该程序的语法正确,语义正确;程序为:雪是红的,则该程序的语法正确,语义错误。
在实际应用中,可以设置一个ST程序语法语义解析装置,ST程序语法语义解析装置为一个虚拟模块,用于解析所述ST程序文件中ST程序的语法和语义,得到所述ST程序的输入参数、输出参数以及所述输入参数与所述输出参数的逻辑关系。
转换单元203,用于将所述输入参数、所述输出参数和所述逻辑关系转换成ST语言功能块的通用语言程序,其中,所述通用语言程序支持基本数据结构和逻辑控制语句;
其中,本实施例中的通用语言程序支持基本数据结构和逻辑控制语句。基本数据结构包括:布尔值、整型值、字符串和数组等数据结构。逻辑控制语句包括:if/else、for循环、while循环和函数声明等。
在实际应用中,转换单元203具体可以用于:
将所述输入参数、所述输出参数和所述逻辑关系中的关键字转换成所述通用语言程序中的关键字。
需要说明的是,通用语言程序可以认为是一种轻量级编程语言,包括但不限于C++、java等常用语言。
在实际应用中,可以设置一个转换装置,该装换装置可以将将所述输入参数、所述输出参数和所述逻辑关系转换成ST语言功能块的通用语言程序。
下载单元204,用于将所述通用语言程序下载至程序运行装置上执行。
其中,程序运行装置包括但不限于:PLC、单片机、PC、企业级服务器等电子计算机载体。
在实际应用中,当程序运行装置获取通用语言程序后,就可以基于该通用语言程序解析执行ST程序。
具体的,程序运行装置获取一个数据采集周期内的待运行ST程序的输入参数,基于该输入参数和通用语言程序,得到ST程序的输出参数,并将输出参数输出。
综上可知,本发明公开的ST语言的解释执行系统,读取ST程序文件,通过解析ST程序文件中ST程序的语法和语义,得到ST程序的输入参数、输出参数以及输入参数与输出参数的逻辑关系,将输入参数、输出参数以及逻辑关系转换成ST语言功能块的通用语言程序,该通用语言程序支持基本数据结构和逻辑控制语句,并将通用语言程序下载至程序运行装置上执行,实现对ST语言的解释执行。相对于传统方案而言,本发明省去了ST程序的编译步骤,可以直接解释执行ST程序,另外,由于本发明是将ST程序转换成ST语言功能块的通用语言程序,该通用语言程序支持基本数据结构和逻辑控制语句,因此,本发明可以使ST语言功能块程序运行在支持通用语言程序的装置载体,而不是局限于只有支持二进制机器代码的程序运行装置才可以支持运行ST语言功能块程序。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (8)

1.一种ST语言的解释执行方法,其特征在于,包括:
读取ST程序文件;
解析所述ST程序文件中ST程序的语法和语义,得到所述ST程序的输入参数、输出参数以及所述输入参数与所述输出参数的逻辑关系;
将所述输入参数、所述输出参数和所述逻辑关系转换成ST语言功能块的通用语言程序,其中,所述通用语言程序支持基本数据结构和逻辑控制语句;
将所述通用语言程序下载至程序运行装置上执行。
2.根据权利要求1所述的解释执行方法,其特征在于,所述将所述输入参数、所述输出参数和所述逻辑关系转换成ST语言功能块的通用语言程序,具体包括:
将所述输入参数、所述输出参数和所述逻辑关系中的关键字转换成所述通用语言程序中的关键字。
3.根据权利要求1所述的解释执行方法,其特征在于,所述基本数据结构包括:布尔值、整型值、字符串和数组。
4.根据权利要求1所述的解释执行方法,其特征在于,所述逻辑控制语句包括:if/else、for循环、while循环和函数声明。
5.一种ST语言的解释执行系统,其特征在于,包括:
读取单元,用于读取ST程序文件;
解析单元,用于解析所述ST程序文件中ST程序的语法和语义,得到所述ST程序的输入参数、输出参数以及所述输入参数与所述输出参数的逻辑关系;
转换单元,用于将所述输入参数、所述输出参数和所述逻辑关系转换成ST语言功能块的通用语言程序,其中,所述通用语言程序支持基本数据结构和逻辑控制语句;
下载单元,用于将所述通用语言程序下载至程序运行装置上执行。
6.根据权利要求5所述的解释执行系统,其特征在于,所述转换单元具体用于:
将所述输入参数、所述输出参数和所述逻辑关系中的关键字转换成所述通用语言程序中的关键字。
7.根据权利要求5所述的解释执行系统,其特征在于,所述基本数据结构包括:布尔值、整型值、字符串和数组。
8.根据权利要求1所述的解释执行系统,其特征在于,所述逻辑控制语句包括:if/else、for循环、while循环和函数声明。
CN201911344990.XA 2019-12-24 2019-12-24 一种st语言的解释执行方法及系统 Pending CN111104205A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911344990.XA CN111104205A (zh) 2019-12-24 2019-12-24 一种st语言的解释执行方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911344990.XA CN111104205A (zh) 2019-12-24 2019-12-24 一种st语言的解释执行方法及系统

Publications (1)

Publication Number Publication Date
CN111104205A true CN111104205A (zh) 2020-05-05

Family

ID=70424118

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911344990.XA Pending CN111104205A (zh) 2019-12-24 2019-12-24 一种st语言的解释执行方法及系统

Country Status (1)

Country Link
CN (1) CN111104205A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5613117A (en) * 1991-02-27 1997-03-18 Digital Equipment Corporation Optimizing compiler using templates corresponding to portions of an intermediate language graph to determine an order of evaluation and to allocate lifetimes to temporary names for variables
JP2007128378A (ja) * 2005-11-07 2007-05-24 Fuji Electric Fa Components & Systems Co Ltd プログラマブルコントローラのプログラミング装置
CN106164892A (zh) * 2014-03-26 2016-11-23 微软技术许可有限责任公司 用于语言转换的时间转换语法
WO2018151277A1 (ja) * 2017-02-17 2018-08-23 三菱重工エンジニアリング株式会社 ソフトウェア試験装置、ソフトウェア試験システム、ソフトウェア試験方法およびプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5613117A (en) * 1991-02-27 1997-03-18 Digital Equipment Corporation Optimizing compiler using templates corresponding to portions of an intermediate language graph to determine an order of evaluation and to allocate lifetimes to temporary names for variables
JP2007128378A (ja) * 2005-11-07 2007-05-24 Fuji Electric Fa Components & Systems Co Ltd プログラマブルコントローラのプログラミング装置
CN106164892A (zh) * 2014-03-26 2016-11-23 微软技术许可有限责任公司 用于语言转换的时间转换语法
WO2018151277A1 (ja) * 2017-02-17 2018-08-23 三菱重工エンジニアリング株式会社 ソフトウェア試験装置、ソフトウェア試験システム、ソフトウェア試験方法およびプログラム

Similar Documents

Publication Publication Date Title
US8997070B2 (en) Extension mechanism for scripting language compiler
US8156471B2 (en) Multi-language execution method
US9170788B2 (en) Analysis of dynamic elements in bounded time
KR101354803B1 (ko) 유형 추론 및 유형 지향 후기 바인딩
US7945904B2 (en) Embedding expression in XML literals
US20040158820A1 (en) System for generating an application framework and components
CN109710260B (zh) 一种基于多平台的小程序代码转换方法
US20090328016A1 (en) Generalized expression trees
Templ TDL specification and report
CN111427583A (zh) 组件的编译方法、装置和电子设备及计算机可读存储介质
CN116069325B (zh) 前端项目构建方法、装置、设备及计算机可读存储介质
CN110187886B (zh) 一种文档网站生成方法及终端
AU2003204197B2 (en) System and method for defining and using subclasses declaratively within markup
Husár et al. Automatic C compiler generation from architecture description language ISAC
CN111104205A (zh) 一种st语言的解释执行方法及系统
CN104636174B (zh) 基于Android系统的特征值定义和使用方法及系统
KR100878044B1 (ko) 브루 및 위피 간의 호환성 제공을 위한 어플리케이션 변환방법 및 장치
KR101585044B1 (ko) 프로그래밍 언어 통합 처리 시스템
CN110018816B (zh) 一种基于c/c++编译系统的虚拟机控制系统及其控制方法
CN113485228B (zh) 可编程逻辑控制器的混合编译方法、存储介质及程序产品
Nellaiyapen Practical WebAssembly: Explore the fundamentals of WebAssembly programming using Rust
CN109408107B (zh) 一种基于教育系统的提高检索速度的方法及电子设备
CN106484370B (zh) 一种视图体系的生成方法、装置及系统
Amal et al. Software tool for translating pseudocode to a programming language
Kalin Program Structure

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