CN117742286A - 对象的调试方法、装置、存储介质、处理器和存储器 - Google Patents

对象的调试方法、装置、存储介质、处理器和存储器 Download PDF

Info

Publication number
CN117742286A
CN117742286A CN202311668215.6A CN202311668215A CN117742286A CN 117742286 A CN117742286 A CN 117742286A CN 202311668215 A CN202311668215 A CN 202311668215A CN 117742286 A CN117742286 A CN 117742286A
Authority
CN
China
Prior art keywords
module
debugging
initial
initial module
target
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
CN202311668215.6A
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.)
Zhongkong Technology Co ltd
Original Assignee
Zhongkong 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 Zhongkong Technology Co ltd filed Critical Zhongkong Technology Co ltd
Priority to CN202311668215.6A priority Critical patent/CN117742286A/zh
Publication of CN117742286A publication Critical patent/CN117742286A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种对象的调试方法、装置、存储介质、处理器和存储器。该方法包括:获取初始模块的属性信息,其中,初始模块为至少具有控制逻辑的模块,属性信息用于表示初始模块在初始化后的状态;基于属性信息,对初始模块进行检测,得到检测结果,其中,检测结果用于表示与初始模块对应的语义结果;基于检测结果,对初始模块进行编译,得到目标模块;响应于加载目标模块,按照目标周期对初始模块对应的控制逻辑进行调试,得到调试结果。本发明解决了难以实现仿真控制器的轻量化及便捷化的技术问题。

Description

对象的调试方法、装置、存储介质、处理器和存储器
技术领域
本发明涉及仿真调试领域,具体而言,涉及一种对象的调试方法、装置、存储介质、处理器和存储器。
背景技术
目前,在当前的工业自动化控制中,组态对象的仿真调试主要通过对硬件控制器功能进行模仿克隆来实现,但是针对硬件控制器功能进行仿真的方案,一般在硬件控制器完成稳定之后,才会着手开发仿真控制器,而且仿真控制器的开发工作量巨大,仿真控制器的安装包也较大,且其单独开发成本较高,从而导致难以实现仿真控制器的轻量化及便捷化的技术问题。
针对上述难以实现仿真控制器的轻量化及便捷化的技术问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种对象的调试方法、装置、存储介质、处理器和存储器,以至少解决难以实现仿真控制器的轻量化及便捷化的技术问题。
根据本发明实施例的一个方面,提供了一种对象的调试方法。该方法可以包括:获取初始模块的属性信息,其中,初始模块为至少具有控制逻辑的模块,属性信息用于表示初始模块在初始化后的状态;基于属性信息,对初始模块进行检测,得到检测结果,其中,检测结果用于表示与初始模块对应的语义结果;基于检测结果,对初始模块进行编译,得到目标模块;响应于加载目标模块,按照目标周期对初始模块对应的控制逻辑进行调试,得到调试结果。
可选地,基于检测结果,对初始模块进行编译,得到目标模块,包括:响应于检测结果为语义结果为有效信息,对初始模块进行编译;对编译后的初始模块进行链接,得到目标模块。
可选地,响应于加载目标模块,按照目标周期对初始模块对应的控制逻辑进行调试,得到调试结果,包括:响应于通过目标模块的调用接口来加载目标模块,在目标周期内,执行控制逻辑;响应于与控制逻辑对应的调试命令,对控制逻辑进行调试,得到调试结果。
可选地,该对象的调试方法还包括:响应于检测结果为语义结果为无效信息,对属性信息进行调整;对调整后的属性信息进行检测,得到第一检测结果,其中,第一检测结果用于表示与调整后的初始模块对应的第一语义结果。
可选地,该对象的调试方法还包括:响应于第一检测结果为第一语义结果为有效信息,对初始模块进行编译;对编译后的初始模块进行链接,得到目标模块。
可选地,获取初始模块的属性信息,包括:对初始模块的初始属性信息进行配置,得到属性信息。
根据本发明实施例的一个方面,提供了一种对象的调试装置。该装置可以包括:获取单元,用于获取初始模块的属性信息,其中,初始模块为至少具有控制逻辑的模块,属性信息用于表示初始模块在初始化后的状态;检测单元,用于基于属性信息,对初始模块进行检测,得到检测结果,其中,检测结果用于表示与初始模块对应的语义结果;编译单元,用于基于检测结果,对初始模块进行编译,得到目标模块;调试单元,用于响应于加载目标模块,按照目标周期对初始模块对应的控制逻辑进行调试,得到调试结果。
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质。该计算机可读存储介质包括存储的程序,其中,在程序运行时控制计算机可读存储介质所在设备执行本发明实施例的对象的调试方法。
根据本发明实施例的另一方面,还提供了一种处理器。该处理器用于运行程序,其中,程序被该处理器运行时执行本发明实施例的对象的调试方法。
根据本发明实施例的另一方面,还提供了一种存储器,该存储器包括程序,其中,程序用于执行本发明实施例的对象的调试方法。
在本发明实施例中,获取初始模块的属性信息,根据获取的属性信息,通过对初始模块进行检测,可以得到检测结果,再通过对检测结果进行分析,可以确定是否通过对初始模块进行编译,来得到目标模块,如果分析出检测结果为语义结果为有效信息,则通过对初始模块进行编译,可以得到目标模块,然后在加载目标模块的情况下,可以在目标周期内,对初始模块对应的控制逻辑进行调试,由此来得到调试结果,从而达到了可以同时虚拟调试多个有关联的工厂组态对象的目的,解决了难以实现仿真控制器的轻量化及便捷化的技术问题,实现了可以实现仿真控制器的轻量化及便捷化的技术效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种对象的调试方法的流程图;
图2是根据本发明实施例的一种组态对象可调用组件编译生成方法的流程图;
图3(a)是根据本发明实施例的一种仿真调试时组件调用关系的示意图;
图3(b)是根据本发明实施例的一种组态对象调用接口的示意图;
图4是根据本发明实施例的一种对象的调试装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明实施例,提供了一种对象的调试方法,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种对象的调试方法的流程图,该方法可以包括如下步骤:
步骤S101,获取初始模块的属性信息。
在本发明上述步骤S101提供的技术方案中,上述初始模块可以为至少具有控制逻辑的模块,上述属性信息可以用于表示初始模块在初始化后的状态信息,例如,上述初始模块可以为物理模型中的具有控制逻辑的抽象组态对象,上述初始模块可以为广义上组态软件中的代表实际工厂对象的某个模块,上述属性信息可以至少包括:组态对象的内存分配信息、组态对象的赋值信息等,此处仅作举例说明,不作具体限定。
可选地,获取初始模块的属性信息,例如,通过对初始模块进行组态,可以得到组态后的初始模块的属性信息,也即,可以得到初始模块在初始化后的状态信息。
可选地,上述初始化操作在对象的调试方法中仅执行一次,通过对初始模块的初始属性信息进行初始化操作,可以得到初始模块的属性信息,例如,可以至少得到组态对象的内存分配信息、组态对象的赋值信息等,此处仅作举例说明,不作具体限定。
步骤S102,基于属性信息,对初始模块进行检测,得到检测结果。
在本发明上述步骤S102提供的技术方案中,上述检测操作可以为编译检查操作,上述检测结果可以用于表示与初始模块对应的语义结果,此处仅作举例说明,不作具体限定。
可选地,在获取初始模块的属性信息之后,基于属性信息,对初始模块进行检测,得到检测结果,例如,根据获取的属性信息,通过对初始模块进行检测,可以得到检测结果,也即,可以得到与初始模块对应的语义结果。
可选地,在对初始模块进行组态之后,通过使用组态服务器的可重用代码对初始模块进行检测,可以得到检测结果,并且根据得到的检测结果,可以确定是否需要对获取的属性信息进行调整,如果检测结果为语义结果为有效信息,则无需对获取的属性信息进行调整,如果检测结果为语义结果为无效信息,则对获取的属性信息进行调整。
步骤S103,基于检测结果,对初始模块进行编译,得到目标模块。
在本发明上述步骤S103提供的技术方案中,上述目标模块可以为可调用执行组态对象模块,此处仅作举例说明,不作具体限定。
可选地,在基于属性信息,对初始模块进行检测,得到检测结果之后,基于检测结果,对初始模块进行编译,得到目标模块,例如,通过对检测结果进行分析,可以确定是否通过对初始模块进行编译,来得到目标模块,如果分析出检测结果为语义结果为有效信息,则通过对初始模块进行编译,可以得到目标模块,如果分析出检测结果为语义结果为无效信息,则对获取的属性信息进行调整,且暂时无需对初始模块进行编译,来得到目标模块,直至调整后的初始模块对应的语义结果为有效信息时,通过对初始模块进行编译,来得到目标模块。
步骤S104,响应于加载目标模块,按照目标周期对初始模块对应的控制逻辑进行调试,得到调试结果。
在本发明上述步骤S104提供的技术方案中,上述目标周期可以用于表示执行控制逻辑的时间间隔,例如,上述目标周期可以为2s、3s、4s等,此处仅作举例说明,不作具体限定。
可选地,在基于检测结果,对初始模块进行编译,得到目标模块之后,响应于加载目标模块,按照目标周期对初始模块对应的控制逻辑进行调试,得到调试结果,例如,在加载目标模块的情况下,可以在目标周期内,对初始模块对应的控制逻辑进行调试,由此来得到调试结果。
可选地,在目标周期为2s的情况下,如果加载目标模块,则在2s内,对初始模块对应的控制逻辑进行调试,由此来得到调试结果,在目标周期为3s的情况下,如果加载目标模块,则在3s内,对初始模块对应的控制逻辑进行调试,由此来得到调试结果,在目标周期为4s的情况下,如果加载目标模块,则在4s内,对初始模块对应的控制逻辑进行调试,由此来得到调试结果,此处仅作举例说明,不作具体限定。
可选地,通过对组态对象进行逻辑组态,然后对编译后的组态对象进行存档,再将存档的组态对象和预编译构建功能块库的上位机可链接调用版本输入至仿真编译设备中,之后通过组态软件服务端可以启动调用仿真调试设备,由仿真调试设备可以动态发现、并加载所有组态对象可调用组件(也可以称作,可调用执行组态对象模块),并以用户组态指定的目标周期进行调度,以执行组态对象的控制逻辑。
本申请上述步骤S101至步骤S104,获取初始模块的属性信息,根据获取的属性信息,通过对初始模块进行检测,可以得到检测结果,再通过对检测结果进行分析,可以确定是否通过对初始模块进行编译,来得到目标模块,如果分析出检测结果为语义结果为有效信息,则通过对初始模块进行编译,可以得到目标模块,然后在加载目标模块的情况下,可以在目标周期内,对初始模块对应的控制逻辑进行调试,由此来得到调试结果,从而达到了可以同时虚拟调试多个有关联的工厂组态对象的目的,解决了难以实现仿真控制器的轻量化及便捷化的技术问题,实现了可以实现仿真控制器的轻量化及便捷化的技术效果。
下面对该实施例的上述方法进行进一步介绍。
作为一种可选的实施例方式,步骤S103,基于检测结果,对初始模块进行编译,得到目标模块,包括:响应于检测结果为语义结果为有效信息,对初始模块进行编译;对编译后的初始模块进行链接,得到目标模块。
在该实施例中,上述有效信息可以用于表示语义结果已成功通过检测的信息。
可选地,在基于属性信息,对初始模块进行检测,得到检测结果之后,通过对检测结果进行分析,可以确定是否通过对初始模块进行编译,来得到目标模块,如果分析出检测结果为语义结果为有效信息,则通过对初始模块进行编译,可以得到编译后的初始模块,再通过对编译后的初始模块进行链接,可以得到目标模块,例如,可以得到可调用执行组态对象模块。
可选地,如果分析出检测结果为语义结果为无效信息,则对获取的属性信息进行调整,且暂时无需对初始模块进行编译,来得到目标模块,直至调整后的初始模块对应的语义结果为有效信息时,通过对初始模块进行编译,来得到目标模块。
作为一种可选的实施例方式,步骤S104,包括:响应于加载目标模块,按照目标周期对初始模块对应的控制逻辑进行调试,得到调试结果,包括:响应于通过目标模块的调用接口来加载目标模块,在目标周期内,执行控制逻辑;响应于与控制逻辑对应的调试命令,对控制逻辑进行调试,得到调试结果。
在该实施例中,上述调用接口可以为仿真调试设备与目标模块之间的组态对象调用接口,上述调试命令可以为由组态软件发送的各类调试请求命令,例如,上述调试命令可以至少包括:位号实时值的读值请求、写值请求、强制写值请求等调试命令,此处仅作举例说明,不作具体限定。
可选地,在基于检测结果,对初始模块进行编译,得到目标模块之后,在通过目标模块的调用接口来加载目标模块的情况下,可以在目标周期内,执行初始模块对应的各控制逻辑,然后响应于与各控制逻辑对应的调试命令,通过分别对各控制逻辑进行调试,可以得到调试结果。
可选地,在通过可调用执行组态对象模块的调用接口来加载可调用执行组态对象模块的情况下,可以在目标周期内,执行初始模块对应的各控制逻辑,然后响应于与各控制逻辑对应的调试命令,通过分别对各控制逻辑进行调试,可以得到调试结果。
可选地,在目标周期为2s的情况下,如果通过目标模块的调用接口来加载目标模块,则在2s内,执行初始模块对应的各控制逻辑,然后响应于与各控制逻辑对应的调试命令,通过分别对各控制逻辑进行调试,可以得到调试结果,此处仅作举例说明,不作具体限定。
可选地,在目标周期为2.5s的情况下,如果通过目标模块的调用接口来加载目标模块,则在2.5s内,执行初始模块对应的各控制逻辑,然后响应于与各控制逻辑对应的调试命令,通过分别对各控制逻辑进行调试,可以得到调试结果,此处仅作举例说明,不作具体限定。
可选地,在目标周期为3.5s的情况下,如果通过目标模块的调用接口来加载目标模块,则在3.5s内,执行初始模块对应的各控制逻辑,然后响应于与各控制逻辑对应的调试命令,通过分别对各控制逻辑进行调试,可以得到调试结果,此处仅作举例说明,不作具体限定。
作为一种可选的实施例方式,该对象的调试方法还包括:响应于检测结果为语义结果为无效信息,对属性信息进行调整;对调整后的属性信息进行检测,得到第一检测结果。
在该实施例中,上述无效信息可以用于表示语义结果未成功通过检测的信息,上述第一检测结果可以用于表示与调整后的初始模块对应的第一语义结果。
可选地,通过对检测结果进行分析,可以确定是否通过对初始模块进行编译,来得到目标模块,如果分析出检测结果为语义结果为无效信息,则对获取的属性信息进行调整,然后通过对调整后的属性信息进行检测,可以得到第一检测结果,也即,可以得到与调整后的初始模块对应的第一语义结果。
作为一种可选的实施例方式,该对象的调试方法还包括:响应于第一检测结果为第一语义结果为有效信息,对初始模块进行编译;对编译后的初始模块进行链接,得到目标模块。
在该实施例中,通过对第一检测结果进行分析,可以确定是否通过对初始模块进行编译,来得到目标模块,如果分析出第一检测结果为语义结果为有效信息,则通过对初始模块进行编译,可以得到编译后的初始模块,再通过对编译后的初始模块进行链接,可以得到目标模块,例如,可以得到可调用执行组态对象模块。
可选地,如果分析出第一检测结果为语义结果为无效信息,则对获取的属性信息继续进行调整,且暂时无需对初始模块进行编译,来得到目标模块,直至再次调整后的初始模块对应的语义结果为有效信息时,通过对初始模块进行编译,来得到目标模块。
作为一种可选的实施例方式,步骤S101,获取初始模块的属性信息,包括:对初始模块的初始属性信息进行配置,得到属性信息。
在该实施例中,上述配置操作可以为对初始属性信息进行的初始化操作。
可选地,通过对初始模块的初始属性信息进行配置操作,可以得到属性信息,例如,通过对初始模块的初始属性信息进行初始化操作,可以得到属性信息,例如,可以至少得到组态对象的内存分配信息、组态对象的赋值信息等,此处仅作举例说明,不作具体限定。
本实施例,获取初始模块的属性信息,根据获取的属性信息,通过对初始模块进行检测,可以得到检测结果,再通过对检测结果进行分析,可以确定是否通过对初始模块进行编译,来得到目标模块,如果分析出检测结果为语义结果为有效信息,则通过对初始模块进行编译,可以得到目标模块,然后在加载目标模块的情况下,可以在目标周期内,对初始模块对应的控制逻辑进行调试,由此来得到调试结果,从而达到了可以同时虚拟调试多个有关联的工厂组态对象的目的,解决了难以实现仿真控制器的轻量化及便捷化的技术问题,实现了可以实现仿真控制器的轻量化及便捷化的技术效果。
实施例2
下面结合优选的实施方式对本发明实施例的技术方案进行举例说明。
在当前的工业自动化控制中,组态对象的仿真调试主要通过对硬件控制器功能进行模仿克隆来实现,但是针对硬件控制器功能进行仿真的方案,一般在硬件控制器完成稳定之后,才会着手开发仿真控制器,而且仿真控制器的开发工作量巨大,仿真控制器的安装包也较大,且其单独开发成本较高,从而导致难以实现仿真控制器的轻量化及便捷化的技术问题。
在一种相关技术中,公开了一种面向异构多目标平台的供应商库统一编译方法,该方法包括:步骤1:生成未链接的库目标指令程序:编写供应商库程序,编译生成为链接的指令程序,将单个平台中多个未链接的库指令程序组成一个库段,将多个平台的库段合并生成后缀为.SFBL的库文件;步骤2:与其他程序链接生成可运行的目标程序:编写用于实际运行的运行逻辑程序,编译生成特定目标平台的未链接的目标指令,加载.SFBL库文件,查找对应的目标平台的库段,进行链接、重定位,生成在特定目标平台上运行的目标文件。
但是该方法仅通过对多种不同指令架构的供应商库进行统一编译,无法通过调用配套软件工具的方法,可以在未仿真控制器完整功能,且不需要把工厂组态对象分配、下载到仿真控制器软件等繁琐的交互步骤的情况下,对组态对象进行快速调试,以实现仿真控制器的轻量化及便捷化。
然而,本发明实施例提出一种对象的调试方法,该方法通过调用配套软件工具的方法,可以在未仿真控制器完整功能,且不需要把工厂组态对象分配、下载到仿真控制器软件等繁琐的交互步骤的情况下,对组态对象进行快速调试,从而达到了可以同时虚拟调试多个有关联的工厂组态对象的目的,解决了难以实现仿真控制器的轻量化及便捷化的技术问题,实现了可以实现仿真控制器的轻量化及便捷化的技术效果。
图2是根据本发明实施例的一种组态对象可调用组件编译生成方法的流程图,该方法可以包括如下步骤:
步骤S201,对组态对象进行逻辑组态。
在本发明上述步骤S201提供的技术方案中,通过使用某种编程语言,可以进行组态对象的控制逻辑的组态,其中,编程语言可以为C语言、Java语言、Python语言等,此处仅作举例说明,不作具体限定。
在对组态对象进行逻辑组态之后,进入步骤S202,对编译后的组态对象进行存档。
在本发明上述步骤S202提供的技术方案中,使用组态服务器的可重用代码来执行编译检查,如果编译检查失败,则提示错误信息,并提醒用户进行修改,在修改完成之后,再次对修改后的组态对象进行编译检查,直至组态对象没有编译错误为止,其中,上述编译检查的检查规则可以与真实编译下载情况下所使用的检查规则相同。
在对编译后的组态对象进行存档之后,进入步骤S203,将存档的组态对象和预编译构建功能块库的上位机可链接调用版本输入至仿真编译器中。
在本发明上述步骤S203提供的技术方案中,在编译构建上述功能块库时,需输出一份服务器环境可执行调用的版本,以供仿真编译器编译组态对象时使用,同时,可以输出一份对应操作系统和编译工具集的调试符号文件,以方便虚拟调试时,排查系统功能块库的逻辑问题,其中,功能块库的版本可以为静态库的版本,也可以为动态库的版本,windows系统可以对应程序数据库(Program Database,简称为pdb)格式文件,linux系统可以对应调试符号(GNUsymbolic debugger,简称为gdb)文件。
可选地,上述仿真编译器可以用于把存档的工厂组态对象进行编译,构建输出组态服务器对应的操作系统支持的可执行的动态库的格式,例如,输出windows系统对应的动态链接库(Dynamic Link Library,简称为dll)格式文件,其中,每个组态对象可以编译构建成一个独立的可调用执行组态对象模块,可调用执行组态对象模块需要实现仿真调试器的组态对象调用接口,以方便仿真调试器可以动态调度执行该模块。
可选地,上述仿真调试器可以用于对上负责和组态软件进行通信,接口和真实调试器可以保持一致,响应返回组态软件客户端所需的功能块实例、对象参数、诊断位号的调试实时数据。
可选地,上述仿真调试器也可以用于对下负责运行时,动态加载目标组态对象编译后输出的可执行的库文件、及其依赖的功能块库的库文件,管理实现多个工厂对象直接的位号数据的读写,以及在接收到停止调试的请求时,停止对组态对象的调用执行。
在将存档的组态对象和预编译构建功能块库的上位机可链接调用版本输入至仿真编译器中之后,进入步骤S204,组态软件服务端启动调用仿真调试器,仿真调试器动态发现、并加载所有组态对象可调用组件,并以用户组态指定的周期调度,执行组态对象的控制逻辑,其中,仿真调试器可以用于负责响应组态软件发送的各类调试请求命令,例如,位号实时值的读值请求、写值请求、强制写值请求等命令,仿真调试器也可以用于支持管理命令,例如,停止调试命令、暂停/恢复组态对象调度执行命令等。
可选地,本发明实施例中的虚拟调试单元可以至少包括以下模块:仿真调试器、规定方式编译的功能块库、规定方式编译的组态对象、仿真编译器、位号实时数据库、以及环境对象仿真器等。
图3(a)是根据本发明实施例的一种仿真调试时组件调用关系的示意图,如图3(a)所示,组态软件客户端301可以与组态软件服务端302进行数据交互,组态软件服务端302可以与仿真调试器303进行数据交互,位号实时数据库304可以与仿真调试器303进行数据交互,环境对象仿真器305可以与位号实时数据库304进行数据交互,其中,仿真调试器303可以包括仿真调试加载器3031。
可选地,通过仿真调试加载器3031可以动态加载可调用执行组态对象模块30311和30312,其中,组态对象模块30311和30312可以依赖于功能块库3032.
可选地,通过仿真调试器可以对上负责和组态软件进行通信,接口和真实调试器可以保持一致,响应返回组态软件客户端所需的功能块实例、对象参数、诊断位号的调试实时数据,通过仿真调试器也可以对下负责运行时,动态加载可调用执行组态对象模块编译后输出的可执行的dll库文件、及其依赖的功能块库的库文件,管理实现多个工厂对象直接的位号数据的读写,以及在接收到停止调试的请求时,停止对组态对象的调用执行。
图3(b)是根据本发明实施例的一种组态对象调用接口的示意图,如图3(b)所示,组态对象调用接口可以至少包括:组态对象初始化接口、周期调用执行接口、反初始化接口等,此处仅作举例说明,不作具体限定。
可选地,组态对象初始化接口可以用于对功能块进行实例化,以及对对象参数进行分配内存和赋初值,组态对象初始化接口可以只执行一次,周期调用执行接口可以为组态对象逻辑执行的入口函数,周期调用执行接口可以根据组态的调度周期,来周期性执行该接口,在该接口中,仿真编译器可以生成组态对象逻辑的具体的可执行代码。
需要说明的是,上述组态的调度周期可以根据需求而适应性变化,例如,上述组态的调度周期可以为2s、3s、4s等,此处仅作举例说明,不作具体限定。
在该实施例中,通过对组态对象进行逻辑组态,然后对编译后的组态对象进行存档,再将存档的组态对象和预编译构建功能块库的上位机可链接调用版本输入至仿真编译器中,之后通过组态软件服务端可以启动调用仿真调试器,由仿真调试器可以动态发现、并加载所有组态对象可调用组件,并以用户组态指定的周期调度,执行组态对象的控制逻辑,从而达到了可以同时虚拟调试多个有关联的工厂组态对象的目的,解决了难以实现仿真控制器的轻量化及便捷化的技术问题,实现了可以实现仿真控制器的轻量化及便捷化的技术效果。
实施例3
根据本发明实施例,还提供了一种对象的调试装置。需要说明的是,该对象的调试装置可以用于执行实施例1中的一种对象的调试方法。
图4是根据本发明实施例的一种对象的调试装置的示意图。如图4所示,该对象的调试装置400可以包括:获取单元401、检测单元402、编译单元403和调试单元404。
获取单元401,用于获取初始模块的属性信息,其中,初始模块为至少具有控制逻辑的模块,属性信息用于表示初始模块在初始化后的状态。
检测单元402,用于基于属性信息,对初始模块进行检测,得到检测结果,其中,检测结果用于表示与初始模块对应的语义结果。
编译单元403,用于基于检测结果,对初始模块进行编译,得到目标模块。
调试单元404,用于响应于加载目标模块,按照目标周期对初始模块对应的控制逻辑进行调试,得到调试结果。
可选地,编译单元403可以包括:编译模块,用于响应于检测结果为语义结果为有效信息,对初始模块进行编译;链接模块,用于对编译后的初始模块进行链接,得到目标模块。
可选地,调试单元404可以包括:执行模块,用于响应于通过目标模块的调用接口来加载目标模块,在目标周期内,执行控制逻辑;调试模块,用于响应于与控制逻辑对应的调试命令,对控制逻辑进行调试,得到调试结果。
可选地,该对象的调试装置400还可以包括:调整单元,用于响应于检测结果为语义结果为无效信息,对属性信息进行调整;检测单元,用于对调整后的属性信息进行检测,得到第一检测结果,其中,第一检测结果用于表示与调整后的初始模块对应的第一语义结果。
可选地,该对象的调试装置400还可以包括:第一编译单元,用于响应于第一检测结果为第一语义结果为有效信息,对初始模块进行编译;第一链接单元,用于对编译后的初始模块进行链接,得到目标模块。
可选地,获取单元401可以包括:获取模块,用于对初始模块的初始属性信息进行配置,得到属性信息。
在该实施例中,获取单元,用于获取初始模块的属性信息,其中,初始模块为至少具有控制逻辑的模块,属性信息用于表示初始模块在初始化后的状态;检测单元,用于基于属性信息,对初始模块进行检测,得到检测结果,其中,检测结果用于表示与初始模块对应的语义结果;编译单元,用于基于检测结果,对初始模块进行编译,得到目标模块;调试单元,用于响应于加载目标模块,按照目标周期对初始模块对应的控制逻辑进行调试,得到调试结果,解决了难以实现仿真控制器的轻量化及便捷化的技术问题,实现了可以实现仿真控制器的轻量化及便捷化的技术效果。
实施例4
根据本发明实施例,还提供了一种计算机可读存储介质,该存储介质包括存储的程序,其中,程序执行实施例1中的对象的调试方法。
实施例5
根据本发明实施例,还提供了一种处理器,该处理器用于运行程序,其中,程序被处理器运行时执行实施例1中的对象的调试方法。
实施例6
根据本发明实施例,还提供一种存储器,该存储器包括程序,其中,程序用于执行实施例1中任意一项对象的调试方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种对象的调试方法,其特征在于,包括:
获取初始模块的属性信息,其中,所述初始模块为至少具有控制逻辑的模块,所述属性信息用于表示所述初始模块在初始化后的状态;
基于所述属性信息,对所述初始模块进行检测,得到检测结果,其中,所述检测结果用于表示与所述初始模块对应的语义结果;
基于所述检测结果,对所述初始模块进行编译,得到目标模块;
响应于加载所述目标模块,按照目标周期对所述初始模块对应的所述控制逻辑进行调试,得到调试结果。
2.根据权利要求1所述的方法,其特征在于,基于所述检测结果,对所述初始模块进行编译,得到目标模块,包括:
响应于所述检测结果为所述语义结果为有效信息,对所述初始模块进行编译;
对编译后的所述初始模块进行链接,得到所述目标模块。
3.根据权利要求1所述的方法,其特征在于,响应于加载所述目标模块,按照目标周期对所述初始模块对应的所述控制逻辑进行调试,得到调试结果,包括:
响应于通过所述目标模块的调用接口来加载所述目标模块,在所述目标周期内,执行所述控制逻辑;
响应于与所述控制逻辑对应的调试命令,对所述控制逻辑进行调试,得到所述调试结果。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
响应于所述检测结果为所述语义结果为无效信息,对所述属性信息进行调整;
对调整后的所述属性信息进行检测,得到第一检测结果,其中,所述第一检测结果用于表示与调整后的所述初始模块对应的第一语义结果。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
响应于所述第一检测结果为所述第一语义结果为所述有效信息,对所述初始模块进行编译;
对编译后的所述初始模块进行链接,得到所述目标模块。
6.根据权利要求1所述的方法,其特征在于,获取初始模块的属性信息,包括:
对所述初始模块的初始属性信息进行配置,得到所述属性信息。
7.一种对象的调试装置,其特征在于,包括:
获取单元,用于获取初始模块的属性信息,其中,所述初始模块为至少具有控制逻辑的模块,所述属性信息用于表示所述初始模块在初始化后的状态信息;
检测单元,用于基于所述属性信息,对所述初始模块进行检测,得到检测结果,其中,所述检测结果用于表示与所述初始模块对应的语义结果;
编译单元,用于基于所述检测结果,对所述初始模块进行编译,得到目标模块;
调试单元,用于响应于加载所述目标模块,按照目标周期对所述初始模块对应的所述控制逻辑进行调试,得到调试结果。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行权利要求1至6中任意一项所述对象的调试方法。
9.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序被所述处理器运行时执行权利要求1至6中任意一项所述对象的调试方法。
10.一种存储器,其特征在于,所述存储器包括程序,其中,所述程序用于执行权利要求1至6中任意一项所述对象的调试方法。
CN202311668215.6A 2023-12-06 2023-12-06 对象的调试方法、装置、存储介质、处理器和存储器 Pending CN117742286A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311668215.6A CN117742286A (zh) 2023-12-06 2023-12-06 对象的调试方法、装置、存储介质、处理器和存储器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311668215.6A CN117742286A (zh) 2023-12-06 2023-12-06 对象的调试方法、装置、存储介质、处理器和存储器

Publications (1)

Publication Number Publication Date
CN117742286A true CN117742286A (zh) 2024-03-22

Family

ID=90250035

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311668215.6A Pending CN117742286A (zh) 2023-12-06 2023-12-06 对象的调试方法、装置、存储介质、处理器和存储器

Country Status (1)

Country Link
CN (1) CN117742286A (zh)

Similar Documents

Publication Publication Date Title
US8327316B2 (en) Compilation model
US8307337B2 (en) Parallelization and instrumentation in a producer graph oriented programming framework
CN102222023B (zh) 异步工作流
CN111736954B (zh) 多智能合约虚拟机实现方法、多智能合约虚拟机及系统
JP2000181725A (ja) 実行可能なコ―ドを改変し、追加機能を付与するための方法およびシステム
CN101470621A (zh) 虚拟机配置系统
US8281292B2 (en) Rapid application development
US20110126179A1 (en) Method and System for Dynamic Patching Software Using Source Code
KR20140054948A (ko) 임베디드 시스템을 위한 오픈씨엘 응용 소프트웨어 개발 지원 도구 구성 및 방법
US20090119651A1 (en) System and method for directing recompilation of a class with a java static variable
CN107463421B (zh) 一种静态流程模型的编译执行方法及系统
US9639375B2 (en) Generation of language bindings for libraries using data from compiler generated debug information
Bouraqadi et al. Test-driven development for generated portable Javascript apps
CN115756424A (zh) 一种生成mvp代码的方法、装置及设备
CN115390809A (zh) 一种仿真调度方法及系统
CN114706590A (zh) Plc应用包生成方法、plc应用执行方法及相关装置和系统
US9841982B2 (en) Locating import class files at alternate locations than specified in classpath information
Wood et al. Triton: a domain specific language for cyber-physical systems
US10552135B1 (en) Reducing a size of an application package
CN108304184B (zh) 编译方法及装置
CN117742286A (zh) 对象的调试方法、装置、存储介质、处理器和存储器
CN114546515B (zh) 动态加载静态库的模块、固件及设备和C库转Lua库的方法
Peiro et al. PaRTiKle OS, a replacement for the core of RTLinux-GPL
CN115904384A (zh) 应用程序发布的配置方法、装置、设备及存储介质
US20200394050A1 (en) Method for executing a computer program in a computer network, in particular in order to control a microscope

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