Chronaxis用户手册English
本页目录完整最小例与扩展例先准备来源和信号先判断充电预设是否符合目标各预设参数充电时段:charge_session.parameters故障前后数据:fault_context.parameters请求与响应:command_response.parameters超阈值时段:threshold_excursion.parameters各角色的要求业务声明:何时填写,如何取得各预设完整示例请求响应阈值报警和总持续时间充电活动与能量示例故障前后窗口示例

业务预设

预设就是一组已经写好的规则和计算项。你告诉它“哪条信号表示请求、哪条表示响应”,它替你生成两条上升沿规则和一组配对。角色表示信号在这组规则中的用途;role_bindings把角色名对应到你在signals中定义的别名。

预设在加载计划时展开为derived、rules、windows、sequences或calculations;运行后通过这些生成节点读取结果。先准备满足角色要求的信号,再选择预设。

本页未另行说明的秒数例子采用默认actual。配置intervals为fixed或dbc时,持续确认、等待到期、变化窗口和配对delay_ns使用所选周期依据;原时间坐标和信号到期仍按实际记录时间。先看三种时间依据对照。

一个预设填写为presets数组中的一个对象,例如本页的请求响应配置。对象里的字段完整路径例如presets[].name;下表使用相对字段名。parameters和role_bindings中的字段因预设种类而不同,后面分别列出。

字段 数据类型 必填 省略时的值 可填写的值及用途
name 字符串 是 无 命名本次预设实例,由配置作者自行取名。本预设的名字,例如cmd。生成的规则会用这个名字作前缀,例如cmd_request;不能与其他预设重复,也不能让生成的名字与已有规则、窗口、计算项重名。名字的格式见配置约定。
preset_type 字符串 是 无 选择要组合执行的业务功能。charge_session找充电时段;fault_context截取故障发生前后的数据;command_response检查请求是否得到响应;threshold_excursion统计超过阈值的时段。
version 字符串 否 "1" 选择预设的规则定义版本;根据本页支持版本填写。填"1",表示使用当前版本的预设定义。这里不是数字1。
parameters 对象 是 无 组织所选预设的业务参数;数值来自试验目标或设备协议。填写所选预设的参数,见下面四张表。不同种类的参数不能混用。
role_bindings 对象 否,阈值预设除外 空对象 指定每个业务用途使用哪条原始绑定信号;值取自signals[].name。把角色名对应到已声明的信号名。例如YAML写法request: start_button表示用start_button信号判断请求。各角色要求见后文。

建议明确写角色映射。没有写某个角色时,除阈值预设外,程序会按信号的semantic_id等声明寻找对应信号;必须恰好找到一条。找不到或找到多条都会报错,信号名相似不作为选择依据。

本页“角色要求”规定某个用途能接受什么输入。例如充电的current角色需要符合单位、正负方向和测量位置要求的电流。这些条件也称为语义契约;版本取自本页角色表。自动查找表示按这些声明选信号,不是根据CSV表头猜测含义。显式绑定只决定选谁,仍需满足角色要求。

完整最小例与扩展例

以下文件均引用随附的0~4秒合成CAN输入,包含所需来源、信号和预设,可以独立运行。先读最小例,再比较扩展例;无须复制后文的教学基础文件。命令为chronaxis run 文件名.yaml --output 结果目录。

功能 最小文件与输入 扩展文件及新增内容 核对结果
充电时段 preset-charge-minimal.yaml:模式在1~3秒为1,电流10A preset-charge-energy.yaml:增加400V电压、能量和电荷积分 活动[1,3);扩展得到8000/3600Wh和20/3600Ah
故障上下文 preset-fault-minimal.yaml:报警在1秒上升,取后1秒 preset-fault-context.yaml:改取前1秒、后2秒,并允许初始报警 最小片段[1,2),扩展[0,3);初始为false,本例开启emit_initial不增加事件
请求响应 preset-command-minimal.yaml:1秒请求、2秒响应,明确绑定角色 preset-command-automatic.yaml:增加业务声明,省略role_bindings,自动选相同信号 两者都配成一对,延迟1秒
阈值报警 preset-threshold-minimal.yaml:温度70、85、77、75、70,每秒更新 preset-threshold-delay.yaml:增加500ms进入和解除确认 最小活动[1,3);扩展在1.5秒确认进入、3.5秒确认解除,活动[1.5,3.5),两者均2秒

