ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

污水处理厂沉淀池与V型滤池PLC控制系统实战解析

2026/9/14 16:19:34 拓冰建站 浏览量
污水处理厂沉淀池与V型滤池PLC控制系统实战解析 1. 项目背景与控制需求拆解做污水处理厂自控这些年被问到最多的问题不是“怎么选CPU”而是“沉淀池和V型滤池的控制逻辑到底怎么写”。这次要分享的就是一套已经稳定运行的项目——污水处理厂沉淀池与V型滤池控制系统底层用的是西门子 S7-300上位机用的是组态王。整套系统覆盖了从初沉池刮泥、排泥到V型滤池恒水位过滤、气水反冲洗的完整控制链对正在做水处理自控、或者刚接触PLC在水厂应用的朋友来说很值得参考。先交代一下这套系统要解决的现场问题。污水处理厂里沉淀池承担的是泥水分离V型滤池承担的是深度过滤。它们的控制难点不一样沉淀池的问题是“泥”看不见摸不着排泥排多了浪费水排少了又影响出水水质V型滤池的问题则是“水”一直在变进水流量波动、滤层堵塞程度不同出水阀开度怎么调都很难稳定。如果全靠人工看液位、拧阀门现场运行人员一天能跑断腿而且水质波动大。这套系统的目标就是把这些过程自动化让操作员在中控室盯着画面就能掌握全局。这套项目适合谁来参考如果你是做市政污水、工业废水自控的工程师或者刚接触S7-300和组态王配合做水处理项目都可以仔细看一遍。我这里不打算只讲“怎么接线、怎么建工程”而是把工艺逻辑、PLC程序结构、上位机组态、常见坑全串起来讲这样你拿回去之后至少能省下一半的调试时间。1.1 工艺段的控制痛点沉淀池和V型滤池虽然是两个独立的构筑物但在控制上是一条完整的链路。沉淀池出水进入滤池滤池反冲洗时又会影响沉淀池的出水量。所以做控制方案时不能只盯着单个水池得把它们当成一个系统来考虑。沉淀池一侧核心痛点有三个。一是刮泥机运行方式连续开着费电、磨损快间歇开又怕泥沉积。二是排泥阀什么时候开、开多久开早了排出来全是水开晚了泥层太高影响沉淀效果。三是泥位计信号普遍不稳定装在池底的泥位计经常被泥沙覆盖数据跳变、漂移极其常见。V型滤池一侧痛点同样是三个。第一恒水位过滤的控制精度液位波动太大滤速不稳出水水质和滤料寿命都受影响。第二反冲洗时机怎么判断反冲早了浪费水和电反冲晚了滤层堵塞、出水不合格。第三多格滤池的反冲洗顺序和互锁绝对不能出现两格滤池同时反冲洗否则水量分配出问题严重时还会跑砂。这些痛点决定了控制系统不能只做简单的“启停控制”而是要有比较完整的工艺逻辑支撑。这也是为什么选PLC而不是普通继电器回路的原因。1.2 控制系统架构为什么是S7-300加组态王确定了要做自动化控制之后接下来就是选型。PLC我选了西门子S7-300上位机组态软件选了组态王这套组合在水处理行业里非常典型性价比高而且技术成熟。S7-300在这个项目里承担的任务很明确采集现场仪表信号液位、泥位、压力、流量、阀门状态输出控制指令阀门开闭、刮泥机启停、风机水泵启停执行闭环调节滤池液位PID和顺序控制反冲洗步序。S7-300的可靠性和抗干扰能力是经过大量工业现场验证的水厂环境潮湿、电气干扰多这种恶劣条件下PLC比仪表控制柜的方案稳得多。组态王这边承担的是人机交互、数据采集、报警和报表。它比组态软件里的国际品牌更容易上手中文界面变量管理直观而且对S7-300的支持很成熟通过以太网TCP/IP协议就能直接通讯。更重要的是组态王在中小水厂项目里应用非常广后续维护、找人接手都比冷门软件方便。这个项目用的是组态王6.55如果你要新上项目可以考虑7.5版本后文我会单独对比两者的差异。2. 从工艺到逻辑核心控制方案设计控制系统能不能好用关键看控制方案设计。这一节我会按照沉淀池和V型滤池两条线把控制逻辑的核心思路拆开讲清楚。2.1 沉淀池单元刮泥机与排泥阀怎么联动才不踩坑沉淀池我按初沉池来设计。初沉池的主要任务是去除进水中的悬浮物和部分有机物泥水分离后污泥沉到池底由刮泥机刮到泥斗再通过排泥阀排出。刮泥机的控制我采用的是“定时间歇泥位联锁”的方式。正常情况下刮泥机按设定周期运行比如每小时运行15分钟具体周期根据进水水质和实际泥量来定。但如果泥位计检测到泥位偏高则立即启动刮泥机不受定时周期限制。这样既避免了刮泥机长期运转造成的机械磨损又能应对突发的水质波动。排泥阀的控制比刮泥机复杂需要重点说明。排泥阀我建议不要单独靠时间控制而是采用“泥位优先时间校验”的双重判断逻辑。当泥位计测得泥斗泥位超过高限值时打开排泥阀开始排泥当泥位回落到低限值以下或者排泥持续时间已经超过设定上限比如20分钟则关闭排泥阀。这个“时间上限”非常重要防止泥位计故障误报导致排泥阀一直开着最后把池子里的水全排空。再一个容易被忽略的细节刮泥机和排泥阀的联锁。刮泥机没有运行到位的情况下不允许排泥阀打开。因为泥还没有刮到泥斗附近开阀排出来的基本全是水白白浪费水量。我们的做法是程序里加一个刮泥机运行确认信号刮泥机启动后延时一段时间泥从池底刮到泥斗所需时间再允许排泥。排泥阀的阀位反馈信号一定要接。不要以为电磁阀只要给电就完事了现场阀门卡涩、阀杆断裂的情况很常见没有反馈信号程序上很容易出现误判。有反馈之后可以做一个开阀超时报警开阀指令给出后30秒内没有收到开到位信号直接报故障并关闭阀门。2.2 V型滤池恒水位过滤不是简单闭环V型滤池的核心控制目标是维持滤池水位恒定。滤池进水来自上一级沉淀池的出水通常是重力流进水量受上游影响波动比较大出水通过滤后水调节阀控制。维持水位恒定的常规思路是用PID闭环调节出水调节阀的开度让液位稳定在设定值附近。但这里有一个重要的工艺背景要理解V型滤池的水位变化实际上反映的是滤层阻力变化。滤池刚反冲洗完时滤层干净阻力小同样的出水量只需要很小的水位差就能推动随着过滤时间增长滤层截留的悬浮物越来越多阻力越来越大要保持同样的出水量水位差必须增大。如果用PID硬顶着把液位维持在一个恒定值滤速就会随着滤层堵塞逐渐下降影响产水量。这个矛盾怎么解决我们的方案是正常情况下用PID调节出水阀维持液位在一个允许的小范围内波动当液位持续偏高且调节阀已经开到比较大的开度时说明滤层堵塞严重程序触发反冲洗请求。这样把恒水位控制和反冲洗判断结合在一起比单纯用“时间间隔”触发反冲洗更合理因为不同水质条件下滤层堵塞速度差异很大固定时间间隔往往导致过早或过晚反洗。PID调节的参数设定也需要注意。液位PID我采用的是纯比例加积分微分不用。原因很简单液位信号本身波动不大微分容易把仪表噪声放大导致调节阀频繁动作反而影响阀门寿命。比例带和积分时间需要在现场调一般我会从P100对应增益1.0、I60秒起步观察液位响应曲线再修正。调节阀动作也需要加一个死区液位偏差在设定值正负5毫米范围内时输出开度保持不变这样阀门不会一直微调个不停。2.3 反冲洗流程的状态机设计V型滤池反冲洗是整个项目里最考验逻辑能力的一块。反冲洗不能乱来必须严格按照工艺顺序走而且每格滤池不能同时反冲洗必须有排队机制。反冲洗流程我分成四个阶段气冲、气水联合冲、水冲、恢复过滤。以我们这套系统的设计参数为例气冲强度15到20升每平方米秒持续3分钟气水联合冲阶段气和水的强度都适当降低持续5分钟水冲阶段只用清水反冲强度稍微大一点持续5分钟。具体强度和时间需要根据滤料级配和现场调试结果调整这里给的是推荐起点值。程序实现上我强烈建议用状态机的方式而不是用简单的定时器串联。状态机的好处是每个阶段有明确的“进入条件”和“退出条件”当某个阶段的设备故障或者条件不满足时程序可以安全地停留在当前状态或者返回到安全状态不会像定时器串联那样乱了套。状态机的大致流程是这样收到反冲洗请求后先检查本格滤池是否具备反冲洗条件例如进水阀已关、出水阀已关、水位已降到安全位置条件满足后关闭进水阀和出水阀开启反冲排水阀然后启动反冲洗风机进行气冲气冲时间到后启动反冲洗水泵进入气水联合冲联合冲时间到后停风机进入水冲水冲时间到后停水泵关闭排水阀然后开启进水阀和出水阀恢复过滤状态。多格滤池的反冲洗排队逻辑也要放在PLC里。每格滤池的反冲洗请求信号汇总到排队程序里每次只允许一格滤池进入反冲洗状态其他滤池的反冲洗请求保持等待。我们采用的是按“请求先后顺序”排队而不是按“池号顺序”排队这样更公平也避免某一格滤池长期得不到反冲洗。3. S7-300硬件配置与程序实现细节3.1 I/O点表与模块选型参考硬件选型之前先做I/O点统计。这是整个项目里最基础、也最不能省的一步。我以这个项目为例列出大概的点数需求供你参考。沉淀池这一侧AI信号有泥位计、沉淀池液位计DI信号有刮泥机运行反馈、故障反馈、排泥阀开到位、关到位DO信号有刮泥机启动、排泥阀开阀、排泥阀关阀。V型滤池这一侧按4格滤池计算每格滤池的AI信号有液位计、出水阀开度反馈、气冲和水冲的气体流量/水流量信号DI信号有阀门开到位、关到位、风机和水泵的运行反馈DO信号有阀门开闭控制、风机和水泵启停。加上公共的进水流量、出水浊度、反冲洗水压力等信号整体规模大约是AI 32点、DI 64点、DO 48点、AO 8点。这样的规模选择CPU 315-2PN/DP足够不仅PN口可以直接和组态王走以太网通讯还保留了DP口可以扩展远程I/O。数字量输入模块选用6ES7 321数字量输出模块选用6ES7 322模拟量输入模块选用6ES7 3318通道支持4到20mA信号模拟量输出模块选用6ES7 332。如果后续有扩展需求可以加一个ET200M远程站但这套系统I/O不算密集直接全部放在主站PLC机架上即可。模块选型需要注意几个细节。模拟量输入模块的量程卡位置要拨对4到20mA信号对应量程卡的“C”位置很多现场问题都是量程卡拨错导致的。另外模拟量输入模块的通道地址和硬件组态地址要对上否则程序读上来的数据会串位。DO模块的输出类型选择上控制阀门建议用继电器输出或者带中间继电器的模块直接用晶体管输出驱动电磁阀容易烧点。3.2 程序结构OB、FB、FC怎么划分S7-300的程序结构直接决定后续调试和维护的难度。我的习惯是OB1做主循环负责调用各功能块OB35做定时中断用来执行PID调节OB82处理诊断中断方便排查模块故障OB100在启动时做初始化。沉淀池和滤池的控制逻辑建议封装成FB功能块。例如创建一个FB100“沉淀池控制”FB200“滤池恒水位控制”FB300“滤池反冲洗顺序控制”。每个FB都用自己的背景数据块DB这样程序结构清晰互相之间不干扰调试时可以单独监控某一个FB的内部变量。这里有一个工程上的重要经验反冲洗顺序控制这类复杂逻辑FB内部变量的定义一定要规范。建议把反冲洗状态编码0表示过滤、1表示气冲、2表示气水联合冲、3表示水冲、4表示恢复、各阶段计时器、设备组合输出、故障标志位等都定义成FB的静态变量STAT这样在监控调试时能非常直观地看到状态机的当前状态和跳转条件。举个简化版的反冲洗状态机SCL代码片段方便理解CASE step OF 0: // 过滤状态 IF backwash_request THEN close_inlet_valve; // 关闭进水阀 close_outlet_valve; // 关闭出水阀 step : 10; END_IF; 10: // 等待阀门关闭完成 IF inlet_valve_closed AND outlet_valve_closed THEN open_drain_valve; // 开启反冲排水阀 step : 20; END_IF; 20: // 气冲阶段 blower_start : TRUE; timer_on(timer_air, 180); // 气冲3分钟 IF timer_air_done THEN blower_start : FALSE; pump_start : TRUE; step : 30; END_IF; 30: // 气水联合冲 timer_on(timer_air_water, 300); // 联合冲5分钟 IF timer_air_water_done THEN blower_start : FALSE; step : 40; END_IF; 40: // 水冲阶段 timer_on(timer_water, 300); // 水冲5分钟 IF timer_water_done THEN pump_start : FALSE; close_drain_valve; step : 50; END_IF; 50: // 恢复过滤 open_inlet_valve; open_outlet_valve; FORCE_FAULT : FALSE; step : 0; END_CASE;实际项目里每个状态都要加报警和超时保护。比如在“等待阀门关闭完成”状态如果60秒内阀门没有关到位程序要报故障并停止反冲洗流程不能一直傻等。3.3 模拟量处理与PID调节实例模拟量处理是所有水处理项目里绕不开的环节。4到20mA信号进入S7-300的模拟量模块之后会被转换成0到27648的整数程序里需要先换算成工程量。可以用系统自带的FC105SCALE功能但要特别注意上下限的设置。例如液位计量程是0到5米4到20mA对应0到5米FC105的HI_LIM设为5.0LO_LIM设为0.0双极性还是单极性选单极性输出就是浮点数液位值。这里有个坑现场很多液位计实际输出的不是标准的4到20mA而是有零点偏移此时直接换算出来的数值是偏高的。我的经验是调试阶段先把液位计的当前读数与现场实际液位做一次对比在程序里做PV偏置校正而不是去调整仪表本身。PID调节这一块V型滤池的液位控制可以用S7-300自带的FB41“CONT_C”。FB41的输入输出比较多我挑关键的说。设定值SP_INT输入的是浮点数液位设定值PV_IN输入的是实际液位MAN_ON代表手动/自动切换LMN_PID输出的是PID计算结果LMNR_PER是输出限幅。由于我们控制的是调节阀开度FB41的计算结果还要经过一个限幅块把0到100的开度转换成0到27648的模拟量输出值。FB41的PID参数整定我建议按这样的顺序来先设P值让液位在设定值附近有稳定的等幅波动再加I值消除静差。液位PID的积分时间如果太小容易产生震荡太大又会让液位恢复太慢。按我们的经验液位PID参数大致范围是P1到2TI30到60秒增益数值根据现场管道尺寸和阀门流量特性会有差异。整定过程中一定看着趋势曲线调不要凭感觉一次改太多参数。4. 组态王上位机的组态与数据管理4.1 与S7-300的通讯配置要点组态王连接S7-300推荐走以太网方式。前提是PLC用的是带PN口的CPU比如315-2PN/DP或者使用了CP343-1通讯模块。组态王安装目录里有驱动帮助文档选“西门子 S7-300 TCP”驱动然后按下面的流程配置。第一步在Step 7项目里给CPU分配一个固定的IP地址比如192.168.0.10子网掩码255.255.255.0。第二步在组态王的数据词典里新建IO变量设备选择刚才配置的S7-300驱动寄存器类型和地址按驱动说明填写。这里要特别注意组态王访问S7-300的数据通常是通过数据块DB地址或者M区地址来映射的不同驱动版本支持的寄存器方式有差异以驱动帮助文档为准。实际项目里我们约定PLC和上位机之间通过M区做“握手信号”比如M200.0作为上位机请求的数据快照触发M200.1作为PLC侧数据更新完成的确认。这样上位机读取的是一致性的快照数据避免了读取过程中数据半新半旧的问题。这个方法在少量数据通讯时特别好用逻辑简单又可靠。组态王运行起来后先在“设备”里进行通讯测试。如果通讯失败优先排查两个地方一是组态王所在电脑的IP地址和PLC是否在同一个网段二是Windows防火墙是否拦截了组态王进程。现场遇到最多的“能Ping通PLC但组态王连不上”的问题十有八九就是防火墙在作怪。4.2 画面、报警、报表的实现细节画面组态没什么高深的关键是要贴合运行人员的操作习惯。我做的画面分三层总貌画面、工艺分区画面、设备操作面板。总貌画面显示整个沉滤系统的流程图主要参数用数值框实时刷新设备颜色根据运行状态切换——运行是绿色停止是灰色故障是红色闪烁。点击沉淀池或滤池的区域可以弹到对应的分区画面。报警配置是运行人员最依赖的功能。组态王里模拟量可以设置高限、低限、高高限、低低限报警开关量可以设置变位报警。需要提示的是报警优先级要分好级别比如“排泥阀故障”“反冲洗持续超时”这类属于高优先级报警启用声音报警和弹窗“液位偏高”这类预警信号用低优先级就行只在报警列表里显示不要打扰运行人员操作。报警记录时间不对这个问题大概率出在PLC和上位机的时钟不同步或者上位机电脑的时区设置有问题。报警记录显示的“报警时间”是上位机电脑的时间不是PLC时间。所以你如果发现报警时间对不上先检查电脑时间、时区和组态王所在机器的时间同步设置。更彻底的办法是组态王画面里加一个校时按钮运行人员每天早上点一下把PLC时间和电脑时间对齐。报表我通常用组态王自带的报表系统按班次生成运行报表记录沉淀池液位、滤池液位、出水阀开度、反冲洗次数、排泥次数等关键运行数据。报表数据的准确性依赖历史数据库组态王的历史趋势配置要勾选好变量存储周期一般设成1分钟或5分钟太短会让历史数据文件膨胀得快。4.3 与MySQL数据库对接及版本差异组态王和MySQL数据库的连接实际应用场景是把关键生产数据定时写入MySQL便于后续做数据分析或者对接更上层的管理平台。采用的方案是ODBC方式。先在电脑上安装MySQL ODBC驱动然后打开ODBC数据源管理器添加一个系统DSN指向你的MySQL数据库。这里有个最容易绊倒人的坑组态王是32位软件在64位系统上必须使用32位的ODBC管理器路径在C:\Windows\SysWOW64\odbcad32.exe否则你在常规的ODBC管理器里建的数据源组态王根本看不到。数据库表和字段设计好之后在组态王里通过SQL函数操作数据SQLConnect( DeviceID, dsnwater_plant;uidroot;pwd123456;, 0 ); SQLInsert( DeviceID, 运行历史表, 液位, 阀开度, 记录时间, FLOAT, FLOAT, DATETIME ); SQLDisconnect( DeviceID );组态王脚本里定时执行这段逻辑就能把画面变量写入MySQL。用Navicat for MySQL建库建表非常方便字段类型推荐用FLOAT或DOUBLE存模拟量DATETIME存时间戳不要用VARCHAR存数字后续做统计时会很痛苦。关于组态王版本6.55和7.5我都用过。6.55稳定、占用资源低在老的工控机Windows XP或Win7 32位上运行流畅大量存量水厂项目还在用它。7.5的优势是界面更细腻支持更高分辨率的显示器变量管理和工程上传下载功能更强也能在64位系统上运行。如果你的电脑是Win10/11 64位环境建议直接用7.5省去很多兼容性折腾。但如果现场设备老旧、系统里模块复杂沿用6.55也完全够用关键是稳定。5. 现场调试常见问题与排查实录5.1 通讯中断与数据跳变排查通讯中断是现场最让人头疼的问题没有之一。有一次在调试现场组态王画面上的所有数据卡住不动了点击阀门操作没有任何响应。排查步骤我是按“从下往上”的思路来的先看PLC模块上的指示灯CPU运行灯正常亮着说明PLC没停机再看PLC的PN口通讯指示灯闪烁正常说明物理链路没问题然后用Ping命令测试工控机到PLC的IP通不通结果正常最后打开组态王的设备诊断窗口发现报“接收数据超时”。问题出在哪原来是PLC程序里某段OB35中断写得太长导致CPU循环扫描周期变长组态王请求的数据响应不过来。优化方法就是把OB35里一些非必要的中断任务挪到OB1里执行把中断时间设置从默认的100毫秒调大到200毫秒让CPU有足够时间处理通讯任务。模拟量数据跳变也是常见问题。滤池液位计显示数值一下高一下低PID调节阀开度跟着来回波动。这种问题的成因有三个一是信号线没有用屏蔽双绞线或者屏蔽层没有单端接地现场干扰串进模拟量信号里了二是仪表电源地和PLC模拟量模块的参考地之间形成了地环路三是模拟量模块的量程设置和实际信号不匹配。排查时先剥开信号线检查屏蔽层然后用万用表在PLC端子处测量信号是否稳定最后检查模块量程卡位置和硬件组态。5.2 滤池液位波动与反冲洗误动作处理滤池液位一直稳定不下来这个现象我见过很多次。有一次调试时发现液位设定值是1.5米实际液位在1.2到1.8米之间来回跳出水阀开度也是大起大落。看趋势曲线之后确定是PID参数不合适造成的。P值太大液位一有偏差调节阀就大幅动作液位冲过头之后又往反方向调形成震荡。解决办法是先把P调小一半液位波动明显减小再把I值适当加大让液位快速回到设定值。另外在程序里加了一个5毫米死区液位误差在这个范围内时不改变输出彻底解决了阀门频繁动作的问题。还有一个重要经验调节阀的响应速度有限电动执行机构本身就有动作时间PID输出变化太快阀门根本跟不上效果反而更差。可以在FB41输出后面加一个斜坡限制块让开度输出变化速度不超过每秒5%。反冲洗误动作的问题出在判断条件上。我遇到过滤池反冲洗条件在正常运行中突然满足导致滤池毫无征兆地进入反冲洗流程。查到最后是压差变送器信号异常导致程序误判滤层堵塞。处理方法是双保险确认滤池液位达到高限之后必须持续保持30秒以上才触发反冲洗请求同时必须有过滤时间超过最短周期比如8小时这个条件两个条件同时满足才允许进入反冲洗状态。这样就消除了单个信号瞬时故障导致的误动作。5.3 沉淀池排泥异常排查沉淀池的排泥异常最常见的是两个表现排泥阀打不开或者排泥阀打开后排出来的基本都是清水。排泥阀打不开先检查气源压力和电磁阀线圈有没有电如果都有再手动操作阀的电磁阀看阀能不能动作。如果手动能动作自动不能重点查PLC输出点有没有输出、中间继电器有没有吸合、再到现场查电磁阀有没有得电。一次排查中我发现DO模块输出通道指示灯亮但中间继电器不吸合用万用表一量模块输出端没有电压最后确认是DO模块通道烧了换了一个通道就正常了。排出来全是清水这个更偏工艺问题。那次排查发现刮泥机运行时间是30分钟停30分钟而排泥阀设定的是每2小时排一次每次都排15分钟。结果就是刮泥机还没把泥刮到泥斗排泥阀就提前开了排出来的自然是上层清水。后来把排泥阀的启动条件改成“先确认刮泥机运行状态再配合泥位信号”也就是说刮泥机运行中、泥位达到排泥设定值时才允许开阀排泥水清的问题就解决了。5.4 报警时间不对的修复与预防你热词里提到的组态王报警记录时间不对我特意拿来说一说。这个问题的根本原因九成是“报警时间来源不一致”。组态王的报警记录里时间字段来自Windows系统时间不是PLC时间。假如PLC的时钟是准的但工控机系统时间慢了10分钟你看到的报警记录就会比实际发生时间晚10分钟。加上很多水厂工控机长时间不联网系统时间会越来越偏。如果项目里有多台操作员站时间不一致的问题就更明显报警记录和时间曲线对不上事后追溯非常麻烦。解决办法不用太复杂。一是工控机接一个NTP时间同步源如果厂内没有互联网可以用一台服务器当时间源每天同步一次。二是PLC程序里做校时组态王脚本定时把电脑时间写入PLC系统时钟。三是在组态王里做一个“时钟校对”按钮运行人员交接班时点一下就能把各个设备的时间对齐。我最后还加了报警信息的“延时确认”逻辑开关量信号抖动持续时间超过200毫秒才算报警避免瞬时干扰产生虚假报警记录。还有一个细节容易被忽视组态王报警记录中如果同一个变量报警恢复和再次报警的时间间隔非常短显示的时间可能看起来是“倒序”的。这时候检查一下报警变量是否设置成了“事件触发”还是“变化率触发”事件触发方式更稳定推荐优先使用。最后再分享一个经验。这个项目用了组态王之后有些同事抱怨画面上的数据刷新慢后来排查不是通讯问题而是画面上放了太多实时曲线、历史曲线刷新频率太高工控机配置又一般画面渲染负担太重。优化方案是减少实时曲线的数量非关键参数用数值框显示趋势曲线单独开一个页面需要时再打开。调试工作做到这个程度操作员用起来才真正顺手这也算是我做了这么多水厂项目之后最深的一点体会。