CN113836035B - 电池管理***测试方法、装置及电子设备 - Google Patents

电池管理***测试方法、装置及电子设备 Download PDF

Info

Publication number
CN113836035B
CN113836035B CN202111198610.3A CN202111198610A CN113836035B CN 113836035 B CN113836035 B CN 113836035B CN 202111198610 A CN202111198610 A CN 202111198610A CN 113836035 B CN113836035 B CN 113836035B
Authority
CN
China
Prior art keywords
program
management system
battery management
running
thread
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.)
Active
Application number
CN202111198610.3A
Other languages
English (en)
Other versions
CN113836035A (zh
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.)
Dongguan Poweramp Technology Ltd
Original Assignee
Dongguan Poweramp Technology 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 Dongguan Poweramp Technology Ltd filed Critical Dongguan Poweramp Technology Ltd
Priority to CN202111198610.3A priority Critical patent/CN113836035B/zh
Publication of CN113836035A publication Critical patent/CN113836035A/zh
Application granted granted Critical
Publication of CN113836035B publication Critical patent/CN113836035B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Charge And Discharge Circuits For Batteries Or The Like (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请实施例提供了一种电池管理***测试方法、装置及电子设备。该方法包括:通过第一线程运行第一程序,第一程序用于对电池管理***进行测试;通过第二线程记录第一程序运行的位置;响应于监测到第一程序运行中止,通过第二线程唤醒第一线程,以从记录的第一程序运行中止时的位置运行第一程序,继续对电池管理***进行测试,第一程序运行中止非第一程序崩溃引起。基于本方案,可以避免测试中断而导致需要重新测试,进而避免测试时间浪费,有效地节省了测试时间。

Description

电池管理***测试方法、装置及电子设备
技术领域
本申请实施例涉及电池管理领域,尤其涉及一种电池管理***测试方法、装置及电子设备。
背景技术
电池管理***(Battery Management System,BMS)是一套保护电池包使用安全的控制***,为电池包的使用安全提供保证。由于电池管理***的重要性,有必要对电池管理***开发进行测试,以确保电池管理***满足相关的功能需求。
相关技术中,在上位机终端向BMS发送指令,对BMS进行测试时,上位机终端通常在接收到正确的回复指令(即,应答)的情况下,才进入下一测试步骤,否则会继续停留在当前测试步骤,直到退出测试。例如,由于外部信号干扰、上位机终端与BMS之间的通信不稳定等因素的影响,上位机终端无法接收到正确的应答,停留在当前测试步骤,导致测试无法继续,进而导致测试失败,需要重新开始测试。然而,重新开始测试会导致严重浪费测试时间,特别是在长时间的耐久性和/或压力测试中,这导致测试的时间成本增加。
发明内容
有鉴于此,本申请实施例提供一种电池管理***测试方法、装置及电子设备,以至少部分解决上述问题。
根据本申请实施例的第一方面,提供了一种电池管理***测试方法。该方法包括:通过第一线程运行第一程序,所述第一程序用于对所述电池管理***进行测试;通过第二线程记录所述第一程序运行的位置;响应于监测到所述第一程序运行中止,通过所述第二线程唤醒所述第一线程,以从记录的所述第一程序运行中止时的位置运行所述第一程序,继续对所述电池管理***进行测试。所述第一程序运行中止非所述第一程序崩溃引起。
在本申请的另一实现方式中,该方法还包括:通过第三线程监测所述第一程序是否运行停止,所述第一程序运行停止由所述第一程序崩溃引起;响应于监测到所述第一程序运行停止,通过所述第三线程启动第二程序,以获取记录的所述第一程序运行停止时的位置,并从所述第一程序运行停止时的位置开始运行,继续对所述电池管理***进行测试。所述第二程序与所述第一程序运行在不同的软件框架中。
在本申请的另一实现方式中,所述通过第三线程监测所述第一程序是否运行停止,包括:通过所述第三线程监测在操作***的第一存储位置处是否存在中断信息,以确定所述第一程序是否运行停止,其中,所述中断信息在所述第一程序运行停止时由所述操作***写入所述第一存储位置。
在本申请的另一实现方式中,所述通过第二线程记录所述第一程序运行的位置,还包括:将记录的所述第一程序运行的位置存储在非易失性存储装置的第二存储位置。所述获取记录的所述第一程序运行停止时的位置包括:从所述非易失性存储装置中的第二存储位置获取所述第一程序运行停止时的位置。
在本申请的另一实现方式中,在所述通过所述第二线程唤醒所述第一线程之前,还包括:通知用户所述第一程序中止;在引起中止的故障消除后接收继续运行所述第一程序的指令。
在本申请的另一实现方式中,所述通知用户所述第一程序中止,包括:以图像、声音、文字、指示灯、机器动作中的至少一个通知用户引起所述第一程序中止的故障。
在本申请的另一实现方式中,所述监测到所述第一程序运行中止包括:接收到所述第一程序上报的运行中止通知;或者,通过所述第二线程记录所述第一程序运行过程中发送到所述电池管理***的测试命令、以及所述电池管理***的应答,并在所述应答满足第一条件的情况下,确定所述第一程序运行中止。
在本申请的另一实现方式中,所述第一条件包括以下中的至少一个:在预设时间内未接收到所述应答;或者,连续接收到错误应答的次数大于预定次数;或者,在预定时长内接收到错误应答的次数大于预定次数;或者,在预定时长内接收到错误应答的次数与接收到应答的次数的比例大于预定次数比例。
根据本申请实施例的第二方面,提供了一种电池管理***测试装置。该装置包括运行模块、记录模块和唤醒模块。运行模块用于通过第一线程运行第一程序,所述第一程序用于对所述电池管理***进行测试。记录模块用于通过第二线程记录所述第一程序运行的位置。唤醒模块用于响应于监测到所述第一程序运行中止,通过所述第二线程唤醒所述第一线程,以从记录的所述第一程序运行中止时的位置运行所述第一程序,继续对所述电池管理***进行测试,所述第一程序运行中止非所述第一程序崩溃引起。
在本申请的另一实现方式中,该装置还包括监测模块和启动模块。监测模块用于通过第三线程监测所述第一程序是否运行停止,所述第一程序运行停止由所述第一程序崩溃引起。启动模块用于响应于监测到所述第一程序运行停止,通过所述第三线程启动第二程序,以获取记录的所述第一程序运行停止时的位置,并从所述第一程序运行停止时的位置开始运行,继续对所述电池管理***进行测试,所述第二程序与所述第一程序运行在不同的软件框架中。
根据本申请实施例的第三方面,提供了一种电子设备,包括存储器和处理器。所述存储器用于存储计算机可执行代码。所述处理器用于执行所述存储器中的计算机可执行代码,以实现根据第一方面中任一个所述的方法。
本申请实施例中,通过第一线程运行用于对电池管理***进行测试的第一程序,并且以第二线程记录第一程序运行的位置,进而能够响应于监测到第一程序运行中止,通过第二线程唤醒第一线程,并使第一线程从记录的第一程序运行中止时的位置运行第一程序,继续对电池管理***进行测试。这避免了测试中断而导致需要重新测试,进而避免测试时间浪费,有效地节省了测试时间。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为适用本申请实施例的电池管理***测试方法的示例性***构架的示意图;
图2为根据本申请实施例的一种电池管理***测试方法的流程图;
图3为根据本申请实施例的另一种电池管理***测试方法的流程图;
图4为根据本申请实施例的另一种电池管理***测试方法的流程图;
图5为本申请实施例的一种电池管理***测试装置的结构示意图;
图6为本申请实施例的一种电子设备的结构示意图。
具体实施方式
为了使本领域的人员更好地理解本申请实施例中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、详细地描述,显然,所描述的实施例仅是本申请实施例一部分实施例,而不是全部的实施例。基于本申请实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本申请实施例保护的范围。
下面结合本申请实施例附图进一步说明本申请实施例具体实现。
图1为适用本申请实施例的电池管理***测试方法的示例性***架构的示意图。该***架构包括上位机终端20和电池管理***10。上位机终端20与电池管理***10之间通常采用标准的总线协议40进行通信连接,例如,通过控制器局域网(ControllerAreaNetwork,CAN)或RS-485串行总线等进行通信连接。
上位机终端20包括主要应用于工业控制和测试中的、具有计算、处理能力的装置、设备、平台或设备集群。在一种实施例中,上位机终端20可以包括显示装置,用于进行信息显示。该显示装置可以包括不具有触控功能的显示屏,也可以包括触控屏、触控面板等。在另一种实施例中,上位机终端20可以包括输入装置,用于接收用户输入。在另一种实施例中,上位机终端20还可以包括报警装置,例如显示报警装置、声音报警装置或其他类似的报警装置。
电池管理***10是电池包的主要部件之一。电池包可作为用电设备的核心能量源,为用电设备提供电能。通常,电池包主要包括电芯模组和电池管理***。电芯模组包括多个串联和/或并联的电芯,用于存储电能。电池管理***能够在不同的应用场景中对电芯模组的温度、电流或其他状态等进行监测,对电芯模组的充电和放电进行控制,以及对电芯模组进行故障切断等操作,以提高电池包的利用率和使用寿命。
上位机终端中安装有上位机软件30,该上位机软件30用于对电池包中的电池管理***进行功能测试和软件检测,以确保电池管理***满足相关的功能需求。具体地,在测试过程中,在上位机终端中运行上位机软件30,上位机终端可以向电池管理***发送测试命令,并且从电池管理***获取针对测试命令的应答,以对电池管理***进行测试。
图2为根据本申请实施例的一种电池管理***测试方法的流程图,该方法主要由上位机终端执行。如图2所示,该方法包括:
步骤S210、通过第一线程运行第一程序,第一程序用于对电池管理***进行测试。
测试可以包括在电池管理***的开发阶段、生产阶段和/或检修阶段等各个阶段,对电池管理***的测试。测试的类型可以包括功能测试和/或环境适应性测试等。例如,功能测试可以包括对电池管理***的数据采集、数据通信、或过程控制等功能进行测试。环境适应性测试可以包括对电池管理***进行低温测试、高温测试、高低温测试、盐雾测试、或振动测试等。
在对电池管理***进行测试时,可以将电池管理***与电芯模组对接进行实物测试,也可以通过采用仿真电芯模组进行仿真和验证,本实施例对此不做限定。针对电池管理***的某个测试,第一程序可以预先设置多个测试步骤。在通过第一线程运行第一程序时,上位机终端按照测试步骤向电池管理***发送测试命令。
第一程序可以是在第一软件框架中运行的软件程序。第一软件框架是runtime软件框架、framework软件框架等windows框架基础中之一。例如,在一种实现方式中,第一程序可以是在runtime软件框架下运行的Labview软件程序。又例如,在另一种实现方式中,第一程序可以是在framework软件框架下运行的C#、C软件程序。应理解,第一程序也可以是在其他windows框架基础上运行的软件程序,本实施例对此不做限定。
步骤S220、通过第二线程记录第一程序运行的位置。
第二线程可以与第一线程在同一软件框架中运行,用于监测第一程序运行的过程,并进行记录。
在一种实现方式中,记录第一程序运行的位置可以包括:记录在第一程序运行过程中发送到电池管理***的所有测试命令、和电池管理***针对测试命令的所有应答。基于这一记录,上位机终端不仅可以确定当前已完成的测试步骤(也即,确定第一程序运行的位置),同时还可以在后续阶段追溯第一程序整个运行过程的情况。
在另一种实现方式中,记录第一程序运行的位置可以包括:记录在第一程序运行过程中最近一次发送到电池管理***的测试命令、和电池管理***针对该测试命令的应答。由此,不仅可以确定当前已完成的测试步骤(也即,确定第一程序运行的位置),同时可以避免由于记录过多数据而占用较大的存储空间。
应理解,记录第一程序运行的位置还可以包括在运行第一程序时上位机终端与BMS之间的其他交互数据,本实施例对此不做限定。
此外,第二线程可以将记录的第一程序运行的位置存储在上位机终端的内存中,以方便快速读取。然而,为了便于在第一程序崩溃等情况下还能够继续访问第一程序运行的位置,还可以将记录的第一程序运行的位置存储在上位机终端的非易失性存储装置中,例如存储在上位机终端的硬盘中,以便于记录数据的永久保存。
步骤S230、响应于监测到第一程序运行中止,通过第二线程唤醒第一线程,以从记录的所述第一程序运行中止时的位置运行所述第一程序,继续对电池管理***进行测试。
其中,第一程序运行中止非第一程序崩溃引起。具体地,第一程序运行中止可以是由于各种外在原因,导致第一线程挂起,第一程序暂时处于不可执行状态。例如,由于上位机终端与电池管理***之间连接不稳定或存在电磁干扰的影响,使得上位机终端与电池管理***之间的通信存在故障,导致第一线程主动挂起或被动挂起,由此,第一程序暂时处于不可执行状态。在这种情况下,可以通过重新唤醒第一线程来恢复第一程序的运行。
由于通过第二线程记录第一程序运行的位置,因此在第一程序运行中止时,第二线程记录有第一程序运行中止时的位置,也即,记录有第一程序当前执行到的测试步骤。因此,在通过第二线程重新唤醒第一线程之后,能够使第一线程从记录的第一程序运行中止时的位置运行第一程序,继续对电池管理***进行测试。由此,可以避免测试中断而导致需要重新测试,进而避免测试时间浪费,有效地节省了测试时间。
本步骤中,响应于监测到第一程序运行中止,通过第二线程唤醒第一线程,以恢复第一程序的运行。在一种实现方式中,监测到第一程序运行中止,可以包括:接收到第一程序上报的运行中止通知。第一程序可以在各种情况下上报运行中止通知。
例如,受上位机终端与BMS之间的连接不稳定、电磁干扰等因素影响,上位机终端在预设时间内未接收到应答,则第一线程挂起,第一程序中止运行,同时第一程序上报运行中止通知,从而避免上位机终端始终处于等待状态,无法执行后续操作,浪费测试时间。
又例如,由于上述因素影响,虽然上位机终端接收到应答,但该应答为错误应答,例如与测试命令不相符,则上位机终端重复发送该测试命令,连续接收到的错误应答的次数大于预定次数,则第一程序中止运行,同时第一程序上报运行中止通知,从而避免上位机终端始终重复执行同一操作,浪费测试时间。
又例如,由于上述因素影响,在预定时长内接收到错误应答的次数大于预定次数,或者在预定时长内接收到错误应答的次数与接收到应答的次数的比例大于预定次数比例,则第一程序中止运行,同时第一程序上报运行中止通知,从而确保能够及早发现可能存在的故障,避免对后续测试产生不利影响。
由于第一程序主动上报运行中止通知,上位机终端可以响应于接收到第一程序上报的运行中止通知,通过第二线程唤醒第一线程,以从记录的所述第一程序运行中止时的位置运行所述第一程序,继续对电池管理***进行测试,由此可以避免上位机终端实时监测和判断第一程序是否运行中止,从而简化控制过程。
此外,上位机终端还可以基于第二线程记录的信息来确定第一程序是否中止运行。例如,在另一种实现方式中,监测到第一程序运行中止,可以包括:通过第二线程记录第一程序运行过程中发送到电池管理***的测试命令、以及电池管理***的应答,并在应答满足第一条件的情况下,确定第一程序运行中止。由于基于第二线程记录的信息,不仅可以确定第一程序运行中止时的位置,还可以确定第一程序是否运行中止,实现了对第二线程所记录的信息的充分利用。
在一种具体实现方式中,第一条件可以包括在预设时间内未接收到应答。预设时间可以根据上位机终端与电池管理***之间的通信协议进行设定。以在第一程序运行过程中向电池管理***发送充放电指令为例。若上位机终端在预设时间内未接收到电池管理***的应答,则上位机终端将第一线程挂起,并确定第一程序运行中止,从而避免上位机终端始终处于等待状态,无法执行后续操作,浪费测试时间。
在另一种具体实现方式中,第一条件可以包括连续接收到错误应答的次数大于预定次数。预定次数可以根据电池管理***的测试项目进行设定。同样以在第一程序运行过程中向电池管理***发送充放电指令为例。若上位机终端接收到错误应答,例如接收到非针对充放电指令的应答,则上位机终端向电池管理***重新发送充放电指令。若重复发送预定次数的充放电指令之后,仍未接收到针对该充放电指令的正确应答,则上位机终端将第一线程挂起,并确定第一程序运行中止,从而避免上位机终端始终重复执行同一操作,浪费测试时间。
在又一种具体实现方式中,第一条件可以包括在预定时长内接收到错误应答的次数大于预定次数,或者,在预定时长内接收到错误应答的次数与接收到应答的次数的比例大于预定次数比例。预定时长和预定次数可以根据电池管理***的测试项目、以及上位机终端与电池管理***之间的通信协议进行设定。以在预设时长内,上位机终端向电池管理***发送N次测试命令(包括重复发送的测试命令)为例,若在该预设时长内,上位机终端从电池管理***接收到的应答中存在M次应答错误,若M的数量大于预定次数,或者M与N的比例大于预定次数比例,则上位机终端将第一线程挂起,并确定第一程序运行中止,发现可能存在的故障,避免对后续测试产生不利影响。
应理解,上述各个具体实现方式中的第一条件可以单独使用,也可以组合使用,本申请实施例对此不做限定。
本申请实施例中,通过第一线程运行用于对电池管理***进行测试的第一程序,并且以第二线程记录第一程序运行的位置,进而能够响应于监测到第一程序运行中止,通过第二线程唤醒第一线程,并使第一线程从记录的第一程序运行中止时的位置运行第一程序,继续对电池管理***进行测试。这避免了测试中断而导致需要重新测试,进而避免测试时间浪费,有效地节省了测试时间。
如图3所示,在该实施例中,在通过第二线程唤醒第一线程之前,还包括:
步骤S222、通知用户第一程序中止。
通过通知用户第一程序中止,使得用户及时获知第一程序中止,消除引起第一程序中止的故障。由此,可以避免由于故障始终存在,使得无法继续进行测试,造成测试时间浪费。
在一种实现方式中,通知用户第一程序中止可以包括:以图像、声音、文字、指示灯、机器动作中的至少一种提示用户第一程序运行中止,但未具体通知用户引起第一程序运行中止的故障。由于不需要判断引起第一程序运行中止的故障,可以简化控制过程,减少上位机终端的工作负荷。同时,由于通知用户第一程序中止,可以使得用户及时获知第一程序中止,从而有利于用户及时查找引起第一程序中止的故障,消除引起中止的故障,以使得能够继续对电池管理***进行测试,避免测试时间浪费。
在另一种实现方式中,通知用户第一程序运行中止可以包括:以图像、声音、文字、指示灯、机器动作中的至少一个通知用户引起第一程序中止的故障。由此,方便用户获知引起第一程序中止的故障,从而有利于快速消除引起中止的故障,使得能够继续对电池管理***进行测试,避免测试时间浪费。
步骤S224、在引起中止的故障消除后接收继续运行第一程序的指令。
所述继续运行第一程序的指令可以是响应于用户在上位机终端上的特定操作而发送。例如,响应于用户在上位机终端的显示界面上的特定按钮的点击操作等而发送。
在一种具体实现方式中,电池管理***为用电设备的使用安全提供保证,对电池管理***的测试存在有对应的国家标准和/或行业标准。国家标准和/或行业标准中明确规定了在一些特定故障出现时必须重新进行测试。通过在引起中止的故障消除后,并且在通过第二线程唤醒第一线程之前,接收继续运行第一程序的指令,使得只有在允许继续测试的情况下,才对电池管理***进行测试。由此,可以避免在整个测试完成后,发现测试过程不符合国家标准和/或行业标准,导致重新开始测量,造成测试时间浪费。因此,有利于进一步有效地节省了测试时间。
如图4所示,在本申请的一种实施例中,电池管理***测试方法还包括:
步骤S240、通过第三线程监测第一程序是否运行停止。
其中,第一程序运行停止由第一程序崩溃引起。例如,在对电池管理***的自动化测试或耐久性测试过程中,需要非常长的时间才能完成一个测试循环,第一程序长时间运行有可能导致第一程序本身崩溃。第一程序本身崩溃引起第一程序运行停止之后,第一程序无法恢复运行。
本步骤中,通过第三线程运行监测程序,以监测第一程序是否运行。监测程序和第一程序在不同的软件框架中运行,例如,第一程序在runtime软件框架下运行,而监测程序在framework软件框架下运行。由此,使得在第一程序崩溃时,监测程序的运行不受影响,也即,第三线程的运行不受影响。应理解,本实施例中,第一程序可以在framework软件框架下运行,而监测程序在runtime软件框架下运行,本实施例对此不做限定。
本实施例中,可以在第一程序运行时,静态加载监测程序,以启动第三线程,来监测第一程序是否运行停止。
在一种实现方式中,通过第三线程监测第一程序是否运行停止,包括:通过第三线程监测在操作***的第一存储位置处是否存在中断信息,以确定第一程序是否运行停止。其中,中断信息在第一程序运行停止时由操作***写入第一存储位置。
以第一程序为在runtime软件框架下运行的labview软件程序为例。在第一程序崩溃引起第一程序运行停止时,labview程序开发平台会自动在操作***的第一存储位置写入中断信息。该中断信息可以通过特定字符串表示在labview程序开发平台下开发的第一程序发生崩溃。第三线程对操作***的第一存储位置进行实时监测。当在该第一存储位置监测到中断信息时,确定第一程序运行停止。
应理解,通过第三线程监测第一程序是否运行停止,还可以包括:通过第三线程监测操作***的日志,根据操作***的日志确定第一程序是否运行停止,本实施例对此不做限定。
S250、响应于监测到第一程序运行停止,通过第三线程启动第二程序,以获取记录的第一程序运行停止时的位置,并从第一程序运行停止时的位置开始运行,继续对电池管理***进行测试。
其中,第二程序与第一程序运行在不同的软件框架中。具体地,第二程序可以与通过第三线程运行的监控程序在同一软件框架中运行。例如,第一程序在runtime软件框架中运行,第二程序可以与监控程序类似,在framework软件框架中运行,由此使得第一程序的崩溃不影响第二程序的运行。应理解,第一程序可以在framework软件框架中运行,第二程序和监控程序可以在runtime软件框架中运行,本实施例对此不做限定。
本实施例中,可以在第一程序运行时,静态加载监测程序,以启动第三线程。同时,可以在第一程序运行时,动态加载第二程序,以在通过第三线程监测到第一程序停止运行时,通过第三线程启动第二程序。
第二程序与第一程序用于对电池管理***进行同一测试。由此,响应于第一程序运行停止,在通过第三线程启动第二程序,并且第二程序获取第一程序运行停止时的位置之后,第二程序能够从第一程序运行停止时的位置开始运行,继续对电池管理***进行测试。
在一种实现方式中,在通过第二线程记录第一程序运行的位置时,还将记录的第一程序运行的位置存储在非易失性存储装置的第二存储位置。例如,将记录的第一程序运行的位置存储在上位机终端的硬盘的特定位置。由此,避免在第一程序崩溃时,无法再获取到第一程序运行的位置,特别地,第一程序运行停止时的位置。
由于将记录的第一程序运行的位置存储在非易失性存储装置的第二存储位置,相应地,响应于监测到第一程序运行停止,在通过第三线程启动第二程序之后,第二程序能够从非易失性存储装置中的第二存储位置获取第一程序运行停止时的位置,进而从第一程序运行停止时的位置开始运行,继续对电池管理***进行测试,避免测试中断而导致需要重新测试,进而避免测试时间浪费,有效地节省了测试时间。
应理解,本实施例中各步骤的执行顺序不受限制,例如,上述步骤S240可以与步骤S220同时执行,本实施例对此不做限定。
本申请实施例中,由于第一程序和第二程序在上位机终端的不同的软件框架中运行,第一程序崩溃时报错的错误不影响第二程序的自动启动,同时由于通过第三线程监测第一程序是否运行停止,在监测到第一程序长时间运行发生崩溃(即运行停止)时,通过第三线程启动第二程序,以获取第一程序运行停止时的位置,并从第一程序运行停止时的位置开始运行,继续对电池管理***进行测试,避免测试中断而导致需要重新测试,进而避免测试时间浪费,有效地节省了测试时间。
参照图5,示出了根据本申请实施例的一种电池管理***测试装置的结构示意图。图5所示的电池管理***测试装置可以执行上述任一方法实施例中描述的电池管理***测试方法。对电池管理***测试装置的应用环境以及工作原理的描述,可以参照上述方法实施例,此处不再赘述。如图5所示,该装置包括运行模块510、记录模块和唤醒模块。运行模块510用于通过第一线程运行第一程序,第一程序用于对电池管理***进行测试。记录模块520用于通过第二线程记录第一程序运行的位置。唤醒模块530,用于响应于监测到第一程序运行中止,通过第二线程唤醒第一线程,以从记录的第一程序运行中止时的位置运行第一程序,继续对电池管理***进行测试,第一程序运行中止非第一程序崩溃引起。
在本申请的另一实现方式中,该装置还包括监测模块和启动模块。监测模块用于通过第三线程监测第一程序是否运行停止,第一程序运行停止由第一程序崩溃引起。启动模块用于响应于监测到第一程序运行停止,通过第三线程启动第二程序,以获取记录的第一程序运行停止时的位置,并从第一程序运行停止时的位置开始运行,继续对电池管理***进行测试。第二程序与第一程序运行在不同的软件框架中。
在本申请的另一实现方式中,监测模块具体用于:通过第三线程监测在操作***的第一存储位置处是否存在中断信息,以确定第一程序是否运行停止。其中,中断信息在第一程序运行停止时由操作***写入第一存储位置。
在本申请的另一实现方式中,记录模块520还用于:将记录的第一程序运行的位置存储在非易失性存储装置的第二存储位置。启动模块具体用于响应于监测到第一程序运行停止,通过第三线程启动第二程序,可以从非易失性存储装置中的第二存储位置获取记录的第一程序运行停止时的位置,并从第一程序运行停止时的位置开始运行,继续对电池管理***进行测试。
在本申请的另一实现方式中,该装置还包括通知模块和接收模块。通知模块用于通知用户所述第一程序中止。接收模块用于在引起中止的故障消除后接收继续运行所述第一程序的指令。
在本申请的另一实现方式中,通知模块具体用于以图像、声音、文字、指示灯、机器动作中的至少一个通知用户引起所述第一程序中止的故障。
在本申请的另一实现方式中,监测到所述第一程序运行中止包括:接收到所述第一程序上报的运行中止通知;或者,通过所述第二线程记录所述第一程序运行过程中发送到所述电池管理***的测试命令、以及所述电池管理***的应答,并在所述应答满足第一条件的情况下,确定所述第一程序运行中止。
在本申请的另一实现方式中,第一条件包括以下中的至少一个:在预设时间内未接收到应答;或者,连续接收到错误应答的次数大于预定次数;或者,在预定时长内接收到错误应答的次数大于预定次数;或者,在预定时长内接收到错误应答的次数与接收到应答的次数的比例大于预定次数比例。
本实施例的装置用于实现前述多个方法实施例中相应的方法,并具有相应的方法实施例的有益效果,在此不再赘述。此外,本实施例的装置中的各个模块的功能实现均可参照前述方法实施例中的相应部分的描述,在此亦不再赘述。
参照图6,示出了根据本申请实施例的一种电子设备的结构示意图,本申请具体实施例并不对电子设备的具体实现做限定。
如图6所示,该电子设备可以包括:处理器(processor)602、通信接口(Communications Interface)604、存储器(memory)606、以及通信总线608。
其中:
处理器602、通信接口604、以及存储器606通过通信总线608完成相互间的通信。
通信接口604,用于与其它电子设备或服务器进行通信。
处理器602,用于执行程序610,具体可以执行上述电池管理***测试方法实施例中的相关步骤。
具体地,程序610可以包括程序代码,该程序代码包括计算机操作指令。
处理器602可以是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路。电子设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器606,用于存放程序610。存储器606可以包含高速RAM存储器,也可包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序610具体可以用于使得处理器602执行上述电池管理***测试方法实施例中的相关步骤。程序610中各步骤的具体实现可以参见上述电池管理***测试方法实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
本申请实施例还提供了一种计算机程序产品,包括计算机指令,该计算机指令指示计算设备执行上述电池管理***测试方法实施例中的相关步骤。
需要指出,根据实施的需要,可将本申请实施例中描述的各个部件/步骤拆分为更多部件/步骤,也可将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本申请实施例的目的。
上述根据本申请实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如CD ROM、RAM、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如ASIC或FPGA)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,RAM、ROM、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的电池管理***测试方法。此外,当通用计算机访问用于实现在此示出的电池管理***测试方法的代码时,代码的执行将通用计算机转换为用于执行在此示出的电池管理***测试方法的专用计算机。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。
以上实施方式仅用于说明本申请实施例,而并非对本申请实施例的限制,有关技术领域的普通技术人员,在不脱离本申请实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本申请实施例的范畴,本申请实施例的专利保护范围应由权利要求限定。

