本文档用于指导如何在openUBMC上配置调速策略,完成整机的调速配置。
整体调速设计原则
调速对象关系图
CoolingArea
用于关联温度点(RequirementIdx
)、参与调速的风扇(FanIdxGroup
)和调速策略(PolicyIdxGroup
);CoolingArea
与CoolingRequirement
应一一对应;CoolingArea
只能配置到PSR中(区分单电源和双电源);CoolingRequirement
一般跟随单板所在的SR配置。
设计约束
CoolingRequirement
中的属性RequirementId
必须全局唯一,当前id支持有效16位,前8位baseid
,后8位槽位号,对于唯一性器件,RequirementId
可配置为U8数(不支持配置成同步其他组件的属性);CoolingConfig
类的InitLevelInStartup
属性限制最小值为0,最大值为100,默认为100;CoolingConfig
类的FanBoardNum
属性为含有调速风扇的风扇板个数,多风扇板机型需配置,不配置时默认值为1;- 一个
CoolingPolicy
对象代表一条环温曲线,每个温度点可能关联0个或多个CoolingPolicy
对象,取计算出的转速最大值下发,删除CoolingPolicy
需要在对应CoolingArea
的PolicyIdxGroup
中删除PolicyIdx
; - 线性调速策略温度区间为左闭右开;
ActualCondVal
与ExpCondVal
相等,若配置了PCIeCardName
、HDDBackPlaneName
、FanType
多个条件,需每个条件都满足,该Policy才生效;即环境插入了PCIeCardName
中的网卡之一(若配置了PCIeCardName
),环境加载了HDDBackPlaneName
中的硬盘背板之一(若配置了HDDBackPlaneName
),环境的风扇类型包含FanType
中的类型之一(若配置了FanType
);- 调速区域
CoolingArea
关联的风扇Id列表FanIdxGroup
中,风扇Id必须按数字由小到大顺序配置。
MDS类与属性配置
CoolingConfig
类配置
CoolingConfig
用于承载cooling
模块全局配置,包含风扇转速设置范围、BMC启动初始转速等。
CoolingConfig
属性说明
属性 | 类型 | 取值范围 | 说明 |
---|---|---|---|
SmartCoolingState | String | "Enabled" "Disabled" | 智能调速使能状态,“Enabled”表示使能,“Disabled”表示不使能 |
SmartCoolingMode | String | "EnergySaving" "LowNoise" "HighPerformance" "Custom" "LiquidCooling" | 智能调速模式,未配置时默认为"EnergySaving" |
LevelPercentRange | U8[] | U8[] | 手动设置转速级别(百分比)允许的范围 |
InitLevelInStartup | U8 | [0,100] | 初始转速百分比(BMC复位过程到pid接管前下发转速),默认值为100,限制最小值为0,最大值为100 |
FanBoardNum | U8 | [0,255] | 含有调速风扇的风扇板个数(多风扇板机型需要配置,默认值为1) |
CoolingRequirement
类配置
一个温度点对应一个CoolingRequirement
对象,用于关联硬件温度和配置目标调速策略。
CoolingRequirement
属性说明
属性 | 类型 | 取值范围 | 说明 |
---|---|---|---|
RequirementId | U64 | U64 | 目标调速策略Id,id必须全局唯一,当前id支持有效16位,前8位baseid,后8位槽位号,对于唯一性器件,RequirementId可以配置为U8数(不支持配置成同步其他组件的属性) |
TemperatureType | U32 | U32 | 温度点类型(具体查看下面表格中目标调速类型定义),默认值为4294967295,TemperatureType与目标温度调速类型对照如下: 1 Cpu 2 Outlet 3 Disk 4 Memory 5 PCH 6 VRD 7 VDDQ 8 NPUHb 9 NPUAiCore 10 NPUBoard 11 Inlet 12 SoCBoardOutlet 13 SoCBoardInlet 4294967295 InvalidType |
MonitoringStatus | U8 | U8 | 温度点状态,用于异常调速,0正常,1异常 |
MonitoringValue | Double | Double | 温度点值,关联硬件(注:不可关联传感器Reading值) |
FailedValue | U64 | U64 | 温度点状态异常时,如果配置了该值,则触发异常调速,将风扇转速百分比设为FailedValue,未配置代表温度点异常时不触发异常调速 |
BackupRequirementIdx | U64 | U64 | 备用温度点索引 |
TargetTemperatureCelsius | U8 | U8 | 当前调速目标值,默认配置EnergySaving模式的目标值 |
SmartCoolingTargetTemperature | S16[] | S16[] | 依次存储节能、高性能、低噪三种模式的目标温度值,不需要区分的话无需配置 |
MaxAllowedTemperatureCelsius | U8 | U8 | 目标调速触发满转的温度 |
CustomSupported | Boolean | true/false | 是否支持自定义调速曲线,true:支持,false:不支持 |
CustomTargetTemperatureCelsius | U8 | U8 | 用户自定义温度值,自定义模式使用该值作为目标温度值进行调速 |
TargetTemperatureRangeCelsius | U8[] | U8[] | 自定义目标温度值允许范围 |
Enabled | String | true/false | 用户自定义温度点生效条件,true有效,false无效 |
SensorName | String | String | 目标调速策略关联的传感器名称 |
CoolingPolicy
类配置
CoolingPolicy
为线性调速策略对象,一个CoolingPolicy
对象代表一条环温曲线,每个温度点可能关联0个或多个CoolingPolicy
对象,取计算出的转速最大值下发,删除CoolingPolicy
需要在对应CoolingArea
的PolicyIdxGroup
里面删除对应的PolicyIdx
。
CoolingPolicy
属性说明
属性 | 类型 | 取值范围 | 说明 |
---|---|---|---|
PolicyIdx | U64 | U64 | 线性调速策略Id,PolicyIdx必须全局唯一 |
PolicyType | U32 | 1 InletCustom 2 DiskCustom 4294967295 InvalidType | 环温调速类型,仅支持自定义的曲线可配置 |
ExpCondVal | String | "EnergySaving" "LowNoise" "HighPerformance" "Custom" "LiquidCooling" | 预期生效条件,CoolingPolicy生效前提是实际条件与期望条件一致 |
ActualCondVal | String | "EnergySaving" "LowNoise" "HighPerformance" "Custom" "LiquidCooling" | 实际生效条件 |
Hysteresis | U8 | U8 | 迟滞量,当前温度小于等于全速值(MaxAllowedTemperatureCelsius)减迟滞量时,退出满转 |
TemperatureRangeLow | S16[] | S16[] | 线性调速策略温度区间左值 |
TemperatureRangeHigh | S16[] | S16[] | 线性调速策略温度区间右值 |
SpeedRangeLow | S16[] | S16[] | 线性调速策略转速区间左值 |
SpeedRangeHigh | S16[] | S16[] | 线性调速策略转速区间右值 |
FanSpeedRangePercents | U8[] | U8[] | 自定义调速曲线风扇转速允许范围 |
PCIeCardName | String[] | String[] | 关联的PCIe卡名称该列表中,环境插入了该列表中网卡之一时,网卡条件生效 |
HDDBackPlaneName | String[] | String[] | 硬盘背板名称列表,环境有该列表中背板之一时,背板条件生效 |
FanType | String[] | String[] | 风扇类型列表,环境含有该列表中风扇类型之一时,风扇条件生效 |
CoolingArea
类配置
CoolingArea
主要用于将CoolingRequirement
、CoolingPolicy
、CoolingFan(风扇对象)对象关联起来,该配置描述了一个温度点调速需要哪几个风扇参与,也描述了温度点关联哪些环温调速曲线。
NOTE
如果新增了CoolingRequirement
,则需要增加对应的CoolingArea
对象,若CoolingArea
不参与调速,则PolicyIdxGroup
和LiquidCoolingDeviceGroup
默认配置为空即可。
这样配置的好处是:
- 显式占据了一个器件位置;
- 下发目标转速的时候会检测是否存在
CoolingArea
,如果不存在会报错(例如,借用温度点,业务代码无法知道是漏配置还是未分发),CoolingArea
必须配置在PSR。
CoolingArea
属性说明
属性 | 类型 | 取值范围 | 说明 |
---|---|---|---|
AreaId | U8 | U8 | 调速区域Id,AreaId必须全局唯一 |
RequirementIdx | U64 | U64 | 调速区域关联的目标调速策略Id,与U8的RequirementId 一致或者U16的BaseId 一致 |
PolicyIdxGroup | U64[] | U64[] | 调速区域关联的环温调速索引 |
FanIdxGroup | U8[] | U8[] | 调速区域关联的风扇Id(CoolingFan.FanId )集合,表示参与该区域调速的风扇Id |
Priority | U8 | U8 | 调速区域对象优先级,默认为1,数值越小优先级越高,AreaId重复的对象以优先级高的进行调速 |
LiquidCoolingDeviceGroup | U8[] | U8[] | 调速区域关联的液冷设备Id列表 |
AbnormalFan
类配置
AbnormalFan
为异常调速风扇对象。
AbnormalFan
属性说明
属性 | 类型 | 取值范围 | 说明 |
---|---|---|---|
Id | U32 | U32 | 异常调速风扇的Id,Id必须全局唯一 |
FanIdx | U32 | U32 | 关联的CoolingFan的索引 |
Status | String | “AbnormalRotation" "NotInPosition" | 风扇异常状态,“AbnormalRotation":转速异常,"NotInPosition":不在位 |
FanGroup | U32[] | U32[] | 触发异常后,参与异常转速调速的风扇Id |
Priority | U8 | U8 | 对象优先级,默认为1,数值越小优先级越高 |
调速配置实例
目标调速:出风口目标调速配置
SmartCooling调速模式 | 目标值 | 对应风扇序号 | 触发全速门限 | 高温告警门限 | 温度规格 | 调速迟滞量 | 告警迟滞量 | 传感器失效异常调速 | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
SmartCooling-节能模式(默认) | 50 | Fan | 60 | 75 | / | / | 2 | 80% | |||||||
SmartCooling-高性能模式 | 47 | ||||||||||||||
SmartCooling-低噪模式 | 53 |
"CoolingRequirement_1_7": {
"RequirementId": 7,
"TemperatureType": 2,//目标调速温度类型为出风口
"MonitoringStatus": "<=/Scanner_Lm75_Outlet.Status",//同步Scanner_Lm75_Outlet的状态
"MonitoringValue": "<=/Scanner_Lm75_Outlet.Value",//同步Scanner_Lm75_Outlet的值
"FailedValue": 80,//温度状态异常后的异常调速转速为80%
"TargetTemperatureCelsius": 45,//目标温度为45摄氏度
"MaxAllowedTemperatureCelsius": 60,//温度大于等于60摄氏度时触发满转
"TargetTemperatureRangeCelsius": [//自定义目标温度值允许的范围为45~60摄氏度
45,
60
],
"SmartCoolingTargetTemperature": [//节能、高性能、低噪三种模式下的目标值温度分别为50、47、53
50,
47,
53
],
"CustomSupported": true,//支持自定义调速曲线
"CustomTargetTemperatureCelsius": 52,//自定义目标调速温度值为52摄氏度
"SensorName": "#/ThresholdSensor_OutletTemp.SensorName"
},
"CoolingArea_1_7": {
"AreaId": 7,
"RequirementIdx": 7,//关联的温度点为RequirementId为7
"PolicyIdxGroup": [],
"FanIdxGroup": [//调速区域7调速的关联的风扇Id为1、2、3、4
1,
2,
3,
4
]
}
环温调速:入风口目标调速配置(CoolingRequirement_1_8
作为CoolingRequirement_1_6
的备份温度点)
环境温度(Ta)调速区间和风扇转速的对应表:
环境温度范围 | Ta<=20 | Ta=21 | Ta=22 | Ta=22 | Ta=23 | Ta=24 | Ta=25 | Ta=26 | Ta=27 | Ta=28 | Ta=29 | Ta=30 | Ta=31 | Ta=32 | Ta=33 | Ta=34 | Ta=35 | Ta=36 | Ta=37 | Ta=38 | Ta=39 | Ta=40 | Ta=41 | Ta=42 | Ta=43 | Ta=44 | Ta>=45 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
风扇转速 | 30% | 30% | 30% | 30% | 30% | 30% | 34% | 38% | 42% | 46% | 50% | 55% | 60% | 65% | 70% | 75% | 80% | 85% | 90% | 95% | 100% | 100% | 100% | 100% | 100% | 100% | 100% |
风扇转速 | 40% | 40% | 40% | 40% | 40% | 42% | 45% | 50% | 55% | 60% | 65% | 70% | 75% | 80% | 85% | 90% | 95% | 100% | 100% | 100% | 100% | 100% | 100% | 100% | 100% | 100% | 100% |
该例中,AreaId
为6的调速区域CoolingArea_1_6
关联的温度点为CoolingRequirement_1_6
,关联的调速策略为CoolingPolicy_1_6
、CoolingPolicy_1_7
,CoolingPolicy
中配置了环温调速曲线,参与CoolingArea_1_6
调速的风扇Id 为1~4。
"CoolingConfig_1": {
"SmartCoolingState": "Enabled",//智能调速状态使能
"SmartCoolingMode": "EnergySaving",//智能调速模式为节能模式
"LevelPercentRange": [//手动设置转速级别允许的范围为10%~100%
10,
100
],
"InitLevelInStartup": 100,//初始转速为100%
"DiskRowTemperatureAvailable": false
},
"CoolingRequirement_1_6": {
"RequirementId": 6,
"TemperatureType": 11,//温度类型为入风口
"MonitoringStatus": "<=/Scanner_Lm75_Inlet.Status",
"MonitoringValue": "<=/Scanner_Lm75_Inlet.Value",
"FailedValue": 80,
"BackupRequirementIdx": 8,//该温度点的备用温度点Id为8
"SensorName": "#/ThresholdSensor_InletTemp.SensorName"//该温度点关联的传感器名称
},
"CoolingArea_1_6": {
"AreaId": 6,
"RequirementIdx": 6,//该调速区域关联的温度点(CoolingRequirement)Id为6
"PolicyIdxGroup": [6, 7],//该调速区域关联的调速策略(CoolingPolicy)Id为6、7
"FanIdxGroup": [//该调速区域关联的风扇Id为1、2、3、4
1,
2,
3,
4
]
}
"CoolingPolicy_1_6": {
"PolicyIdx": 6,
"ExpCondVal": "EnergySaving",//调速策略预期生效的条件为节能模式
"ActualCondVal": "<=/CoolingConfig_1.SmartCoolingMode",//实际的模式
"Hysteresis": 1,//迟滞量为1
"TemperatureRangeLow": [//线性调速策略温度区间左值
-127, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45
],
"TemperatureRangeHigh": [//线性调速策略温度区间右值
20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 127
],
"SpeedRangeLow": [//线性调速策略转速区间左值
30, 30, 30, 30, 30, 30, 30, 34, 38, 42, 46, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100, 100, 100, 100, 100, 100
],
"SpeedRangeHigh": [//线性调速策略转速区间右值
30, 30, 30, 30, 30, 30, 30, 34, 38, 42, 46, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100, 100, 100, 100, 100, 100
]
}
"CoolingPolicy_1_7": {
"PolicyIdx": 7,
"ExpCondVal": "HighPerformance",//调速策略预期生效的条件为高性能模式
"ActualCondVal": "<=/CoolingConfig_1.SmartCoolingMode",//实际的模式
"Hysteresis": 1,
"TemperatureRangeLow": [//线性调速策略温度区间左值
-127, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45
],
"TemperatureRangeHigh": [//线性调速策略温度区间右值
20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 127
],
"SpeedRangeLow": [//线性调速策略转速区间左值
40, 40, 40, 40, 40, 40, 42, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100, 100, 100, 100, 100, 100, 100, 100, 100
],
"SpeedRangeHigh": [//线性调速策略转速区间右值
40, 40, 40, 40, 40, 40, 42, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100, 100, 100, 100, 100, 100, 100, 100, 100
]
}
以上配置中,TemperatureRangeLow
、TemperatureRangeHigh
、SpeedRangeLow
、SpeedRangeHigh
中的第i个值,可以理解为:当温度大于等于TemperatureRangeLow[i]
并且小于TemperatureRangeHigh[i]
时,风扇的转速百分比大于等于SpeedRangeLow[i]
、小于等于SpeedRangeHigh[i]
,例如 温度区间[-127, 20)
,风扇的speed范围为[30, 30]
;温度区间[20, 21)
,风扇的speed
范围为[30, 30]
。
异常调速
触发异常调速的场景包括温度点获取异常和风扇异常。温度点获取异常的场景可参考本章“目标调速”中“出风口目标调速配置”:CoolingRequirement_1_7.MonitoringStatus
变为0时,风扇不小于FailedValue
的值。
//(1)风扇1转速异常后触发异常调速,风扇1、2转速不低于80%(SpeedPercentage默认为8)
"AbnormalFan_1": {
"Id": 1,
"FanIdx": 1,//关联的异常风扇Id为1
"Status": "AbnormalRotation",//当风扇1的异常状态为转速异常时,触发该异常调速
"FanGroup": [1, 2]//参与异常调速的风扇Id为1、2,它们的转速被拉至80%
}
//(2)风扇2不在位后触发异常调速,风扇1、2转速不低于100%
"AbnormalFan_2": {
"Id": 2,
"FanIdx": 1,//关联的异常风扇Id为2
"Status": "NotInPosition",//当风扇2的异常状态为不在位时,触发该异常调速
"FanGroup": [1, 2],//参与异常调速的风扇Id为1、2,它们的转速被拉至100%
"SpeedPercentage": 100//触发该异常调速后,FanGroup关联的风扇1、2转速被拉至100%
}
温度点备份调速
这个例子中,配置温度点8(备用温度点)为温度点6(主温度点)的备份温度点,主温度点6获取失败时,采用备份温度点8的温度值作为调速温度值。
备用温度点CoolingRequirement_1_8
的RequirementId
为8,需要将主温度点CoolingRequirement_1_6
的BackupRequirementIdx
配为8,并且将CoolingRequirement_1_8
的IsBackupRequirement
配为true
:
"CoolingRequirement_1_8": {//备用温度点
"RequirementId": 8,
"MonitoringStatus": "<=/Scanner_FanBrdTemp.Status",
"MonitoringValue": "<=/Scanner_FanBrdTemp.Value",
"IsBackupRequirement": true,
"SensorName": "#/ThresholdSensor_FanBoardTemp.SensorName"
},
"CoolingArea_1_8": {
"AreaId": 8,
"RequirementIdx": 8,//该调速区域关联温度点8
"PolicyIdxGroup": [],
"FanIdxGroup":[]
}
"CoolingRequirement_1_6": {//主用温度点
"RequirementId": 6,
"TemperatureType": 11,//温度类型为进风口
"MonitoringStatus": "<=/Scanner_Lm75_Inlet.Status",
"MonitoringValue": "<=/Scanner_Lm75_Inlet.Value",
"FailedValue": 80,//温度点失效时触发异常调速,将风扇转速拉至80%
"BackupRequirementIdx": 8,//在这里配置温度点8为温度点6的备用温度点
"SensorName": "#/ThresholdSensor_InletTemp.SensorName"
},
"CoolingArea_1_6": {
"AreaId": 6,
"RequirementIdx": 6,//该调速区域关联温度点6
"PolicyIdxGroup": [],
"FanIdxGroup": [//该调速区域参与调速的风扇Id为1、2、3、4
1,
2,
3,
4
]
}
风扇组间转速差:
//以下配置中,风扇组FanGroup_1、FanGroup_2、FanGroup_3的最大转速差不超过20%,下发给psu的风扇转速为风扇组FanGroup_1、FanGroup_2、FanGroup_3的最大值加5%
"BasicCoolingConfig": {
"FanGroupSpeedDiffThresholdPercent": 20, //风扇组转速差阈值百分比,默认值表示不进行转速差计算
"PsuFanSpeedCalibration": 5 //psu风扇转速值校准,默认值表示不进行psu转速下发
},
"FanGroup_1": {
"Id": 1,
"FanSlots": [1, 2, 3, 4, 5]//风扇组1关联的风扇Id为1~5
}
"FanGroup_2": {
"Id": 2,
"FanSlots": [6, 7, 8, 9, 10]//风扇组2关联的风扇Id为6~10
}
"FanGroup_3": {
"Id": 3,
"FanSlots": [11, 12, 13, 14, 15]//风扇组3关联的风扇Id为11~15
}
带光模块卡的调速
光模块温度状态正常时,生效CoolingRequirement_1_55
和CoolingRequirement_1_56
; 光模块温度异常时,CoolingRequirement_1_56
无FailedValue
,不触发异常调速,此时生效CoolingRequirement_1_155
。
"CoolingRequirement_1_55": {
"RequirementId": "${Slot} |> expr((55 << 8) | $1)",//RequirementId根据槽位号进行偏移
"Description": "XXX卡温度调速",
"MonitoringStatus": "<=/Retimer_XX_Obj_0.TemperatureCelsius |> expr($1 >= 255 ? 1 : 0)",
"MonitoringValue": "<=/Retimer_XX_Obj_0.TemperatureCelsius",
"FailedValue": 80,//温度点状态异常时,触发异常调速,将风扇转速拉至80%
"TargetTemperatureCelsius": 90,
"MaxAllowedTemperatureCelsius": 100,
"TargetTemperatureRangeCelsius": [],
"ThresholdValue": [],
"AlarmSpeed": [],
"SmartCoolingTargetTemperature": [],
"CustomSupported": false,
"CustomTargetTemperatureCelsius": 255,
"Enabled": "<=/CoolingRequirement_1_56.MonitoringStatus |> expr($1 == 0 ? true : false)",
"SensorName": "#/ThresholdSensor_XX.SensorName"
},
"CoolingRequirement_1_155": {
"RequirementId": "${Slot} |> expr((155 << 8) | $1)",
"Description": "XXX卡温度(光模块异常)调速",
"MonitoringStatus": "<=/Retimer_XX_Obj_0.TemperatureCelsius |> expr($1 >= 255 ? 1 : 0)",
"MonitoringValue": "<=/Retimer_XX_Obj_0.TemperatureCelsius",
"TargetTemperatureCelsius": 80,
"MaxAllowedTemperatureCelsius": 100,
"TargetTemperatureRangeCelsius": [],
"ThresholdValue": [],
"AlarmSpeed": [],
"SmartCoolingTargetTemperature": [],
"CustomSupported": false,
"CustomTargetTemperatureCelsius": 255,
"Enabled": "<=/CoolingRequirement_1_56.MonitoringStatus |> expr($1 ~= 0 ? true : false)",
"SensorName": "#/ThresholdSensor_XX.SensorName"
},
"CoolingRequirement_1_56": {//未配置FailedValue,该温度点状态异常时,不触发异常调速
"RequirementId": "${Slot} |> expr((56 << 8) | $1)",
"Description": "XXX卡光模块温度调速",
"MonitoringStatus": "<=/OpticalModule_1.TemperatureCelsius |> expr(($1 == 16384) ? 0 : ($1 >= 255 ? 1 : 0))",
"MonitoringValue": "<=/OpticalModule_1.TemperatureCelsius",
"TargetTemperatureCelsius": 62,
"MaxAllowedTemperatureCelsius": 68,
"TargetTemperatureRangeCelsius": [],
"ThresholdValue": [],
"AlarmSpeed": [],
"SmartCoolingTargetTemperature": [],
"CustomSupported": false,
"CustomTargetTemperatureCelsius": 255
}
多nic卡,多硬盘调速配置
当有多个对象时,需要对RequirementId
根据槽位号进行偏移
"CoolingRequirement_1_61": {
"RequirementId": "${Slot} |> expr((61 << 8) | $1)",//RequirementId需要根据槽位号进行偏移
"MonitoringStatus": "<=/Scanner_XX.Value |> expr($1 >= 255 ? 1 : 0)",
"MonitoringValue": "<=/Scanner_XX.Value",
"FailedValue": 80,
"TargetTemperatureCelsius": 44,
"MaxAllowedTemperatureCelsius": 58,
"TargetTemperatureRangeCelsius": [],
"ThresholdValue": [],
"AlarmSpeed": [],
"Enabled": "<=/Drive_1.TemperatureCelsius;<=/Drive_2.TemperatureCelsius |> expr($1 + $2 >= 510 ? 1 : 0)",
"SensorName": "#/ThresholdSensor_XX.SensorName"
},
"CoolingArea_1_61": {
"AreaId": 61,
"RequirementIdx": 61,
"PolicyIdxGroup": [],
"FanIdxGroup": [
1,
2,
3,
4
]
}
standby调速配置
standby调速,配置ActiveInStandby
属性为True
"CoolingRequirement_1_2": {
"RequirementId": 2,
"Description": "xxx",
"MonitoringStatus": "<=/DPUCard_1.Inlet1TemperatureCelsius |> expr(($1 == 32767) ? 1 : 0)",
"MonitoringValue": "<=/DPUCard_1.Inlet1TemperatureCelsius |> expr(($1 == 0 || $1 > 200) ? 40 : ($1 & 255))",
"FailedValue": 80,
"TargetTemperatureCelsius": 55,
"MaxAllowedTemperatureCelsius": 65,
"ActiveInStandby": true,//ActiveInStandby配置为true表示支持standby调速时
"SensorName": "#/ThresholdSensor_XX.SensorName"
},
"CoolingArea_1_2": {
"AreaId": 2,
"RequirementIdx": 2,
"PolicyIdxGroup": [],
"FanIdxGroup": [
1,
2,
3,
4
]
}
带泵机型仅有泵环温曲线调速配置
"CoolingRequirement_Pump_80": {
"RequirementId": 80,
"MonitoringStatus": "<=/Scanner_Lm75_Inlet.Status",
"MonitoringValue": "<=/Scanner_Lm75_Inlet.Value",
"TargetTemperatureCelsius": 80, //一个极大值,进风口温度无法达到的值,使得目标调速计算的转速为最低
"MaxAllowedTemperatureCelsius": 100, //温度到达100摄氏度后会触发风扇满转
"FailedValue": 100,
"CoolingMedium": "Liquid"//调速中介为液冷
},
"CoolingArea_Pump_1_80": {
"AreaId": 80,
"RequirementIdx": 80,
"PolicyIdxGroup": [80],
"LiquidCoolingDeviceGroup": [//该调速区域关联的泵Id为1、2
1,
2
]
},
"CoolingPolicy_Pump_1_80": {
"PolicyIdx": 80,
"CoolingMedium": "Liquid",//调速中介为液冷
"TemperatureRangeLow": [-127, 30],
"TemperatureRangeHigh": [30, 127],
"SpeedRangeLow": [50, 100],
"SpeedRangeHigh": [50, 100]
}