一种将IL语言转换为梯形图的方法及装置.pdf

上传人:Y0****01 文档编号:6287059 上传时间:2019-05-28 格式:PDF 页数:19 大小:1.17MB
返回 下载 相关 举报
摘要
申请专利号:

CN201510996390.7

申请日:

2015.12.25

公开号:

CN105607569A

公开日:

2016.05.25

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||著录事项变更IPC(主分类):G05B 19/05变更事项:申请人变更前:山东超越数控电子有限公司变更后:山东超越数控电子股份有限公司变更事项:地址变更前:250100 山东省济南市高新区孙村镇科航路2877号变更后:250100 山东省济南市高新区孙村镇科航路2877号|||实质审查的生效IPC(主分类):G05B 19/05申请日:20151225|||公开

IPC分类号:

G05B19/05

主分类号:

G05B19/05

申请人:

山东超越数控电子有限公司

发明人:

魏成行; 李维钊; 国庆利; 曹猛

地址:

250100 山东省济南市高新区孙村镇科航路2877号

优先权:

专利代理机构:

济南信达专利事务所有限公司 37100

代理人:

李世喆

PDF下载: PDF下载
内容摘要

本发明提供了一种将IL语言转换为梯形图的方法及装置,该方法,包括:预先建立IL指令与第一有限状态机的状态的第一对应关系;扫描待转换的IL语言程序,获取待转换的IL语言程序中的每个待转换IL指令;根据每个待转换IL指令和第一对应关系,确定每个待转换IL指令对应的第一有限状态机的第一状态;根据每个待转换IL指令对应的第一状态,运行第一有限状态机,通过第一有限状态机对每个待转换IL指令进行解析,生成每个待转换IL指令对应的指令码和变量;根据每个待转换IL指令对应的指令码和变量,运行第二有限状态机,生成待转换的IL语言程序的梯形图。通过本发明提供的方法及装置,能够使得PLC系统的编程更加简单。

权利要求书

1.一种将中间语言IL语言转换为梯形图的方法,其特征在于,包括:
预先建立IL指令与第一有限状态机的状态的第一对应关系,还包括:
S1:扫描待转换的IL语言程序,获取所述待转换的IL语言程序中的每
个待转换IL指令;
S2:根据每个待转换IL指令和所述第一对应关系,确定每个待转换IL
指令对应的第一有限状态机的第一状态;
S3:根据每个待转换IL指令对应的第一有限状态机的第一状态,运行所
述第一有限状态机,通过所述第一有限状态机对每个待转换IL指令进行解
析,生成每个待转换IL指令对应的指令码和变量;
S4:根据每个待转换IL指令对应的指令码和变量,运行第二有限状态机,
生成所述待转换的IL语言程序的梯形图。
2.根据权利要求1所述的方法,其特征在于,还包括:预先建立IL指
令的指令类型与第二有限状态机的状态的第二对应关系;
所述S4,包括:
A1:确定每个待转换IL指令的指令类型;
A2:根据每个待转换IL指令的指令类型和所述第二对应关系,确定每
个待转换IL指令对应的第二有限状态机的第二状态;
A3:根据所述待转换的IL语言程序中每个待转换IL指令的顺序关系,
以及每个待转换IL指令对应的指令码、变量和第二有限状态机的第二状态,
运行所述第二有限状态机,生成所述待转换的IL语言程序的梯形图。
3.根据权利要求2所述的方法,其特征在于,在所述S3之后,在所述
S4之前,还包括:
根据所述待转换的IL语言程序中每个待转换IL指令的顺序关系和每个
待转换IL指令对应的指令码和变量,生成指令序列;
所述A3,包括:
根据所述指令序列和每个待转换IL指令对应的所述第二有限状态机的
第二状态,运行所述第二有限状态机,生成所述待转换的IL语言程序的梯形
图。
4.根据权利要求1所述的方法,其特征在于,还包括:预先设置包括所
有IL指令的指令词典;
在所述S3之后,在所述S4之前,还包括:
根据所述指令词典,确定每个待转换IL指令对应的指令码是否被接受,
如果是,则执行步骤S4,否则,结束当前流程。
5.根据权利要求3所述的方法,其特征在于,在所述S3之后,在所述
S4之前,还包括:
根据每个待转换IL指令对应的变量,生成变量列表;
扫描所述指令序列,判断所述指令序列中的变量是否在所述变量列表中,
如果是,则执行步骤S4,否则,结束当前流程。
6.一种将中间语言IL语言转换为梯形图的装置,其特征在于,包括:
第一建立单元,用于建立IL指令与第一有限状态机的状态的第一对应关
系;
扫描单元,用于扫描待转换的IL语言程序,获取所述待转换的IL语言
程序中的每个待转换IL指令;
第一确定单元,用于根据每个待转换IL指令和所述第一对应关系,确定
每个待转换IL指令对应的第一有限状态机的第一状态;
第一生成单元,用于根据每个待转换IL指令对应的第一有限状态机的第
一状态,运行所述第一有限状态机,通过所述第一有限状态机对每个待转换
IL指令进行解析,生成每个待转换IL指令对应的指令码和变量;
转换单元,用于根据每个待转换IL指令对应的指令码和变量,运行第二
有限状态机,生成所述待转换的IL语言程序的梯形图。
7.根据权利要求6所述的装置,其特征在于,还包括:
第二建立单元,用于建立IL指令的指令类型与第二有限状态机的状态的
第二对应关系;
所述转换单元,包括:
第一确定子单元,用于确定每个待转换IL指令的指令类型;
第二确定子单元,用于根据每个待转换IL指令的指令类型和所述第二对
应关系,确定每个待转换IL指令对应的第二有限状态机的第二状态;
转换子单元,用于根据所述待转换的IL语言程序中每个待转换IL指令
的顺序关系,以及每个待转换IL指令对应的指令码、变量和第二有限状态机
的第二状态,运行所述第二有限状态机,生成所述待转换的IL语言程序的梯
形图。
8.根据权利要求7所述的装置,其特征在于,还包括:
第二生成单元,用于根据所述待转换的IL语言程序中每个待转换IL指
令的顺序关系和每个待转换IL指令对应的指令码和变量,生成指令序列;
所述转换子单元,用于根据所述指令序列和每个待转换IL指令对应的所
述第二有限状态机的第二状态,运行所述第二有限状态机,生成所述待转换
的IL语言程序的梯形图。
9.根据权利要求6所述的装置,其特征在于,还包括:
设置单元,用于设置包括所有IL指令的指令词典;
还包括:
第二确定单元,用于根据所述指令词典,确定每个待转换IL指令对应的
指令码是否被接受,如果是,则触发所述转换单元,否则,不触发所述转换
单元。
10.根据权利要求8所述的装置,其特征在于,还包括:
第三生成单元,用于根据每个待转换IL指令对应的变量,生成变量列表;
判断单元,用于扫描所述指令序列,判断所述指令序列中的变量是否在
所述变量列表中,如果是,则触发所述转换单元,否则,不触发所述转换单
元。

说明书

一种将IL语言转换为梯形图的方法及装置

技术领域

本发明涉及计算机技术领域,特别涉及一种将IL(IntermediateLanguage,
NET框架中中间语言)语言转换为梯形图的方法及装置。

背景技术

PLC(ProgrammableLogicController,可编程逻辑控制器)是一种专门
为工业自动控制而开发的通用自动控制装置。它具有可靠性高、编程简单、
使用方便、功能完善、通用性好等特点,并具有在线修改功能,给控制系统
带来了很好的柔性。它可以灵活地以不同的组态来适应不同控制对象、控制
规模和控制功能的要求,是实现“机电一体化”较理想的控制设备。一般的
PLC控制系统分为两部分,一部分为编程环境:包括梯形图编辑显示,变量
编辑,工程配置,程序编译等;另一部分为运行环境:主要将编程环境编译
生成工程文件解释并执行。

目前国内的PLC系统大多采用梯形图的方式完成PLC系统的编程,但
是梯形图在标识复杂逻辑时难以分模块设计。IL语言作为PLC系统的一种
指令语言具有分模块,便于表达复杂逻辑的优点。如果将二者结合起来能够
使得PLC系统的编程更加简单。但是,现有技术无法将IL语言程序与梯形
图结合起来,使得PLC系统的编程较复杂。

发明内容

本发明提供了一种将IL语言转换为梯形图的方法及装置,能够使得PLC
系统的编程更加简单。