先准备来源和信号

保存完整基础配置;它引用合成ASC报文和DBC,并声明下列信号;分析范围取全部实际观测。这里展示的是该文件根级signals的相关条目,用于解释后续引用;不需要再粘贴一遍。不同规则的小表是各自的概念对照,共享基础数据不保证产生每张小表的全部事件;有固定预期的完整任务使用各节专用配置。

基础文件已有的信号定义摘录:用于阅读,不重复插入;完整基础文件只有一个CAN来源,无需逐项重复source。信号的frame_id和signal来自随附DBC;类型与单位自动读取。此处显式保留20s有效期,保证稀疏教学记录之间仍有效,不代表实际设备的推荐设置。

yaml
signals:                                 # 把输入字段定义为有名称、类型、单位和有效期的分析信号
  - name: temperature                    # 给分析信号取名称;后续表达式和计算通过此名称引用它
    field:                               # 指定来源中的原始字段;CSV填表头,CAN填写通道/报文ID/DBC信号名
      frame_id: '0x11d'                  # 选择包含信号的报文ID;从对应DBC取得,可写整数或支持的进制文本
      signal: Temperature                # 填写DBC中的信号名称,大小写须一致
    valid_for: 20s                       # 设置一次有效更新最多沿用多久;依据采样周期和允许数据陈旧程度填写
  - name: voltage                        # 给分析信号取名称;后续表达式和计算通过此名称引用它
    field:                               # 指定来源中的原始字段;CSV填表头,CAN填写通道/报文ID/DBC信号名
      frame_id: '0x11f'                  # 选择包含信号的报文ID;从对应DBC取得,可写整数或支持的进制文本
      signal: Voltage                    # 填写DBC中的信号名称,大小写须一致
    valid_for: 20s                       # 设置一次有效更新最多沿用多久;依据采样周期和允许数据陈旧程度填写
    measurement_location: pack_terminal  # 声明实际测点;pack_terminal表示电池包端,须依据接线和设备定义
  - name: current                        # 给分析信号取名称;后续表达式和计算通过此名称引用它
    field:                               # 指定来源中的原始字段;CSV填表头,CAN填写通道/报文ID/DBC信号名
      frame_id: '0x114'                  # 选择包含信号的报文ID;从对应DBC取得,可写整数或支持的进制文本
      signal: Current                    # 填写DBC中的信号名称,大小写须一致
    valid_for: 20s                       # 设置一次有效更新最多沿用多久;依据采样周期和允许数据陈旧程度填写
    measurement_location: pack_terminal  # 声明实际测点;pack_terminal表示电池包端,须依据接线和设备定义
    sign_convention: positive_is_charge  # 声明正负值的业务含义;positive_is_charge表示正电流为充电,不执行取反
  - name: mode                           # 给分析信号取名称;后续表达式和计算通过此名称引用它
    field:                               # 指定来源中的原始字段;CSV填表头,CAN填写通道/报文ID/DBC信号名
      frame_id: '0x118'                  # 选择包含信号的报文ID;从对应DBC取得,可写整数或支持的进制文本
      signal: Mode                       # 填写DBC中的信号名称,大小写须一致
    valid_for: 20s                       # 设置一次有效更新最多沿用多久;依据采样周期和允许数据陈旧程度填写
  - name: request                        # 给分析信号取名称;后续表达式和计算通过此名称引用它
    field:                               # 指定来源中的原始字段;CSV填表头,CAN填写通道/报文ID/DBC信号名
      frame_id: '0x11a'                  # 选择包含信号的报文ID;从对应DBC取得,可写整数或支持的进制文本
      signal: Request                    # 填写DBC中的信号名称,大小写须一致
    valid_for: 20s                       # 设置一次有效更新最多沿用多久;依据采样周期和允许数据陈旧程度填写
    choices:                             # 把输入状态代码转成分析值;每项是[输入代码,结果值],代码查设备规范
      - [0, false]
      - [1, true]
  - name: response                       # 给分析信号取名称;后续表达式和计算通过此名称引用它
    field:                               # 指定来源中的原始字段;CSV填表头,CAN填写通道/报文ID/DBC信号名
      frame_id: '0x11b'                  # 选择包含信号的报文ID;从对应DBC取得,可写整数或支持的进制文本
      signal: Response                   # 填写DBC中的信号名称,大小写须一致
    valid_for: 20s                       # 设置一次有效更新最多沿用多久;依据采样周期和允许数据陈旧程度填写
    choices:                             # 把输入状态代码转成分析值;每项是[输入代码,结果值],代码查设备规范
      - [0, false]
      - [1, true]