Claims (9)

1.一种电池管理***测试方法,包括:
通过第一线程运行第一程序,所述第一程序用于对所述电池管理***进行测试;
通过第二线程记录所述第一程序运行的位置;
响应于监测到所述第一程序运行中止,通过所述第二线程唤醒所述第一线程,以从记录的所述第一程序运行中止时的位置运行所述第一程序,继续对所述电池管理***进行测试,所述第一程序运行中止非所述第一程序崩溃引起;
其中,所述方法还包括:通过第三线程监测所述第一程序是否运行停止,所述第一程序运行停止由所述第一程序崩溃引起;
响应于监测到所述第一程序运行停止,通过所述第三线程启动第二程序,以获取记录的所述第一程序运行停止时的位置,并从所述第一程序运行停止时的位置开始运行,继续对所述电池管理***进行测试,所述第二程序与所述第一程序运行在不同的软件框架中,所述第二程序与所述第一程序用于对所述电池管理***进行同一测试。
2.根据权利要求1所述的方法,其中,所述通过第三线程监测所述第一程序是否运行停止,包括:
通过所述第三线程监测在操作***的第一存储位置处是否存在中断信息,以确定所述第一程序是否运行停止,其中,所述中断信息在所述第一程序运行停止时由所述操作***写入所述第一存储位置。
3.根据权利要求1所述的方法,其中,所述通过第二线程记录所述第一程序运行的位置,还包括:将记录的所述第一程序运行的位置存储在非易失性存储装置的第二存储位置;
所述获取记录的所述第一程序运行停止时的位置,包括:
从所述非易失性存储装置中的第二存储位置获取所述第一程序运行停止时的位置。
4.根据权利要求1所述的方法,其中,在所述通过所述第二线程唤醒所述第一线程之前,还包括:
通知用户所述第一程序中止;
在引起中止的故障消除后接收继续运行所述第一程序的指令。
5.根据权利要求4所述的方法,其中,所述通知用户所述第一程序中止,包括:
以图像、声音、文字、指示灯、机器动作中的至少一个通知用户引起所述第一程序中止的故障。
6.根据权利要求1所述的方法,其中,所述监测到所述第一程序运行中止包括:
接收到所述第一程序上报的运行中止通知;或者,
通过所述第二线程记录所述第一程序运行过程中发送到所述电池管理***的测试命令、以及所述电池管理***的应答,并在所述应答满足第一条件的情况下,确定所述第一程序运行中止。
7.根据权利要求6所述的方法,其中,所述第一条件包括以下中的至少一个:
在预设时间内未接收到所述应答;或者,
连续接收到错误应答的次数大于预定次数;或者,
在预定时长内接收到错误应答的次数大于预定次数;或者,
在预定时长内接收到错误应答的次数与接收到应答的次数的比例大于预定次数比例。
8.一种电池管理***测试装置,包括:
运行模块,用于通过第一线程运行第一程序,所述第一程序用于对所述电池管理***进行测试;
记录模块,用于通过第二线程记录所述第一程序运行的位置;
唤醒模块,用于响应于监测到所述第一程序运行中止,通过所述第二线程唤醒所述第一线程,以从记录的所述第一程序运行中止时的位置运行所述第一程序,继续对所述电池管理***进行测试,所述第一程序运行中止非所述第一程序崩溃引起;
其中,所述装置还包括:
监测模块,用于通过第三线程监测所述第一程序是否运行停止,所述第一程序运行停止由所述第一程序崩溃引起;
启动模块,用于响应于监测到所述第一程序运行停止,通过所述第三线程启动第二程序,以获取记录的所述第一程序运行停止时的位置,并从所述第一程序运行停止时的位置开始运行,继续对所述电池管理***进行测试,所述第二程序与所述第一程序运行在不同的软件框架中,所述第二程序与所述第一程序用于对所述电池管理***进行同一测试。
9.一种电子设备,包括存储器和处理器;
所述存储器用于存储计算机可执行代码;
所述处理器用于执行所述存储器中的计算机可执行代码,以实现根据权利要求1-7中任一个所述的方法。
CN202111198610.3A 2021-10-14 2021-10-14 电池管理***测试方法、装置及电子设备 Active CN113836035B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111198610.3A CN113836035B (zh) 2021-10-14 2021-10-14 电池管理***测试方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111198610.3A CN113836035B (zh) 2021-10-14 2021-10-14 电池管理***测试方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN113836035A CN113836035A (zh) 2021-12-24
CN113836035B true CN113836035B (zh) 2024-03-01

