本技术属于序组织单元领域,尤其涉及一种跨程序组织单元访问方法和装置。
背景技术:
1、iec 61131-3是用于规范可编程逻辑控制器(plc)的编程系统的标准。在模块化程序设计环境下,程序组织单元pou(program organization unit)是用户程序中最小的且独立的软件单元。相关技术中,当需要在pou中访问其他pou中的数据信息,用以对本pou的数据进行操作时,无法直接跨pou获取数据,需要额外建立全局变量作为中介进而获取其他pou的关键字数据信息,访问复杂度较高。
技术实现思路
1、本技术旨在至少解决现有技术中存在的技术问题之一。为此,本技术提出一种跨程序组织单元访问方法和装置,可以有效降低访问复杂度,提高访问效率,且操作简单便捷。
2、第一方面,本技术提供了一种跨程序组织单元访问方法,该方法包括:
3、获取目标数据;所述目标数据为用户写入当前程序组织单元内的数据;
4、通过所述目标数据中的第一字段,获取待访问程序组织单元的目标变量;所述待访问程序组织单元与所述当前程序组织单元为不同的程序组织单元;所述第一字段包括所述待访问程序组织单元的名称和变量名称;
5、基于所述目标变量和特定数据表,获取所述目标数据的运行时空间信息,所述运行时空间信息包括用于表征存储所述待访问程序组织单元内的数据的地址信息;所述特定数据表用于识别符合程序组织单元特性的字符序列。
6、根据本技术的跨程序组织单元访问方法,通过使用包括有待访问程序组织单元的名称和变量名称的第一字段来实现不同pou之间的关键字访问,并通过构建跨pou访问所需要的特定数据表供编译器使用,可直接基于获取的目标变量和特定数据表进行解析以得到运行时空间信息从而得到要访问的pou的地址信息以进行跨pou访问,实现不同pou之间可直接进行关键字数据访问,无需额外建立全局变量作为中介,可以有效降低访问复杂度,提高访问效率,且操作简单便捷。
7、根据本技术的一个实施例,所述特定数据表通过如下步骤确定:
8、获取多个程序组织单元的变量表信息,所述变量表信息包括变量名和属性定义;
9、基于所述变量表信息,构建跨程序组织单元访问所对应的特定数据表。
10、根据本技术的一个实施例,所述基于所述变量表信息,构建跨程序组织单元访问所对应的特定数据表,包括:
11、对所述变量表信息进行归类处理,创建与所述待访问程序组织单元的访问语法相对应的词法单元,得到多个基础元素;
12、组合所述多个基础元素,构建得到所述特定数据表。
13、根据本技术的跨程序组织单元访问方法,通过多个程序组织单元的变量表信息构建跨程序组织单元访问所需要的特定数据表以识别得到符合pou特性的关键词,无需额外建立全局变量作为中介,即可实现不同pou之间可直接进行关键字数据访问,具有较低的访问复杂度和较高的访问准确度。
14、根据本技术的一个实施例,所述基于所述目标变量和特定数据表,获取所述目标数据的运行时空间信息,包括:
15、在解析所述目标数据得到符合语法结构为a.b的字符序列的情况下,基于所述目标变量,通过所述特定数据表获取所述目标数据对应的运行时空间信息;其中,a为所述待访问程序组织单元的名称对应的字段,b为所述变量名称对应的字段。
16、根据本技术的一个实施例,所述通过所述目标数据中的第一字段,获取待访问程序组织单元的目标变量,包括:
17、解析所述第一字段,获取所述待访问程序组织单元的名称和所述变量名称;
18、基于所述待访问程序组织单元的名称,确定所述待访问程序组织单元对应的待访问程序组织单元关键字列表;
19、基于所述变量名称确定所述待访问程序组织单元关键字列表中的所述目标变量。
20、根据本技术的跨程序组织单元访问方法,通过pou名称来指明用户需要访问的pou关键字列表,通过name来指明需要访问该变量表中的哪个变量,使得不同pou之间可直接进行关键字数据访问,从而可以降低访问复杂度。
21、根据本技术的一个实施例,还包括:
22、基于所述特定数据表,设计目标翻译规则;所述目标翻译规则用于使编译器识别跨程序组织单元访问的关键字并分配所述运行时空间信息。
23、第二方面,本技术提供了一种跨程序组织单元访问装置,该装置包括:
24、第一处理模块,用于获取目标数据;所述目标数据为用户写入当前程序组织单元内的数据
25、第二处理模块,用于通过所述目标数据中的第一字段,获取待访问程序组织单元的目标变量;所述待访问程序组织单元与所述当前程序组织单元为不同的程序组织单元;所述第一字段包括所述待访问程序组织单元的名称和变量名称;
26、第三处理模块,用于基于所述目标变量和特定数据表,获取所述目标数据的运行时空间信息,所述运行时空间信息包括用于表征存储所述待访问程序组织单元内的数据的地址信息;所述特定数据表用于识别符合程序组织单元特性的字符序列。
27、根据本技术的跨程序组织单元访问装置,通过使用包括有待访问程序组织单元的名称和变量名称的第一字段来实现不同pou之间的关键字访问,并通过构建跨pou访问所需要的特定数据表供编译器使用,可直接基于获取的目标变量和特定数据表进行解析以得到运行时空间信息从而得到要访问的pou的地址信息以进行跨pou访问,实现不同pou之间可直接进行关键字数据访问,无需额外建立全局变量作为中介,可以有效降低访问复杂度,提高访问效率,且操作简单便捷。
28、第三方面,本技术提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的跨程序组织单元访问方法。
29、第四方面,本技术提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述的跨程序组织单元访问方法。
30、第五方面,本技术提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述的跨程序组织单元访问方法。
31、本技术实施例中的上述一个或多个技术方案,至少具有如下技术效果之一:
32、通过使用包括有待访问程序组织单元的名称和变量名称的第一字段来实现不同pou之间的关键字访问,并通过构建跨pou访问所需要的特定数据表供编译器使用,可直接基于获取的目标变量和特定数据表进行解析以得到运行时空间信息从而得到要访问的pou的地址信息以进行跨pou访问,实现不同pou之间可直接进行关键字数据访问,无需额外建立全局变量作为中介,可以有效降低访问复杂度,提高访问效率,且操作简单便捷。
33、进一步地,通过pou名称来指明用户需要访问的pou关键字列表,通过name来指明需要访问该变量表中的哪个变量,使得不同pou之间可直接进行关键字数据访问,从而可以降低访问复杂度。
34、更进一步地,通过多个程序组织单元的变量表信息构建跨程序组织单元访问所需要的特定数据表以识别得到符合pou特性的关键词,无需额外建立全局变量作为中介,即可实现不同pou之间可直接进行关键字数据访问,具有较低的访问复杂度和较高的访问准确度。
35、本技术的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本技术的实践了解到。