先判断充电预设是否符合目标

charge_session版本1采用固定的组合方式:模式等于指定编码、电流严格大于门槛,连续达到指定时长后,把条件开始到结束的整个区间作为统计范围。能量输出Wh,电量输出Ah。这些规定适合你的目标时再使用预设;名字包含“充电”不足以决定入口。

你的要求 采用的入口及原因
模式等于指定编码、电流>5A、连续>=3s,输出Wh 可用充电预设;还需有依据地声明其电流方向和测点。
电流>=10A,恰好10A也要参与 用持续条件+事件范围积分;预设的>10会排除这部分。
连续时间严格>60s,恰好60秒排除 普通规则填写minimum_duration: 60s和duration_comparison: ">";不要把60s改成60.1s来近似。
直接输出kWh,或组合多个自定义状态条件 普通规则保留你的完整条件,积分unit填kWh,不必改造预设或另写计算器。
仅按明确公式电压×电流积分,没有充电方向或测点要求 普通积分无需为套用预设额外填sign_convention或measurement_location。

例如随附能量例在1~3秒模式为1,电流10A、电压400V。预设门槛5A与普通条件mode == 1 and current > 5都选出[1,3),能量为400×10×2=8000J=2.222222…Wh。把门槛改为10A时,预设没有合格区间;普通条件current >= 10仍得到这段,若指定kWh则为0.002222222…kWh。两种数值的单位不同,不能直接比较大小。

普通规则的selection_origin默认就是onset,包含达到持续门槛之前已经连续成立的部分;显式选择confirmed才从确认时刻开始。覆盖率门槛按需求填写,不因为这是充电任务就自动补上95%。

各预设参数

充电时段:charge_session.parameters

对应完整示例。

这里的charge_session是preset_type取值,不是父键。本表字段位于presets[].parameters,例如parameters对象内填写下列参数。

