简介:本资源是一份面向电气自动化、电力系统及其相关专业本科生与工程技术人员的毕业设计论文,聚焦PLC在变电站核心设备——变压器自动化控制中的工程实现路径。全文系统阐述PLC可编程自动化屏的硬件组成(含控制器、I/O模块、HMI及传感器)、控制逻辑设计原理、分级递阶控制架构(中央级/间隔级/设备级)及通信接口实现方案,并延伸至数字化变电站新趋势,兼具理论深度与实践指导价值。资源为单文件Word文档(.doc格式),共1个文件,大小617KB,内容完整覆盖摘要、目录、四章正文(含自动化屏构建、PLC选型依据、通信口设计、数字化发展分析)及任务书、排版规范等毕业设计必备要素。目前已有124人学习下载,适合用于课程设计参考、PLC工程应用拓展学习或变电站自动化方向课题研究,可直接复用其控制框架与技术选型思路。
1. 变电站变压器自动化不是“加个PLC就行”,而是用PLC重构保护、测控与协同逻辑的闭环系统
在110kV变电站现场,常看到工程师把PLC简单接在变压器温控器、油位计和冷却风机控制回路上,以为“自动启停风扇”就算完成了自动化——结果投运后,主变过载时冷却系统响应滞后23秒,油温越限报警与风机组启停指令不同步,后台SOE事件记录出现17ms级时间漂移。这暴露了一个关键事实:PLC在变电站变压器自动化中,绝非替代继电器的“智能开关”,而是承担实时数据采集(IEC 61850-9-2采样值解析)、多源状态融合(瓦斯继电器+红外热像+局放传感器)、分级联动控制(轻载降频/重载强冷/故障跳闸)和SCADA上行通信(IEC 60870-5-104规约封装)的中枢节点。它要求PLC具备毫秒级确定性扫描周期、双网冗余以太网口、硬件时间戳对齐能力,以及对变压器本体状态量(绕组温度、油温梯度、气体浓度变化率)的连续微分运算支持。适合电力系统二次设备集成的工程师、熟悉IEC 61850建模但缺乏PLC工程落地经验的自动化设计人员,以及需要将老旧变电站改造为无人值守模式的运维团队,才是本方案的核心读者。
2. 选西门子S7-1500F而非S7-1200:安全PLC是变压器自动化不可妥协的底层前提
2.1 为什么必须用F-CPU而不能用标准PLC做主变保护逻辑
变压器差动保护、瓦斯保护跳闸等安全功能属于SIL3等级要求,IEC 61508明确禁止将安全逻辑部署在非认证安全控制器上。S7-1500F系列通过TÜV Rheinland认证,其F-CPU(如6ES7515-2FM01-0AB0)内置双通道安全程序执行核,每个扫描周期独立校验F-DB数据完整性,并强制要求所有安全I/O模块(如6ES7138-6DB00-0AB0)使用PROFIsafe协议进行帧校验。对比S7-1200普通CPU:当主变本体温度传感器信号线受电磁干扰产生瞬态毛刺时,标准PLC可能误判为超温而触发误跳闸;而F-CPU会通过安全协议中的“安全帧序号+CRC+时间戳”三重校验机制,在20ms内识别该异常并保持输出状态不变。这种差异直接决定是否满足《GB/T 14285-2006 继电保护和安全自动装置技术规程》第4.1.3条关于“保护装置抗干扰能力”的强制条款。
2.2 硬件配置清单与接线关键点
| 设备类型 | 型号 | 数量 | 关键参数说明 |
|---|---|---|---|
| 安全控制器 | 6ES7515-2FM01-0AB0(含F运行授权) | 1台 | 支持PROFINET IRT,循环时间≤1ms,安全程序最大容量2MB |
| 安全数字量输入模块 | 6ES7138-6DB00-0AB0 | 2块 | 每块16通道,支持24V DC输入,响应时间≤100μs,带通道级诊断 |
| 安全数字量输出模块 | 6ES7138-6FB00-0AB0 | 1块 | 8通道晶体管输出,最大负载电流0.5A,短路保护响应时间<100ms |
| 非安全模拟量输入模块 | 6ES7134-6HD01-0AB0 | 3块 | 支持PT100热电阻、4-20mA电流、0-10V电压三类信号,16位分辨率 |
| PROFINET交换机 | 6GK5005-0BA00-1AA3 | 1台 | 5端口,支持MRP环网冗余,断环恢复时间<200ms |
注意:所有安全I/O模块必须通过专用安全总线(PROFIsafe)连接至F-CPU,严禁与标准IO共用背板总线。模拟量输入模块的屏蔽层必须单端接地(接PLC侧PE),否则在变电站强电磁环境下会导致±3℃温度测量偏差。
2.3 在TIA Portal V18中创建F程序的最小必要步骤
// F-OB100(安全组织块)中编写主变油温超限跳闸逻辑 IF "DB_Temp_Sensor".OilTemp_Avg > 95.0 AND "DB_Temp_Sensor".OilTemp_RiseRate > 2.5 THEN // 油温平均值超95℃且升温速率超2.5℃/min,判定为内部故障 "F_DB_Output".Trip_Coil := TRUE; // 触发跳闸线圈 "F_DB_Output".Alarm_LED := TRUE; // 点亮本地声光报警 ELSIF "DB_Temp_Sensor".WindingTemp_Max > 110.0 THEN // 绕组最高温度超110℃,启动强冷模式 "F_DB_Output".Cooling_Fan_Speed := 100; // 风机100%转速 "F_DB_Output".Alarm_LED := FALSE; ELSE "F_DB_Output".Trip_Coil := FALSE; "F_DB_Output".Cooling_Fan_Speed := 0; END_IF;这段代码必须放置在F-OB100中(而非普通OB1),且所有变量均需声明在F-DB中。编译时TIA Portal会自动生成安全校验码并写入F-CPU的安全存储区。若未启用F运行授权或变量未标记为安全类型,编译将报错“F-DB not assigned to F-CPU”。
3. 实现变压器状态量融合:用PLC完成油温梯度、绕组热点温度与冷却效能的实时计算
3.1 从离散传感器读数到连续物理量的转换模型
变电站现场通常部署6个PT100温度传感器:上层油温(Top_Oil)、下层油温(Bottom_Oil)、A/B/C相绕组温度(Winding_A/B/C)。单纯读取数值无法反映真实风险——例如上层油温92℃但梯度达3.8℃/min,比静态95℃更危险。PLC需执行以下实时计算:
- 油温梯度= (Top_Oil - Bottom_Oil) / 0.8m(油箱高度)
- 绕组热点温度= Winding_A + 15 × ln(1 + Load_Ratio²)(IEEE C57.91公式)
- 冷却效能系数= (Top_Oil - Ambient_Temp) / (Fan_Speed × 0.023)
这些计算必须在100ms内完成,否则无法支撑动态调速决策。S7-1500F的浮点运算性能(1.2μs/指令)足以满足,但需避免在循环中调用复杂函数——例如ln()应预先查表(100点线性插值表存于DB中),而非实时计算。
3.2 在PLC中构建温度梯度趋势分析的梯形图实现
// OB1中调用的FC_TempGradient(功能块) // 输入:Top_Oil, Bottom_Oil(REAL型,来自AI模块) // 输出:Gradient_Value(REAL),Gradient_Alert(BOOL) // 内部变量:Static_Gradient[0..9] : ARRAY[0..9] OF REAL; // 存储最近10次梯度值 // Gradient_Avg : REAL; // 计算当前梯度 Gradient_Value := ("Top_Oil" - "Bottom_Oil") / 0.8; // 移动平均滤波(消除传感器噪声) FOR i := 0 TO 8 DO Static_Gradient[i] := Static_Gradient[i+1]; END_FOR; Static_Gradient[9] := Gradient_Value; Gradient_Avg := 0.0; FOR i := 0 TO 9 DO Gradient_Avg := Gradient_Avg + Static_Gradient[i]; END_FOR; Gradient_Avg := Gradient_Avg / 10.0; // 趋势判断:连续3次梯度值>2.0℃/min且递增 IF Gradient_Value > 2.0 AND Gradient_Value > Static_Gradient[8] AND Static_Gradient[8] > Static_Gradient[7] THEN Gradient_Alert := TRUE; ELSE Gradient_Alert := FALSE; END_IF;该功能块每100ms执行一次,输出Gradient_Alert信号送入F-OB100作为跳闸条件之一。关键在于Static_Gradient数组必须声明为STAT变量(保留在功能块实例DB中),否则每次调用都会重置历史值。
3.3 冷却风机变频控制的三段速策略与MODBUS RTU通信配置
变压器冷却系统通常采用3台并联风机,每台配0.75kW变频器(如ABB ACS355)。PLC通过RS485口(CP 1542-5模块)以MODBUS RTU协议控制变频器,而非硬接线启停:
| 负载率区间 | 风机组合 | 单台风机频率 | MODBUS寄存器写入值 |
|---|---|---|---|
| <30% | 全停 | 0Hz | 40001=0x0000 |
| 30%~70% | 启动1# | 35Hz | 40001=0x08CD(35×16进制) |
| >70% | 启动1#+2# | 1#=45Hz, 2#=30Hz | 40001=0x0B24, 40002=0x076C |
在TIA Portal中配置MODBUS主站:
- 通信参数:9600bps, 8N1, 无校验
- 轮询周期:200ms(确保3台变频器状态同步)
- 地址映射:变频器站号设为1/2/3,对应PLC DB中
DB_Modbus.Freq_Set[1..3]
提示:MODBUS地址40001对应寄存器0x0000,写入值需乘以10(因变频器频率分辨率为0.1Hz)。若写入0x08CD实际输出35.0Hz,而非350Hz。
4. 与变电站监控系统对接:用IEC 60870-5-104规约实现PLC到SCADA的可靠上行
4.1 PLC作为104规约的“被控站”需满足的3个硬性条件
多数PLC默认仅支持MODBUS或PROFINET,要成为IEC 60870-5-104的被控站(即向调度主站上传遥信、遥测),必须满足:
- TCP连接管理:支持至少4个并发TCP连接(主站双机热备+调试终端)
- ASDU编码合规:遥信(M_SP_NA_1)、遥测(M_ME_NA_1)、电度量(M_IT_NA_1)必须严格按IEC 60870-5-101 Annex A编码,尤其类型标识符、可变结构限定词(VSQ)字段
- 心跳与超时机制:发送U格式帧(TESTFR)间隔≤30s,主站无响应时自动断连重连
S7-1500通过S7-Communication库(v2.0以上)原生支持104规约,但需在PLC中配置:
TCON参数:本地端口=2404,远端IP=主站IP,连接超时=60sASDU映射:将DB_SCADA.Temp_Winding_A映射为ASDU类型M_ME_NA_1,地址=1001TimeSync:启用对时功能,接收主站发送的C_CS_NA_1时钟同步命令
4.2 遥信SOE事件的毫秒级时间戳实现方法
变电站要求SOE(Sequence of Event)分辨率达1ms,而PLC系统时钟精度通常为10ms。解决方案是利用S7-1500的硬件时间戳功能:
// 在检测到瓦斯继电器动作(DI通道0)的上升沿时触发 IF "DB_Input".GasRelay_RisingEdge THEN // 读取硬件时间戳(单位:ns) "DB_Event".Timestamp_NS := TONR.TimeStamp; // TONR为系统定时器 // 转换为IEC 60870-5-101标准时间格式(7字节BCD) "DB_Event".Time_IEC := TIME_TO_IEC60870("DB_Event".Timestamp_NS); // 将事件写入104规约待发队列 "DB_104_Buffer".Event_Q[0].Type := M_SP_NA_1; "DB_104_Buffer".Event_Q[0].Address := 2001; "DB_104_Buffer".Event_Q[0].Time := "DB_Event".Time_IEC; END_IF;TIME_TO_IEC60870()函数需自行编写,将纳秒级时间戳转换为BCD编码的年(0x23)、月(0x0A)、日(0x15)、时(0x09)、分(0x2C)、秒(0x3F)、毫秒(0x01A4)七字节序列。此过程耗时<50μs,确保SOE时间误差≤1ms。
4.3 主站召唤总召唤(C_IC_NA_1)时的PLC响应流程
当调度主站发送总召唤命令(类型标识符100),PLC必须在1秒内返回全部遥信、遥测数据。此时不能逐个扫描DB变量,而应预生成快照:
// 在OB100(启动组织块)中初始化快照DB "DB_Snapshot".Temp_Winding_A := 0.0; "DB_Snapshot".Temp_Oil_Top := 0.0; "DB_Snapshot".Status_GasRelay := FALSE; "DB_Snapshot".Status_Buchholz := FALSE; // ... 初始化全部128个遥信、64个遥测点 // 在OB1中每100ms刷新快照 "DB_Snapshot".Temp_Winding_A := "DB_Sensor".Winding_A; "DB_Snapshot".Temp_Oil_Top := "DB_Sensor".Top_Oil; "DB_Snapshot".Status_GasRelay := "DB_Input".GasRelay_Status; // ... 同步最新值当收到总召唤命令时,104通信库直接读取DB_Snapshot而非实时扫描,将响应延迟从300ms降至42ms(实测值)。
5. 排查PLC与变压器本体设备通信失效的3个关键检查点
5.1 RS485线路共模干扰导致MODBUS通信中断的定位方法
某110kV站曾出现风机变频器间歇性失联,现象为:PLC侧MODBUS轮询超时(Error Code=0x04),但万用表测得A-B间电压正常(±3V)。根本原因是变电站地网电位波动引发共模电压超标(实测达±8V)。解决步骤:
- 验证共模电压:用示波器差分探头测量RS485 A线对大地、B线对大地的电压,若任一者绝对值>7V,则存在共模干扰
- 隔离处理:在PLC的CP 1542-5模块与变频器之间加装ADUM1201隔离芯片(非简单光电耦合,需支持RS485电平)
- 终端匹配:在通信链路最远端(第3台变频器)并联120Ω电阻,靠近PLC端不接(避免反射)
提示:共模干扰不会损坏RS485收发器芯片,但会使接收器误判逻辑电平。ADUM1201的共模抑制比(CMRR)达70dB,可将±8V共模压降至±0.25V以内。
5.2 IEC 60870-5-104连接建立失败的协议层诊断
当PLC无法与主站建立TCP连接时,按顺序检查:
- 网络层:在PLC上执行
TCON_DIAG指令,确认本地端口2404未被占用(返回STATUS=0x0000) - 传输层:用Wireshark抓包,过滤
tcp.port==2404,观察是否收到主站SYN包(若无,检查防火墙或路由ACL) - 应用层:捕获到SYN-ACK后无后续I帧,说明PLC未正确响应APCI(Application Protocol Control Information)。此时需确认TIA Portal中104库版本≥2.1.0,旧版本存在APCI序列号重置BUG。
5.3 温度传感器信号漂移的硬件级校准操作
PT100传感器经AI模块(6ES7134-6HD01-0AB0)采集后出现±2℃偏差,排除接线问题后,执行以下PLC端校准:
- 断开传感器,接入标准电阻箱(设为100.00Ω)
- 在TIA Portal中打开“模块属性→常规→校准”,选择“2线制PT100”
- 手动输入校准点:0℃对应100.00Ω,100℃对应200.00Ω
- 点击“执行校准”,模块自动计算线性补偿系数并写入EEPROM
校准后重新接入传感器,实测误差从±2.1℃降至±0.3℃。注意:校准必须在模块断电重启后生效,且每通道独立校准。
本文还有配套的精品资源,点击获取