一方面,本发明提供了一种将IL语言转换为梯形图的方法,包括:预先
建立IL指令与第一有限状态机的状态的第一对应关系,还包括:

S1:扫描待转换的IL语言程序,获取所述待转换的IL语言程序中的每
个待转换IL指令;

S2:根据每个待转换IL指令和所述第一对应关系,确定每个待转换IL
指令对应的第一有限状态机的第一状态;

S3:根据每个待转换IL指令对应的第一有限状态机的第一状态,运行所
述第一有限状态机,通过所述第一有限状态机对每个待转换IL指令进行解
析,生成每个待转换IL指令对应的指令码和变量;

S4:根据每个待转换IL指令对应的指令码和变量,运行第二有限状态机,
生成所述待转换的IL语言程序的梯形图。

进一步地,该方法还包括:预先建立IL指令的指令类型与第二有限状态
机的状态的第二对应关系;

所述S4,包括:

A1:确定每个待转换IL指令的指令类型;

A2:根据每个待转换IL指令的指令类型和所述第二对应关系,确定每
个待转换IL指令对应的第二有限状态机的第二状态;

A3:根据所述待转换的IL语言程序中每个待转换IL指令的顺序关系,
以及每个待转换IL指令对应的指令码、变量和第二有限状态机的第二状态,
运行所述第二有限状态机,生成所述待转换的IL语言程序的梯形图。

进一步地,在所述S3之后,在所述S4之前,还包括:

根据所述待转换的IL语言程序中每个待转换IL指令的顺序关系和每个
待转换IL指令对应的指令码和变量,生成指令序列;

所述A3,包括:

根据所述指令序列和每个待转换IL指令对应的所述第二有限状态机的
第二状态,运行所述第二有限状态机,生成所述待转换的IL语言程序的梯形
图。

进一步地,该方法还包括:预先设置包括所有IL指令的指令词典;

在所述S3之后,在所述S4之前,还包括:

根据所述指令词典,确定每个待转换IL指令对应的指令码是否被接受,
如果是,则执行步骤S4,否则,结束当前流程。

进一步地,在所述S3之后,在所述S4之前,还包括:

根据每个待转换IL指令对应的变量,生成变量列表;

扫描所述指令序列,判断所述指令序列中的变量是否在所述变量列表中,
如果是,则执行步骤S4,否则,结束当前流程。

另一方面,本发明提供了一种将IL语言转换为梯形图的装置,包括:

第一建立单元,用于建立IL指令与第一有限状态机的状态的第一对应关
系;

扫描单元,用于扫描待转换的IL语言程序,获取所述待转换的IL语言
程序中的每个待转换IL指令;

第一确定单元,用于根据每个待转换IL指令和所述第一对应关系,确定
每个待转换IL指令对应的第一有限状态机的第一状态;

第一生成单元,用于根据每个待转换IL指令对应的第一有限状态机的第
一状态,运行所述第一有限状态机,通过所述第一有限状态机对每个待转换
IL指令进行解析,生成每个待转换IL指令对应的指令码和变量;

转换单元,用于根据每个待转换IL指令对应的指令码和变量,运行第二
有限状态机,生成所述待转换的IL语言程序的梯形图。

进一步地,该装置还包括:

第二建立单元,用于建立IL指令的指令类型与第二有限状态机的状态的
第二对应关系;

所述转换单元,包括:

第一确定子单元,用于确定每个待转换IL指令的指令类型;

第二确定子单元,用于根据每个待转换IL指令的指令类型和所述第二对
应关系,确定每个待转换IL指令对应的第二有限状态机的第二状态;

转换子单元,用于根据所述待转换的IL语言程序中每个待转换IL指令
的顺序关系,以及每个待转换IL指令对应的指令码、变量和第二有限状态机
的第二状态,运行所述第二有限状态机,生成所述待转换的IL语言程序的梯
形图。

进一步地,该装置还包括:

第二生成单元,用于根据所述待转换的IL语言程序中每个待转换IL指
令的顺序关系和每个待转换IL指令对应的指令码和变量,生成指令序列;

所述转换子单元,用于根据所述指令序列和每个待转换IL指令对应的所
述第二有限状态机的第二状态,运行所述第二有限状态机,生成所述待转换
的IL语言程序的梯形图。