字段 数据类型 必填 省略时的值 可填写的值及用途
mode_value 整数 是 无 选择哪种设备模式被视为充电;从设备状态编码表取得。表示已定义mode信号中的充电模式整数值,例如设备用1表示充电就填1。值必须能由mode信号的整数类型及有效范围表示。
current_min 数值 是 无 设置充电识别的最低电流门槛;按试验要求以安培填写。电流门槛,单位A,可为负数。判断条件是电流大于它;填5时,恰好5A不满足条件。
minimum_duration 时长字符串 是 无 设置确认充电前条件必须连续成立的时长;按业务确认要求填写。模式匹配且电流超过门槛要连续保持多久,达到后才确认充电时段。可为0,例如"3s"表示连续3秒。确认后统计范围从条件最初成立时开始,包含这3秒。
compute_energy 布尔值 否 false 控制是否生成能量积分。true增加电压×电流的功率信号和Wh能量计算项,因此还需要voltage角色;false不生成这两项。
compute_charge 布尔值 否 false 控制是否生成电荷量积分。true增加电流对时间的积分,输出Ah电荷量;false不生成电荷计算项。两个compute选项可分别设置,也可同时开启。
minimum_coverage 数值 否 0 设置结果所需的最低数据覆盖比例;按允许缺失程度填写。0到1,含两端。例如0.9要求至少90%的覆盖率;任何一项覆盖率未达到它,coverage_status就标为indeterminate。这个门槛不删除已算出的数值;是否保留部分数值由partial_policy决定。覆盖判定见统计与积分。
partial_policy 字符串 否 继承execution.partial_policy 控制数据不全时是否保留部分计算值。"report":数据缺失时可返回能够算出的部分,并标明不完整;"strict":所需计算时段内有缺失时,计算值为空。仅影响生成的能量、电荷计算项,详见数值例子。

以预设name为 "charge" 为例,两个选项分别决定是否增加以下计算:

compute_energy compute_charge 生成什么
false false 只生成charge_activity,用来找出充电时段。
true false 另生成charge_power功率信号和charge_energy能量计算项,单位Wh。
false true 另生成charge_charge电荷量指标,单位Ah。
true true 功率、能量、电荷量三项都生成。

把预设name换成其他名字,生成名称的前缀也随之改变。

故障前后数据:fault_context.parameters

对应完整示例。

这里的fault_context是preset_type取值,不是父键。本表字段位于presets[].parameters,例如parameters对象内填写下列参数。

字段 数据类型 必填 省略时的值 可填写的值及用途
pre 时长字符串 否 0s 设置每次故障发生前要取的上下文时长;按定位问题所需的历史长度填写。故障发生前保留多久,须大于等于0。例如故障在10秒,填"2s"就从8秒开始取数据。
post 时长字符串 否 0s 设置每次故障发生后要取的上下文时长;按观察恢复过程所需长度填写。故障发生后保留多久,须大于等于0。pre和post至少一项大于0;post填"3s"时,上例取到13秒之前。
emit_initial 布尔值 否 false 控制初次观测就为真是否算一次新事件。false:第一条有效记录已经是报警状态时,不认定刚发生了一次故障;true:把这个初始报警也记作故障点,并为它生成前后片段。

生成<name>_alarm上升沿规则和<name>_context窗口。相邻故障的窗口各自保留,不自动合并。

请求与响应:command_response.parameters

对应完整示例。

这里的command_response是preset_type取值,不是父键。本表字段位于presets[].parameters,例如parameters对象内填写下列参数。

字段 数据类型 必填 省略时的值 可填写的值及用途
min_delay 时长字符串 否 0s 设置协议允许的最短响应延迟;根据请求响应规范填写。响应最早可以比请求晚多久,须大于等于0;填"0s"时可在同一时刻响应。
max_delay 时长字符串 是 无 设置协议允许的最长响应延迟;根据超时要求填写。响应最迟可以比请求晚多久,不能小于min_delay;恰好在这个截止时刻响应仍算成功。
emit_initial 布尔值 否 false 控制初次观测就为真是否算一次新事件。false:请求、响应信号最初就为真时,都不因此产生事件;true:两条信号各自最初为真时也产生事件。
max_pending 整数 否 65536 限制同时等待响应的请求数量;依据最大并发请求数及资源预算填写。大于0;最多同时保存多少个尚未得到响应的请求。超过此数报错,不会丢弃最早的请求。

生成<name>_request、<name>_response上升沿和<name>_pair配对。排队、缺失数据和超时处理见请求与响应。

超阈值时段:threshold_excursion.parameters

对应完整示例。

这里的threshold_excursion是preset_type取值,不是父键。本表字段位于presets[].parameters,例如parameters对象内填写下列参数。

字段 数据类型 必填 省略时的值 可填写的值及用途
unit 字符串 否 所绑定signal角色的单位 声明阈值的单位;从所选信号unit原样取得。阈值的单位,必须与signal角色的信号单位相同。例如信号单位为degC时通常省略;需要显式说明时可填"degC"。
enter_threshold 数值 是 无 设置开始报警的高阈值;按报警规范填写,使用parameters.unit的单位。信号大于等于这个值时开始判断是否进入报警;必须大于exit_threshold。例如80。
exit_threshold 数值 是 无 设置解除报警的低阈值;按恢复规范填写,使用parameters.unit的单位。已经报警后,信号小于等于这个值时开始判断是否解除;例如75。位于75和80之间时沿用此前状态。
enter_delay 时长字符串 否 "0ns" 设置进入报警前的连续确认时间;按抗抖动要求填写。大于等于0。进入条件连续保持多久才确认报警;0表示条件成立就确认。
exit_delay 时长字符串 否 "0ns" 设置解除报警前的连续确认时间;按恢复稳定时间要求填写。大于等于0。解除条件连续保持多久才确认解除;0表示条件成立就解除。

所有数值阈值都须是有限数值,不能填NaN或Infinity。时长可使用ns/us/ms/s,例如"200ms";完整写法见配置约定。

各角色的要求

下表每个角色的值都是字符串形式的信号名,例如YAML写法current: pack_current。这些不是额外输入列,而是在选择已经声明的信号。

预设 角色字段 何时需要 信号必须满足的要求 省略映射时用于查找的semantic_id
charge_session mode 始终需要 dtype为int64或uint64,unit为"1" battery.mode
charge_session current 始终需要 dtype为float64,unit为"A",sign_convention为"positive_is_charge",measurement_location为"pack_terminal" battery.current
charge_session voltage compute_energy为true时需要;如果主动写了映射,也会检查它 dtype为float64,unit为"V",measurement_location为"pack_terminal" battery.voltage
fault_context alarm 始终需要 dtype为bool,unit为"1" fault.alarm
command_response request 始终需要 dtype为bool,unit为"1" command.request
command_response response 始终需要 dtype为bool,unit为"1" command.response
threshold_excursion signal 必须明确写映射,不能省略 dtype为int64、uint64或float64,unit等于parameters.unit 不自动查找

自动查找还要求信号的semantic_contract_version为字符串"1"。明确写映射时无需这两个semantic字段,但仍检查类型、单位等要求。所有角色信号必须能够确定正有效期,并使用backward_hold。有效期优先取显式valid_for,省略时取当前信号period或所属DBC报文周期的3倍;各角色独立计算,不借用驱动信号的周期。需要保持旧值却没有可用周期时必须补充声明。其作用是:新样本到来前沿用最近的有效值,但超过valid_for就视为缺失。质量检查会排除缺失、非有限、越界等异常样本,不能通过预设跳过这些检查。

positive_is_charge表示正电流是充电方向;pack_terminal表示在电池包端测量。如果设备用负电流表示充电,应先明确预处理成充电为正的新输入,再绑定转换后的列并声明positive_is_charge。当前公开signals的A→A、scale=-1会被单位检查拒绝;不能通过只改sign_convention反号。见换算边界。填写这些字段也不能替代实际接线、单位和标定核对。

业务声明:何时填写,如何取得

先选择使用方式,再决定是否需要semantic_id和semantic_contract_version。这些字段不能代替类型、单位、测点或正负方向的实际核对。

使用方式 semantic_id semantic_contract_version 其他要求
普通规则与计算 可省略 可省略 表达式只引用name
预设明确填写role_bindings 可省略 可省略 仍满足上表对应角色的类型、单位、方向、位置和有效期要求
预设省略某个角色,由程序查找 填上表该角色规定的字符串,如command.request 填字符串"1",来自本版角色约定 在signals中必须恰有一条候选同时满足所有条件;0条或多条合格候选均报PlanValidationError
threshold_excursion 不用它寻找角色 不用它寻找角色 signal角色必须显式指定

例如扩展请求响应配置在request信号上增加semantic_id: command.request和semantic_contract_version: "1",response信号对应填command.response和"1"。它们表示按本页第1版请求/响应角色规则使用这两条信号;不是给整个分析文件升级版本。整个文件仍写config_version: 4,预设实例省略version时采用"1",三者控制不同对象。

原始绑定signals中的可选业务文本可以省略或填null;若提供semantic_contract_version必须同时提供semantic_id。derived中的可选业务文本应省略或填非空文本,不能填null。派生结果的这些声明用于描述和追溯,不会使其成为本版预设的角色候选;显式绑定也只在signals中选择。具体派生字段见表达式。

各预设完整示例

请求响应

对应参数。

应用位置:以electrical-base.yaml为基础,在文件根级加入或替换presets,代码已包含父键。存在同名列表时按本例替换该列表,不把父键再嵌入列表项。

yaml
presets:                           # 选择预先组合好的规则与计算,并提供角色信号和业务参数
  - name: cmd                      # 给本次预设实例取唯一名称;展开的规则/计算名称使用此前缀
    role_bindings:                 # 明确指定哪条已有信号担任每个角色;角色名由预设定义
      request: request             # 为request角色选择上方已定义的分析信号名;仍须符合该角色要求
      response: response           # 为response角色选择上方已定义的分析信号名;仍须符合该角色要求
    parameters:                    # 提供本预设的业务参数;各预设支持的字段不同,不能互相套用
      max_delay: 2s                # 设置请求到响应的最大允许延迟;必须不小于最小延迟
    preset_type: command_response  # 选择业务任务;charge_session充电、fault_context报警上下文、command_response配对、threshold_excursion阈值

会生成cmd_request、cmd_response两条上升沿和cmd_pair配对。设置emit_initial=true同时允许两端初始为真时产生点;不要重复写同ID普通规则。配对结果和缺失处理见请求响应。

阈值报警和总持续时间

对应参数。

应用位置:以electrical-base.yaml为基础,在文件根级加入或替换presets,代码已包含父键。存在同名列表时按本例替换该列表,不把父键再嵌入列表项。

yaml
presets:                              # 选择预先组合好的规则与计算,并提供角色信号和业务参数
  - name: hot                         # 给本次预设实例取唯一名称;展开的规则/计算名称使用此前缀
    role_bindings:                    # 明确指定哪条已有信号担任每个角色;角色名由预设定义
      signal: temperature             # 为signal角色选择上方已定义的分析信号名;仍须符合该角色要求
    parameters:                       # 提供本预设的业务参数;各预设支持的字段不同,不能互相套用
      enter_threshold: 80             # 设置进入报警的高阈值;必须大于恢复阈值
      exit_threshold: 75              # 设置恢复的低阈值;按业务允许恢复范围填写
    preset_type: threshold_excursion  # 选择业务任务;charge_session充电、fault_context报警上下文、command_response配对、threshold_excursion阈值

固定使用“值≥80进入,值≤75退出”;进入阈值必须严格大于退出阈值。不能用此预设直接表示“过低报警”,那种需求应写自己的hysteresis条件。本例输入与分析单位都为degC。也可先在信号定义中按已知单位关系换算(例如degC转K),预设阈值再使用换算后的信号单位;阈值不能仍填摄氏温度数值。

生成hot_activity和hot_duration。逐段时长通过iter_calculations()读取;总时长在result.metadata.threshold_durations,发布后在run_manifest_<timestamp>.json的run.threshold_durations。当前公开摘要用value和unit表示时长,unit固定为s;不会同时提供纳秒字段。

