CN114281404A - 一种工控机算法代码的移植方法及装置 - Google Patents
一种工控机算法代码的移植方法及装置 Download PDFInfo
- Publication number
- CN114281404A CN114281404A CN202111609474.2A CN202111609474A CN114281404A CN 114281404 A CN114281404 A CN 114281404A CN 202111609474 A CN202111609474 A CN 202111609474A CN 114281404 A CN114281404 A CN 114281404A
- Authority
- CN
- China
- Prior art keywords
- personal computer
- industrial personal
- algorithm
- management system
- code
- 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.)
- Granted
Links
Images
Classifications
-
- 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
- Stored Programmes (AREA)
Abstract
本发明提供了一种工控机算法代码的移植方法及装置,所述移植方法包括:通过工控机管理系统把第一算法代码封装成功能块形式的接口函数,生成第二算法代码;把第二算法代码编译为工控机算法的第一接口库,其中,第一接口库被工控机的控制程序所调用。本发明的移植方法及装置实现工控机算法代码的高效移植,且生成的接口库可以被工控机的控制程序灵活调用,提高了移植和验证的效率。
Description
技术领域
本申请涉及工业操作系统控制领域,特别是涉及一种工控机算法代码的移植方法及装置。
背景技术
工业操作系统控制领域的算法移植目前一般采用在操作系统层对整个控制程序进行移植,需要使用操作系统提供的编译工具,并需要参照操作系统提供的使用文档,如使用文档中的定时器、任务的创建、任务优先级的指定、通讯接口等等。在操作系统层面移植算法源代码需要了解的东西很多,比如要了解可移植操作系统接口(Portable OperatingSystem Interface,POSIX)有哪些,或是任务调度接口有哪些,比如开中断,关中断接口有哪些等等,同时在实施过程中还需要操作系统设计服务人员进行大量的技术支持,从熟悉到编程的周期比较长。并且进行此类适配的门槛比较高,需要有经验的工程人员进行非常细致的工作。
并且此方式代码移植后还有一个缺陷,代码移植后不能马上按照使用环境搭建测试平台,因为代码移植完成只是完成了代码运行环境的适配,外部测试平台的设备搭建还需要借助外部工具,此时只能在代码层面上进行模拟测试。
同时工业操作系统控制领域在算法移植时一般采用于本领域专门的ST语言或TN图的方式,移植和调试时非常困难。
发明内容
有鉴于此,本申请提供了一种工控机算法代码的移植方法及装置,把待移植算法代码封装成功能块形式的接口函数,并编译成工控机管理系统的标准的接口库,以被各种控制程序调用,移植方法实现高效可靠,并使用工控机管理系统调用第一接口库,结合已有的接口库,快速生成控制程序、控制任务和配置被控设备,实现高效验证移植的算法代码,提高了移植和验证的效率。
本申请实施例的第一方面提供了一种工控机算法代码的移植方法,包括:通过工控机管理系统把第一算法代码封装成功能块形式的接口函数,生成基于第二算法代码;通过工控机管理系统把所述第二算法代码编译为工控机算法的第一接口库,其中,所述第一接口库被工控机的控制程序所调用。
由上,通过把待移植算法代码封装成功能块形式的接口函数,并编译成工控机管理系统的标准的第一接口库,以被各种控制程序调用,便于后续生成控制任务和调试,提高了移植的效率。
在第一方面的一种可能的实施方式中,一种工控机算法代码的移植方法还包括:通过工控机管理系统调用所述第一接口库,生成所述控制程序,并挂靠到控制任务中;通过工控机管理系统把所述控制任务下装到工控机里,配置被控设备,进行所述第二算法代码的验证。在一些实施例中,还基于所述第一接口库设置测试检查点,便于单点验证各所述第一接口库的算法。
由上,通过工控机管理系统调用第一接口库快速生成控制程序,实现高效验证移植的算法代码,提高了验证的效率。
在第一方面的一种可能的实施方式中,利用工控机管理系统的编译软件,把所述第二算法代码编译为工控机的所述第一接口库;把所述第一接口库添加到工控机管理系统的接口库里。
由上,利用工控机管理系统的编译软件进行编译,使第一接口库成为工控机管理系统的接口库的标准件,便于被完善的工控机管理系统调用。
在第一方面的一种可能的实施方式中,利用工控机管理系统的集成开发环境,调用所述第一接口库和第二接口库,生成所述控制程序,并挂靠到所述控制任务中,所述第二接口库为工控机管理系统已配置的算法库。
由上,使用工控机管理系统的集成开发环境调用第一接口库,结合已有的第二接口库,无需考虑操作系统的定时器、中断、通信接口等底层功能的实现方式,快速生成用于验证的控制程序、控制任务,提升验证的效率。
在第一方面的一种可能的实施方式中,利用工控机管理系统的集成开发环境,利用工控机管理系统的集成开发环境,把所述控制任务下装到工控机里的实时运行环境中;利用集成开发环境调用硬件库配置所述被控设备,进行所述第二算法代码的验证,所述硬件库在工控机管理系统中已配置。在一些实施例中,在工控机管理系统的集成开发环境设置基于调用库的检查点。
由上,使用工控机管理系统的集成开发环境配置被控设备,无需关系被控设备的底层控制方式,以标准件形式配置被控设备,在工控机管理系统的集成开发环境设置基于调用库的检查点,进一步提升了对移植的代码的验证效率。
在第一方面的一种可能的实施方式中,所述工控机管理系统的接口库至少还配置下列中的一项:系统调用的接口库、被控设备配置的接口库、控制程序管理的接口库、控制任务管理的接口库。
由上,工控机管理系统已经配置的接口库,帮助生成控制程序、控制任务和配置被控设备,继续提升移植代码的验证效率。
在第一方面的一种可能的实施方式中,所述接口函数具有按照功能块的模板配置的输入变量和输出变量,所述输出变量用于控制被控设备。
由上,通过设置按照功能块的模板配置的接口函数的输入变量和输出变量,便于分解被移植算法的复杂度,在后续验证时通过输入变量和输出变量便于定位接口函数的代码问题。
在第一方面的一种可能的实施方式中,第二算法代码基于C或C++语言封装。
由上,通过基于C或C++大众化编程语言封装第二算法代码,解决基于本领域专门的ST语言或TN图的算法移植方式的移植和调试效率低的问题。
本申请实施例的第二方面提供了一种工控机算法代码的移植装置,包括代码移植模块和代码编译模块;所述代码移植模块用于通过工控机管理系统把第一算法代码封装成功能块形式的接口函数,生成第二算法代码;所述代码编译模块用于通过工控机管理系统把第二算法代码编译为工控机算法的第一接口库。
由上,通过把待移植算法代码封装成功能块形式的接口函数,并编译成工控机管理系统的标准的第一接口库,以被各种控制程序调用,便于后续生成控制任务和调试,提高了移植的效率。
在第二方面的一种可能的实施方式中,一种工控机算法代码的移植装置还包括任务创建模块和代码验证模块;所述任务创建模块用于通过工控机管理系统调用所述第一接口库,生成所述控制程序,并挂靠到控制任务中;所述代码验证模块用于通过工控机管理系统把所述控制任务下装到工控机里,配置被控设备,进行所述第二算法代码的验证。在一些实施例中,还基于所述第一接口库设置测试检查点,便于单点验证各所述第一接口库的算法。
由上,通过调用第一接口库快速生成控制程序,实现高效验证移植的算法代码,提高了验证的效率。
在第二方面的一种可能的实施方式中,所述代码编译模块具体用于利用工控机管理系统的编译软件,把所述第二算法代码编译为工控机的所述第一接口库;把所述第一接口库添加到工控机管理系统的接口库里。
由上,利用工控机管理系统的编译软件进行编译,使第一接口库成为工控机管理系统的接口库的标准件,便于被完善的工控机管理系统调用。
在第二方面的一种可能的实施方式中,所述任务创建模块具体用于利用工控机管理系统的集成开发环境,调用所述第一接口库和第二接口库,生成所述控制程序,并挂靠到所述控制任务中,所述第二接口库为工控机管理系统已配置的算法库。
由上,使用工控机管理系统的集成开发环境调用第一接口库和第二接口库,结合已有的系统调用的接口库,无需考虑操作系统的定时器、中断、通信接口等底层功能的实现方式,快速生成用于验证的控制程序、控制任务,提升验证的效率。
在第二方面的一种可能的实施方式中,所述代码验证模块具体用于利用工控机管理系统的集成开发环境,利用工控机管理系统的集成开发环境,把所述控制任务下装到工控机的实时运行环境中,调用硬件库,配置所述被控设备,进行所述第二算法代码的验证,所述硬件库在工控机管理系统中已配置。在一些实施例中,在工控机管理系统的集成开发环境设置基于调用库的检查点。
由上,使用工控机管理系统的集成开发环境配置被控设备,无需关系被控设备的底层控制方式,以标准件形式配置被控设备,在工控机管理系统的集成开发环境设置基于调用库的检查点,进一步提升了对移植的代码的验证效率。
在第二方面的一种可能的实施方式中,所述工控机管理系统的接口库至少还配置下列中的一项:系统调用的接口库、被控设备配置的接口库、控制程序管理的接口库、控制任务管理的接口库。
由上,工控机管理系统已经配置的接口库,帮助生成控制程序、控制任务和配置被控设备,继续提升移植代码的验证效率。
在第二方面的一种可能的实施方式中,所述接口函数具有按照功能块的模板配置的输入变量和输出变量,所述输出变量用于控制被控设备。
由上,通过设置的接口函数按照功能块的模板配置的输入变量和输出变量,便于分解被移植算法的复杂度,在后续验证时通过输入变量和输出变量便于定位接口函数的代码问题。
在第二方面的一种可能的实施方式中,第二算法代码基于C或C++语言封装。
由上,通过基于C或C++大众化编程语言封装第二算法代码,解决基于本领域专门的ST语言或TN图的算法移植方式的移植和调试效率低的问题。
本申请实施例的第三方面提供了一种工控机控制方法,应用于异构系统中,所述异构系统包括运行在同一个处理器上的非实时系统和实时系统,所述工控机运行于该异构系统的实时系统上,该控制方法包括:通过工控机管理系统的集成开发环境,调用工控机管理系统的接口库,生成控制程序,并挂靠到控制任务中,该接口库包括基于功能块封装的控制算法编译的算法库;通过该集成开发环境把该控制任务下装到工控机的实时运行环境中,以对被控设备进行控制。
在一些实施例中,控制算法为基于C或C++封装的接口函数,该接口函数具有按照功能块的模板配置的输入变量和输出变量。
本申请实施例的第四方面提供了一种计算设备,包括:
总线;
通信接口,其与总线连接;
至少一个处理器,其与总线连接;以及
至少一个存储器,其与总线连接并存储有程序指令,程序指令当被至少一个处理器执行时使得至少一个处理器执行本申请的第一方面的实施方式。
本申请实施例的第五方面提供了一种计算机可读存储介质,其上存储有程序指令,程序指令当被计算机执行时使得计算机执行本申请的一方面的实施方式。
附图说明
图1为本发明各实施例的使用场景的结构示意图;
图2为本发明的一种工控机算法代码的移植方法实施例一的流程示意图;
图3为本发明的一种工控机算法代码的移植方法实施例二的流程示意图;
图4为本发明的一种工控机算法代码的移植方法实施例二的工作过程示意图;
图5为本发明的一种工控机算法代码的移植装置实施例一的结构示意图;
图6为本发明的一种工控机算法代码的移植装置实施例二的结构示意图;
图7为本发明实施例提供的计算设备的结构示意图。
具体实施方式
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三等”或模块A、模块B、模块C等,仅用于区别类似的对象,或用于区别不同的实施例,不代表针对对象的特定排序,可以理解地,在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
在以下的描述中,所涉及的表示步骤的标号,如S110、S120……等,并不表示一定会按此步骤执行,在允许的情况下可以互换前后步骤的顺序,或同时执行。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
下面首先结合图1介绍本发明各实施例的使用场景。
图1示出了本发明各实施例使用的场景,示例性的,本实施例方案采用高实时操作系统,如Intewell操作系统,操作系统安装在x86处理器的工控机上。采用Hypervisor技术,虚拟出非实时系统和实时系统。图1示例的非实时系统为Windows系统,也可以为其它非实时系统,图1示例的实时系统如RTOS(Real Time Operation System,RTOS)。工控机管理系统,如Maview,为Intewell的应用程序,其运行在上述的RTOS中。
Maview包括:Maview集成开发环境(Maview Integrated DevelopmentEnvironment,Maview IDE)、用于对算法代码编译Maview编译器libdeveloper和运行控制任务对被控设备进行控制的实时运行环境(Runtime environment,RTE)。
Maview IDE已配置各种接口库,包括基于已有控制算法生成的第二接口库和被控设备的底层控制功能封装而成的硬件库。
Maview IDE已配置的接口库还包括把操作系统一些底层功能封装的其他接口库,在生成、设置和挂靠控制程序及配置被控设备时直接调用,包括:
系统调用的接口库,用于调用定时器、开中断、关中断、调用通信接口等;
被控设备配置的接口库,用于配置各种被控设备;
控制程序管理的接口库,用于创建控制程序、设置其优先级和时间周期,把控制程序挂靠到控制任务中;
控制任务管理的接口库,用于创建控制任务和下载控制任务至RTE,以进行控制被控设备。
本发明各实施例使用Intewell的Maview libdeveloper编译工具,把移植后使用C或C++语言编写的代码编译为.a或.lib的接口库文件,还利用Maview IDE完善的平台机制,调用Maview IDE已有的各种接口库和本发明移植过来的接口库,快速生成控制任务和配置被控设备。本发明的技术方案快速生成移植代码和高效验证移植算法,节约移植和验证时间。
下面基于图2至图3介绍一种工控机算法代码的移植方法实施例一。
【一种工控机算法代码的移植方法实施例一】
本移植方法实施例一在图1示出的工控机管理系统Maview的中执行。
在本移植方法实施例一中,把待移植算法代码封装成功能块形式的接口函数,并编译成工控机管理系统Maview的标准的接口库,以被各种控制程序调用,移植方法实现高效可靠,且基于移植算法后生成的接口库可以被工控机的控制程序灵活调用。
图2示出了本移植方法实施例的流程,其包括步骤S110至S120。
在步骤S110中,在Maview libdeveloper中把第一算法代码封装成功能块形式的接口函数,生成第二算法代码。
其中,第一算法代码为待移植的工控机控制算法,第二算法代码为移植后控制算法代码。本实施例中,第一算法的封装工具为Maview libdeveloper,在另一些实施例中,也可以使用其他工具完成把第一算法代码封装成功能块形式的接口函数,使用其他工具进行封装也是本发明的保护范围。
其中,接口函数具有按照功能块的模板配置的输入变量和输出变量,输出变量用于控制被控设备。
其中,在一些实施例中,还把封装成功能块形式的接口函数与Maview IDE接口库已有的算法功能进行对比,把其中Maview IDE接口库已有的标准件未实现的接口函数生成第二算法代码,以降低工作量。
其中,在一些实施例中,第二算法代码基于大众化的编程语言封装,示例地,C或C++语言。在另一些实施例中,还使用其他大众化语言,编制第二算法代码。使用任何大众化语言进行移植,都是本发明的保护范围。
由上,C和C++等大众化的编程语言被广泛使用,相对于工控机控制算法的传统移植方法使用的专业的ST语言或TN图,本发明以大众化的编程语言移植工控机控制算法的实现成本更低,同时本发明以功能块形式的接口函数进行移植,相对于传统的基于控制程序层面的移植,本发明的移植方法能高效可靠生成移植代码。
在步骤S120中,利用Maview libdeveloper,把第二算法代码编译为工控机算法的第一接口库,并封装在Maview IDE中。
其中,第一接口库为.a或.lib的接口库文件,可以被Maview IDE灵活调用,以快速生成的工控机的控制程序,用于控制被控设备。
由上,基于第二算法代码生成的第一接口库,作为Maview IDE接口库的标准件,不仅可以实现移植的控制算法,还可以独自组合或与Maview IDE接口库已有的标准件组合生成其他控制算法。
综上,一种工控机算法代码的移植方法实施例一,使用C和C++等大众化编程语言,把待移植算法代码转换为功能块形式的接口函数,并编译成工控机算法的标准的接口库,以被各种控制程序调用。本移植方法实施例一高效可靠生成移植代码,节约移植时间。
【一种工控机算法代码的移植方法实施例二】
本移植方法实施例二在图1示出的工控机管理系统Maview的中执行。
在本移植方法实施例二中,继承了移植方法实施例一的方法,具有移植方法实施例一的所有优点,并使用Maview IDE调用移植方法实施例一移植的第一接口库,结合Maview IDE完善的平台机制已有的接口库,快速生成控制程序、控制任务和配置被控设备,实现高效验证移植算法的正确性和稳定性,节约验证时间。
图3示出了本移植方法实施例二的流程,其包括步骤S210至S240。
在步骤S210中,在Maview libdeveloper中把第一算法代码封装成功能块形式的接口函数,生成基于C或C++编制的第二算法代码。
其中,本步骤的具体方法和优点请参照移植方法实施例一的步骤S110。
在步骤S220中,利用Maview libdeveloper,把第二算法代码编译为工控机的第一接口库,并封装在Maview IDE中。
其中,本步骤的具体方法和优点请参照移植方法实施例一的步骤S120。
在步骤S230中,在Maview IDE中调用第一接口库和第二接口库,生成控制程序,并挂靠到控制任务中。
其中,第二接口库为Maview IDE已配置的算法库
其中,控制程序实现被移植代码的控制功能;
其中,根据控制程序的优先级和/或控制周期把控制程序挂靠到控制任务中。Maview IDE中的每个任务会被分配一个任务优先级,范围从0到245,其中0是最高优先级。可以将程序挂靠到任务列表下,每个任务可以挂靠多个程序。
其中,Maview IDE在生成控制程序和挂靠到控制任务时,以功能块方式调用第一接口库和第二接口库,还使用Maview IDE的系统调用的接口库进行定时器的调用、中断的开关和通信接口对接,还使用Maview IDE的控制程序管理的接口库生成控制程序和设置其优先级别,还使用Maview IDE的控制任务管理的接口库挂靠控制程序。
由上,通过使用Maview IDE的完善的平台机制,以接口库调用的方式快速生成控制程序,设置和挂靠控制程序,无需考虑操作系统底层的功能。
在步骤S240中,在Maview IDE中把控制任务下装到运行的Maview的RTE的工控机中,并调用硬件库配置被控设备,进行第二算法代码的验证。
其中,Maview IDE调用已有的被控设备的硬件库,通过被控设备配置的接口库快速配置被控设备。
其中,Maview IDE还可以设置各接口库的检查点,验证其输入和输出。
由上,通过使用Maview IDE已有的被控设备配置接口库,快速配置被控设备,同时基于Maview IDE设置各接口库的检查点,检查各接口库的问题,便于快速定位和验证。
图4示出了一种工控机算法代码的移植方法实施例二的工作过程,包括:使用Maview libdeveloper把C或C++语言的移植代码编译为*.a或*.lib的第一接口库,使用Maview IDE生成控制程序Program,并挂靠到控制任务Task中,然后下装到运行在RTOS上的RTE中,进行移植代码的验证。
综上,在移植方法实施例二中,使用Maview IDE调用移植方法实施例一移植的第一接口库,结合Maview IDE完善的平台机制已有的接口库,快速生成控制程序、控制任务和配置被控设备,不需考虑操作系统底层的调用问题和被控设备具体的控制机制,实现高效验证移植算法的正确性和稳定性,节约验证时间。
【一种工控机算法代码的移植装置实施例一】
本移植装置实施例一部署在图1示出的工控机管理系统Maview中,执行一种工控机算法代码的移植方法实施例一的所述方法。
图5示出了本移植装置实施例一的结构,其包括代码移植模块510和代码编译模块520。
代码移植模块510,用于在Maview libdeveloper中把第一算法代码封装成功能块形式的接口函数,形成基于C或C++编制的第二算法代码。其具体实现方法和优点请参照一种工控机算法代码的移植方实施例一的步骤S110。
代码编译模块520,用于利用Maview libdeveloper,把第二算法代码编译为工控机算法的第一接口库,并封装在Maview IDE中。其具体实现方法和优点请参照一种工控机算法代码的移植方实施例一的步骤S120。
【一种工控机算法代码的移植装置实施例二】
本移植装置实施例二部署在图1示出的工控机管理系统Maview中,执行一种工控机算法代码的移植方法实施例二的所述方法。
图6示出了本移植装置实施例二的结构,其包括代码移植模块610和代码编译模块620、任务创建模块630和代码验证模块640。
代码移植模块610,用于在Maview libdeveloper中把第一算法代码封装成功能块形式的接口函数,形成基于C或C++编制的第二算法代码。其具体实现方法和优点请参照一种工控机算法代码的移植方实施例二的步骤S210。
代码编译模块620,用于利用Maview libdeveloper,把第二算法代码编译为工控机算法的第一接口库,并封装在Maview IDE中。其具体实现方法和优点请参照一种工控机算法代码的移植方实施例二的步骤S220。
任务创建模块630,用于在Maview IDE中调用所述第一接口库和第二接口库,生成控制程序,并挂靠到控制任务中。其具体实现方法和优点请参照一种工控机算法代码的移植方实施例二的步骤S230。
代码验证模块640,用于在Maview IDE中把控制任务下装到Maview的RTE中,并调用硬件库配置被控设备,进行第二算法代码的验证。其具体实现方法和优点请参照一种工控机算法代码的移植方实施例二的步骤S240。
【一种工控机控制方法】
本申请实施例还提供了一种工控机控制方法,应用于异构系统中,所述异构系统包括运行在同一个处理器上的非实时系统和实时系统,所述工控机运行于该异构系统的实时系统上,该控制方法包括:通过工控机管理系统的集成开发环境,调用工控机管理系统的接口库,生成控制程序,并挂靠到控制任务中,该接口库包括基于功能块封装的控制算法编译的算法库;通过该集成开发环境把该控制任务下装到工控机的实时运行环境中,以对被控设备进行控制。其中,控制算法为基于C或C++封装的接口函数,该接口函数具有按照功能块的模板配置的输入变量和输出变量。
示例地,所述非实时系统为Linux或Windows,所述实时系统为RTOS。在一些实施例中,所述工控机管理系统部署在RTOS。
【计算设备】
本申请还提供的一种计算设备,下面图7详细介绍。
该计算设备700包括,处理器710、存储器720、通信接口730、总线740。
应理解,该图所示的计算设备700中的通信接口730可以用于与其他设备之间进行通信。
其中,该处理器710可以与存储器720连接。该存储器720可以用于存储该程序代码和数据。因此,该存储器720可以是处理器710内部的存储单元,也可以是与处理器710独立的外部存储单元,还可以是包括处理器710内部的存储单元和与处理器710独立的外部存储单元的部件。
可选的,计算设备700还可以包括总线740。其中,存储器720、通信接口730可以通过总线740与处理器710连接。总线740可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(EFStended Industry StandardArchitecture,EISA)总线等。所述总线740可以分为地址总线、数据总线、控制总线等。为便于表示,该图中仅用一条线表示,但并不表示仅有一根总线或一类型型的总线。
应理解,在本申请实施例中,该处理器710可以采用中央处理单元(centralprocessing unit,CPU)。该处理器还可以是其它通用处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。或者该处理器710采用一个或多个集成电路,用于执行相关程序,以实现本申请各方法实施例所述方法。
该存储器720可以包括只读存储器和随机存取存储器,并向处理器710提供指令和数据。处理器710的一部分还可以包括非易失性随机存取存储器。例如,处理器710还可以存储设备类型的信息。
在计算设备700运行时,所述处理器710执行所述存储器720中的计算机执行指令执行的本申请的各方法实施例所述方法。
应理解,根据本申请实施例的计算设备700可以对应于执行根据本申请各实施例的方法中的相应主体,并且计算设备700中的各个模块的上述和其它操作和/或功能分别为了实现本申请各方法实施例所述方法的相应功能,为了简洁,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述运行方法的全部或部分步骤。而前述的存储介质包括,U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
【计算介质】
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时用于本申请的各方法实施例所述方法。
本申请实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括,具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括、但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意类型的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里所述特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,均属于本申请保护范畴。
Claims (10)
1.一种工控机算法代码的移植方法,其特征在于,包括:
通过工控机管理系统把第一算法代码封装成功能块形式的接口函数,生成基于第二算法代码;
通过工控机管理系统把所述第二算法代码编译为工控机算法的第一接口库,其中,所述第一接口库被工控机的控制程序所调用。
2.根据权利要求1所述移植方法,其特征在于,还包括:
通过工控机管理系统调用所述第一接口库,生成所述控制程序,并挂靠到控制任务中;
通过工控机管理系统把所述控制任务下装到工控机里,配置被控设备,进行所述第二算法代码的验证。
3.根据权利要求1所述移植方法,其特征在于,所述通过工控机管理系统把所述第二算法代码编译为工控机的第一接口库,具体包括:
利用工控机管理系统的编译软件,把所述第二算法代码编译为工控机的所述第一接口库;
把所述第一接口库添加到工控机管理系统的接口库里。
4.根据权利要求2所述移植方法,其特征在于,所述通过工控机管理系统调用所述第一接口库,生成所述控制程序,并挂靠到控制任务中,具体包括:
利用工控机管理系统的集成开发环境,调用所述第一接口库和第二接口库,生成所述控制程序,所述第二接口库为工控机管理系统已配置的算法库;
利用所述集成开发环境,把所述控制程序挂靠到所述控制任务中。
5.根据权利要求4所述移植方法,其特征在于,所述通过工控机管理系统把所述控制任务下装到工控机里,并配置被控设备,进行所述第二算法代码的验证,具体包括:
利用所述集成开发环境,把所述控制任务下装到工控机的实时运行环境中;
利用所述集成开发环境调用硬件库,配置所述被控设备,进行所述第二算法代码的验证,所述硬件库在工控机管理系统中已配置。
6.根据权利要求4或5所述移植方法,其特征在于,所述工控机管理系统的接口库至少还配置下列中的一项:
系统调用的接口库、被控设备配置的接口库、控制程序管理的接口库、控制任务管理的接口库。
7.一种工控机控制方法,其特征在于,应用于异构系统中,所述异构系统包括运行在同一个处理器上的非实时系统和实时系统,所述工控机运行于所述实时系统上,所述控制方法包括:
通过工控机管理系统的集成开发环境,调用工控机管理系统的接口库,生成所述控制程序,并挂靠到控制任务中,所述接口库包括基于功能块封装的控制算法编译的算法库,所述控制算法为具有按照功能块的模板配置的输入变量和输出变量的接口函数;
通过所述集成开发环境把所述控制任务下装到工控机的实时运行环境中,以对被控设备进行控制。
8.一种工控机算法代码的移植装置,其特征在于,所述移植装置包括代码移植模块和代码编译模块;
所述代码移植模块用于通过工控机管理系统把第一算法代码封装成功能块形式的接口函数,生成第二算法代码;
所述代码编译模块用于通过工控机管理系统把第二算法代码编译为工控机算法的第一接口库。
9.一种计算设备,其特征在于,包括:
总线;
通信接口,其与所述总线连接;
至少一个处理器,其与所述总线连接;以及
至少一个存储器,其与所述总线连接并存储有程序指令,所述程序指令当被所述至少一个处理器执行时使得所述至少一个处理器执行权利要求1至7任一所述移植方法。
10.一种计算机可读存储介质,其上存储有程序指令,其特征在于,所述程序指令当被计算机执行时使得所述计算机执行权利要求1至7任一所述移植方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111609474.2A CN114281404B (zh) | 2021-12-24 | 2021-12-24 | 一种工控机算法代码的移植方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111609474.2A CN114281404B (zh) | 2021-12-24 | 2021-12-24 | 一种工控机算法代码的移植方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114281404A true CN114281404A (zh) | 2022-04-05 |
CN114281404B CN114281404B (zh) | 2023-03-24 |
Family
ID=80875890
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111609474.2A Active CN114281404B (zh) | 2021-12-24 | 2021-12-24 | 一种工控机算法代码的移植方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114281404B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114879593A (zh) * | 2022-05-07 | 2022-08-09 | 科东(广州)软件科技有限公司 | 实时系统运行plc控制器的方法、装置、设备及存储介质 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102799137A (zh) * | 2012-08-22 | 2012-11-28 | 国电联合动力技术有限公司 | 用于风电控制系统plc控制器软件跨平台移植的方法 |
CN106293864A (zh) * | 2016-08-01 | 2017-01-04 | 惠州华阳通用电子有限公司 | 一种车载信息系统开发平台功能模块的移植方法 |
CN106940553A (zh) * | 2017-02-09 | 2017-07-11 | 北京东土科技股份有限公司 | 基于工业互联网操作系统的工业流程控制管理方法及装置 |
CN108958157A (zh) * | 2018-07-09 | 2018-12-07 | 北京东土科技股份有限公司 | 控制程序控制调度方法、装置、计算机设备以及存储介质 |
CN109483546A (zh) * | 2018-12-09 | 2019-03-19 | 西安航天精密机电研究所 | 可移植的机器人运动控制算法库及其创建使用方法 |
US20190163147A1 (en) * | 2017-11-30 | 2019-05-30 | General Electric Company | Systems and methods for building a model-based control solution |
CN111353608A (zh) * | 2020-02-26 | 2020-06-30 | Oppo广东移动通信有限公司 | 模型移植方法及相关设备 |
CN111832141A (zh) * | 2019-03-28 | 2020-10-27 | 中国电力科学研究院有限公司 | 一种风电机组电磁暂态建模仿真方法和系统 |
CN111880863A (zh) * | 2020-07-10 | 2020-11-03 | Oppo广东移动通信有限公司 | 应用程序的运行方法、装置、电子设备及存储介质 |
CN113407186A (zh) * | 2021-05-11 | 2021-09-17 | 中国长城科技集团股份有限公司 | 控制执行方法、控制执行装置、终端及可读存储介质 |
CN113534730A (zh) * | 2021-06-29 | 2021-10-22 | 广东利元亨智能装备股份有限公司 | 基于模型的plc控制代码生成方法、系统、装置及存储介质 |
CN113760298A (zh) * | 2021-09-09 | 2021-12-07 | 深圳市科创思科技有限公司 | 一种在plc梯形图中内嵌入c语言的方法 |
-
2021
- 2021-12-24 CN CN202111609474.2A patent/CN114281404B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102799137A (zh) * | 2012-08-22 | 2012-11-28 | 国电联合动力技术有限公司 | 用于风电控制系统plc控制器软件跨平台移植的方法 |
CN106293864A (zh) * | 2016-08-01 | 2017-01-04 | 惠州华阳通用电子有限公司 | 一种车载信息系统开发平台功能模块的移植方法 |
CN106940553A (zh) * | 2017-02-09 | 2017-07-11 | 北京东土科技股份有限公司 | 基于工业互联网操作系统的工业流程控制管理方法及装置 |
US20190163147A1 (en) * | 2017-11-30 | 2019-05-30 | General Electric Company | Systems and methods for building a model-based control solution |
CN108958157A (zh) * | 2018-07-09 | 2018-12-07 | 北京东土科技股份有限公司 | 控制程序控制调度方法、装置、计算机设备以及存储介质 |
CN109483546A (zh) * | 2018-12-09 | 2019-03-19 | 西安航天精密机电研究所 | 可移植的机器人运动控制算法库及其创建使用方法 |
CN111832141A (zh) * | 2019-03-28 | 2020-10-27 | 中国电力科学研究院有限公司 | 一种风电机组电磁暂态建模仿真方法和系统 |
CN111353608A (zh) * | 2020-02-26 | 2020-06-30 | Oppo广东移动通信有限公司 | 模型移植方法及相关设备 |
CN111880863A (zh) * | 2020-07-10 | 2020-11-03 | Oppo广东移动通信有限公司 | 应用程序的运行方法、装置、电子设备及存储介质 |
CN113407186A (zh) * | 2021-05-11 | 2021-09-17 | 中国长城科技集团股份有限公司 | 控制执行方法、控制执行装置、终端及可读存储介质 |
CN113534730A (zh) * | 2021-06-29 | 2021-10-22 | 广东利元亨智能装备股份有限公司 | 基于模型的plc控制代码生成方法、系统、装置及存储介质 |
CN113760298A (zh) * | 2021-09-09 | 2021-12-07 | 深圳市科创思科技有限公司 | 一种在plc梯形图中内嵌入c语言的方法 |
Non-Patent Citations (4)
Title |
---|
KYLAND: "MaVIEW软件操作手册V1.0", 《HTTPS://WWW.KYLAND.COM.CN/PRODUCTS/MAVIEW.HTML》 * |
动土科技: "图形化助力工业控制设计编程", 《HTTPS://ZHUANLAN.ZHIHU.COM/P/138930275》 * |
宋文霞: "地表水厂V型滤池智能控制系统", 《工程科技II辑》 * |
波西米亚混球: "里面如何配置库_PLC创建功能块有什么用?如何创建?学会后大大加快开发速度", 《HTTPS://BLOG.CSDN.NET/WEIXIN_35061887/ARTICLE/DETAILS/112718537》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114879593A (zh) * | 2022-05-07 | 2022-08-09 | 科东(广州)软件科技有限公司 | 实时系统运行plc控制器的方法、装置、设备及存储介质 |
CN114879593B (zh) * | 2022-05-07 | 2023-03-14 | 科东(广州)软件科技有限公司 | 实时系统运行plc控制器的方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114281404B (zh) | 2023-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Nollet et al. | Designing an operating system for a heterogeneous reconfigurable SoC | |
US9946628B2 (en) | Embedding and executing trace functions in code to gather trace data | |
US20140007043A1 (en) | Program Module Applicability Analyzer for Software Development and Testing for Multi-Processor Environments | |
EP3032413B1 (en) | Code generation method, compiler, scheduling method, apparatus and scheduling system | |
KR20140054948A (ko) | 임베디드 시스템을 위한 오픈씨엘 응용 소프트웨어 개발 지원 도구 구성 및 방법 | |
CN113672342A (zh) | 嵌入式虚拟化系统及构建、测试方法、终端及介质 | |
CN110659031A (zh) | 应用程序的编译方法、装置、电子设备及存储介质 | |
CN114281404B (zh) | 一种工控机算法代码的移植方法及装置 | |
CN115629971A (zh) | 一种应用的开发系统和开发方法 | |
TW202403541A (zh) | 第三方行動應用程式中引入小程序的系統、方法、裝置及介質 | |
CN115390809A (zh) | 一种仿真调度方法及系统 | |
CN111880863A (zh) | 应用程序的运行方法、装置、电子设备及存储介质 | |
CN112631915B (zh) | 一种pcie设备软件仿真的方法、系统、设备及介质 | |
CN112114789A (zh) | 一种业务开发方法及设备 | |
CN103631585A (zh) | 一种用于开发应用程序的方法及系统 | |
US10552135B1 (en) | Reducing a size of an application package | |
Kalb et al. | Enabling dynamic and partial reconfiguration in Xilinx SDSoC | |
KR20130020135A (ko) | 통합 개발 환경에서의 코드 동시 개발자 리스트 제공 시스템 및 방법 | |
CN110688099B (zh) | 远距离无线电集成可编程片上系统的微处理器开发方法 | |
CN112035097B (zh) | 基于银河锐华操作系统的c++适配层的装置 | |
CN112612474A (zh) | 产品移植方法、装置、存储介质和电子设备 | |
CN113961232A (zh) | 提供集成开发环境的终端、方法和平台服务器 | |
CN112764729A (zh) | 应用软件开发方法、装置、计算机设备及可读存储介质 | |
CN113778451A (zh) | 文件加载方法、装置、计算机系统和计算机可读存储介质 | |
BR102018005101A2 (pt) | Método para gerenciar circuitos lógicos programáveis para aplicativos invocando bibliotecas dinâmicas |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |