一种逻辑编程的实现方法和装置的制造方法
【技术领域】
[0001]本发明涉及编程的实现技术,尤其涉及一种逻辑编程的实现方法和装置。
【背景技术】
[0002]现有技术中,一般基于图形化、模块化的功能块图(Funct1n Block Drawing,FBD)编程,这种编程方式因为具有直观性强、且易于维护的特点,在工业控制和电力系统继电保护领域得到广泛应用。
[0003]然而,在FBD编程的实现过程中,具体是根据当前的图形化页面,采用图形化编程工具直接编译生成可执行程序,这样,在每次调整逻辑时,均需要重新编译和下载新生成的可执行程序,开发效率低,使用范围受限。
【发明内容】
[0004]有鉴于此,本发明实施例期望提供一种逻辑编程的实现方法和装置,能够简化和方便逻辑编程的实现,从而提高开发效率。
[0005]为达到上述目的,本发明实施例的技术方案是这样实现的:
[0006]本发明实施例提供一种逻辑编程的实现方法,该方法包括:
[0007]根据需要确定所需元件,并确定各元件之间的连接关系;
[0008]将所确定的元件以及各元件之间的连接关系保存为配置文件;
[0009]在逻辑编程的初始化阶段,解析所述配置文件,获取所述各元件的实例名、各元件之间的执行顺序、以及各元件之间的连接关系;
[0010]根据所述各元件的实例名、各元件之间的执行顺序、以及各元件之间的连接关系生成可执行任务链;
[0011]在逻辑编程的运行阶段,依次执行所述任务链的各个任务。
[0012]上述方案中,所述方法还包括:预先设置元件的模型,并根据所述元件的模型构建元件库信息索引表;所述元件库信息索引表包括元件的类型名、实例名、元件的构造函数、元件的初始化函数、以及元件的任务函数。
[0013]上述方案中,根据所述各元件的实例名、各元件之间的执行顺序、以及各元件之间的连接关系生成可执行任务链包括:通过查找元件库信息索引表的方式根据所述各元件的实例名、各元件之间的执行顺序、以及各元件之间的连接关系生成可执行任务链。
[0014]上述方案中,通过查找元件库信息索引表的方式根据所述各元件的实例名、各元件之间的执行顺序、以及各元件之间的连接关系生成可执行任务链包括:
[0015]根据各元件的实例名查找所述元件库信息索引表,依次调用各元件的构造函数,分配数据空间并注册元件对外接口信息,完成各元件的实例化,再依次调用各元件的初始化函数以完成各元件的数据初始化;
[0016]根据各元件之间的连接关系,将输出变量的内存地址写入输入变量的指针中;
[0017]根据各元件之间的执行顺序查找所述元件库信息索引表,依次将各元件的任务函数和数据信息添加到任务链中。
[0018]上述方案中,所述依次执行所述任务链的各个任务包括:遍历所述任务链,依次执行各元件的任务函数。
[0019]本发明实施例还提供一种实现逻辑编程的装置,该装置包括:确定模块、存储模块、解析模块、生成模块、以及执行模块;其中,
[0020]所述确定模块用于,根据需要确定所需元件,并确定各元件之间的连接关系;
[0021]所述存储模块用于,将所确定的元件以及各元件之间的连接关系保存为配置文件;
[0022]所述解析模块用于,在逻辑编程的初始化阶段,解析所述配置文件,获取所述各元件的实例名、各元件之间的执行顺序、以及各元件之间的连接关系;
[0023]所述生成模块用于,根据所述各元件的实例名、各元件之间的执行顺序、以及各元件之间的连接关系生成可执行任务链;
[0024]所述执行模块用于,在逻辑编程的运行阶段,依次执行所述任务链的各个任务。
[0025]上述方案中,所述装置还包括:设置模块;其中,
[0026]所述设置模块用于,预先设置元件的模型,并根据所述元件的模型构建元件库信息索引表;所述元件库信息索引表包括元件的类型名、实例名、元件的构造函数、元件的初始化函数、以及元件的任务函数。
[0027]上述方案中,所述生成模块具体用于,通过查找元件库信息索引表的方式根据所述各元件的实例名、各元件之间的执行顺序、以及各元件之间的连接关系生成可执行任务链。
[0028]上述方案中,所述生成模块通过查找元件库信息索引表的方式根据所述各元件的实例名、各元件之间的执行顺序、以及各元件之间的连接关系生成可执行任务链包括:
[0029]根据各元件的实例名查找所述元件库信息索引表,依次调用各元件的构造函数,分配数据空间并注册元件对外接口信息,完成各元件的实例化,再依次调用各元件的初始化函数以完成各元件的数据初始化;
[0030]根据各元件之间的连接关系,将输出变量的内存地址写入输入变量的指针中;
[0031]根据各元件之间的执行顺序查找所述元件库信息索引表,依次将各元件的任务函数和数据信息添加到任务链中。
[0032]上述方案中,所述执行模块具体用于,遍历所述任务链,依次执行各元件的任务函数。
[0033]本发明实施例所提供的逻辑编程的实现方法和装置,根据需要确定所需元件,并确定各元件之间的连接关系;将所确定的元件以及各元件之间的连接关系保存为配置文件;在逻辑编程的初始化阶段,解析所述配置文件,获取所述各元件的实例名、各元件之间的执行顺序、以及各元件之间的连接关系;根据所述各元件的实例名、各元件之间的执行顺序、以及各元件之间的连接关系生成可执行任务链;在逻辑编程的运行阶段,依次执行所述任务链的各个任务。如此,能够通过解析配置文件的方式来简化和方便逻辑编程的实现,在需要调整逻辑时,只需更改配置文件中对应的内容,而不再需要重新编译和下载新生成的可执行程序,从而能有效提高开发效率;另外,更改配置文件非常简单,配置文件的存储和使用也非常容易,因此,本发明实施例可适用于更广的应用环境中。
【附图说明】
[0034]图1为本发明实施例逻辑编程的实现方法的流程示意图;
[0035]图2为本发明实施例逻辑与元件的数据信息的结构体示意图;
[0036]图3为本发明实施例元件库信息索引表的组成结构示意图;
[0037]图4为本发明实施例生成可执行任务链的过程中配置文件和元件库信息索引表之间的依赖关系示意图;
[0038]图5为本发明实施例所述元件的实例、输入、输出注册表的组成示意图;
[0039]图6为本发明实施例任务链表的组成结构示意图;
[0040]图7为本发明实施例执行任务链的流程示意图;
[0041]图8为本发明实施例实现逻辑编程的装置的组成结构示意图。
【具体实施方式】
[0042]下面结合附图及具体实施例对本发明再作进一步详细的说明。
[0043]在本发明实施例中,根据需要确定所需元件,并确定各元件之间的连接关系;将所确定的元件以及各元件之间的连接关系保存为配置文件;在逻辑编程的初始化阶段,解析所述配置文件,获取所述各元件的实例名、各元件之间的执行顺序、以及各元件之间的连接关系;根据所述各元件的实例名、各元件之间的执行顺序、以及各元件之间的连接关系生成可执行任务链;在逻辑编程的运行阶段,依次执行所述任务链的各个任务。
[0044]图1为本发明实施例逻辑编程的实现方法的流程示意图,如图1所示,本发明实施例逻辑编程的实现方法包括:
[0045]步骤SlOO:根据需要确定所需元件,并确定各元件之间的连接关系;
[0046]这里,用户可以通过文本编辑或者图形化编程工具来根据需要选择所需元件,并确定各元件之间的连接关系。
[0047]在步骤SlOO之前,该实现方法还包括:预先设置元件的模型,并根据所述元件模型构建元件库信息索引表,所述元件库信息索引表中包括若干个元件的模型信息;具体的,所述元件库信息索引表包括元件的类型名、实例名、元件的构造函数、元件的初始化函数、以及元件的任务函数。
[0