进一步地,该装置还包括:

设置单元,用于设置包括所有IL指令的指令词典;

还包括:

第二确定单元,用于根据所述指令词典,确定每个待转换IL指令对应的
指令码是否被接受,如果是,则触发所述转换单元,否则,不触发所述转换
单元。

进一步地,该装置还包括:

第三生成单元,用于根据每个待转换IL指令对应的变量,生成变量列表;

判断单元,用于扫描所述指令序列,判断所述指令序列中的变量是否在
所述变量列表中,如果是,则触发所述转换单元,否则,不触发所述转换单
元。

通过本发明提供的一种将IL语言转换为梯形图的方法及装置,建立IL
指令与第一有限状态机的状态的第一对应关系,根据该第一对应关系和待转
换的IL语言程序的待转换IL指令,确定出第一有限状态机的第一状态,第
一有限状态机根据第一状态运行,生成每个待转换IL指令对应的指令码和变
量,根据生成的指令码和变量,运行第二有限状态机,实现将所述待转换的
IL语言程序转换为梯形图,通过该方法,能够使用户可以通过IL语言编写
IL语言程序,可以实现分模块设计,并通过梯形图直观呈现,进而使得PLC
系统的编程更加简单。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实
施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面
描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不
付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一实施例提供的一种将IL语言转换为梯形图的方法的流程
图;

图2是本发明一实施例提供的另一种将IL语言转换为梯形图的方法的流
程图;

图3是本发明一实施例提供的第一段IL语言程序对应的梯形图;

图4是本发明一实施例提供的第二段IL语言程序对应的梯形图;

图5是本发明一实施例提供的第三段IL语言程序对应的梯形图;

图6是本发明一实施例提供的第四段IL语言程序对应的梯形图;

图7是本发明一实施例提供的第五段IL语言程序对应的梯形图;

图8是本发明一实施例提供的一种将IL语言转换为梯形图的装置的示意
图;

图9是本发明一实施例提供的另一种将IL语言转换为梯形图的装置的示
意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发
明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,
显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于
本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所
获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,本发明实施例提供了一种将IL语言转换为梯形图的方法,
该方法可以包括以下步骤:

S0:预先建立IL指令与第一有限状态机的状态的第一对应关系;

S1:扫描待转换的IL语言程序,获取所述待转换的IL语言程序中的每
个待转换IL指令;

S2:根据每个待转换IL指令和所述第一对应关系,确定每个待转换IL
指令对应的第一有限状态机的第一状态;

S3:根据每个待转换IL指令对应的第一有限状态机的第一状态,运行所
述第一有限状态机,通过所述第一有限状态机对每个待转换IL指令进行解
析,生成每个待转换IL指令对应的指令码和变量;

S4:根据每个待转换IL指令对应的指令码和变量,运行第二有限状态机,
生成所述待转换的IL语言程序的梯形图。

通过本发明实施例提供的一种将IL语言转换为梯形图的方法,建立IL
指令与第一有限状态机的状态的第一对应关系,根据该第一对应关系和待转
换的IL语言程序的待转换IL指令,确定出第一有限状态机的第一状态,第
一有限状态机根据第一状态运行,生成每个待转换IL指令对应的指令码和变
量,根据生成的指令码和变量,运行第二有限状态机,实现将所述待转换的
IL语言程序转换为梯形图,通过该方法,能够使用户可以通过IL语言编写
IL语言程序,可以实现分模块设计,并通过梯形图直观呈现,进而使得PLC
系统的编程更加简单。

其中,第一对应关系可以通过以下代码来实现:

MAP<COMMAND,STATUS>IL2LD={

<“PROGRAM”,STATUS_PROGRAM_DEF>,

<“END_PROGRAM”,STATUS_END_PROGRAM_DEF>,

<“FUNCTION”,STATUS_FUNCTION_DEF>,

<“END_FUNCTION”,STATUS_END_FUNCTION_DEF>,

<“VAR”,STATUS_VAR_DEF>,

<“END_VAR”,STATUS_END_VAR_DEF>,

<“LD”,STATUS_LD_DEF>,

<“ADD”,STATUS_ADD_DEF>,

<“AND”,STATUS_AND_DEF>,

……

}

在上述代码中,COMMAND表示IL指令,STATUS表示第一有限状态
机的状态。以<“PROGRAM”,STATUS_PROGRAM_DEF>为例,“PROGRAM”
为一条IL指令,STATUS_PROGRAM_DEF为该IL指令对应的第一有限状
态机的状态。该映射关系表示当IL语言程序中出现PROGRAM指令时,可
以将第一有限状态机的状态设定为STATUS_PROGRAM_DEF,从而可以使
第一有限状态机根据STATUS_PROGRAM_DEF的定义来处理本行的IL指
令。其他代码也具有类似的意思,这里就不再一一赘述。

第一有限状态机在不同的状态下,会有不同的处理方式,每种状态的具
体的处理过程可以预先设定。针对每种第一有限状态机的状态,第一有限状
态机可以通过以下代码对对应的IL指令进行处理:



从上述代码可以看出,当第一有限状态机的状态为
STATUS_PROGRAM_DEF时,第一有限状态机通过Process_program_def()
对PROGRAM指令进行处理。其他的指令,也是通过类似的方式进行处理。

在一种可能的实现方式中,该方法还包括:预先建立IL指令的指令类型
与第二有限状态机的状态的第二对应关系;

所述S4,包括:

A1:确定每个待转换IL指令的指令类型;

A2:根据每个待转换IL指令的指令类型和所述第二对应关系,确定每
个待转换IL指令对应的第二有限状态机的第二状态;

A3:根据所述待转换的IL语言程序中每个待转换IL指令的顺序关系,
以及每个待转换IL指令对应的指令码、变量和第二有限状态机的第二状态,
运行所述第二有限状态机,生成所述待转换的IL语言程序的梯形图。

由于不同的指令类型的IL指令的转换成梯形图的方式是不同的,因此,
不同的指令类型可以设置不同的第二有限状态机的状态,在不同的状态下,
第二有限状态机对当前的IL指令进行对应的处理,得到对应的梯形图。

在一种可能的实现方式中,在所述S3之后,在所述S4之前,还包括:

根据所述待转换的IL语言程序中每个待转换IL指令的顺序关系和每个
待转换IL指令对应的指令码和变量,生成指令序列;

所述A3,包括:

根据所述指令序列和每个待转换IL指令对应的所述第二有限状态机的
第二状态,运行所述第二有限状态机,生成所述待转换的IL语言程序的梯形
图。

在该实现方式中,采用指令序列来保存IL语言程序编译为梯形图的中间
结果,保证了IL语言指令的可扩展性。

在指令序列中,指令码按照上述的顺序关系进行排列。举例来说,在待
转换的IL语言程序有3个待转换IL指令,分别是指令1、指令2、指令3,
指令1对应的指令码1和变量1,指令2对应指令码2、变量2和变量3,指
令3对应指令码3,没有对应的变量。在待转换的IL语言程序中,顺序关系
是:指令1→指令2→指令3。对应的指令序列可以通过表1的形式来表示。

表1

指令码
变量
指令码1
变量1
指令码2
变量2、变量3
指令码3


在表1所示的指令序列中,指令码的顺序与待转换的IL语言程序中指令
的顺序相对应,每个指令码对应相应的变量。

在一种可能的实现方式中,该方法还包括:预先设置包括所有IL指令的
指令词典;

在所述S3之后,在所述S4之前,还包括:

根据所述指令词典,确定每个待转换IL指令对应的指令码是否被接受,
如果是,则执行步骤S4,否则,结束当前流程。

具体地,在指令词典中有所有IL语言中的IL指令,如果在指令词典中
没有找到当前指令码对应的指令,则确定当前指令码不被接受,如果在指令
词典中找到当前指令码对应的指令,则确定当前指令码被接受。在判断出当
前指令码不被接受时,可以显示当前指令码错误,修改对应的指令,重新通
过该方法进行转换。

在一种可能的实现方式中,在所述S3之后,在所述S4之前,还包括:

根据每个待转换IL指令对应的变量,生成变量列表;

扫描所述指令序列,判断所述指令序列中的变量是否在所述变量列表中,
如果是,则执行步骤S4,否则,结束当前流程。