Family

ID=78968974

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111198610.3A Active CN113836035B (zh) 2021-10-14 2021-10-14 电池管理***测试方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN113836035B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103568863A (zh) * 2013-11-15 2014-02-12 合肥国轩高科动力能源股份公司 电动汽车电池管理***的实时监测诊断***及诊断方法
CN104050075A (zh) * 2013-03-11 2014-09-17 百度国际科技(深圳)有限公司 Andriod应用程序的测试方法和装置
CN105138459A (zh) * 2015-09-11 2015-12-09 北京金山安全软件有限公司 一种对软件程序进行测试的方法及装置
CN108490279A (zh) * 2018-01-26 2018-09-04 深圳市沃特玛电池有限公司 电池管理***的测试***及方法
CN108647141A (zh) * 2018-04-26 2018-10-12 腾讯科技(深圳)有限公司 自动测试方法、装置、计算机可读介质及电子设备
CN111459616A (zh) * 2020-04-02 2020-07-28 北京牛电信息技术有限责任公司 一种测试方法、装置、设备及存储介质
CN112256560A (zh) * 2020-09-22 2021-01-22 北京达佳互联信息技术有限公司 应用程序测试方法、装置及电子设备
CN112285586A (zh) * 2020-10-19 2021-01-29 广州极飞科技有限公司 Bms测试方法、装置、***、仿真测试设备及存储介质
CN113127248A (zh) * 2021-04-02 2021-07-16 清华大学 面向机器人ros程序的自动崩溃恢复方法和***

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104050075A (zh) * 2013-03-11 2014-09-17 百度国际科技(深圳)有限公司 Andriod应用程序的测试方法和装置
CN103568863A (zh) * 2013-11-15 2014-02-12 合肥国轩高科动力能源股份公司 电动汽车电池管理***的实时监测诊断***及诊断方法
CN105138459A (zh) * 2015-09-11 2015-12-09 北京金山安全软件有限公司 一种对软件程序进行测试的方法及装置
CN108490279A (zh) * 2018-01-26 2018-09-04 深圳市沃特玛电池有限公司 电池管理***的测试***及方法
CN108647141A (zh) * 2018-04-26 2018-10-12 腾讯科技(深圳)有限公司 自动测试方法、装置、计算机可读介质及电子设备
CN111459616A (zh) * 2020-04-02 2020-07-28 北京牛电信息技术有限责任公司 一种测试方法、装置、设备及存储介质
CN112256560A (zh) * 2020-09-22 2021-01-22 北京达佳互联信息技术有限公司 应用程序测试方法、装置及电子设备
CN112285586A (zh) * 2020-10-19 2021-01-29 广州极飞科技有限公司 Bms测试方法、装置、***、仿真测试设备及存储介质
CN113127248A (zh) * 2021-04-02 2021-07-16 清华大学 面向机器人ros程序的自动崩溃恢复方法和***

