CN108139723A - 用于运行控制器的方法以及设置用于外部旁路的控制器 - Google Patents
用于运行控制器的方法以及设置用于外部旁路的控制器 Download PDFInfo
- Publication number
- CN108139723A CN108139723A CN201680062135.8A CN201680062135A CN108139723A CN 108139723 A CN108139723 A CN 108139723A CN 201680062135 A CN201680062135 A CN 201680062135A CN 108139723 A CN108139723 A CN 108139723A
- Authority
- CN
- China
- Prior art keywords
- controller
- function
- service
- internal
- service configuration
- 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
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
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0426—Programming the control sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- 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
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/21—Pc I-O input output
- G05B2219/21012—Configurable I-O
-
- 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
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/23—Pc programming
- G05B2219/23328—Modification program
-
- 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
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/26—Pc applications
- G05B2219/2637—Vehicle, car, auto, wheelchair
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Automation & Control Theory (AREA)
- General Engineering & Computer Science (AREA)
- Programmable Controllers (AREA)
- Combined Controls Of Internal Combustion Engines (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
说明并示出了一种用于运行控制器(1)的方法,其中,在所述控制器(1)上存放有具有内部控制器函数(a())的程序代码(4),所述程序代码(4)配备有至少一个服务函数(ecu_s()),通过外部旁路能够实现有针对性地调用内部控制器函数(a()),其方式为在控制器(1)上提供用于服务函数(ecu_s())的服务配置(6),在控制器(1)中检测所述服务配置(6)并且在调用服务函数(ecu_s())时根据所述服务配置(6)来实施服务功能,其中,所述服务配置(6)描述至少一个内部控制器函数(a()),所述至少一个内部控制器函数作为对应的服务函数(ecu_s())的服务功能实施。所述服务函数(ecu_s())设置用于借助服务配置(6)在控制器(1)中提供用于内部控制器函数(a())的至少一个自变量的至少一个值(x')和/或接受所述内部控制器函数(a())的至少一个返回值。
Description
技术领域
本发明涉及一种用于运行控制器的方法,其中,在控制器上存放有具有内部控制器函数的程序代码,所述程序代码配备有至少一个服务函数。此外,本发明也涉及一种设置用于外部旁路的控制器。
背景技术
前述方法总体上涉及在控制器开发中对控制器的操作和影响,即在所谓的快速控制原型(Rapid-Control-Prototyping,RCP)的范畴内的控制器开发,其中使用(系列)控制器,所述控制器具有固定地实现的内部控制器函数。所述内部控制器函数是存储在控制器中的程序代码的组成部分,所述程序代码通常涉及可执行的编译程序。虽然也可设想所述程序代码以高级语言形式存在和解释,但这与由于控制器的实时运行而通常存在的速度要求冲突。
在这里考察的控制器开发的范畴内,一个或多个所述内部控制器函数被完全绕开、被扩大或很普遍地以确定的方式被操纵,亦即在方法上涉及所谓的“旁路”。在快速控制原型范畴内的控制器开发的这些方法与“全路”的方法不同,在所述“全路”的方法中控制器完全由具有I/O接口的大功率开发硬件所代替。这些开发硬件在之后不与要影响的技术过程结合使用,而是这些开发硬件在开发工作结束之后由准确设计的并且通常明显更便宜的控制器所代替。
在这里考察的应用情况在于,控制器通过I/O接口与技术过程连接,其中,在存放、即存储于控制器上的程序代码被执行时,控制器通过I/O接口将控制信号输出给技术过程并且通过I/O接口以信号形式接收技术过程的状态参量。在快速控制原型中,控制器通过旁路在要影响的并且要观察的技术过程中保持被使用并且通过旁路在功能上被影响。典型地,控制器为此通过另外的接口与影响装置连接。所述另外的接口通常与控制器的I/O接口不同,控制器通过所述I/O接口与技术过程连接。通过该影响接口而可能的是:通过有针对性地从控制器的存储单元中读取到影响装置中并且通过将在影响装置上计算出的值写入到控制器的存储器中来绕开控制器函数(旁路)、在影响装置上计算新的函数并且因此通过这些旁路操作有针对性地影响控制器。
对控制器存储器的写访问经常称为控制器应用,利用所述写访问仅改变内部控制器函数所使用的参数或参数组、亦即特性因数、特性线或特性曲线族。如果不仅应该测试地改变控制器的内部函数的参数(亦即存放在控制器存储器中的数据),而且也应该测试地改变在控制器中实现的内部函数本身,则使用函数旁路,在所述函数旁路中控制器向所连接的有实时能力的影响装置用信号表示对内部控制器函数的调用,但是控制器本身不实施所述函数,而是仅接受并且进一步使用在影响装置上代替地计算的函数的结果,以这种方式实现控制器函数的旁路。
在之前描述的两种场景-控制器应用和函数旁路-中需要的是,以已经提及的旁路接口的形式实现至控制器的特殊入口,通过所述特殊入口能够实现对控制器的观察和主动影响。在现有技术中例如已知使用并行接口来干涉控制器的硬件,影响装置通过所述并行接口如存储器模拟器那样工作。所述影响装置通过取代控制器内存模块的适配器或由在控制器的电路板上的额外为此设置的插槽被接纳并且因此能够访问控制器微控制器的地址和数据总线。所述影响装置本身则包含两端可访问的存储器(双端口存储器,DPMEM)作为中央元件。所述两端可访问的存储器此时能够在所述影响装置方面被读取和被写入,其中,存放在影响装置的两端可访问的存储器中的数据能够自动由控制器微控制器读取,因为所述两端可访问的存储器通过连接到控制器微控制器的数据总线和地址总线上而处于微控制器的地址空间中。
在其它解决方案中,控制器和影响装置之间的数据交换通过控制器的所谓的调试接口来实现,所述调试接口在现代的微控制器中已经被集成在芯片上(例如Nexus、JTAG)。
与在硬件方面对控制器的访问无关,控制器必须在软件方面为旁路的可能方案作准备,这通过如下方式实现,即:在控制器的程序代码中专门针对旁路设置计划的服务函数,从而所述程序代码亦即配备有这些服务函数。这些服务函数经常在所关心的控制器函数的开始和结束时存在,所述服务函数可以被固定地编码或具有一定的灵活性,从而其能够被激活和解除。所述服务函数例如将内部控制器函数的自变量复制到DPMEM中,以便使来自DPMEM那里的所述自变量对于所连接的影响装置是可使用的,所述影响装置读取这些值并且将其输送给在影响装置上实现的功能。在影响装置上的计算结果然后反过来再次被写入到DPMEM中并且被用于在控制器上的进一步的内部计算作为用于被绕开的内部控制器函数的结果。
DE10228610A1公开一种用于检查在电子计算单元上运行的控制程序的方法,在所述方法中将至少一个旁路函数通过动态链接连接到预定的接口上。被加载到电子计算单元的存储器上的旁路例程对静态地存在的数据进行读访问。
由EP2881858A1已知一种用于改变在电子控制器的存储器中的软件的方法,在所述方法中将旁路程序存放在控制器的工作存储器中并且将存储器地址存放在表中。服务函数从所述表中读取地址并且调用旁路例程。通过清除表项能在控制器运行时更换旁路例程。关于由程序例程处理的变量的信息来自技术说明文件,所述技术说明文件主要包含所述变量的存储器地址。
在旁路的范畴内,在现有技术中不能够利用所述机制实现有针对性地访问控制器内部函数。这临时地通过如下方式来解决,即:将这些内部函数周期性地调用到控制器的程序代码中并且然后借助全局变量传输函数自变量或返回值。然而,这在控制器的程序代码中对于每个函数并且对于这些内部控制器函数的每个可能期望的调用位置都强制特定地适配控制器程序代码,这在程序代码的周边方面亦及在影响控制器中的程序代码的运行时间特性的方面带来显著的缺点。
发明内容
本发明的任务是,给出一种用于运行控制器的方法,通过所述方法能够以灵活的方式实现在外部旁路的情况下也灵活地调用内部控制器函数。
之前引出的并且描述的任务按照本发明在开头所说明的用于运行控制器的方法中通过如下方式来解决,即:在所述控制器上提供用于服务函数的服务配置,在控制器中检测所述服务配置并且在调用服务函数时根据所述服务配置实施服务功能,其中,所述服务配置描述至少一个内部控制器函数,所述至少一个内部控制器函数作为对应的服务函数的服务功能实施。所述服务函数设置用于:借助服务配置在控制器中提供用于内部控制器函数的至少一个自变量的至少一个值和/或接受所述内部控制器函数的至少一个返回值。
通过这些方法步骤能够以非常简单且灵巧的方式实现由每个任意的服务函数调用任意的内部控制器函数。对服务函数调用哪一个内部控制器函数亦或哪些控制器函数的指派包含在所述服务配置中。服务函数和/或服务配置适宜地包含可执行代码,借助所述可执行代码能够实现在运行时传递自变量和/或返回值。
内部控制器函数在此可被理解为最初的程序代码的这样的例程,对所述例程的调用要求一个或多个自变量的传递和/或所述例程输出一个或多个返回值。例如可以涉及Set函数,其接受一个或多个自变量并且借助所传递的值修改程序代码的一个或多个参数,而相应的参数的地址不必是已知的。另一个示例是Get函数,其在调用时提供一个或多个返回值,如尤其是当前的传感器信号。原则上,内部控制器函数不仅可以要求至少一个自变量而且可以提供至少一个返回值。在该情况下,服务函数适宜地设置用于在调用内部控制器函数之前提供自变量并且在该调用之后接受返回值。可选地,服务函数可以设置用于将一个或多个返回值在预定的地址上存放在工作存储器中,从而尤其是所连接的影响装置能够以本身已知的机制访问所述值。
自变量和/或返回值适宜地通过栈或堆来传递,从而相应变量的存储器地址动态地改变。值传递在该情况下能够仅通过相对的存储器地址来实现,所述相对的存储器地址不是全局唯一明确的,因为既不事先已知起始地址也不事先已知栈的当前占用并且因此地址仅能够相对于栈指针给出。通过使服务函数设置用于将可执行代码为了值传递而输送给微处理器,在运行时能够确定正确的存储器地址并且相应的存储器能够以需要的值被写入。
备选或补充地也可以规定,借助控制器的微处理器的局部寄存器来交换自变量和/或返回值。通过服务函数将可执行代码输送给微处理器,所述微处理器本身能够将一个或多个需要的自变量写入相应的局部寄存器中或在实施内部控制器函数之后将一个或多个返回值从相应的局部寄存器写入工作存储器中。
按照为内部控制器函数提供自变量的一种优选变型方案规定,在所述服务配置中包含可执行代码,所述可执行代码在控制器中提供用于内部控制器函数的至少一个自变量的至少一个值。该方式具有如下优点,即:仅必须调用所述可执行代码,以便为内部控制器函数的调用作准备。所述可执行代码例如可以已经借助用于控制器CPU的交叉编译器并且借助关于控制器的程序代码的结构的信息被创建(如头文件)。尤其是可以使用如下相同的交叉编译器,利用该交叉编译器也已经创建控制器本身的程序代码。依照相同的原理,在另一种设计方案中备选或补充地规定,在所述服务配置中包含可执行代码,所述可执行代码接受内部控制器函数的至少一个返回值。该返回值然后例如可以被提供给所连接的影响装置。
在用于运行控制器的方法的一种优选设计方案中从如下出发,即:所述服务函数设置用于调用具有预定模式的自变量和/或返回值的函数。这样的模式实际上指的是通常由函数声明所包括的信息(Angaben)。信息“double f(char,int,int)”例如说明一种具有double类型的返回值的函数f,该函数被提供以三个自变量,其中,第一自变量是字符(character)并且第二和第三自变量分别是整数值。服务函数此时设置使得其被准备用于调用具有确定模式的自变量和/或返回值的函数。所述服务配置然后通过给出所述预定模式并且通过给出内部控制器函数的起始地址来描述所述内部控制器函数(或必要时多个控制器函数)。通过这些给出而被唯一明确地确定的是:在调用服务函数时调用哪一个内部控制器函数或哪些内部控制器函数。
例如可以周期性地以固定的时间间隔实施控制器的服务函数,然后服务函数在通常被用于控制器中的实时运行系统中作为计时器任务被放置或在这样的计时器任务的范畴内-除了其它函数之外-被调用。也可以非周期性地实施服务函数,所述服务函数可以通过外部的事件、例如在技术过程中的事件来驱动,控制器通过I/O接口与所述技术过程连接。亦即完全可设想,仅非常少地或仅唯一一次调用确定的服务函数。
当说到在控制器中检测所述服务配置时,则这指的是:在所述服务配置中所包含的服务函数与一个内部控制器函数或多个内部控制器函数的对应通过在控制器中实现的分析函数识别-亦即有意义地检测-并且在服务配置中所包含的对应在服务函数的位置上必须转化为相应的对内部控制器函数的调用中。服务配置在控制器上的提供可以简单地通过将服务配置存储在控制器的为此设置的存储区中来实现。但也可以从外部提供服务配置。
在一种优选设计方案中规定,控制器通过接口与影响装置连接,所述服务配置从影响装置通过该接口传输到控制器上并且存储在控制器上。在一种备选的设计方案中规定,控制器虽然也通过接口与影响装置连接并且服务配置从影响装置通过该接口传输到控制器上,然而在此不是持久地存储所述服务配置,而是立即在控制器中检测所述服务配置并且在服务函数的位置上立即实现根据所述服务配置来调用内部控制器函数。这样能够实现:在每次调用服务函数时不必首先从服务配置中读取和检测相应的信息,以便调用所指派的内部控制器函数作为服务函数的服务功能。例如可以考虑仅当服务配置已经改变时才再次读取和检测所述服务配置,这例如可以通过在控制器上设置确定的标记来用信号表示。
优选规定,在所述服务配置中给出至少一个存储位置,在控制器中在所述至少一个存储位置那里存放用于内部控制器函数的一个自变量或多个自变量的至少一个值,和/或在控制器中在所述至少一个存储位置那里存放内部控制器函数的至少一个返回值。通过该措施保证:对于服务函数来说已知的是,所述服务函数在哪里获得用于一个要调用的内部控制器函数(亦或多个要调用的内部控制器函数)的一个自变量(当然亦或多个自变量)并且所述服务函数必要时在控制器中在哪里存放内部控制器函数的一个返回值(当然亦或多个返回值)以便进一步使用。当所述服务配置来自所连接的影响装置时,当然也在影响装置上已知的是,在控制器中在哪里可存放内部控制器函数的自变量并且必要时在控制器中在哪里可找到内部控制器函数的返回值,当所述返回值例如需要用于进一步的计算时。
在上面提到的方法的一种进一步扩展方案中规定,监控用于内部控制器函数的自变量的存储位置,并且仅当该存储位置已经以用于所述自变量的当前值被写入时,才以存放在该存储位置中的用于该自变量的值来调用所述内部控制器函数。由此能够实现与外部旁路过程的自动同步,其中,对所述存储位置的监控不必强制地表示仅探测所述存储位置的内容的改变,而是这也可以适应于到所述存储位置中的写入过程,而不管所述存储位置的内容在所述写入过程中是否已经改变。
至今所说明的方法的对于外部旁路同样重要的设计方案是:控制器通过接口与影响装置连接并且控制器通过该接口将内部控制器函数的返回值传输给所述影响装置和/或所述影响装置通过该接口从控制器中读取内部控制器函数的返回值。因此,通过该影响装置不仅能够引起对内部控制器函数的调用,而是在该影响装置中也能够以对内部控制器函数的调用的结果工作。亦即,这样使用的影响装置是扩展(ausgelagerten)功能或旁路功能的地点。该影响装置可以是与首先提到的影响装置不同的影响装置,利用该首先提到的影响装置将服务配置传输到控制器上。但多个所述功能也可以在一个唯一的影响装置上实现,这显然不是关键的。
用于所述方法的一种有利的进一步扩展方案的另一个措施(尤其是关于旁路)的特征在于,控制器通过接口与影响装置连接并且在该影响装置中存放有具有至少一个影响装置函数的程序代码,所述服务配置包括对影响装置函数的调用并且在调用相应的服务函数时控制器通过该接口向所述影响装置用信号表示对所述影响装置函数的调用并且所述影响装置实施所述影响装置函数。由此,能够由控制器在影响装置中有针对性地调用(触发)所述影响装置函数,从而控制器和影响装置在功能上并且在时间上紧密地相互结合。
在具有影响装置函数的方法方面已经被证实为有利的是,在服务配置中给出如下的存储位置,在控制器中在所述存储位置那里存放用于影响装置函数的自变量的值,和/或在控制器中在所述存储位置那里存放影响装置函数的返回值。该功能与对内部控制器函数的调用无关并且确保为影响装置函数可靠地提供正确的自变量并且此外确保在控制器上在正确的位置上提供影响装置函数的计算结果。
就上述而言,再次在控制器与影响装置之间建立同步,其方式为用于影响装置函数的自变量的存储位置由影响装置通过接口监控,并且仅当所述存储位置已经以用于所述自变量的当前值被写入时,才以存放在所述存储位置中的用于所述自变量的值来调用所述影响装置函数。
之前描述的任务也通过设置用于外部旁路的控制器来解决,其中,所述控制器通过I/O接口与技术过程连接,在控制器上存放有具有内部控制器函数的程序代码,所述程序代码配备有至少一个服务函数,在执行程序代码时控制器通过I/O接口将控制信号输出给技术过程并且通过I/O接口以信号形式接收技术过程的状态参量。所述设置用于外部旁路的控制器的特征最后在于:在控制器上提供用于服务函数的服务配置,在控制器中在运行控制器时检测所述服务配置并且在调用服务函数时根据服务配置来实施服务功能,其中,所述服务配置描述内部控制器函数,所述控制器函数作为对应的服务函数的服务功能被实施,从而通过在控制器上提供服务配置而灵活地作用于所连接的技术过程。所述控制器的特征此外在于:在该控制器的运行状态下相应地在该控制器上实施之前所说明的方法。
附图说明
现在详细地给出设计和进一步扩展按照本发明的用于运行控制器的方法和按照本发明的设置用于外部旁路的控制器的多种可能性。为此不仅参考在从属于权利要求1和权利要求9的权利要求而且参考对在附图中示出的实施例的说明。在所述附图中:
图1示出设置用于外部旁路的控制器的以及用于运行这样的控制器的方法的第一实施例;
图2再次示出设置用于外部旁路的控制器,这次连接有影响装置;
图3示出设置用于外部旁路的控制器,其中连接有影响装置并且具有用于旁路的完整列序;以及
图4示出按照图3的实施例,其中具有用于在控制器上的流程控制的另一种同步。
具体实施方式
在图1中首先示出使用控制器1的典型情形,其中,控制器1通过I/O接口2与技术过程3连接。通过I/O接口2,控制器1与技术过程3处于持久的作用关系中,其中,控制器将调整参量输出给技术过程3内的致动器并且因此主动影响技术过程3,其中,控制器1通过I/O接口2经由传感器从技术过程3获得测量数据并且将这些测量数据例如附加纳入到新的调整参量的计算中。所述控制器包括至少一个具有一个或多个核心的微处理器,所述核心也可以作为IP核在可编程的逻辑模块上实现。
在控制器1上存放有具有内部控制器函数的程序代码4,其中,在图1至4中分别示出内部控制器函数f()和a()。程序代码4此外配备有服务函数,其中,所述服务函数在图1至4中分别用“ecu_s(n)”和“ecu_s(n+1)”来表示。
在控制器1的程序代码4中定义了原始的功能f(),该原始的功能的计算导致结果y。函数f()的自变量由本身使用自变量x的内部控制器函数a()来提供。该在程序代码中固定地实现的控制器函数f()由服务函数ecu_s(n)和ecu_s(n+1)包围。包围控制器函数f()的这些服务函数ecu_s(n)、ecu_s(n+1)原则上能够实现绕开控制器函数f()。
在控制器1的程序代码4中的服务函数ecu_s()特别是用于通过旁路实现按照计划地影响控制器1。在这里示出的实施例中此时能够实现:内部控制器函数a()实际上也能够由每个任意的服务函数ecu_s()来调用,其中,这尤其是也能够通过外部旁路来实现。
为此规定,在控制器1上-例如在控制器1的RAM5中-提供服务配置6并且该服务配置6在控制器1中通过算法有意义地检测,从而在调用服务函数ecu_s()时根据服务配置6来实施服务功能,其中,服务配置6描述至少一个内部控制器函数a(),所述至少一个内部控制器函数作为对应的服务函数ecu_s()的服务功能被实施。在示出的实施例中,服务配置6包含如下信息,即:服务函数ecu_s(n)调用内部控制器函数a(x),其中,在当前情况下应该以自变量x'进行所述调用。亦即,服务配置6包含对应列表,所述对应列表能够将一个任意的内部控制器函数a_i()亦或多个任意的内部控制器函数a_i()配属给一个服务函数ecu_s(i),从而在控制器1的程序代码4中实际上在设有服务函数ecu_s()的所有位置上能够调用一个或多个任意的内部控制器函数a()。
对服务配置6的检测在示出的实施例中通过从服务配置6中读取相应的与服务函数ecu_s(n)的对应来实现。在所述实施例中,该从服务配置中读取所述对应被称为“read_c(n)”。对服务配置6的读取然后导致如下结果,即:内部控制器函数a(x)应该以自变量x'被实施。与对服务配置6的读取相关联的过程(例如read_n)和在服务配置6中包含的信息到指令的转化(例如r=a(x'))在附图中分别在旁路服务7中示出。在按照图1至4的实施例中,程序代码4和旁路服务7被安置在控制器1的闪存中,而服务配置6和之后阐述的交换存储器在RAM5中实现。
在图2至4中不再示出物理过程3,如其在图1中仍然可看出。为此,在图2至4中分别示出接口8,控制器1通过所述接口与影响装置9连接。
在图2中可看出,服务配置6从影响装置9通过接口8传输到控制器1上并且存储在控制器1上;该过程通过箭头表示。理想地,这在通过影响装置9初始化控制器1的期间发生,这通过函数“init()”表示。
在图2至4中此外示出,服务配置6也给出存储位置10、11,在控制器1中在所述存储位置中存放用于内部控制器函数a()的自变量的值x',并且在控制器1在所述存储位置那里存放内部控制器函数a()的返回值r。这些存储位置10、11尤其是可以作为交换存储器起作用,控制器1和影响装置9能够通过所述交换存储器交换内部控制器函数a()的自变量x'和结果r。
在控制器1中实现的方法中,在旁路服务7的范畴内规定,监控用于内部控制器函数a()的自变量x'的存储位置10,并且仅当存储位置10已经以用于自变量x'的当前值被写入时,才以存放在存储位置10中的用于自变量x'的值来调用内部控制器函数a()。由此确保总是以当前的自变量x'来计算内部控制器函数a()。
在图3和4中示出对至今描述的方法的扩展,使得在通过外部影响装置9调用内部控制器函数a()的情况下实现完全的旁路。属于此的是,控制器1通过接口8与影响装置9连接并且控制器1通过接口8将内部控制器函数a()的返回值r传输给影响装置9。备选地,影响装置9可以通过接口8从控制器1中读取内部控制器函数a()的返回值r。在示出的方法中,内部控制器函数a()在使用存放在存储位置10中的自变量x'的情况下被计算。
在图3和4中,影响装置9包括具有影响装置函数f'()的程序代码。所述影响装置函数f'()用于修改在控制器1中存在于程序代码4中的原始的控制器函数f()的计算。内部控制器函数f()的计算导致结果y,而影响装置函数f'()的计算导致修改的结果值y'。
就此而言,在图4中示出:服务配置6包括影响装置函数f'()的调用12(“触发器”)并且在调用相应的服务函数、在该情况下为服务函数ecu_s(n)时,控制器1通过接口8向影响装置9用信号表示对影响装置函数f'()的调用12,紧接着影响装置9实施影响装置函数f'()。这样能够保证:控制器1能够主动引起、亦即触发在控制器9上的影响装置函数f'()。
在按照图3和4的方法中也属于旁路实施的是,在服务配置6中给出存储位置11,在控制器1中在所述存储位置那里存放用于影响装置函数f'()的自变量r的值并且在控制器1中在所述存储位置那里存放影响值函数f'()的返回值y'。在两种示出的方法中,原始的控制器函数f()的结果值y最终通过由影响装置函数f'()的计算得出的经修改的值y'被代替,以此完成原始的控制器函数f()的旁路。
在示出的方法中还规定,用于影响装置函数f'()的自变量r的存储位置11由影响装置9通过接口8监控,并且仅当存储位置11已经以用于自变量r的当前值被写入时,才以存放在存储位置11中的用于自变量r的值来调用影响装置函数f'();这在附图中通过方法步骤“等待r”表示。由此,影响装置函数f'()的计算实际上能够以事件驱动的方式被推动。
Claims (12)
1.用于运行控制器(1)的方法,其中,在所述控制器(1)上存放有具有内部控制器函数(a())的程序代码(4),所述程序代码(4)配备有至少一个服务函数(ecu_s()),在控制器(1)上提供用于服务函数(ecu_s())的服务配置(6),在控制器(1)中检测所述服务配置(6)并且在调用服务函数(ecu_s())时根据所述服务配置(6)来实施服务功能,其特征在于,所述服务配置(6)描述至少一个内部控制器函数(a()),所述至少一个内部控制器函数作为对应的服务函数(ecu_s())的服务功能实施,其中,所述服务函数(ecu_s())借助服务配置(6)在控制器(1)中提供用于内部控制器函数(a())的至少一个自变量的至少一个值(x')和/或接受所述内部控制器函数(a())的至少一个返回值。
2.按照权利要求1所述的方法,其特征在于,在所述服务配置(6)中包含可执行代码,所述可执行代码在控制器(1)中提供用于内部控制器函数(a())的至少一个自变量的至少一个值(x')和/或所述可执行代码接受所述内部控制器函数(a())的至少一个返回值。
3.按照权利要求1或2所述的方法,其特征在于,所述服务函数(ecu_s())设置用于调用具有预定模式的自变量和/或返回值的函数,其中,所述服务配置(6)通过给出所述预定模式并且通过给出内部控制器函数(a())的起始地址来描述所述内部控制器函数(a())。
4.按照权利要求1至3之一所述的方法,其特征在于,所述控制器(1)通过接口(8)与影响装置(9)连接,所述服务配置(6)从所述影响装置(9)通过所述接口(8)传输到控制器(1)上并且存储在控制器(1)上。
5.按照权利要求1至4之一所述的方法,其特征在于,在所述服务配置(6)中给出至少一个存储位置(10、11),在控制器(1)中在所述至少一个存储位置那里存放用于内部控制器函数(a())的至少一个自变量的至少一个值(x'),和/或在控制器(1)中在所述至少一个存储位置那里存放内部控制器函数(a())的至少一个返回值(r)。
6.按照权利要求5所述的方法,其特征在于,监控用于内部控制器函数(a())的自变量(x')的存储位置(10),并且仅当所述存储位置(10)已经以用于所述自变量(x')的当前值被写入时,才以存放在所述存储位置(10)中的用于所述自变量(x')的值来调用所述内部控制器函数(a())。
7.按照权利要求1至6之一所述的方法,其特征在于,所述控制器(1)通过接口(8)与影响装置(9)连接并且所述控制器(1)通过所述接口(8)将内部控制器函数(a())的返回值(r)传输给所述影响装置(9)和/或所述影响装置(9)通过所述接口(8)从控制器(1)中读取所述内部控制器函数(a())的返回值(r)。
8.按照权利要求1至7之一所述的方法,其特征在于,所述控制器(1)通过接口(8)与影响装置(9)连接并且在影响装置(9)中存放有具有至少一个影响装置函数(f'())的程序代码,所述服务配置(6)包括对影响装置函数(f'())的调用(12),并且在调用(12)相应的服务函数(ecu_s())时,所述控制器(1)通过所述接口(8)向所述影响装置(9)用信号表示对所述影响装置函数(f'())的调用(12)并且所述影响装置(9)实施所述影响装置函数(f'())。
9.按照权利要求8所述的方法,其特征在于,在所述服务配置(6)中给出存储位置(11),在控制器(1)中在所述存储位置那里存放用于影响装置函数(f'())的自变量(r)的值,和/或在控制器(1)中在所述存储位置那里存放影响装置函数(f'())的返回值(y')。
10.按照权利要求9所述的方法,其特征在于,用于影响装置函数(f'())的自变量(r)的存储位置(11)由影响装置(9)通过接口(8)监控,并且仅当所述存储位置(11)已经以用于所述自变量(r)的当前值被写入时,才以存放在所述存储位置(11)中的用于所述自变量(r)的值来调用所述影响装置函数(f'())。
11.设置用于外部旁路的控制器(1),其中,所述控制器(1)通过I/O接口(2)与技术过程(3)连接,在控制器(1)上存放有具有内部控制器函数(a())的程序代码(4),所述程序代码(4)配备有至少一个服务函数(ecu_s()),在执行程序代码(4)时,所述控制器(1)通过I/O接口(2)将控制信号输出给技术过程(3)并且通过I/O接口(2)以信号形式接收技术过程(3)的状态参量,在控制器(1)上提供用于服务函数(ecu_s)的服务配置(6),在运行控制器(1)时在控制器(1)中检测所述服务配置(6)并且在调用服务函数(ecu_s())时根据所述服务配置(6)来实施服务功能,其特征在于,所述服务配置(6)描述至少一个内部控制器函数(a()),所述至少一个内部控制器函数作为对应的服务函数(ecu_s())的服务功能被实施,从而通过在控制器(1)上提供服务配置(6)而灵活地作用于所连接的技术过程(3),其中,所述服务函数(ecu_s())借助服务配置(6)在控制器(1)中提供用于内部控制器函数(a())的至少一个自变量的至少一个值(x')和/或接受所述内部控制器函数(a())的至少一个返回值。
12.按照权利要求11所述的控制器(1),其特征在于,所述控制器被编程,使得该控制器在运行状态下、亦即在执行程序代码(4)时实施按照权利要求2至10之一所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102015120054 | 2015-11-19 | ||
DE102015120054.6 | 2015-11-19 | ||
PCT/EP2016/069161 WO2017084779A1 (de) | 2015-11-19 | 2016-08-11 | Verfahren zum betreiben eines steuergeräts sowie zum externen bypassing eingerichtetes steuergerät |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108139723A true CN108139723A (zh) | 2018-06-08 |
Family
ID=56851545
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680062135.8A Pending CN108139723A (zh) | 2015-11-19 | 2016-08-11 | 用于运行控制器的方法以及设置用于外部旁路的控制器 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10684600B2 (zh) |
EP (1) | EP3377949B1 (zh) |
JP (1) | JP2018537779A (zh) |
CN (1) | CN108139723A (zh) |
DE (1) | DE102016114914A1 (zh) |
WO (1) | WO2017084779A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109117124A (zh) * | 2018-06-23 | 2019-01-01 | 上海泽阳智能科技有限公司 | 一种多返回值的函数编程方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019021064A1 (en) * | 2017-07-25 | 2019-01-31 | Aurora Labs Ltd | CONSTRUCTION OF SOFTWARE DELTA UPDATES FOR VEHICLE ECU SOFTWARE AND TOOL-BASED ANOMALY DETECTION |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6260157B1 (en) * | 1999-02-16 | 2001-07-10 | Kurt Schurecht | Patching of a read only memory |
CN1393747A (zh) * | 2001-07-03 | 2003-01-29 | 三星电子株式会社 | 控制处理装置的方法 |
DE10235610A1 (de) * | 2002-08-02 | 2004-02-19 | Robert Bosch Gmbh | Verfahren zum Überprüfen einer Steuergerätefunktion |
WO2005091089A1 (de) * | 2004-03-15 | 2005-09-29 | Dspace Digital Signal Processing And Control Engineering Gmbh | Beeinflussungsgerät für steuergeräte |
CN104281547A (zh) * | 2013-07-02 | 2015-01-14 | 罗伯特·博世有限公司 | 用于运行控制器的方法以及具有模型计算单元的控制器 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10228610A1 (de) * | 2001-06-27 | 2003-01-16 | Bosch Gmbh Robert | Verfahren zum Überprüfen eines auf einer elektronischen Recheneinheit ablaufenden Steuerprogramms |
JP2003271204A (ja) * | 2002-03-15 | 2003-09-26 | Omron Corp | プログラマブルコントローラ用ユニット及びプログラマブルコントローラ |
JP2005534114A (ja) * | 2002-07-25 | 2005-11-10 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | ソース間分割コンパイル |
US7650596B2 (en) * | 2003-02-13 | 2010-01-19 | Accurate Technologies Inc. | Method for ECU calibration and diagnostics development |
DE10352172A1 (de) * | 2003-11-05 | 2005-06-09 | Robert Bosch Gmbh | Verfahren und Vorrichtung zur Anpassung von Funktionen zur Steuerung von Betriebsabläufen |
EP1876525A1 (de) | 2006-07-03 | 2008-01-09 | Siemens Aktiengesellschaft | Verfahren zur Modifizierung von Steuergerät-Software |
KR101882724B1 (ko) * | 2011-12-21 | 2018-08-27 | 삼성전자 주식회사 | 카테고리 검색 방법 및 이를 지원하는 단말기 |
JP2014182561A (ja) * | 2013-03-19 | 2014-09-29 | Hitachi Ltd | 計算機システム、プロセス及びスレッドの監視方法 |
EP2881857B8 (de) * | 2013-12-09 | 2018-09-12 | dSPACE digital signal processing and control engineering GmbH | Verfahren zur Änderung der Software im Speicher eines elektronischen Steuergerätes |
EP2881858B1 (de) | 2013-12-09 | 2016-04-06 | dSPACE digital signal processing and control engineering GmbH | Verfahren zur Änderung der Software im Speicher eines elektronischen Steuergerätes |
-
2016
- 2016-08-11 CN CN201680062135.8A patent/CN108139723A/zh active Pending
- 2016-08-11 US US15/774,607 patent/US10684600B2/en active Active
- 2016-08-11 WO PCT/EP2016/069161 patent/WO2017084779A1/de active Application Filing
- 2016-08-11 EP EP16758102.4A patent/EP3377949B1/de active Active
- 2016-08-11 DE DE102016114914.4A patent/DE102016114914A1/de not_active Withdrawn
- 2016-08-11 JP JP2018526226A patent/JP2018537779A/ja active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6260157B1 (en) * | 1999-02-16 | 2001-07-10 | Kurt Schurecht | Patching of a read only memory |
CN1393747A (zh) * | 2001-07-03 | 2003-01-29 | 三星电子株式会社 | 控制处理装置的方法 |
DE10235610A1 (de) * | 2002-08-02 | 2004-02-19 | Robert Bosch Gmbh | Verfahren zum Überprüfen einer Steuergerätefunktion |
WO2005091089A1 (de) * | 2004-03-15 | 2005-09-29 | Dspace Digital Signal Processing And Control Engineering Gmbh | Beeinflussungsgerät für steuergeräte |
CN104281547A (zh) * | 2013-07-02 | 2015-01-14 | 罗伯特·博世有限公司 | 用于运行控制器的方法以及具有模型计算单元的控制器 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109117124A (zh) * | 2018-06-23 | 2019-01-01 | 上海泽阳智能科技有限公司 | 一种多返回值的函数编程方法 |
Also Published As
Publication number | Publication date |
---|---|
DE102016114914A1 (de) | 2017-05-24 |
US20180321655A1 (en) | 2018-11-08 |
EP3377949B1 (de) | 2020-04-01 |
EP3377949A1 (de) | 2018-09-26 |
US10684600B2 (en) | 2020-06-16 |
WO2017084779A1 (de) | 2017-05-26 |
JP2018537779A (ja) | 2018-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100541446C (zh) | 调试装置和方法 | |
JP4987182B2 (ja) | コンピュータシステム | |
CN109144515B (zh) | Dcs图形化算法组态的离线仿真方法和装置 | |
EP2037368A2 (en) | Simulation of program execution to detect problem such as deadlock | |
CN104699478B (zh) | 改变电子控制单元的存储器中的软件的方法和计算机系统 | |
CN105930186B (zh) | 多cpu的软件加载方法及基于多cpu的软件加载装置 | |
CN107111600A (zh) | 通信接口初始化 | |
CN104657247A (zh) | 基于jtag调试方式实现通用型故障注入系统和故障注入方法 | |
US9529686B1 (en) | Error protection for bus interconnect circuits | |
CN104536912B (zh) | 在小型操作系统中实现内存保护模式的装置和方法 | |
CN107729071B (zh) | 一种初始化网卡的方法及装置 | |
CN111133434B (zh) | 用于受密码保护地运行虚拟机的设备和方法 | |
CN104685509B (zh) | 用于控制链接的程序块的分开的运行的方法和控制设备 | |
JP4865943B2 (ja) | コンピュータシステム | |
CN102422299A (zh) | 信息设备、程序、防止执行不正当程序代码的方法、及计算机能够读取的记录介质 | |
CN108139723A (zh) | 用于运行控制器的方法以及设置用于外部旁路的控制器 | |
JP2009059005A (ja) | デバッグシステム、デバッグ装置および方法 | |
CN111262753A (zh) | 一种numa节点个数自动配置方法方法、系统、终端及存储介质 | |
JP5628411B2 (ja) | 半導体装置 | |
CN103026339B (zh) | 对微控制器中的软件参数重新配置的方法以及微控制器和控制设备 | |
CN106933727A (zh) | 处理器中断机制的验证方法及验证装置 | |
CN107766247A (zh) | Bootloader的测试方法、装置及可读存储介质 | |
CN101082880A (zh) | 加快从计算机下载数据到单片机目标存储器的方法及系统 | |
CN110704234A (zh) | 一种存控数据传输错误注入方法 | |
JPS63193237A (ja) | 半導体集積回路装置 |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180608 |
|
WD01 | Invention patent application deemed withdrawn after publication |