在该实现方式中,将所有在待转换的IL语言程序中定义的变量都保存到
变量列表中,如果指令序列中有变量列表中没有的变量,则该变量没有子待
转换的IL语言程序定义,因此,停止转换,避免转换错误。

为使本发明的目的、技术方案和优点更加清楚,下面结合附图及具体实
施例对本发明作进一步地详细描述。

如图2所示,本发明实施例提供了一种将IL语言转换为梯形图的方法,
该方法可以包括以下步骤:

步骤201:预先建立IL指令与第一有限状态机的状态的第一对应关系,
预先建立IL指令的指令类型与第二有限状态机的状态的第二对应关系。

在建立第一对应关系之前,可以预先设置包括所有IL指令的指令词典和
包括所有第一有限状态机的状态的状态词典。然后,根据指令词典和状态词
典来设置第一对应关系。另外,还可以预先设置第一有限状态机在每种状态
下的执行规则,第一有限状态机按照当前状态对应的执行规则来处理对应的
IL指令。

还可以预先设置第二有限状态机在每种状态下的执行规则,第二有限状
态机按照当前状态对应的执行规则来处理对应的IL指令。

步骤202:扫描待转换的IL语言程序,获取所述待转换的IL语言程序
中的每个待转换IL指令。

步骤203:根据每个待转换IL指令和所述第一对应关系,确定每个待转
换IL指令对应的第一有限状态机的第一状态。

步骤204:根据每个待转换IL指令对应的第一有限状态机的第一状态,
运行所述第一有限状态机,通过所述第一有限状态机对每个待转换IL指令进
行解析,生成每个待转换IL指令对应的指令码和变量。

步骤205:根据所述待转换的IL语言程序中每个待转换IL指令的顺序
关系和每个待转换IL指令对应的指令码和变量,生成指令序列。

另外,还可以根据每个待转换IL指令对应的变量,生成变量列表。

举例来说,当遇到“LDVAR1”指令时,首先通过“LD”指令设定第一
有限状态机的状态为STATUS_LD_DEF,指定该第一有限状态机将该行指令
解释为<“LD”,“VAR1”>的指令,并将该指令的指令码添加到指令序列
的尾部。

当遇到<VAR1:INT:=1>时,首先通过INT来识别第一有限状态机的状态,
并指定有第一限状态机将该指令解释为<VAR1,INT,1>的变量定义,并将变量
添加到变量列表中。

步骤206:确定每个待转换IL指令的指令类型。

具体地,指令类型包括:数据加载类型(例如:LD指令)、数字运算
类型(例如:ADD指令)、逻辑与(例如:AND指令)、逻辑或(例如:
OR指令)、模块与(例如:ANB指令)、模块或(例如:ORB指令)、数
据设置(例如:ST指令)。

也可以根据每个待转换IL指令对应的指令码来确定每个待转换IL指令
的指令类型。

步骤207:根据每个待转换IL指令的指令类型和所述第二对应关系,确
定每个待转换IL指令对应的第二有限状态机的第二状态。

步骤208:根据所述指令序列和每个待转换IL指令对应的所述第二有限
状态机的第二状态,运行所述第二有限状态机,生成所述待转换的IL语言程
序的梯形图。

具体地,根据指令序列中的当前待转换IL指令对应的第二状态,运行第
二有限状态机,将当前待转换IL指令对应的逻辑关系等添加到梯形图中,将
梯形图元素的名称和变量名称设置为当前待转换IL指令对应的变量的名称。

举例来说,遇到<“LD”,“VAR1”>指令时,首先根据“LD”来识别
有限状态机的状态为STATUD_DATA_LD,再将“LD”指令所指定的逻辑关
系等添加到梯形图中,最后将该梯形图元素的名称和变量名称设置为
“VAR1”。

本发明实施例提供的一种将IL语言转换为梯形图的方法,将PLC系统
IL指令与有限状态机的状态建立映射,无需进行复杂的语法检查,逻辑树和
遍历等复杂的算法,通过有限状态机的运行完成IL指令到梯形图的转换,提
高了程序处理的效率,提高了IL指令与有限状态机状态之间进行识别和转换
的速度。