Also Published As

Publication number Publication date
CN113836035A (zh) 2021-12-24

Similar Documents

Publication Publication Date Title
CN109165138B (zh) 一种监控设备故障的方法和装置
EP3591485B1 (en) Method and device for monitoring for equipment failure
CN103838663A (zh) 一种应用程序的测试方法及装置
EP3167371B1 (en) A method for diagnosing power supply failure in a wireless communication device
CN105718340A (zh) 一种基于Crontab的CPU稳定性的测试方法
CN104320308A (zh) 一种服务器异常检测的方法及装置
JP2003122599A (ja) 計算機システムおよび計算機システムにおけるプログラム実行監視方法
CN113832663B (zh) 控制芯片故障记录方法、装置以及控制芯片故障读取方法
CN113672306B (zh) 服务器组件自检异常恢复方法、装置、***及介质
CN106021024B (zh) 一种用户终端停止响应提示方法及用户终端
CN111488050B (zh) 一种电源监控方法、***及服务器
CN113836035B (zh) 电池管理***测试方法、装置及电子设备
CN115422091B (zh) 一种固件调试方法及装置、电子设备、存储介质
CN115576734B (zh) 一种多核异构日志存储方法和***
CN113312246B (zh) 验证环境的控制方法、装置、平台、设备和存储介质
CN113076210B (zh) 服务器故障诊断结果通知方法、***、终端及存储介质
CN109634796A (zh) 一种计算机的故障诊断方法、装置及***
CN109062718B (zh) 一种服务器及数据处理方法
CN112165407A (zh) 一种bmc与电源模块通信的检测***及方法
CN116107788B (zh) 一种i2c总线故障处理方法及装置
CN111352789B (zh) 一种用于服务器的交流循环测试方法、装置及存储介质
CN109491872B (zh) 一种内存监管方法、装置和计算机可读存储介质
CN108874570B (zh) 一种cpu程序跑飞的鉴别方法、装置及soc***
CN116560936A (zh) 异常监测方法、协处理器及计算设备
CN114253571A (zh) 一种固件刷新进程状态的判断方法与***

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