CN116224826A - 控制逻辑的仿真方法及系统、装置、非易失性存储介质 - Google Patents
控制逻辑的仿真方法及系统、装置、非易失性存储介质 Download PDFInfo
- Publication number
- CN116224826A CN116224826A CN202211608900.5A CN202211608900A CN116224826A CN 116224826 A CN116224826 A CN 116224826A CN 202211608900 A CN202211608900 A CN 202211608900A CN 116224826 A CN116224826 A CN 116224826A
- Authority
- CN
- China
- Prior art keywords
- control logic
- program
- determining
- engineering
- programming language
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B17/00—Systems involving the use of models or simulators of said systems
- G05B17/02—Systems involving the use of models or simulators of said systems electric
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Testing And Monitoring For Control Systems (AREA)
Abstract
本申请公开了一种控制逻辑的仿真方法及系统、装置、非易失性存储介质。其中,该方法包括:接收控制逻辑程序数据集,其中,控制逻辑程序数据集包括:位号表和控制逻辑程序集,控制逻辑程序集包括:工程块信息、工程块之间的连接关系,工程块包括:位号和功能块;确定控制逻辑程序集对应的高级编程语言数据结构文本;将控制逻辑程序集对应的高级编程语言数据结构文本转换为目标程序,根据目标程序确定待仿真的控制逻辑的仿真结果。本申请解决了由于无法针对控制逻辑程序中的特定程序段进行仿真造成的对控制逻辑程序中的问题进行排查的效率较低的技术问题。
Description
技术领域
本申请涉及工业自动控制领域,具体而言,涉及一种控制逻辑的仿真方法及系统、装置、非易失性存储介质。
背景技术
随着工厂规模的扩大,微处理器、计算机技术的飞速发展,自动控制逐渐渗透到几乎所有的流程工业生产领域。在这样的背景下,为了保证设计逻辑控制程序时能够实时查看程序的运行情况、验证程序的合理与稳定性,逻辑控制程序仿真系统应运而生。
目前,存在多种类型的控制逻辑的仿真系统,一类是基于电气原理图,由仿真模块根据原理图中的各种电子原器件特性,模拟电子原器件中的电势与走向,实时反馈电压电流数据,从电子电气的角度去仿真电路控制逻辑。另一类是将可视化原理图转化为工业控制装置所能识别运行的配置文件,由上位机通过以太网传输到工业控制装置上,并由工业控制装置模拟运行,然后实时返回模拟运行装置最终呈现给设计人员。
上述两类控制逻辑仿真方法都严重依赖实施硬件(工业控制装置)的基本参数与特性,无法脱离硬件或电子原器件信息运行。而依赖硬件仿真的方式都只能采用整机仿真调试的方式,这种调试方式下,调试人员不能针对特定程序段进行测试,而这些程序段可能隐藏更多的问题。当调试过程中发现问题时,整机调试方法不能快速定位问题点,为了定位问题点需要重复进行调试,大大降低了问题排查效率。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种控制逻辑的仿真方法及系统、装置、非易失性存储介质,以至少解决由于无法针对控制逻辑程序中的特定程序段进行仿真造成的对控制逻辑程序中的问题进行排查的效率较低的技术问题。
根据本申请实施例的一个方面,提供了一种控制逻辑的仿真方法,包括:接收控制逻辑程序数据集,其中,控制逻辑程序数据集包括:位号表和控制逻辑程序集,控制逻辑程序集包括:工程块信息、工程块之间的连接关系,工程块包括:位号和功能块;确定控制逻辑程序集对应的高级编程语言数据结构文本;将控制逻辑程序集对应的高级编程语言数据结构文本转换为目标程序,根据目标程序确定待仿真的控制逻辑的仿真结果。
可选地,确定控制逻辑程序集对应的高级编程语言数据结构文本,包括:确定位号表对应的高级编程语言数据结构文本;确定控制逻辑程序集中的目标控制逻辑程序,并确定目标控制逻辑程序中工程块的执行顺序,以及功能块对应的高级编程语言数据结构文本;根据执行顺序、位号表对应的高级编程语言数据结构文本和功能块对应的高级编程语言数据结构文本,确定目标控制逻辑程序对应的高级编程语言数据结构文本;根据目标控制逻辑程序对应的高级编程语言数据结构文本,确定控制逻辑程序集对应的高级编程语言数据结构文本。
可选地,确定位号表对应的高级编程语言数据结构文本,包括:确定位号表对应的目标数据存储方式的类型,其中,目标数据存储方式为高级编程语言的数据存储方式;根据位号表对应的目标数据存储方式的类型,将位号表中的位号确定为目标数据存储方式中的目标变量;根据位号表对应的目标数据存储方式的类型和目标变量,确定位号表对应的高级编程语言数据结构文本。
可选地,确定目标控制逻辑程序中工程块的执行顺序,包括:根据目标控制逻辑程序,确定工程块之间的第一连接关系;步骤S1,根据第一连接关系确定第一工程块,其中,第一工程块为在第一连接关系中不存在输入源的工程块,并确定第一工程块的执行顺序为第一子执行顺序;步骤S2,去除第一工程块和第一工程块与其他工程块之间的连接关系,得到工程块之间的第二连接关系;步骤S3,根据第二连接关系确定第二工程块,其中,第二工程块为在第二连接关系中不存在输入源的工程块,并确定第二工程块的执行顺序为第二子执行顺序;重复执行步骤S1至步骤S3,直至将目标控制逻辑程序中的全部n个工程块去除,得到n个子执行顺序,其中,n为正整数;根据n个子执行顺序,确定目标控制逻辑程序中工程块的执行顺序。
可选地,确定功能块对应的高级编程语言数据结构文本之前,方法还包括:确定目标控制逻辑程序中的功能块的引脚信息;确定引脚信息对应的目标逻辑控制标准的符号表;根据符号表判断功能块对应的控制逻辑程序的正确性。
可选地,根据目标程序确定待仿真的控制逻辑的仿真结果之后,方法还包括:将待仿真的控制逻辑的仿真结果发送至客户端。
根据本申请实施例的再一方面,还提供了一种控制逻辑的仿真系统,包括:客户端和服务端,其中,客户端与服务端通信连接,用于将位号表和控制逻辑程序集确定为控制逻辑程序数据集,并通过网络超文本传输协议将控制逻辑程序数据集发送至服务端,其中,控制逻辑程序集包括:工程块信息、工程块之间的连接关系,工程块包括:位号和功能块;服务端,用于执行以上的控制逻辑的仿真方法。
根据本申请实施例的再一方面,还提供了一种非易失性存储介质,存储介质包括存储的程序,其中,程序运行时控制存储介质所在的设备执行以上的控制逻辑的仿真方法。
根据本申请实施例的再一方面,还提供了一种电子设备,包括:存储器和处理器,处理器用于运行存储在存储器中的程序,其中,程序运行时执行以上的控制逻辑的仿真方法。
在本申请实施例中,采用接收控制逻辑程序数据集,其中,控制逻辑程序数据集包括:位号表和控制逻辑程序集,控制逻辑程序集包括:工程块信息、工程块之间的连接关系,工程块包括:位号和功能块;确定控制逻辑程序集对应的高级编程语言数据结构文本;将控制逻辑程序集对应的高级编程语言数据结构文本转换为目标程序,根据目标程序确定待仿真的控制逻辑的仿真结果的方式,通过确定获取到的控制逻辑程序数据集对应的高级编程语言数据结构文本,并将该高级编程语言数据结构文本转换为目标程序,达到了对控制逻辑程序中的特定程序段进行仿真的目的,从而实现了提升对控制逻辑程序中的问题进行排查的效率的技术效果,进而解决了由于无法针对控制逻辑程序中的特定程序段进行仿真造成的对控制逻辑程序中的问题进行排查的效率较低技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种控制逻辑的仿真方法的流程图;
图2是根据本申请实施例的另一种控制逻辑的仿真方法的流程图;
图3是根据本申请实施例的一种控制逻辑程序图;
图4是根据本申请实施例的一种确定工程块执行顺序的流程图;
图5是根据本申请实施例的一种确定功能块对应的高级编程语言数据结构文本的流程图;
图6是根据本申请实施例的一种确定控制逻辑程序集对应的高级编程语言数据结构文本的流程图;
图7是根据本申请实施例的一种客户端与服务端之间的交互示意图;
图8是根据本申请实施例的一种控制逻辑仿真器的生成原理图;
图9是根据本申请实施例的一种控制逻辑的仿真系统的结构图;
图10是根据本申请实施例的一种控制逻辑的仿真装置的结构图;
图11是根据本申请实施例提供的一种控制逻辑的仿真方法的计算机终端(或电子设备)的硬件结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了更好地理解本申请实施例,以下将本申请实施例中涉及的技术术语解释如下:
功能块:具有特定功能的计算机代码在用户操作界面上的抽象体现。
ST代码:适用IEC 61131-3编程系统标准语法编写的高级语言文本。
编译器:将一种语言翻译为另一种语言的程序。由开发人员书写高级计算机语言,编译器将其翻译为计算机能够理解的机器代码。
原理图:电路板上各器件之间连接原理的图。
上位机:发出操控命令的计算机。
工业控制装置:工业生产过程中用于控制执行器。
位号:控制系统中的数据源或输出源,控制系统中仪表硬件的数据通过硬件连线连接到控制器中,位号就代表了仪表的输入数据或者是将要输出到仪表的数据。
位号表:数据库中存在位号的列表。
引脚:功能块或位号中负责连接的元素,代表着数据流入或流出的通道。
Web用户端:即浏览器。
Web技术:开发互联网应用的技术总称。
HTTP请求:从Web用户端到服务端端的请求消息。
数据库:用于保存控制逻辑及相关信息的载体。
类:高级编程语言中的一种数据存储与交互方式。
在相关技术中,控制逻辑仿真系统无法利用互联网的互联互通、只能在单台电脑上安装专用的仿真软件进行仿真。因此,存在无法将仿真的系统、程序或电路与他人进行共享或协作编辑,无法通过线上商城复用他人与其应用相同或近似的系统,同时也很难以与设备供应商等第三方进行互动的问题。为了解决上诉问题,本申请实施例中提供了相关的解决方案,以下详细说明。
根据本申请实施例,提供了一种控制逻辑的仿真方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本申请实施例的一种控制逻辑的仿真方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,接收控制逻辑程序数据集,其中,控制逻辑程序数据集包括:位号表和控制逻辑程序集,控制逻辑程序集包括:工程块信息、工程块之间的连接关系,工程块包括:位号和功能块。
根据本申请的一个可选的实施例,接收控制逻辑程序图对应的控制逻辑程序数据集,其中,控制逻辑程序图如图3所示。例如,控制逻辑程序由两个输入位号AOR14020001、AOR14020002,一个加法功能块ADD和一个输出位号AOR14020003组成。其中工程块之间的关系为:位号AOR14020001的输出引脚连接到了ADD的输入引脚IN1;位号AOR14020002的输出引脚连接到了ADD的输入引脚IN2;功能块ADD的输出引脚OUT连接到了输出位号AOR14020003的输入引脚。
步骤S104,确定控制逻辑程序集对应的高级编程语言数据结构文本。
根据本申请的另一个可选的实施例,控制逻辑程序集中包括工程块之间的关系清单,遍历关系清单中的每一项关系;当连接关系是位号输出连接到功能块输入时,调用位号表中的获取值方法获取位号的值,再调用对应功能块的设置值方法,将获取到的值输入功能块。同理,当连接关系是功能块输出连接到功能块输入和/或连接关系是功能块输出连接到位号输入时,是先调用对应输入源块的获取值操作方法,再调用输出源块的设置值操作方法,实现工程块之间的数值传递。
可选地,将控制逻辑程序集对应的高级编程语言数据结构文本存储为高级编程语言文本文件。
步骤S106,将控制逻辑程序集对应的高级编程语言数据结构文本转换为目标程序,根据目标程序确定待仿真的控制逻辑的仿真结果。
服务端将根据目标程序确定得出的待仿真的控制逻辑的仿真结果发送至Web用户端,即浏览器,用户通过浏览器直接观察待仿真的控制逻辑的仿真结果,并基于该仿真结果进行下一步相关工作。
根据上述步骤,通过确定获取到的控制逻辑程序数据集对应的高级编程语言数据结构文本,并将该高级编程语言数据结构文本转换为目标程序,达到了对控制逻辑程序中的特定程序段进行仿真的目的,从而实现了提升对控制逻辑程序中的问题进行排查的效率的技术效果。
根据本申请的一个可选的实施例,确定控制逻辑程序集对应的高级编程语言数据结构文本,可以通过以下方法实现:确定位号表对应的高级编程语言数据结构文本;确定控制逻辑程序集中的目标控制逻辑程序,并确定目标控制逻辑程序中工程块的执行顺序,以及功能块对应的高级编程语言数据结构文本;根据执行顺序、位号表对应的高级编程语言数据结构文本和功能块对应的高级编程语言数据结构文本,确定目标控制逻辑程序对应的高级编程语言数据结构文本;根据目标控制逻辑程序对应的高级编程语言数据结构文本,确定控制逻辑程序集对应的高级编程语言数据结构文本。
可选地,将生成的高级编程语言数据结构文本存储为高级编程语言文本文件。
在本申请的一些可选的实施例,确定位号表对应的高级编程语言数据结构文本,通过以下方法实现:确定位号表对应的目标数据存储方式的类型,其中,目标数据存储方式为高级编程语言的数据存储方式;根据位号表对应的目标数据存储方式的类型,将位号表中的位号确定为目标数据存储方式中的目标变量;根据位号表对应的目标数据存储方式的类型和目标变量,确定位号表对应的高级编程语言数据结构文本。
作为本申请的一个可选的实施例,定义位号表的类名,将位号表的每一项位号定义为类中的成员变量,位号的类型根据实际系统的定义,转化定义为高级编程语言中的数据存储类型。位号数据类型为REAL类型,工程上定义REAL类型在计算机中占用4个字节的长度,所以,转化定义为高级编程语言中的数据类型也占用4个字节长度的类型,在将其转化为高级编程语言C++的情况下,即转变类型为float类型。并根据设计需求增加系统中访问所需要的位号操作方法(例如设置值、获取值)。
在本申请的另一些可选的实施例中,确定目标控制逻辑程序中工程块的执行顺序,包括以下步骤:根据目标控制逻辑程序,确定工程块之间的第一连接关系;步骤S1,根据第一连接关系确定第一工程块,其中,第一工程块为在第一连接关系中不存在输入源的工程块,并确定第一工程块的执行顺序为第一子执行顺序;步骤S2,去除第一工程块和第一工程块与其他工程块之间的连接关系,得到工程块之间的第二连接关系;步骤S3,根据第二连接关系确定第二工程块,其中,第二工程块为在第二连接关系中不存在输入源的工程块,并确定第二工程块的执行顺序为第二子执行顺序;重复执行步骤S1至步骤S3,直至将目标控制逻辑程序中的全部n个工程块去除,得到n个子执行顺序,其中,n为正整数;根据n个子执行顺序,确定目标控制逻辑程序中工程块的执行顺序。
作为本申请的另一个可选的实施例,每一个工程块的执行在抽象意义上是存在顺序的,当工程块的连接关系是由A的输出连接到B的输入的,那么A块的执行就一定在B之前,这样A的计算结果才能正确传输给B块;根据拓扑排序算法,设定控制逻辑绘制界面的左侧输入部分的位号的顺序序号为1以及逻辑关系中没有输入源的块的顺序序号为1,删除上述块以及他们的输出连接关系,这样,会出现新的一批没有输入源的块,设置新的一批块的顺序序号为2,依次类推,直至块全部消失。此时即可获得全部工程块的执行顺序。
在一个可选的实施例中,确定功能块对应的高级编程语言数据结构文本之前,还需要:确定目标控制逻辑程序中的功能块的引脚信息;确定引脚信息对应的目标逻辑控制标准的符号表;根据符号表判断功能块对应的控制逻辑程序的正确性。
根据本申请的一个可选的实施例,根据IEC61131-3编译器的要求,将功能块的引脚列表生成符号表,将符号表数据与功能块中的工业编程代码输入IEC61131-3编译器,检查工业编程代码的正确性,并输出编译结果以及高级编程语言的编译文本。
根据本申请的一个优选的实施例,根据目标程序确定待仿真的控制逻辑的仿真结果之后,还需要:将待仿真的控制逻辑的仿真结果发送至客户端。
图2是根据本申请实施例的另一种控制逻辑的仿真方法的流程图,如图2所示,该方法包括如下步骤:
步骤S202:仿真器生成模块接收到控制逻辑程序数据集后,检查该控制逻辑程序数据集是否存在错误。若存在错误,生成提示信息,并将该提示信息发送至客户端;若不存在错误,创建位号表数据结构。
控制逻辑程序由两个输入位号AOR14020001、AOR14020002,一个加法功能块ADD和一个输出位号AOR14020003组成。其中工程块之间的关系为:位号AOR14020001的输出引脚连接到了ADD的输入引脚IN1;位号AOR14020002的输出引脚连接到了ADD的输入引脚IN2;功能块ADD的输出引脚OUT连接到了输出位号AOR14020003的输入引脚。
作为本申请的一个可选的实施例,创建位号表数据结构,数据结构中包含三个成员变量:浮点类型的AOR14020001、浮点类型的AOR14020002与浮点类型的AOR14020003;与三个设置值的方法、三个获取值的方法分别对应三个位号的取值设值方法。
步骤S204,仿真器生成模块确定控制逻辑程序集中的目标控制逻辑程序,即程序集中的程序清单中只有一个当前定义的这一个程序,将其命名为程序1。
步骤S206,根据拓扑排序算法计算出程序1中工程块的执行顺序。
图4是根据本申请实施例的一种确定工程块执行顺序的流程图,如图4所示,该方法包括如下步骤:
步骤S2061,将输入位号AOR14020001与输入位号AOR14020002的执行顺序定义为1;
步骤S2062,找到当前图中所有不具备输入的块,当前找到情况为:位号AOR14020001与位号AOR14020002;
步骤S2063,将步骤S2062找到的块的执行顺序定义为1;
步骤S2064,将位号AOR1402001与位号AOR14020002去掉;
步骤S2065,将位号AOR1402001与位号AOR14020002的全部输出连接去掉。此时的块剩余了加法功能块ADD与一个输出位号AOR14020003。块与块之间的关系剩余了功能块ADD的输出引脚OUT连接到了输出位号AOR14020003的输入引脚;
步骤S2066,重复步骤S2062,找到当前图中不具备输入的块,当前找到的情况为:功能块ADD;
步骤S2067,重复步骤S2063,将上一步找到的块(功能块ADD)的执行顺序定义为2;
步骤S2068,重复步骤S2064,将功能块ADD去掉;
步骤S2069,重复步骤S2065,将功能块ADD的全部输出连接去掉。此时的块剩余了输出位号AOR14020003;
步骤S20610,重复步骤S2062,找到当前图中不具备输入的块,当前找到的情况为输出位号AOR14020003;
步骤S20611,重复步骤S2063,将当前块输出位号AOR14020003的执行顺序定义为3;
步骤S20612,将输出位号AOR14020003去掉,将输出位号AOR14020003的全部输出去掉;
步骤S20613,此时不存在块与连接关系,结束计算。
根据上述步骤可得第一步先执行输入位号AOR14020001与输入位号AOR14020002。第二步执行功能块ADD。第三步执行输出位号AOR14020003。
步骤S208,确定功能块对应的高级编程语言数据结构文本。
图5是根据本申请实施例的一种确定功能块对应的高级编程语言数据结构文本的流程图,如图5所示:整理功能块ADD的引脚,输入浮点类型引脚IN1、IN2;输出浮点类型引脚OUT;整理为符号表数据。将符号表信息和功能块ADD的信息(内部的IEC61131-3执行“OUT:=IN1+IN2;”)传输给IEC61131-3编译器,编译器编译出功能块对应的高级编程语言数据结构文本,并将该高级编程语言数据结构文本写入文件。
步骤S210,生成程序1的高级编程语言数据结构文本。
步骤S2101,执行输入位号AOR14020001与输入位号AOR14020002,并从步骤S204生成的位号表结构中获取位号AOR14020001与位号AOR14020002的值。
步骤S2102,依据工程块之间的连接关系,将AOR1402001与AOR14020002的值输入步骤S208生成的功能块高级编程语言数据结构类中。
步骤S2103,执行功能块ADD中的运行方法。
步骤S2104,依据工程块之间的连接关系,获取功能块ADD的输出值OUT,并将值设置进入输出位号AOR14020003中。
步骤S2105,执行输出位号AOR14020003。
步骤S212,根据步骤S202至步骤S210,确定控制逻辑程序集对应的高级编程语言数据结构文本,其中,该流程如图6所示。
步骤S214,利用CMake将上述清单文件与位号表文件与功能块文件生成为项目。
步骤S216,利用Mingw32将上述项目生成为可执行程序。
本申请结合了传统工业控制系统的特性与互联网的便捷性,舍弃了传统工业控制系统需要依赖硬件运行的特性,结合了互联网的开放协作的特性,将设计控制逻辑与仿真结合,形成一套完整的工程实施上层控制逻辑设计方案。通过本申请可以解决控制逻辑仿真系统中的如下问题:依赖硬件参数与特性或直接依赖硬件运行;无法针对单独特定程序段运行;无法通过网络进行团队协作或应用程序分享互用。
图9是根据本申请实施例的一种控制逻辑的仿真系统的结构图,如图9所示,该系统包括:客户端902和服务端904,其中,
客户端902与服务端904通信连接,用于将位号表和控制逻辑程序集确定为控制逻辑程序数据集,并通过网络超文本传输协议将控制逻辑程序数据集发送至服务端904,其中,控制逻辑程序集包括:工程块信息、工程块之间的连接关系,工程块包括:位号和功能块。
服务端904,用于执行控制逻辑的仿真方法。
图7是根据本申请实施例的一种客户端与服务端之间的交互示意图,如图7所示,用户通过客户端902的浏览器进入系统后,根据所属项目工程不同的需求创建自定义功能块。在系统界面上,用户为需要创建的自定义功能块创建对外连接所需的引脚,在代码编辑框中输入工业编程代码利用创建的引脚实现该功能块目标所要实现的功能。用户在系统中的位号表中输入位号的类型与初值创建位号。完成后,客户端902利用JavaScript脚本通过网络HTTP请求将数据保存进入服务端904的数据库,其中,控制逻辑绘制界面分为三个区域,最左侧的输入区域与最右侧的输出区域以表格的形式展示用户选用的位号。中间的逻辑功能区域展示当前逻辑页的控制逻辑。控制逻辑绘制界面右侧是系统内置的与用户先前定义的功能块列表。
根据本申请的一个可选的实施例,用户通过控制逻辑绘制界面上方的工具栏中的位号选择工具选用位号时,客户端902通过JavaScript向服务端904请求查询位号列表,服务端904收到请求后从数据库的位号表中将位号列表信息返回给客户端902,客户端902收到位号列表信息后,通过可视化工具在界面上绘制出位号的样式,放置在输入区域的位号每个块右侧都拥有一个可以用于连接输出的引脚。放置在输出区域的位号每个块左侧都拥有一个可以用于连接输入的引脚。用户选用功能块列表中的功能块,客户端902从服务端904获取功能块数据,将功能块绘制在界面中。当用户鼠标定位在位号或功能块输出引脚上时,可以拖拽选择引脚连线连接其他块的对应输入引脚。直至用户绘制完控制逻辑图。客户端902将功能块与位号间的连接关系,以及功能块与位号的信息通过网络HTTP请求保存为服务端904数据库中的一项程序。
当用户触发仿真时,客户端902向服务端904发起仿真请求,服务端904生成仿真任务ID通知客户端90本次的仿真任务,服务端904随即从数据库中取出需要仿真的数据集。仿真数据集中包含了位号表的信息与程序集。程序集下包含了多个程序,每个程序中又包含了多个功能块、位号以及程序中功能块位号的关系清单。
服务端904的控制逻辑仿真器生成原理如图8所示,服务端904中的仿真器生成模块将获取到的位号表数据,按照位号的类型以高级编程语言的形式生成高级编程语言数据结构文本:定义位号表的类名,将位号表的每一项位号定义为类中的成员变量,位号的类型根据实际系统的定义,转化定义为高级编程语言中的数据存储类型(例如:位号数据类型为REAL类型,工程上定义REAL类型在计算机中占用4个字节的长度,所以,转化定义为高级编程语言中的数据类型也必须是占用4个字节长度的类型,例如将其转化为高级编程语言C++,即转变类型为float类型)。并根据设计需求增加系统中访问所需要的位号操作方法(例如设置值、获取值)。将生成的高级编程语言数据结构文本存储为计算机中的高级编程语言文本文件。
仿真器生成模块循环遍历获取到的程序集,处理程序集中每一个程序。每一个程序再依据拓扑排序算法依序遍历程序中的每一个功能块与位号。并根据IEC61131-3编译器的要求,将功能块的引脚列表生成符号表,将符号表数据与功能块中的工业编程代码输入IEC61131-3,检查工业编程代码的正确性,并输出编译结果以及高级编程语言的编译文本。与位号表的转化同理,将功能块的名称转化定义为高级编程语言中的类名,将功能块的引脚转化定义为高级编程语言中的成员变量,将功能块的工业编程代码定义为类中的运行操作方法。
解析程序中的功能块、位号关系清单,生成该程序的运行方法高级编程语言文本。
仿真器生成模块最后将程序集运行清单转化为高级编程语言文本。
仿真器生成模块使用CMAKE工具将上述生成的文件结合事先定义好的网络通讯模块整理为高级编程语言工程。再利用MINGW32工具将上述工程编译为对应的计算机可执行程序,即得到了该程序集的仿真器。
服务端904运行上述生成的仿真器,仿真器通过网络模块向服务端904发送实时数据。客户端902根据仿真器收到仿真任务ID向服务端904订阅实时数据。最后将收到的实时数据显示在界面上反馈给用户。
当用户需要设置某个块的值以查看新值对当前控制逻辑的影响时,在客户端902为位号或者功能块设置引脚的值,客户端902向服务端904发送网络HTTP请求。
图10是根据本申请实施例的一种控制逻辑的仿真装置的结构图,如图10所示,该装置包括:
1002接收模块,用于接收控制逻辑程序数据集,其中,控制逻辑程序数据集包括:位号表和控制逻辑程序集,控制逻辑程序集包括:工程块信息、工程块之间的连接关系,工程块包括:位号和功能块;
1004第一确定模块,用于确定控制逻辑程序集对应的高级编程语言数据结构文本;
1006第二确定模块,用于将控制逻辑程序集对应的高级编程语言数据结构文本转换为目标程序,根据目标程序确定待仿真的控制逻辑的仿真结果。
需要说明的是,上述图10中的各个模块可以是程序模块(例如是实现某种特定功能的程序指令集合),也可以是硬件模块,对于后者,其可以表现为以下形式,但不限于此:上述各个模块的表现形式均为一个处理器,或者,上述各个模块的功能通过一个处理器实现。
图11示出了一种用于实现控制逻辑的仿真方法的计算机终端(或移动设备)的硬件结构框图。如图11所示,计算机终端110(或移动设备110)可以包括一个或多个(图中采用1102a、1102b,……,1102n来示出)处理器1102(处理器1102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器1104、以及用于通信功能的传输模块1106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为BUS总线的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图11所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端110还可包括比图11中所示更多或者更少的组件,或者具有与图11所示不同的配置。
应当注意到的是上述一个或多个处理器1102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端110(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器1104可用于存储应用软件的软件程序以及模块,如本申请实施例中的控制逻辑的仿真方法对应的程序指令/数据存储装置,处理器1102通过运行存储在存储器1104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的控制逻辑的仿真方法。存储器1104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1104可进一步包括相对于处理器1102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端110。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输模块1106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端110的通信供应商提供的无线网络。在一个实例中,传输模块1106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输模块1106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端110(或移动设备)的用户界面进行交互。
此处需要说明的是,在一些可选实施例中,上述图11所示的计算机设备(或电子设备)可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图11仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算机设备(或电子设备)中的部件的类型。
需要说明的是,图11所示的电子设备用于执行图1所示的控制逻辑的仿真方法,因此上述命令的执行方法中的相关解释说明也适用于该电子设备,此处不再赘述。
本申请实施例还提供了一种非易失性存储介质,非易失性存储介质包括存储的程序,其中,程序运行时控制存储介质所在的设备执行以上的控制逻辑的仿真方法。
非易失性存储介质执行以下功能的程序:接收控制逻辑程序数据集,其中,控制逻辑程序数据集包括:位号表和控制逻辑程序集,控制逻辑程序集包括:工程块信息、工程块之间的连接关系,工程块包括:位号和功能块;确定控制逻辑程序集对应的高级编程语言数据结构文本;将控制逻辑程序集对应的高级编程语言数据结构文本转换为目标程序,根据目标程序确定待仿真的控制逻辑的仿真结果。
本申请实施例还提供了一种电子设备,包括:存储器和处理器,处理器用于运行存储在存储器中的程序,其中,程序运行时执行以上的控制逻辑的仿真方法。
处理器用于运行执行以下功能的程序:接收控制逻辑程序数据集,其中,控制逻辑程序数据集包括:位号表和控制逻辑程序集,控制逻辑程序集包括:工程块信息、工程块之间的连接关系,工程块包括:位号和功能块;确定控制逻辑程序集对应的高级编程语言数据结构文本;将控制逻辑程序集对应的高级编程语言数据结构文本转换为目标程序,根据目标程序确定待仿真的控制逻辑的仿真结果。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对相关技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务端或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种控制逻辑的仿真方法,其特征在于,包括:
接收控制逻辑程序数据集,其中,所述控制逻辑程序数据集包括:位号表和控制逻辑程序集,所述控制逻辑程序集包括:工程块信息、所述工程块之间的连接关系,所述工程块包括:位号和功能块;
确定所述控制逻辑程序集对应的高级编程语言数据结构文本;
将所述控制逻辑程序集对应的高级编程语言数据结构文本转换为目标程序,根据所述目标程序确定待仿真的控制逻辑的仿真结果。
2.根据权利要求1所述的方法,其特征在于,确定所述控制逻辑程序集对应的高级编程语言数据结构文本,包括:
确定所述位号表对应的高级编程语言数据结构文本;
确定所述控制逻辑程序集中的目标控制逻辑程序,并确定所述目标控制逻辑程序中所述工程块的执行顺序,以及所述功能块对应的高级编程语言数据结构文本;
根据所述执行顺序、所述位号表对应的高级编程语言数据结构文本和所述功能块对应的高级编程语言数据结构文本,确定所述目标控制逻辑程序对应的高级编程语言数据结构文本;
根据所述目标控制逻辑程序对应的高级编程语言数据结构文本,确定所述控制逻辑程序集对应的高级编程语言数据结构文本。
3.根据权利要求2所述的方法,其特征在于,确定所述位号表对应的高级编程语言数据结构文本,包括:
确定所述位号表对应的目标数据存储方式的类型,其中,所述目标数据存储方式为高级编程语言的数据存储方式;
根据所述位号表对应的所述目标数据存储方式的类型,将所述位号表中的所述位号确定为所述目标数据存储方式中的目标变量;
根据所述位号表对应的所述目标数据存储方式的类型和所述目标变量,确定所述位号表对应的高级编程语言数据结构文本。
4.根据权利要求2所述的方法,其特征在于,确定所述目标控制逻辑程序中所述工程块的执行顺序,包括:
根据所述目标控制逻辑程序,确定所述工程块之间的第一连接关系;
步骤S1,根据所述第一连接关系确定第一工程块,其中,所述第一工程块为在所述第一连接关系中不存在输入源的所述工程块,并确定所述第一工程块的执行顺序为第一子执行顺序;
步骤S2,去除所述第一工程块和所述第一工程块与其他所述工程块之间的连接关系,得到所述工程块之间的第二连接关系;
步骤S3,根据所述第二连接关系确定第二工程块,其中,所述第二工程块为在所述第二连接关系中不存在输入源的所述工程块,并确定所述第二工程块的执行顺序为第二子执行顺序;
重复执行步骤S1至步骤S3,直至将所述目标控制逻辑程序中的全部n个所述工程块去除,得到n个子执行顺序,其中,n为正整数;
根据所述n个子执行顺序,确定所述目标控制逻辑程序中所述工程块的执行顺序。
5.根据权利要求2所述的方法,其特征在于,确定所述功能块对应的高级编程语言数据结构文本之前,所述方法还包括:
确定所述目标控制逻辑程序中的所述功能块的引脚信息;
确定所述引脚信息对应的目标逻辑控制标准的符号表;
根据所述符号表判断所述功能块对应的控制逻辑程序的正确性。
6.根据权利要求1所述的方法,其特征在于,根据所述目标程序确定待仿真的控制逻辑的仿真结果之后,所述方法还包括:将所述待仿真的控制逻辑的所述仿真结果发送至客户端。
7.一种控制逻辑的仿真系统,其特征在于,包括:客户端和服务端,其中,
所述客户端与所述服务端通信连接,用于将位号表和控制逻辑程序集确定为控制逻辑程序数据集,并通过网络超文本传输协议将所述控制逻辑程序数据集发送至所述服务端,其中,所述控制逻辑程序集包括:工程块信息、所述工程块之间的连接关系,所述工程块包括:位号和功能块;
所述服务端,用于执行权利要求1至6中任意一项所述的控制逻辑的仿真方法。
8.一种控制逻辑的仿真装置,其特征在于,包括:
接收模块,用于接收控制逻辑程序数据集,其中,所述控制逻辑程序数据集包括:位号表和控制逻辑程序集,所述控制逻辑程序集包括:工程块信息、所述工程块之间的连接关系,所述工程块包括:位号和功能块;
第一确定模块,用于确定所述控制逻辑程序集对应的高级编程语言数据结构文本;
第二确定模块,用于将所述控制逻辑程序集对应的高级编程语言数据结构文本转换为目标程序,根据所述目标程序确定待仿真的控制逻辑的仿真结果。
9.一种非易失性存储介质,其特征在于,所述非易失性存储介质包括存储的程序,其中,在所述程序运行时控制所述非易失性存储介质所在设备执行权利要求1至6中任意一项所述的控制逻辑的仿真方法。
10.一种电子设备,其特征在于,包括:存储器和处理器,所述处理器用于运行存储在所述存储器中的程序,其中,所述程序运行时执行权利要求1至6中任意一项所述的控制逻辑的仿真方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202211608900.5A CN116224826A (zh) | 2022-12-14 | 2022-12-14 | 控制逻辑的仿真方法及系统、装置、非易失性存储介质 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202211608900.5A CN116224826A (zh) | 2022-12-14 | 2022-12-14 | 控制逻辑的仿真方法及系统、装置、非易失性存储介质 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN116224826A true CN116224826A (zh) | 2023-06-06 |
Family
ID=86579348
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202211608900.5A Pending CN116224826A (zh) | 2022-12-14 | 2022-12-14 | 控制逻辑的仿真方法及系统、装置、非易失性存储介质 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN116224826A (zh) |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20160098505A1 (en) * | 2014-10-06 | 2016-04-07 | Synopsys, Inc. | Efficient emulation and logic analysis |
| CN113722563A (zh) * | 2021-09-01 | 2021-11-30 | 浙江中控技术股份有限公司 | 多工业控制系统组态数据信号流的图谱展示方法和装置 |
| CN114238107A (zh) * | 2021-12-14 | 2022-03-25 | 北京天融信网络安全技术有限公司 | 一种跟踪调试方法、系统及计算机可读存储介质 |
| CN114968347A (zh) * | 2021-02-20 | 2022-08-30 | 腾讯科技(深圳)有限公司 | 堆栈还原方法、装置、存储介质及电子设备 |
| CN115033473A (zh) * | 2022-04-27 | 2022-09-09 | 交控科技股份有限公司 | 基于软件宕机定位的测试方法及装置 |
-
2022
- 2022-12-14 CN CN202211608900.5A patent/CN116224826A/zh active Pending
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20160098505A1 (en) * | 2014-10-06 | 2016-04-07 | Synopsys, Inc. | Efficient emulation and logic analysis |
| CN114968347A (zh) * | 2021-02-20 | 2022-08-30 | 腾讯科技(深圳)有限公司 | 堆栈还原方法、装置、存储介质及电子设备 |
| CN113722563A (zh) * | 2021-09-01 | 2021-11-30 | 浙江中控技术股份有限公司 | 多工业控制系统组态数据信号流的图谱展示方法和装置 |
| CN114238107A (zh) * | 2021-12-14 | 2022-03-25 | 北京天融信网络安全技术有限公司 | 一种跟踪调试方法、系统及计算机可读存储介质 |
| CN115033473A (zh) * | 2022-04-27 | 2022-09-09 | 交控科技股份有限公司 | 基于软件宕机定位的测试方法及装置 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8577928B2 (en) | Partitioning for model-based design | |
| CN103823666B (zh) | 一种智能变电站设备可视化编程方法 | |
| CN101957745B (zh) | 梯形图语言转换为结构文本语言的方法 | |
| CN102375778B (zh) | 实现数字信号处理器自动测试的方法及系统 | |
| US20170132194A1 (en) | Information-processing equipment based on a spreadsheet | |
| CN106095376B (zh) | 一种快速组态监控画面的实现方法 | |
| CN102646035A (zh) | 基于api接口和脚本定义相结合的可视化代码生成方法 | |
| Pohlmann et al. | Generating functional mockup units from software specifications | |
| CN112433702B (zh) | 一种轻量级流程设计系统及方法 | |
| Sobrino et al. | Into the early steps of virtual commissioning in tecnomatix plant simulation using S7-PLCSIM Advanced and STEP 7 TIA portal | |
| CN111158680A (zh) | 一种页面构建的方法、装置、设备及存储介质 | |
| CN102929636B (zh) | 一种人机交互界面创建方法和装置 | |
| CN102629213B (zh) | 一种c语言仿真模型的剖析及监控方法 | |
| Oppelt et al. | Capability-analysis of co-simulation approaches for process industries | |
| Preisig | A graph-theory-based approach to the analysis of large-scale plants | |
| CN116224826A (zh) | 控制逻辑的仿真方法及系统、装置、非易失性存储介质 | |
| CN114238072A (zh) | Hil需求设计方法、装置、计算机设备和存储介质 | |
| Luder et al. | Formal models for the verification of IEC 61499 function block based control applications | |
| US12530522B2 (en) | Method and system for generating an automation engineering project in a technical installation using multidisciplinary approach | |
| Andrén et al. | Towards automated engineering and validation of cyber-physical energy systems | |
| CN112966457B (zh) | 一种图形化云开发平台 | |
| CN113075915A (zh) | 基于em-plant的虚拟仿真实现方法、系统及设备 | |
| Bezdeka et al. | Sequence chart studio | |
| CN111709118B (zh) | 核电仿真数据协同方法及装置 | |
| Kukkala et al. | Performance modeling and reporting for the UML 2.0 design of embedded systems |
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 | ||
| CB02 | Change of applicant information |
Country or region after: China Address after: No. 309 Liuhe Road, Binjiang District, Hangzhou City, Zhejiang Province (High tech Zone) Applicant after: Zhongkong Technology Co.,Ltd. Address before: No. six, No. 309, Binjiang District Road, Hangzhou, Zhejiang Applicant before: ZHEJIANG SUPCON TECHNOLOGY Co.,Ltd. Country or region before: China |
|
| CB02 | Change of applicant information |