一种将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、磁碟或者光盘等各种可以存储程序代码的介
质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本
发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原
则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。