在本发明实施例提供的方法中,建立IL语言指令到有限状态机的状态的
映射,通过有限状态机的运行完成IL到梯形图的编译。PLC系统IL语言到
梯形图的编译方法包含2个有限状态机的处理过程,分别是词法语法处理有
限状态机和IL指令转梯形图有限状态机,其中,词法语法处理有限状态机为
上述的第一有限状态机,IL指令转梯形图有限状态机为上述的第二有限状态
机。

在本发明实施例提供的方法中,针对第一有限状态机,对待转换的IL
语言程序进行扫描,根据所有出现的IL语言的单词(也就是,IL指令)进
行状态判定,设定第一有限状态机的状态;根据第一有限状态机的状态对待
转换的IL语言程序进行相应的处理,并将程序指令保存为中间处理结果,形
成IL语言的指令序列和所用到的变量列表;然后,对所有的处理结果进行检
查,验证中间处理结果中每一条指令是否可以被IL指令系统所识别,并验证
每一条语句中的变量是否在IL系统中所定义。

在本发明实施例提供的方法中,针对第二有限状态机,将指令序列中的
IL指令分到对应的指令类别中,并对每一条指令按照相应的处理逻辑进行处
理,生成与IL指令序列相对应的梯形图。

通过本发明实施例提供的方法对几段IL语言程序转换得到的梯形图,如
下图所示。

图3所示的梯形图是通过本发明实施例提供的方法对第一段IL语言程序
转换得到的,第一段IL语言程序如下:

VAR_GLOBAL

VAR1AT%IX1.2.2:BOOL:=TRUE;

VAR2:BOOL:=FALSE;

END_VAR

LDVAR1

ANDVAR2

STVAR2

图4所示的梯形图是通过本发明实施例提供的方法对第二段IL语言程序
转换得到的,第二段IL语言程序如下:

VAR_GLOBAL

VAR1AT%IX1.2.2:BOOL:=TRUE;

VAR2:BOOL:=FALSE;

END_VAR

LDVAR1

ANDVAR1

ORVAR2

STVAR2

图5所示的梯形图是通过本发明实施例提供的方法对第三段IL语言程序
转换得到的,第三段IL语言程序如下:

VAR_GLOBAL

VAR1AT%IX1.2.2:BOOL:=TRUE;

VAR2:BOOL:=FALSE;

END_VAR

LDVAR1

LDVAR2

ANB

STVAR2

图6所示的梯形图是通过本发明实施例提供的方法对第四段IL语言程序
转换得到的,第四段IL语言程序如下:

VAR_GLOBAL

VAR1AT%IX1.2.2:BOOL:=TRUE;

VAR2:BOOL:=FALSE;

END_VAR

LDVAR1

LDVAR2

ORB

STVAR2

图7所示的梯形图是通过本发明实施例提供的方法对第五段IL语言程序
转换得到的,第五段IL语言程序如下:

VAR_GLOBAL

VAR1AT%IX1.2.2:INT:=1;

VAR2:INT:=1;

END_VAR

LDVAR1

ADDVAR2

STVAR2

如图8、图9所示,本发明实施例提供了一种将IL语言转换为梯形图的
装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方
式实现。从硬件层面而言,如图8所示,为本发明实施例提供的一种将IL
语言转换为梯形图的装置所在设备的一种硬件结构图,除了图8所示的处理
器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备
通常还可以包括其他硬件,如负责处理报文的转发芯片等等。以软件实现为
例,如图9所示,作为一个逻辑意义上的装置,是通过其所在设备的CPU将
非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。本实施
例提供的一种将IL语言转换为梯形图的装置,包括:

第一建立单元901,用于建立IL指令与第一有限状态机的状态的第一对
应关系;

扫描单元902,用于扫描待转换的IL语言程序,获取所述待转换的IL
语言程序中的每个待转换IL指令;

第一确定单元903,用于根据每个待转换IL指令和所述第一对应关系,
确定每个待转换IL指令对应的第一有限状态机的第一状态;

第一生成单元904,用于根据每个待转换IL指令对应的第一有限状态机
的第一状态,运行所述第一有限状态机,通过所述第一有限状态机对每个待
转换IL指令进行解析,生成每个待转换IL指令对应的指令码和变量;

转换单元905,用于根据每个待转换IL指令对应的指令码和变量,运行
第二有限状态机,生成所述待转换的IL语言程序的梯形图。

