简介本资源是力控热网SCADA版监控组态软件的专题技术文档面向供热行业自控工程师、热网项目设计人员及从事SCADA组态开发的技术人员。内容围绕热网行业自动化改造与信息化建设展开介绍了MSHN热网监控系统的设计原则与关键技术包括基于.netXML的分布式实时数据库、软总线与调度模型技术、实时/历史数据库pSpace、通讯协议转发机制及动态界面组态方式等并涉及换热站无人值守与集中供热节能运行的工程背景。该资料有助于读者理解热网监控软件的架构思路和组态选型要点。资源共1个文件为PDF格式压缩包大小约12KB属于精炼的技术文献。目前已有145人学习适合作为热网SCADA方案设计、组态软件选型或行业技术调研的参考资料。1. 力控热网SCADA版监控组态软件一张监控大屏背后的采集链路与岗位分工力控热网SCADA版监控组态软件简称里带着“热网”两个字指的不是通用组态软件而是力控为集中供热行业裁剪出来的上位机平台。做热力公司和换热站改造的人大部分都见过它的运行界面一堆换热站图标排在地图上点进去是二次供水温度、一次侧阀门开度、循环泵频率、累计热量这些实时数据。它要解决的是几十个甚至上百个换热站“平时没人管、出事不知道”的困境用一套组态画面把分散在现场的PLC、仪表和调度中心串起来让值班人员能在监控屏前完成巡检、报警确认和远程调节。适合谁读呢一类是供热公司搞自动化运维的工程师另一类是给换热站做配套的电控/系统集成商。你不需要从头写采集服务也不用搭独立的前端界面力控提供了一套能直接组态的开发环境和运行环境。这篇按照我做这类项目时的习惯把架构、组态流程、参数设置和排障经验串起来讲。2. 热网SCADA的系统架构与数据流从换热站PLC到调度中心要过几道门2.1 换热站怎么把分散的现场信号送进上位机集中供热系统通常分三块热源厂、一次管网、换热站。换热站里有一级网供水/回水、二级网供水/回水板式换热器、循环泵、补水泵、电动调节阀和各类变送器。站内一般有一台PLC做就地逻辑控制和联锁保护比如补水泵低液位启停、循环泵故障切换、一次网超温关阀。力控这类SCADA平台做的事情是把每座站的PLC数据实时收上来同时把调度指令写回去。常见的数据链路是温度变送器、压力变送器和电磁流量计先把物理量变成4-20mA信号接入PLC的模拟量模块PLC内部再做工程量换算把寄存区的数值更新力控的IO采集服务通过太网口或串口与PLC通信周期性读取寄存器数据进入力控实时数据库后再分发到画面显示、历史存储、报警判断和报表统计。这里面每一层都会影响最终看到的大屏数据准不准所以调试时我喜欢先从一次表端量信号再逐级往上查避免一上来就怀疑SCADA平台。换热站的通讯组网方式影响整体架构选型。现在常见做法是站内采用Modbus TCPPLC或串口服务器通过工业以太网接到调度中心老旧站点如果现场只有RS485接口就采用Modbus RTU通过光纤收发器或无线DTU汇集。下面是一张我在项目里常用作规划表的通讯参数清单层级设备类型常见协议采集周期说明现场仪表温度变送器/压力变送器4-20mA即时PLC模拟量通道决定精度热量表/流量计电磁流量计、超声波热量表Modbus RTU/TCP1-3秒注意瞬时量与累计量寄存器区分现场控制器PLC、DDCModbus TCP/OPC UA0.5-2秒大站建议独立IO通道站级网关边缘计算网关/无线DTUMQTT/Modbus TCP3-10秒无线站点需考虑流量费用上位机平台力控OPC UA/专用驱动1-5秒与站数、点位数强相关规划时有一件事需要提前说清楚一个换热站可能只有二三十个监控点但全网有上百个站点位数可能达到几千甚至上万。力控这种组态软件对点位数的支持是有上限的选型之前要先把每座站的AI/AO/DI/DO点数估出来再乘上站数留出20%的余量。曾经有项目一开始只统计了温度压力后来把循环泵电参数、水箱液位、泄漏监测都加进去点数翻了快两倍最后只能加采集服务器分摊负载。2.2 力控数据字典SCADA组态图不是画出来的是“绑”出来的很多第一次接触组态软件的人会误以为SCADA监控界面是一张纯静态的工艺图画其实它的核心是数据字典。力控里每个测点都要先建点画面上的控件再关联到这个点运行时会根据地读取到的值刷新颜色、位置、数字。用行话说就是组态图不是画出来的是绑出来的。建立数据字典前先把每座站的测点位号统一。可以参考下面的命名习惯一级网供水温度用“AI_1W_T_IN”二级网回水压力用“AI_2W_P_OUT”循环泵运行信号用“DI_PUMP_RUN”一次网电动调节阀开度给定用“AO_VALVE_OPEN”。命名规则里带上“如果是哪个站”的标签全网项目一定会在工程名称或者IO设备名称上区分站点标识。建议在设备组态时把每个站建成独立IO设备而不是把所有站的Modbus寄存器塞进同一个设备否则后期找不到异常数据来自哪个站。力控的驱动组态界面通常有“设备组态”或“IO通信”入口在里面添加设备时要填IP地址、端口号、从站地址、通信超时和重试次数。这里有一个经常被忽略的参数通信超时。默认值可能只有几百毫秒如果现场网络有轻微丢包画面上的数据就会频繁显示问号或旧值。我会把它调到1000毫秒左右重试次数设为2次既能容忍短时抖动又不会因为网络中断导致整个驱动卡住。数据点创建后在运行系统里会被实时数据库统一调度。常见的点类型有模拟输入AI、模拟输出AO、数字输入DI、数字输出DO以及计算点。计算点用来做温差、压差、累计热量或者全网平衡度分析不需要从外部读取而是由脚本实时算出。数据字典里需要为每个AI点设置量程上下限、工程单位、报警死区和报警级别这些参数在后面的监控画面和报警推送里直接生效。3. 用力控做一个换热站站控画面建点、绑库、报警和趋势一次跑通3.1 先建立数据字典一张换热站测点表定全局拿到一个换热站的组态任务我不会直接去画图而是先打开力控开发环境在“实时数据库”里把测点表建出来。以一座常规民用换热站为例至少要有以下测点位号名称类型量程工程单位报警AI_1W_T_IN一次网供水温度AI0-150℃HH/LLAI_1W_T_OUT一次网回水温度AI0-150℃H/LAI_2W_T_IN二次网供水温度AI0-130℃HH/HAI_2W_T_OUT二次网回水温度AI0-130℃LAI_2W_P_IN二次网供水压力AI0-1.6MPaH/LAI_2W_P_OUT二次网回水压力AI0-1.6MPaLAI_HEAT_FLOW瞬时热量AI0-9999kW无AI_HEAT_TOTAL累计热量AI0-999999kWh无DI_PUMP_RUN1#循环泵运行状态DI运行/停止-无AO_VALVE_OPEN一次网电动调节阀开度给定AO0-100%无每个点的量程必须与现场变送器量程一致。压力变送器如果铭牌是0-1.6MPa仪表输出4-20mA对应0-1.6MPa力控侧量程上限也应该是1.6MPa否则读出来的数值会出现系统性偏差。温度变送器量程通常选0-150℃或0-200℃按实际工况留足余量。建立完数据点还要注意AI点的采集周期设置。换热站温度的物理变化比较慢采集周期可以设1秒累计热量这类积分型数据读得太频繁意义不大设3-5秒即可但循环泵状态和故障信号这类DI点需要快速响应最好设在500毫秒以内否则泵跳闸后调度画面的状态刷新可能滞后好几秒。采集周期的设置不是在每个点上做而是在IO设备下统一配置但力控允许对个别点单独设采样周期。我习惯把重要DI点单独拉出来设成快周期其他点走默认。3.2 画面组态与动画连接把测点绑到图库控件测点库建好之后才进入画面组态。力控自带的图库里有阀门、水泵、管道、罐体、仪表控件拖到画面后双击控件打开动画连接属性把填充颜色、旋转角度、可见性、文本显示分别绑到之前建的数据点。这个步骤看着简单但最容易犯的错是把二次供水温度绑成了二次回水温度画面上数字能跳但逻辑完全不对。一个标准的换热站画面从上到下一般是管网总览、热力站工艺流程图、设备状态、实时报警区。工艺流程图中至少要把一次侧电动调节阀、板式换热器、循环泵、补水泵、水箱液位画出来。温度显示我用文本控件加单位压力显示用表盘控件泵状态用颜色变化——运行是绿色停止是灰色故障是红色闪烁。颜色变化也要绑定逻辑力控支持按值设定颜色比如数字量1对应绿色0对应灰色不需要写脚本。这里要提一下SCADA组态图的一个通用原则画面上的每一个颜色和数字变化都必须能找到对应的数据库点。如果画面上有一个阀门的开度显示是黄色的但查遍数据字典都没有这个阀门的反馈点那这个颜色很可能是手工写死的运行中永远不会变。组态验收时我会专门做一遍这种“死点”检查把画面上不再刷新的控件全部标记出来改掉。画面做完后运行系统里应该能直接看到数值在动态刷新。如果某些控件没有数值显示第一排查的是开发环境里该控件的动画连接是否关联到了正确点名第二排查的是运行环境中数据字典里该点的质量戳是否为“Good”。力控对数据质量是有标记的通讯中断时显示的是“comm error”或类似状态而不是一个旧数值这一点调试时必须利用好。3.3 报警窗口、超温联动脚本和历史趋势曲线值班室最关心的不是画面好看而是报警及时。力控的报警可以配置在数据点上也可以做单独的报警组。温度、压力这类模拟量点设上限值、上上限值、下限值、下下限值并给每个级别定义颜色和声音。我一般把上上限作为自动联动动作的触发阈值上/下限只做画面提示避免现场短暂波动就触发大批报警。报警窗口控件直接拖到画面底部选择关联的报警组即可运行。运行时值班员需要能确认、消除报警能否按站点筛选。针对“整站掉线”这种情况我另外建一个DI点作为“通讯状态点”。力控的IO设备本身能记录通讯状态但把状态映射到画面上以后站间掉线能在同一张总览图上直接以颜色变化呈现比打开设备诊断界面直观得多。如果需要做超温关阀联动力控有内置的策略脚本。新建一条策略选“数据变化”触发方式绑到二次供水温度点然后写一段简单逻辑 数据变化策略二次供水温度超过85度时关断一次网电动调节阀 说明TP2_WATER_IN为二次供水温度点VALVE_OPEN为阀门开度给定点 If TP2_WATER_IN 85 Then VALVE_OPEN 0 WriteLog(超温报警已强制关闭一次侧电动调节阀) Else VALVE_OPEN 50 End If这段脚本只是策略逻辑示意在实际项目里请按工程中安装版本的函数命名调整。逻辑并不复杂关键是执行顺序数据变化策略在数据刷新后触发触发条件判断的是当前值而不是变化率所以为了防止阀门频繁动作我会在策略里再加一段延时判断比如持续5秒超过85度才执行关阀。力控的策略编辑器里通常支持时间延时函数建议把温度异常判断做成两段式先告警计时再执行动作否则一次短暂的超温波动就会把阀门误关导致整个小区供热中断。历史趋势曲线用来回看温度、压力、热量变化。创建趋势控件后把要显示的点拖进去设置笔色和量程。趋势曲线建议区分短期和长期两个页面短期曲线显示最近1小时采样间隔短用于故障分析长期曲线显示最近7天用于观察调节效果和夜间保温趋势。运行后如果趋势曲线在某个时段变平且没有数值大概率不是数据没变化而是历史数据保存或磁盘出了问题后面避坑章节再细说。4. 热网监控参数怎么定温度、压力、流量、热量四类测点的阈值逻辑4.1 一次网与二次网的关键测点和合理区间热网SCADA监控的测点可以归纳成四类温度、压力、流量、热量。参数阈值不是拍脑袋定出来的而是根据热力站的运行调节方式和当地供热设计参数反推。一次网在换热站里通常是高温水设计供水温度由热源侧调度给定常见区间为90℃到120℃回水温度大约在40℃到70℃。二次网供水温度则取决于室外温度和末端建筑保温情况常见设计工况有85/60℃、60/45℃、50/40℃。也就是说一次网供水高报警不能设成一个全国通用的固定值而应该按本热力公司的热源运行曲线来设。我一般把一次网供水温度上上限设为设计温度加10℃再设一个“与回水温差过小”的提示温差太小说明板换可能结垢或一次侧阀门开度过小这是比单点超温更值得关注的运行异常。二次网供水温度高报需要谨慎。一个换热站如果二次供水温度反复超过设计值可能是站内循环泵频率过高也可能是一次网阀门调节失控。如果高报设得太灵敏每天中午气温升高时都可能触发报警值班员很快就麻木了。建议把二次网供水温度高报分成两级一级高报只提示延时10分钟以上再动作二级高报才联动关断一次网调节阀。这个延时逻辑在力控里用一个延时计时器脚本就能实现不必让报警系统去承担调节系统的工作。压力参数的设定也有门道。二次网供水压力一般维持在0.4-0.6MPa回水压力0.3-0.5MPa具体按照楼层高度和补水定压点设置。回水压力下限是最重要的保护参数低于定压值时说明系统失水补水泵应该启动补水为了避免补水泵频繁起停要在力控里设一个压力死区比如回水压力低于0.35MPa启泵高于0.40MPa停泵中间不停顿。流量和热量测点则更多服务于能耗分析报警意义不大但累积量的倍率设置经常出错后面专门讲。4.2 全网水力平衡监控用供回水温度和累计热量做横向对比全网水力平衡是供热行业的老大难。热源供到各个换热站的热水流量不同近端站抢水、远端站缺水结果就是近端热得开窗远端冷得投诉。SCADA平台的价值在于它能同时看到全网所有换热站的瞬时流量和回水温度这个数据密度是人工巡检完全做不到的。我习惯在力控里建一张“全网平衡对比图”以站为单位显示一次网瞬时流量、累计热量、二次供回水温度和阀门开度。重点关注的指标是一次网回水温度。如果某个站的一次回水温度明显低于全网平均值说明这个站一次侧可能堵塞、阀门开度过小或者板换一次侧进出水短路如果一次回水温度过高说明站内换热不充分。回水温度横向比较比单纯看供水温度更能暴露站内问题。另一个可用参数是“平衡度”定义是实际流量与设计流量的比值。设计流量可以通过每座站的累计热量和设计供回水温差推算出来。力控支持计算点在数据库里加一个“平衡度”计算点公式如下 全网水力平衡度计算示意 DESIGN_FLOW为设计流量ACTUAL_FLOW为当前瞬时流量 平衡度接近1代表站间分配合理 BALANCE_RATE ACTUAL_FLOW / DESIGN_FLOW * 100这里设计流量可以用累计热量除以有效运行时间获得但累计热量如果来自热量表先要把热量表折算成标准单位。常见热量表单位可能是kW、MW、GJ/h、kWh混用时计算点公式要特别小心否则全网平衡度会差出一个量级。建议统一换算成kW并且在力控的数据字典里把工程单位写明确。参数设定完之后还要安排一个定期核对机制。力控的历史报表可以按日、周、月导出每座站的平均供回水温度、总累计热量和运行时间。我一般每月做一次对比挑出累计热量异常偏低的站到现场检查阀门实际开度和仪表状态。这个动作比依赖单次实时数据的横向对比更可靠因为全网平衡不是一次性调完就结束的阀门特性会漂移末端用户散热器使用情况也在变化。5. 力控热网SCADA项目避坑与排查记录五个值班室常见的真实问题5.1 换热站掉线后画面“整站变灰”最后改成断线自动告警现象调度中心大屏上某一个换热站的所有测点突然不再刷新画面变成灰色但现场PLC运行正常触摸屏上数据也有。 原因最常见的是站内到调度中心的以太网链路中断比如工业交换机某口松动、光收发器故障、或者私有4G网络的DTU因为流量卡欠费离线。也有可能是站内PLC的以太网口被误插到办公网络IP地址冲突导致通讯中断。 解决第一步在力控运行环境里打开IO设备对应的通讯状态画面确认驱动是否处于“停止”状态第二步到现场用笔记本直连PLCping调度中心管理机IP第三步恢复网络后力控驱动会自动与PLC重新建立连接。项目上还应加上“通讯状态点”并做断线警报不是等待画面变灰才发现而是断线超过设定秒数后直接触发报警。我在每个站里都做了一个心跳DI点由PLC每个周期置反力控读取到连续几次不变就判定通讯中断比用驱动自带状态更直观。5.2 瞬时流量对不上从4-20mA信号一直查到Modbus地址现象现场触摸屏上显示瞬时流量100m³/h调度大屏上却显示50m³/h两个数值成倍关系。 原因最大的可能不在力控而在变送器量程和PLC内部的工程量换算。电磁流量计大多带量程设置如果仪表本体量程是0-200m³/h输出4-20mA对应0-200m³/hPLC侧也按0-200做换算但力控数据点量程只填了0-100就会差一倍。还有一种常见情况是读错了Modbus寄存器涡街或电磁流量计一般都有瞬时流量和累计流量两套寄存器分别是32位浮点数或两个16位寄存器组合读成不同地址自然对不上。 解决逐级核对信号链路。先用万用表在变送器输出端测电流比如100m³/h对应12mA确认现场仪表没问题再看PLC程序里模拟量转换出的工程量最后到力控数据字典里核查量程上下限和读取寄存器地址。这项工作最容易翻车的是浮点数大小端字节序有的PLC按高位在前有的低位在前力控驱动里也有字节顺序配置读出的数值明显不合理时优先查这一项。5.3 历史曲线断点回看数据缺一段现象运行一段时间后发现历史趋势曲线中间有一段是平的或者空白的那段时间现场其实一切正常。 原因先查力控历史数据保存配置确认保存方式是按周期保存还是变化保存。如果设置成“变化保存”而点位数据长时间没有超过死区变化曲线就会显示为一条直线看起来像断点。另一类原因是采集服务器磁盘空间满了或者历史数据库文件达到上限后停止写入。还有杀毒软件定时扫描任务在夜间占用CPU让采集进程短暂失去响应。 解决历史数据建议采用定时保存保存周期取5-10秒不要用变化保存否则点越多磁盘写入碎片越严重。项目上还要给历史数据目录设置磁盘空间监控空间低于10%时提前告警。如果历史数据已经很关键可以考虑定期把成熟的历史文件转存到专门存储服务器力控支持历史数据文件转储路径规划在项目初期就要想好。5.4 压力波动的报警风暴把监控中心刷成提示墙现象某个二次网压力点在设定值附近频繁波动每次波动都触发报警几分钟内报警窗口刷出几百条记录值班员不得不屏蔽这个点。 原因压力值本身受循环泵启停和补水动作影响本就在小范围波动。数据点报警死区设得太小比如±0.005MPa一个正常波动就能反复穿越上限和下限形成报警风暴。还有原因是报警触发条件没有加延时瞬时抖动即报。 解决在力控数据点上增加报警死区。模拟量报警死区的含义是只有当测量值越限超过死区范围后再恢复到限值内才认为报警解除并允许重新触发。比如压力高报为0.60MPa死区设0.02MPa则压力从0.60升到0.62以上才触发报警回落时必须低于0.58才解除这样能过滤掉大部分边界抖动。重要参数每个报警级别都设置延时报警保持2-3秒再输出对值班员来说信息更有价值。5.5 上位机重启后力控服务没有自动拉起现象调度机因为停电或Windows更新重启后画面系统没有自动运行必须等值班员手动打开客户端中途一段时间的报警完全丢失。 原因Windows服务或启动项配置不对。很多项目现在只做了客户端桌面快捷方式没有把力控的采集服务和实时数据库服务设置为开机自启或者服务启动顺序有问题采集服务先启动数据库服务还没起来导致IO驱动加载失败。 解决在项目交付时把力控的采集服务、历史服务、报警服务全部配置为Windows开机自动启动并把客户端画面加到启动文件夹。注意服务之间存在依赖关系最好的做法是写一个延迟启动脚本等待实时数据库服务完全就绪后再启动采集服务。我一般会在交付清单里明确写明“重启后需验证动作”并给值班员做一次模拟断电测试直接拔掉调度机电源再重新上电观察系统是否能自动恢复到监控状态数据采集和报警功能是否在3分钟内恢复。6. 从“看得见”到“控得住”用计算点做一个二次网气候补偿闭环监控画面能跑通只是第一步。热网SCADA真正提升运行水平的用法是在力控里做计算点和策略脚本把调度员的经验变成自动调节逻辑。最常见的做法是二次网气候补偿根据室外温度自动计算目标二次供水温度让换热站跟随天气变化调整热量输出避免每天早晚高峰期人工手调阀门。做法是在力控里增加室外温度数据点新建一个计算点用来存放目标二次供水温度公式可以是一条分段线性曲线也可以是一个简单的线性函数目标供水温度等于基础温度值减去室外温度与基准值的差乘以一个调节系数。参数需要根据本地热网实际标定先手动运行一周记录室外温度和二次供水温度的对应关系再把趋势线拟合到公式里。策略脚本每隔一分钟计算一次目标值与当前二次供水温度做比较输出PID调节指令到一次网电动调节阀。需要注意力控的PID功能不是每个版本都内置如果没有就把计算后的阀门开度给定通过AO点下发到PLC由PLC就地PID回路去闭环调节。验证这套逻辑是否有效我一般看三样东西一是二次供水温度曲线是否更平缓不再出现早晚大幅波动二是全网站点的回水温度标准差是否变小这是全网热力平衡最直观的量化指标三是值班室的报警记录里超温报警和欠温投诉是否减少。这些对比用力控的历史趋势功能就能完成不需要额外工具。现在的新项目里我也还是保留手动和自动两个模式自动模式先小范围试运行连续三天调试稳定后再全面投入使用。做热网监控这一行最容易翻车的就是前期点位规划和后期参数校验组态画面反而是最不花时间的事。希望这篇从采集架构到报警排障的笔记能帮你把力控热网SCADA项目中那些看不见的边界、参数和坑提前避开。本文还有配套的精品资源点击获取