4. 电气系统基础:厂务高低压配电系统、UPS与应急电源、关键电气参数
厂务电气系统是工厂运行的“心脏”,为水、气、化、暖通等所有子系统提供动力。本章聚焦于厂务工程师必须掌握的电气核心知识:从10kV/0.4kV高低压配电架构,到UPS与应急电源的切换逻辑,再到电压、电流、功率因数、电能质量等关键参数的监控意义。理解这些基础,才能正确解读BMS/SCADA中的电气数据,并为后续的楼宇对接调试打下根基。
4.1 厂务高低压配电系统架构
典型的厂务配电采用“高压引入-变压器降压-低压分配”三级架构。高压侧通常为10kV或35kV,低压侧为380V/220V。BMS系统主要监控低压侧的关键回路,但高压侧的综保信号(如过流、速断、零序)也需通过通讯网关接入。
核心原则: 厂务配电的可靠性直接影响生产连续性。BMS对接时,必须明确“一级负荷”(如洁净室、消防、应急照明)的供电回路,并确保双电源切换状态(ATS)被实时监控。
4.2 UPS与应急电源系统
UPS(不间断电源)和应急电源(柴油发电机/ EPS)是保障厂务系统在电网波动或断电时持续运行的关键。BMS需要监控UPS的输入/输出电压、负载率、电池状态(电压、内阻、温度)以及发电机组的启停状态和油位。
| 电源类型 |
切换时间 |
供电时长 |
BMS监控重点 |
| UPS(在线式) |
0ms(无缝切换) |
10~30分钟(电池) |
电池电压、逆变器状态、旁路状态 |
| 柴油发电机 |
10~30秒(ATS切换) |
≥24小时(油箱容量) |
油位、转速、输出电压、ATS位置 |
| EPS(应急电源) |
≤5秒(消防强制) |
≥90分钟(消防规范) |
充电器状态、逆变器输出、消防联动信号 |
调试要点: 在BMS对接UPS时,建议使用Modbus RTU协议读取UPS的详细参数(如电池剩余容量、预估后备时间),而非仅通过干接点获取“正常/故障”状态。干接点信号延迟大且信息量不足。
4.3 关键电气参数与监控意义
BMS/SCADA系统通过智能电表(如PM系列、EM系列)采集以下关键参数,用于能效分析、设备保护和故障预警。
4.3.1 电压与电流
- 电压(V): 三相电压(Ua、Ub、Uc)及线电压。电压偏差超过±10%可能导致设备损坏或停机。
- 电流(A): 三相电流(Ia、Ib、Ic)及中性线电流。电流不平衡度超过15%需排查负载分配或谐波问题。
4.3.2 功率因数与电能质量
- 功率因数(PF): 反映有功功率与视在功率的比值。厂务系统通常要求PF ≥ 0.9,过低会导致罚款并增加线路损耗。
- 谐波(THD): 电压/电流总谐波畸变率。变频器、UPS等非线性负载是主要谐波源,THD过高会引发电机发热、零线过载。
- 频率(Hz): 电网频率应为50Hz ± 0.5Hz。频率波动通常由大负荷投切或电网故障引起。
4.4 电能质量与BMS联动
电能质量(PQ)问题包括电压暂降、暂升、谐波、闪变等。BMS系统应具备以下联动能力:
- 电压暂降检测: 当电压低于额定值80%且持续超过20ms时,BMS应记录事件并触发UPS切换。
- 谐波超标告警: 当THD > 8%时,BMS发出告警,提示运维人员检查有源滤波器(APF)或调整负载。
- 功率因数补偿: 当PF < 0.9时,BMS可自动投切电容器组或通知SVG(静止无功发生器)调节。
常见误区: 很多BMS项目只采集了电压和电流,忽略了功率因数和谐波。这会导致无法发现电容器组谐振或变频器谐波污染问题,最终造成变压器过热或保护误动。建议在关键回路(如冷机、空压机)配置多功能电力仪表。
4.5 电气参数采集与BMS对接示例
以下是一个典型的Modbus RTU读取智能电表数据的代码片段(使用Python的 minimalmodbus 库),用于BMS网关采集电压、电流、功率因数:
import minimalmodbus
import time
# 初始化串口设备(电表地址为1,波特率9600)
instrument = minimalmodbus.Instrument('/dev/ttyUSB0', 1)
instrument.serial.baudrate = 9600
instrument.serial.bytesize = 8
instrument.serial.parity = 'N'
instrument.serial.stopbits = 1
instrument.serial.timeout = 1
def read_electrical_params():
try:
# 读取电压(寄存器地址0x0000,3个寄存器,格式为float)
voltage = instrument.read_float(0x0000, functioncode=3)
# 读取电流(寄存器地址0x0003,3个寄存器)
current = instrument.read_float(0x0003, functioncode=3)
# 读取功率因数(寄存器地址0x0006)
power_factor = instrument.read_float(0x0006, functioncode=3)
return voltage, current, power_factor
except Exception as e:
print(f"读取失败: {e}")
return None, None, None
# 主循环
while True:
v, i, pf = read_electrical_params()
if v is not None:
print(f"电压: {v:.1f}V, 电流: {i:.2f}A, 功率因数: {pf:.3f}")
# 此处将数据推送至BMS MQTT Broker
time.sleep(5)
调试建议: 在正式对接BMS前,先用Modbus Poll或串口调试工具验证电表的寄存器地址和数据类型(float/int/word)。不同品牌电表的寄存器映射表差异较大,务必以厂家提供的通讯协议文档为准。
4.6 本章小结