观测情况 总时长结果 为什么
85持续3秒,77持续6秒,75后解除 9秒,complete 完整知道哪段在报警
两次报警2秒和4秒,中间正常且数据完整 6秒,complete 分别相加,中间不计
全程已知不报警 0秒,complete 确实观测到没有报警
最初3秒只有77,随后85持续到9秒 value=6,unit=s,status=partial;只代表已知报警部分 最初3秒不知之前是否已进入报警
只有77,始终无法确定此前状态 None,indeterminate 不能把未知当作零
没有有效观测时段,例如只有一个孤立时间点 None,no_observation 没有可统计的时间长度

例如实际观测了9秒:前3秒无法判断是否报警,后6秒确定在报警。当前公开摘要包含以下五个字段:

字段 本例的值 含义
preset_id hot 产生摘要的预设实例名称。
rule_id hot_activity 该预设生成的活动规则名称。
value 6.0 可确定的累计报警秒数;不是全9秒内的完整总时长。
unit s value的单位,固定为秒。
status partial 部分时段无法判断,读取value时必须同时保留此状态。

普通计算项的partial_policy与这个预设摘要是两个不同接口;不能把底层详细时长模型中的known_active_duration_ns等字段当作当前公开摘要字段。完整可运行例见preset-threshold-partial.yaml:第0~1秒温度77无法判断先前报警状态,第1~3秒已知报警,故value=2.0、status=partial。

等待确认也可能造成初始状态未知。例如preset-threshold-delay.yaml的exit_delay为500ms:第0秒首次看到70°C,需到0.5秒才确认未报警;第1.5~3.5秒的活动完整,逐活动时长为2s/complete,但整个会话的累计摘要为2s/partial,因为最初0.5秒尚未确认状态。两处status描述的统计范围不同,不能相互替代。

摘要描述的是实际观测到的时间。若请求到12秒但日志只到9秒,还须查看运行清单中的观测范围;这个摘要不能证明第9~12秒没有报警。

充电活动与能量示例

对应参数。

充电预设的条件是模式匹配且电流严格大于声明门槛,持续到指定时间后确认活动。例如下列片段要求模式1、电流大于5A、持续3秒,并按电压×电流计算能量:

应用位置:以electrical-base.yaml为基础,在文件根级加入或替换presets,代码已包含父键。存在同名列表时按本例替换该列表,不把父键再嵌入列表项。

yaml
presets:                         # 选择预先组合好的规则与计算,并提供角色信号和业务参数
  - name: charge                 # 给本次预设实例取唯一名称;展开的规则/计算名称使用此前缀
    role_bindings:               # 明确指定哪条已有信号担任每个角色;角色名由预设定义
      mode: mode                 # 为mode角色选择上方已定义的分析信号名;仍须符合该角色要求
      current: current           # 为current角色选择上方已定义的分析信号名;仍须符合该角色要求
      voltage: voltage           # 为voltage角色选择上方已定义的分析信号名;仍须符合该角色要求
    parameters:                  # 提供本预设的业务参数;各预设支持的字段不同,不能互相套用
      mode_value: 1              # 指定表示充电的模式代码;从设备状态编码表取得
      current_min: 5             # 设置充电判断的电流下限;按业务目标填写,单位A
      minimum_duration: 3s       # 设置充电条件连续成立多久才确认;按业务要求填写
      compute_energy: true       # 选择是否计算充电能量;true需要电压角色,false不生成能量项
    preset_type: charge_session  # 选择业务任务;charge_session充电、fault_context报警上下文、command_response配对、threshold_excursion阈值

故障前后窗口示例

对应参数。

fault_context用于查看故障刚出现前后的数据。例如故障在第10秒出现,pre填2s、post填3s,就取第8秒到第13秒的数据。日志没有覆盖完整范围时,结果会说明实际取到了哪部分。

它不会计算故障持续了多久。如果需要记录整段报警,应使用condition_duration或hysteresis规则。

完整类型、构建函数与生成字段见presets和preset_models。全部可运行输入见示例。

Chronaxis 用户手册 · 离线阅读