在一种可能的实现方式中,该装置还包括:

第二建立单元,用于建立IL指令的指令类型与第二有限状态机的状态的
第二对应关系;

所述转换单元905,包括:

第一确定子单元,用于确定每个待转换IL指令的指令类型;

第二确定子单元,用于根据每个待转换IL指令的指令类型和所述第二对
应关系,确定每个待转换IL指令对应的第二有限状态机的第二状态;

转换子单元,用于根据所述待转换的IL语言程序中每个待转换IL指令
的顺序关系,以及每个待转换IL指令对应的指令码、变量和第二有限状态机
的第二状态,运行所述第二有限状态机,生成所述待转换的IL语言程序的梯
形图。

在一种可能的实现方式中,该装置还包括:

第二生成单元,用于根据所述待转换的IL语言程序中每个待转换IL指
令的顺序关系和每个待转换IL指令对应的指令码和变量,生成指令序列;

所述转换子单元,用于根据所述指令序列和每个待转换IL指令对应的所
述第二有限状态机的第二状态,运行所述第二有限状态机,生成所述待转换
的IL语言程序的梯形图。

在一种可能的实现方式中,该装置还包括:

设置单元,用于设置包括所有IL指令的指令词典;

还包括:

第二确定单元,用于根据所述指令词典,确定每个待转换IL指令对应的
指令码是否被接受,如果是,则触发所述转换单元,否则,不触发所述转换
单元。

在一种可能的实现方式中,该装置还包括:

第三生成单元,用于根据每个待转换IL指令对应的变量,生成变量列表;

判断单元,用于扫描所述指令序列,判断所述指令序列中的变量是否在
所述变量列表中,如果是,则触发所述转换单元,否则,不触发所述转换单
元。

上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明
方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此
处不再赘述。

本发明实施例提供的一种将IL语言转换为梯形图的方法及装置,具有如
下有益效果:

1、通过本发明实施例提供的一种将IL语言转换为梯形图的方法及装置,
建立IL指令与第一有限状态机的状态的第一对应关系,根据该第一对应关系
和待转换的IL语言程序的待转换IL指令,确定出第一有限状态机的第一状
态,第一有限状态机根据第一状态运行,生成每个待转换IL指令对应的指令
码和变量,根据生成的指令码和变量,运行第二有限状态机,实现将所述待
转换的IL语言程序转换为梯形图,通过该方法,能够使用户可以通过IL语
言编写IL语言程序,可以实现分模块设计,并通过梯形图直观呈现,进而使
得PLC系统的编程更加简单。

2、本发明实施例提供的一种将IL语言转换为梯形图的方法及装置,将
PLC系统IL指令与有限状态机的状态建立映射,无需进行复杂的语法检查,
逻辑树和遍历等复杂的算法,通过有限状态机的运行完成IL指令到梯形图的
转换,提高了程序处理的效率,提高了IL指令与有限状态机状态之间进行识
别和转换的速度。

需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将
一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这
些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、
“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系
列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明
确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有
的要素。在没有更多限制的情况下,由语句“包括一个〃·····”限定
的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另
外的相同因素。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤
可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取
的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述
的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介
质中。

最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本
发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原
则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

一种将IL语言转换为梯形图的方法及装置.pdf_第1页
第1页 / 共19页
一种将IL语言转换为梯形图的方法及装置.pdf_第2页
第2页 / 共19页
一种将IL语言转换为梯形图的方法及装置.pdf_第3页
第3页 / 共19页
点击查看更多>>
资源描述

《一种将IL语言转换为梯形图的方法及装置.pdf》由会员分享,可在线阅读,更多相关《一种将IL语言转换为梯形图的方法及装置.pdf(19页珍藏版)》请在专利查询网上搜索。

本发明提供了一种将IL语言转换为梯形图的方法及装置,该方法,包括:预先建立IL指令与第一有限状态机的状态的第一对应关系;扫描待转换的IL语言程序,获取待转换的IL语言程序中的每个待转换IL指令;根据每个待转换IL指令和第一对应关系,确定每个待转换IL指令对应的第一有限状态机的第一状态;根据每个待转换IL指令对应的第一状态,运行第一有限状态机,通过第一有限状态机对每个待转换IL指令进行解析,生成每个。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 控制;调节


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1