ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

PLC风力发电控制系统设计:状态机、Modbus与安全链

PLC风力发电控制系统设计:状态机、Modbus与安全链 简介这份资源是基于PLC的风力发电控制系统课程设计文档面向自动化、电气工程及相关专业的本科生、课程设计或毕业设计阶段的读者解决偏航、齿轮箱、液压与发电机四大子系统的控制方案设计与原理图绘制问题。压缩包内共1个doc文件约2.49MB内容为完整的设计说明书涵盖摘要、电气原理图、PLC与电动机及低压器件选型、I/O接线图以及各局部控制程序的编写与调试过程。目前已有189人学习下载。读者可据此了解以S7-200为核心的主控制器如何实时检测发电机状态、自动调整控制参数并参考其中对风与解缆、温控与压力控制、油位控制等功能的设计思路配合S7-200仿真软件的验证方法完成从选型、绘图到编程调试的完整闭环适合作为课程设计模板或工程入门的参考案例。1. 阵风来了桨叶没跟上PLC 在风力发电控制系统里到底管什么阵风从 8 m/s 拉到 15 m/s 往往只要十几秒。桨叶响应慢半拍叶轮转速就会冲过额定值机组报超速、安全链动作、液压站泄压、桨距顺桨到 90°一套动作走完停机十几分钟一天少发几千度电。这类现场问题最后都会指到同一个地方主控 PLC 在一个扫描周期里要同时完成模拟量采样、状态机推进、Modbus 轮询和故障记录哪一环慢了保护就慢一拍。基于 PLC 的风力发电控制系统设计实质是把启停、并网、变桨、偏航、保护和上位监控拆成确定性的顺序逻辑与联锁让什么时候允许做什么变成可读、可测、可复现的代码而不是靠一堆分散的继电器和时间继电器硬拼。做 PLC 课程设计、毕业设计的同学和第一次接手风机主控柜的电气工程师面对的是同一件事先想清楚控制对象和控制边界再决定用哪只 PLC、怎么写梯形图。2. 风力发电控制系统总体架构与 PLC 选型从 IO 点表倒推硬件2.1 主控、变桨、偏航三层架构怎么分风力发电控制系统的常规分法是三层。最上层是主控 PLC负责整机状态机、并网条件判断、功率给定、故障汇总和与上位机/风场环网的通讯中间层是执行机构控制变桨通常由变桨柜里的伺服驱动器或变频器带电机完成偏航由偏航电机加减速机驱动液压站负责刹车和制动器释放最下层是传感器与安全链风速仪、风向标、编码器、振动开关、急停按钮、安全继电器串在一条独立的硬回路上。分层的意义在于责任边界。主控 PLC 只发桨距角到 2°这种指令不直接去驱动电机功率器件变桨驱动器自己闭速度环和电流环出问题先报自己的故障码。偏航逻辑相对独立主控只给左偏右偏停止三个状态解缆判断放在偏航 PLC 或主控的一个独立功能块里。安全链则完全不经过 PLC 软件——PLC 读到的只是安全链是否闭合的干接点反馈急停一按硬件先切断变桨和变流器使能软件再去做顺桨和记录。把这条边界画错后面所有调试都会变成到底谁先动的扯皮。2.2 PLC 选型西门子、三菱、汇川怎么挑课程设计和实际项目选型标准不一样。学校里优先考虑编程软件好拿、资料多、仿真方便工程上优先看 IO 余量、通讯口数量、温度等级和认证。下面这张表是我一般会拿来快速过一遍的对照。平台典型型号模拟量通道通讯口适合场景西门子S7-1200 / S7-1500板载 2AI可扩 SM1231PROFINET CM1241 RS485主控、教学、多机组网西门子S7-200 SMART板载 2AI / 1AO本体 RS485 ×2小型离网机组、单机柜三菱FX5U板载 2AI / 1AO以太网 RS485教学、偏航/液压子站汇川AM 系列CODESYS依模块配置EtherCAT Modbus变桨、变流器侧控制选型时先数点。一台 2 MW 机组的主控模拟量输入大致 1220 点风速、风向、机舱振动、齿轮箱油温、轴承温度、环境温度、变流器电流等数字量输入 3050 点数字量输出 1525 点。S7-1200 的 CPU 1215C 加两三个扩展模块够用但要提前算模块供电预算和背板电流。如果还要通过 PROFINET 挂 3 台以上变流器CPU 的通讯连接资源要留余量别到最后发现连不上第 4 台。2.3 IO 点表与变量声明先列表再接线点表没排清楚就画接线图是返工率最高的做法。点表里至少要有信号名、类型、量程、PLC 地址、对应端子号、是否进安全链六列。排完之后直接把前四列落到 PLC 变量声明里组态和接线就能并行推进。// DB_WT_IO —— 主控 PLC 过程映像与标定参数示意 DATA_BLOCK DB_WT_IO { S7_Optimized_Access : TRUE } VAR // ---- 模拟量输入 ---- WindSpeed_Raw : Int; // %IW64 风速仪 4~20mA WindDir_Raw : Int; // %IW66 风向标 4~20mA GearOilTemp_Raw : Int; // %IW68 齿轮箱油温变送器 NacelleVib_Raw : Int; // %IW70 机舱振动加速度 // ---- 数字量输入 ---- SafetyChain_OK : Bool; // %I0.0 安全链闭合反馈 YawLeftLim : Bool; // %I0.1 偏航左限位 YawRightLim : Bool; // %I0.2 偏航右限位 PitchFault_1 : Bool; // %I0.3 1# 变桨故障 // ---- 数字量输出 ---- YawMotor_L : Bool; // %Q0.0 偏航电机左转 YawMotor_R : Bool; // %Q0.1 偏航电机右转 PitchBrake : Bool; // %Q0.2 变桨制动器释放 ConvEnable : Bool; // %Q0.3 变流器使能 // ---- 标定量 ---- Wind_FS : Real : 50.0; // 风速满量程 m/s Dir_FS : Real : 360.0; // 风向满量程 度 Vib_Alarm : Real : 0.25; // 振动报警阈值 g END_DATA_BLOCK这段声明的用法是所有硬件地址只在数据块里出现一次逻辑块只引用符号名。地址一旦调整改数据块即可不用去翻几十个网络。Wind_FS、Dir_FS这类标定量放在块里而不是写死在程序里现场换量程的风速仪时只改一个数。2.4 供电、接地与安全链的物理边界机舱到塔基、塔基到主控柜的模拟量线长度经常在一百米以上4-20 mA 比 0-10 V 抗干扰强得多所以远距离传感器一律走电流信号。屏蔽层单端接地在控制柜侧落地不要两头接。安全链回路用独立 24 V 电源双回路供电急停、扭缆开关、超速开关串成硬线PLC 只采集它的状态不参与它的通断。注意把安全链的中间继电器触点接到普通数字量输入模块是常见做法但这只用于状态监视。真正的停机动作必须由安全链自身切断使能回路不能靠 PLC 软件跳闸。3. 风力发电 PLC 程序怎么写状态机骨架、多重实例 FB 与梯形图硬逻辑3.1 为什么主控逻辑适合 plc 编程状态机写法用置位/复位位堆出来的主控逻辑刚写完能跑加两个工况就开始互相打架。归根结底是因为风机的运行本来就是离散状态待机、偏航对风、升速、并网发电、正常停机、安全停机、故障锁定。用 plc 编程状态机写法把一个CASE语句里的步号当作唯一真值来源每个周期只执行当前步的动作跳转条件写在步内逻辑就变得可以逐条对着工况表验证。状态号本身要留区间方便后期扩展09 是停机类1029 是启动准备3049 是并网运行8089 是停机和故障。扩展新工况时只在区间里加号不去动已有步。这个习惯在课程设计里可能看不出好处但等你要加低温待机和电网侧限功率两个模式时就知道省了多少事。3.2 一个可复用的 SCL 状态机骨架下面这段 SCL 可以直接放进 FB 里改逻辑是完整可跑的骨架没有依赖特定硬件。// FB_WT_StateMachine —— 风机主控状态机骨架SCLS7-1200/1500 FUNCTION_BLOCK WT_StateMachine VAR_INPUT StartCmd : Bool; // 启动指令面板或上位机 StopCmd : Bool; // 正常停机指令 SafetyOK : Bool; // 安全链闭合反馈1正常 n_Rotor : Real; // 叶轮转速 rpm v_Wind : Real; // 风速 m/s P_Grid : Real; // 并网有功 kW END_VAR VAR_OUTPUT PitchDemand : Real; // 桨距角给定度 YawEnable : Bool; // 偏航使能 ConvEnable : Bool; // 变流器使能 StateCode : Int; // 当前状态号送给上位机 END_VAR VAR step : Int : 0; tDelay : TON; tTimerOn : Bool; END_VAR BEGIN CASE #step OF 0: // 待机 #PitchDemand : 90.0; #YawEnable : FALSE; #ConvEnable : FALSE; #tTimerOn : FALSE; IF #SafetyOK AND #StartCmd THEN #step : 10; END_IF; 10: // 偏航对风桨距解锁 #YawEnable : TRUE; #PitchDemand : 5.0; #tTimerOn : TRUE; #tDelay(IN : #tTimerOn, PT : T#30S); IF #tDelay.Q THEN #step : 20; END_IF; IF NOT #SafetyOK THEN #step : 90; END_IF; 20: // 变流器升速 #ConvEnable : TRUE; #PitchDemand : 2.0; IF #n_Rotor 1050.0 THEN #step : 30; END_IF; // 到并网转速 IF NOT #SafetyOK THEN #step : 90; END_IF; 30: // 并网发电 IF #n_Rotor 1980.0 THEN #step : 90; END_IF; // 1.1 倍额定超速 IF #v_Wind 25.0 THEN #step : 80; END_IF; // 切出风速 IF #StopCmd OR NOT #SafetyOK THEN #step : 80; END_IF; 80: // 正常停机 #PitchDemand : 90.0; #ConvEnable : FALSE; IF #n_Rotor 30.0 THEN #step : 0; END_IF; 90: // 安全停机需手动复位 #PitchDemand : 90.0; #ConvEnable : FALSE; #YawEnable : FALSE; IF #SafetyOK AND #StartCmd FALSE THEN #step : 0; END_IF; END_CASE; #StateCode : #step; END_FUNCTION_BLOCK逻辑上CASE每周期只命中一个分支输出在每个分支里被完整赋值不会出现上一步的残留输出。参数说明n_Rotor 1050.0是并网转速阈值按机型改1980.0是超速阈值正常取额定转速的 1.1 倍25.0是切出风速超过就正常停机而不是安全停机。tDelay放在 CASE 外声明、步内调用避免定时器被反复初始化。3.3 西门子 plc 多重实例变桨三轴共用同一个 FB三支桨叶的控制逻辑完全相同差别只在轴号和实际角度反馈。这是西门子 plc 多重实例最适合的场景在调用块里声明一个 FB 类型的数组每个元素自带一份背景数据不用为每支桨建一个全局 DB。// FB_WT_Main —— 主控调用层用多重实例管三支桨 FUNCTION_BLOCK WT_Main VAR PitchAxis : ARRAY[1..3] OF FB_PitchCtrl; // 多重实例 END_VAR VAR_INPUT PitchSet : Real; // 统一桨距给定 PitchActual : ARRAY[1..3] OF Real; // 三轴实际角度反馈 END_VAR VAR_OUTPUT PitchFault : ARRAY[1..3] OF Bool; END_VAR VAR_TEMP i : Int; END_VAR BEGIN FOR #i : 1 TO 3 DO #PitchAxis[#i](Enable : TRUE, Setpoint : #PitchSet, Actual : #PitchActual[#i], AxisNo : #i, Fault #PitchFault[#i]); END_FOR; END_FUNCTION_BLOCKVAR里声明的PitchAxis就是多重实例背景数据跟着WT_Main的实例 DB 走。好处是上位机可以用一个符号访问三轴状态程序移植到 5 MW 机组时只把数组上限从 3 改成 3 就行仍是三支桨但控制参数不同要扩到更多轴也不改结构。注意VAR_TEMP里的i每周期清零不要拿它做状态保持。3.4 plc 梯形图必须保留的硬逻辑偏航解缆与急停复位状态机负责流程但有几条逻辑我建议仍然用梯形图单独写因为它们要的就是一眼看懂偏航解缆、限位互锁、急停复位。梯形图里两个限位互串切断偏航输出是最难被误改的写法。// 偏航解缆联锁指令表形式梯形图等价 LD YawLeftLim // 左限位到缆绳已接近扭死 O YawRightLim // 或右限位到 A YawRunning // 且偏航正在运行 YawCableAlarm // 触发扭缆报警上位机弹窗说明YawLeftLim和YawRightLim是常开触点正常时都断开偏航运行中任意一个闭合YawCableAlarm置位状态机收到后转入停机。急停复位则要求SafetyOK由 0 变 1 的上升沿加上手动复位按钮禁止自动复位——风场里最常见的事故复现方式就是故障消失了程序自己又启动了。4. 风速转速功率怎么进 PLC4-20mA 标定、Modbus 轮询与数据集落库4.1 4-20mA 风速风向的工程量转换与断线判定S7-1200 的模拟量输入模块把 020 mA 转成 027648 的整数4 mA 对应 5530 左右20 mA 对应 27648。低于 5530 说明断线或者低于量程这时候必须报警而不是当成 0 m/s——把断线当微风处理是导致无风也转这类诡异现象的经典原因。// FC_Analog2Eng —— 原始值转工程量带量程钳位 FUNCTION Analog2Eng : Real VAR_INPUT Raw : Int; // 模拟量原始值 EngMin : Real; // 工程量下限 EngMax : Real; // 工程量上限 RawMin : Int : 5530; // 4mA 对应原始值 RawMax : Int : 27648; // 20mA 对应原始值 END_VAR BEGIN IF #Raw 5300 THEN // 低于 4mA 约 0.2mA判断线 Analog2Eng : #EngMin; // 返回下限由调用方报警 ELSIF #Raw #RawMax THEN Analog2Eng : #EngMax; // 超量程钳位 ELSE Analog2Eng : #EngMin (#EngMax - #EngMin) * INT_TO_REAL(#Raw - #RawMin) / INT_TO_REAL(#RawMax - #RawMin); END_IF; END_FUNCTION参数说明RawMin取 5530RawMax取 27648这个比例是 4-20 mA 在 0-27648 全量程下的标准折算。风速仪量程 050 m/s 时EngMin0.0、EngMax50.0风向标 0360° 时EngMax360.0。调用方拿返回值之外还要单独读一次Raw判断线函数本身只做转换不做报警职责分开。信号传感器输出工程量程报警阈值风速4-20 mA050 m/s25 m/s 切出5300 判断线风向4-20 mA0360°变化率 30°/s 判异常齿轮箱油温4-20 mA-40150 ℃75 ℃ 报警85 ℃ 停机机舱振动4-20 mA01 g0.25 g 报警4.2 plc 建立设备通讯Modbus RTU 寄存器映射与轮询节拍风机主控下面常挂变流器、变桨驱动器、风速仪、电量表大多是 Modbus RTU。一台 plc 控制 3 台变频器这类需求靠本体 RS485 口轮询就能做关键是排好寄存器映射和轮询节拍别让通讯阻塞保护逻辑。先定寄存器表这是所有通讯代码的依据寄存器地址长度含义类型系数0x00001变流器状态字UINT16位定义0x00012有功功率INT320.1 kW0x00031直流母线电压UINT160.1 V0x00041发电机转速UINT161 rpm0x00101故障码UINT16位定义// OB1 轮询一台 PLC 依次读 3 台变流器100ms 触发一次 CASE #PollStep OF 0: MB_MASTER_1(REQ : #Trig100ms, MB_ADDR : 1, // 从站地址 MODE : 0, // 0读保持寄存器功能码 03 DATA_ADDR : 0, // 起始寄存器 DATA_LEN : 17, // 连续读 17 个字 DATA_PTR DB_Conv1.Raw); IF MB_MASTER_1.DONE THEN #PollStep : 1; ELSIF MB_MASTER_1.ERROR THEN #PollStep : 10; END_IF; 1: MB_MASTER_1(REQ : #Trig100ms, MB_ADDR : 2, MODE : 0, DATA_ADDR : 0, DATA_LEN : 17, DATA_PTR DB_Conv2.Raw); IF MB_MASTER_1.DONE THEN #PollStep : 2; ELSIF MB_MASTER_1.ERROR THEN #PollStep : 10; END_IF; 2: MB_MASTER_1(REQ : #Trig100ms, MB_ADDR : 3, MODE : 0, DATA_ADDR : 0, DATA_LEN : 17, DATA_PTR DB_Conv3.Raw); IF MB_MASTER_1.DONE THEN #PollStep : 0; ELSIF MB_MASTER_1.ERROR THEN #PollStep : 10; END_IF; 10: // 单站失败跳过并计数连续 3 次才报通讯故障 #CommFail[#PollStep] : #CommFail[#PollStep] 1; IF #CommFail[#PollStep] 3 THEN DB_WT_IO.ConvCommFault : TRUE; END_IF; #PollStep : 0; END_CASE;要点在REQ用 100 ms 脉冲而不是常 1DONE和ERROR是互斥的握手信号必须成对处理否则轮询会卡死在某一步。3 台从站、每台 17 个字、19200 bps 下一轮大概 6090 ms100 ms 节拍刚好留出余量。如果从站更多比如 plc 控制 32 台变频器就不要指望单口轮询还能保持秒级刷新——常见做法是按重要性分组只把关键几台放进快速轮询其余降速或者改用多口/以太网分摊。4.3 从采集脚本到风力发电数据集落库与字段设计课程设计常被要求存一份数据做分析。主控 PLC 侧的 10 分钟统计值通过上位机读到数据库字段设计决定了后面能不能直接做分析。用 Python 直接从 Modbus 抓一份原始数据做对照是最省事的验证手段。from pymodbus.client import ModbusSerialClient import csv, time cli ModbusSerialClient(portCOM3, baudrate19200, parityN, stopbits1, bytesize8, timeout1.0) cli.connect() fields [ts, status, power_kw, dc_bus_v, gen_rpm, fault] with open(wt_dataset.csv, w, newline) as f: w csv.DictWriter(f, fieldnamesfields) w.writeheader() for _ in range(3600): # 1 Hz 采 1 小时 rr cli.read_holding_registers(address0, count17, slave1) if rr.isError(): time.sleep(1.0) # 通讯失败跳过不写脏数据 continue r rr.registers power (r[1] 16) | r[2] # 32 位有功 if power 32767: # INT32 补码还原 power - 65536 w.writerow({ts: round(time.time(), 3), status: r[0], power_kw: round(power * 0.1, 1), dc_bus_v: round(r[3] * 0.1, 1), gen_rpm: r[4], fault: r[16]}) f.flush() time.sleep(1.0)参数说明slave1是从站地址和 PLC 轮询里用的是同一套count17对应寄存器表里 0x00000x001032 位有功耗两个字高低字顺序按设备手册先按高字在前试读出来明显不对就交换。落库的表结构建议直接对齐分析需求CREATE TABLE wt_sample ( ts INTEGER NOT NULL, -- Unix 时间戳秒 turbine_id TEXT NOT NULL, -- 机组编号多机共用一张表 wind_ms REAL, -- 风速 m/s rpm REAL, -- 叶轮转速 rpm pitch_deg REAL, -- 桨距角 度 power_kw REAL, -- 有功功率 kW state INTEGER, -- 状态机步号 fault INTEGER -- 故障码 ); CREATE INDEX idx_wt_ts ON wt_sample (turbine_id, ts);索引建在(turbine_id, ts)上按机组查时间段才不会全表扫。state字段存的是状态机步号比存一段文字描述有用得多——后面画时序图时功率曲线和状态曲线叠在一起停机原因一眼就能看出来。4.4 通讯中断时的降级策略通讯断了主控不能跟着傻等。变流器数据 3 秒收不到就把功率给定降到 0 并保持并网10 秒收不到转正常停机风速仪数据丢失直接转安全停机——没有风速输入就没法判断是否该切出继续发电风险太高。降级策略要写进状态机的跳转条件里而不是写在上位机报警里因为上位机可能同时也在断。5. 安全链与离网运行超速、振动负阻尼、负载投切的 PLC 逻辑5.1 超速保护的三级阈值与测速冗余超速是风机最致命的工况单靠一个转速信号不够。常见做法是三级软件预警1.05 倍额定、软件停机1.1 倍额定、硬件超速开关1.15 倍额定直接进安全链。软件两级用同一个编码器信号可以但硬件超速开关必须是独立测速元件不能和编码器共用一路。// FC_OverspeedGuard —— 三级超速判断 FUNCTION OverspeedGuard : Int VAR_INPUT n_Rotor : Real; // 编码器转速 n_Backup : Real; // 独立测速开关折算转速 n_Rated : Real; // 额定转速 END_VAR BEGIN IF #n_Backup #n_Rated * 1.15 THEN OverspeedGuard : 3; // 硬件级安全链已动作 ELSIF #n_Rotor #n_Rated * 1.10 THEN OverspeedGuard : 2; // 软件停机状态机跳 90 ELSIF #n_Rotor #n_Rated * 1.05 THEN OverspeedGuard : 1; // 预警限制桨距变化率 ELSE OverspeedGuard : 0; END_IF; END_FUNCTION返回 1 时不跳状态只限制变桨速率给控制系统一个纠正窗口返回 2 直接进安全停机返回 3 说明硬件已经先动了PLC 只做记录和顺桨。两路转速差超过 5% 也要报警可能是一路测速元件松了或线断了。5.2 塔架振动与控制系统负阻尼塔架前后一阶频率通常在 0.20.3 Hz这个频率上的振动如果被控制回路放大就会形成控制系统负阻尼控制器在该频段的相位滞后超过 90°输出的桨距动作不但没抑制振动反而往里注能量塔顶振幅越来越大。现场表现是风速平稳时振动报警频繁风速变化剧烈时反而不报警。保护项阈值动作说明机舱振动加速度0.25 g 持续 3 s报警并限功率检查变桨带宽机舱振动加速度0.5 g 持续 1 s安全停机可能已负阻尼发散塔架低频振动0.20.3 Hz 幅值上升降低变桨增益加陷波或降带宽处理办法通常是两条腿一是在振动信号进控制环之前加陷波滤波把 0.20.3 Hz 压掉二是把变桨控制器的带宽降到塔架频率的三分之一以下。改完必须重新做阶跃试验看塔顶位移的衰减包络是不是单调收敛。5.3 离网型风力发电系统的负载投切与保护离网型风力发电系统没有大电网做支撑功率平衡全靠自己。风机出力随风速波动负载却可能突然加减PLC 要做的是按优先级投切负载并监视母线电压。常规顺序是先看母线电压跌到下限按优先级从低到高切除负载电压回升到上限再按相反顺序恢复。控制器要带延时和回差否则会在阈值附近反复投切。负载分组一般按可中断—可延时—不可中断三档不可中断那档只能靠蓄电池或泄荷器兜。蓄电池组的充放电电流、单体电压、温度都要进 PLC充到上限就切风机或转泄荷放到下限就切非关键负载。这部分的逻辑量不小但结构上和状态机一样把优先级、延时、回差三个参数写成数据块里的常量调试时改数就行。6. 现场调试与偶发停机定位扫描周期、资源占用与趋势录波6.1 扫描周期与中断把确定性留给保护偶发停机的第一嫌疑是扫描周期。主控程序里放了大量 Modbus 轮询和浮点运算扫描周期从 8 ms 涨到 30 ms超速判断的响应就晚了二十多毫秒。做法是把保护判断放进循环中断 OB比如 10 ms 的 OB30Modbus 轮询和统计放到主循环里慢慢跑。中断里的代码只做比较、置位和写标志不做通讯、不做字符串、不做任何可能耗时的动作。// OB30 循环中断10ms 调用只放保护判断 OverspeedGuard(n_Rotor : DB_WT_IO.n_Rotor, n_Backup : DB_WT_IO.n_Backup, n_Rated : 1500.0); IF OverspeedGuard 2 THEN DB_WT_IO.TripFlag : TRUE; // 只置标志停机流程在主循环里走 END_IF;主循环每周期检查TripFlag为真则推状态机到 90。这样保护的响应时间由中断周期决定不受通讯负载影响。6.2 博途中查看 PLC 资源使用情况与趋势录波调试阶段务实地看一眼资源占用能省下大量猜测。在博途中查看 plc 资源使用情况主要关注三处在线诊断里的扫描周期当前值和最大值、存储器使用率工作存储器与装载存储器、通讯连接资源占用。扫描周期最大值如果远大于平均值通常是某个条件分支偶尔跑了重活比如通讯失败重试或者大数组的批量搬移。趋势录波是定位偶发停机的最后一环。把转速、桨距角、风速、状态号和故障码放进同一条趋势采样周期设到 100 ms 甚至 50 ms重现时按时间倒推先看状态号在哪一拍跳变再看跳变前一拍的转速和桨距是否已经异常。如果转速在跳变前 200 ms 就已经越过阈值说明是保护判断慢了回去查扫描周期如果转速正常但状态号跳了说明跳转条件写错回去查那一步的联锁。记录建议用循环缓冲只保留最近 10 分钟触发条件设为安全停机或故障码非零这样即使无人值守事后也能把现场那一拍捞出来。本文还有配套的精品资源点击获取
返回列表