
我最早接触恒压供水项目是被客户一句话拉下水的“楼太高了水泵老烧你们给想想办法。”当时现场用的还是工频泵配高位水箱水压忽大忽小夜里小流量时段水泵频繁启停电机绝缘都快击穿了。后来我围绕西门子S7-1200、G120变频器、KTP触摸屏做了一套恒压供水系统从电气图设计到博途编程再到现场调试前后折腾了一个多月。这篇实录就是把这套系统的开发全过程拆开揉碎把硬件选型、PID控制策略、程序框架、HMI设计、调试踩坑这些环节一次讲清楚。如果你正准备用西门子全家桶做类似的压力/流量/液位闭环项目这篇可以直接当成参考底稿。1. 为什么恒压供水首选西门子全家桶需求拆解与技术路线1.1 恒压供水到底在控什么很多人以为恒压供水就是把压力维持在一个固定值比如市政管网0.4MPa然后水泵一直转就行。实际项目根本不是这么简单。真正要解决的是三个矛盾用水高峰和低谷的流量剧烈波动、多台泵的启停切换不能引起压力振荡、以及夜间微流量时段系统要保持恒压又不能频繁启停电机。以我做的这个小区二次供水项目为例6栋18层住宅高峰期用水量大概每小时80立方米夜间低谷可能只有每小时2立方米。如果只用一台大泵变频调速夜间低频运行效率极低电机发热严重如果直接工频启停压力冲击和电机过载都是问题。所以整套控制逻辑必须是“变频泵连续调节 旁路工频泵逐台切入 休眠唤醒判断”而这三件事要协同工作单靠继电器逻辑根本做不出来必须要PLC介入。1.2 为什么选西门子而不是混搭方案其实市场上也有“国产PLC 国产变频器 国产触摸屏”的低成本方案做完也能跑。但我这个项目甲方指定了设备品牌倾向后期还要接入楼宇自控系统所以我选了西门子S7-1200系列PLC、G120变频器、KTP700触摸屏。原因有三点第一西门子S7-1200自带以太网口和G120变频器可以通过Profinet通信也可以走Modbus RTU省掉一堆模拟量接线抗干扰能力也更强。如果用ABB变频器配西门子PLC也不是不行但要么走Modbus RTU要么用模拟量端子控制通信协议不对齐时调试周期会拉长。第二博途平台TIA Portal同时覆盖PLC和HMI变量表一次性定义HMI直接引用PLC变量省掉重复组态。第三西门子的PID块如PID_Compact内部有自整定功能配合压力变送器的线性反馈调参比想象中快。当然全家桶也有全家桶的坑版本兼容性问题、G120调试软件Startdrive和博途的集成关系、以及老手也会看花眼的报文组态。这些后面专门讲。1.3 系统整体架构这套系统从下到上分三层现场层压力变送器远传压力表或4~20mA变送器、水泵电机、各类阀门控制层S7-1200 PLC负责采集压力、频率反馈、运行状态输出启停命令和频率给定监控层KTP触摸屏显示压力趋势、水泵状态、故障报警支持参数修改和手自动切换在这个架构里PLC是核心大脑变频器是执行手脚触摸屏是人和系统对话的窗口。供水压力通过变送器变成4~20mA信号传给PLC模拟量模块PLC内部PID运算后输出0~50Hz频率给定通过通信或端子送给变频器变频器驱动水泵电机调速。当单台变频泵频率升到50Hz且压力仍然不足就依次切入工频泵当夜间流量减小变频泵频率降到休眠阈值且持续一段时间系统自动停机进入休眠待机状态。2. 硬件选型与电气设计一张图理清所有接线关系2.1 核心设备选型清单先说结论一台S7-1200 CPU比如CPU 1214C DC/DC/DC或AC/DC/RLY配一块模拟量输入模块SM12314×AI用于压力变送器和备用信号外加一台西门子G120变频器功率根据电机选型我这边是2台7.5kW主泵加1台3kW稳压泵HMI用KTP700 Basic。如果要控制更多泵或采集更多电量参数再扩展通信模块或模拟量模块。S7-1200自带的集成AI口只有2路但如果是CPU 1214C板上集成2路模拟量输入0~10V或0~20mA可以省一块I/O。不过做项目我建议不要把压力信号接到CPU板载AI口而是单独加SM1231模拟量模块。原因是板载AI口数量少一旦被占用以后想扩展就比较痛苦而且模拟量模块自带16位分辨率精度更高一些。压力信号是核心反馈量精度直接决定恒压效果。变频器选G120的原因是它支持多种控制方式V/F控制、矢量控制还有内置PID不过我们这个项目PID放在PLC里做变频器只做执行器。G120的CU控制单元上有模拟量端子、数字量端子也有Profinet/Modbus接口。如果选Profinet通信需要CU240E-2 PN或以上型号如果预算有限选CU240E-2 RS485那走Modbus RTU也完全够用。2.2 关键接线模拟量、数字量与通信压力变送器我选择的是扩散硅式两线制4~20mA量程0~1.6MPa精度0.5%。这个配置在很多加压泵房都适用。接线时需要注意两线制变送器的正极接24V电源正极负极接PLC模拟量模块的AI通道正端模块的AI负端和24V电源负端共地。这个共地非常关键不能浮空否则信号漂移严重。模拟量线必须用屏蔽双绞线屏蔽层单端接地。我见过很多现场把屏蔽层两端都接结果形成地环路反而引入干扰。变频器输出侧U/V/W和输入侧L1/L2/L3的线槽要分开走和模拟量信号线保持至少20厘米间距实在没办法要交叉时必须垂直交叉而不是平行走线。数字量输入我用了变频器端子输出到PLC的DI点主要采集变频器的“运行中”“故障”两个状态。数字量输出则控制接触器工频泵投切、变频器启停如果不用通信控制和报警电铃。通信方面我最终选了Profinet原因是博途里组态非常方便而且能直接读到变频器的频率、电流、直流母线电压、扭矩等参数排障时看一眼就知道变频器状态。2.3 电气设计时的几个坑第一PID运算输出的是百分比0~100%要换算成对应0~50Hz的频率给定。如果你用模拟量端子给定频率需要把频率给定值通过PLC的AQ模块输出4~20mA或0~10V信号给变频器A/D端子。我这里用Profinet直接写PZD数据字就行省掉AD/DA转换的误差。第二工频泵切换逻辑必须加互锁。如果一台泵变频运行另一台泵工频启动必须在PLC程序里先停止变频输出再延时切工频接触器防止工频电倒送进变频器输出端瞬间击穿IGBT。这个延时我设的是1秒现场按照接触器释放时间来调整。第三不要忽视水泵的“憋压”工况。恒压供水在出水总管上一般要装电接点压力表或压力开关作为超压保护PLC程序里也要做压力上限连锁超过设定上限一定时间强制停止所有泵并报警。电控柜还应该配机械式安全阀双重保险。3. 控制策略设计从压力闭环到多泵循环调度3.1 压力闭环的基本逻辑恒压供水的核心是压力闭环。压力变送器测得管网实际压力和触摸屏上的压力设定值做减法得到偏差然后PLC里的PID控制器根据偏差计算出控制量频率给定变频器执行。用生活化的话来说就像一个熟练的司机看到前方车距太近就松油门太远就踩油门。PID里的P相当于司机对车距偏差的敏感程度I相当于不断修正油门的记忆D相当于对车距变化趋势的预判。供水系统惯性大管网的容量就像一个缓冲罐压力变化不那么剧烈所以一般用PI控制就够D用得少甚至不用。我在初始程序里用的PID_Compact块设定值来自HMI的“目标压力”变量输入值是模拟量模块换算后的实际压力。PID输出范围限制在0~100%对应0~50Hz。为了防止变频器长时间极低频运行导致电机散热不良我在程序里加了输出限幅最低30%对应15Hz如果PID输出低于30%持续3分钟就进入休眠。3.2 多泵切换按“频率和时间”双重判断小区泵房通常配两台或三台泵一用一备或两用一备。我的方案是1号泵变频软启动频率上升到50Hz且压力仍低于设定值下限比如0.38MPa持续10秒则1号泵切为工频2号泵变频启动以此类推。为什么要加10秒延时因为管网压力上升有滞后频率到50Hz不代表供水量已经达到极限可能只是瞬时负荷高马上又会回落。如果一看到50Hz就马上切泵会有频繁的切泵动作。我实际测试下来延时10秒可以滤掉绝大部分瞬时波动。切泵时还有个关键逻辑先投入工频泵再启动下一台变频泵还是先启动变频泵再切工频我的做法是在压力偏低时先启动下一台泵变频运行等压力回升后再把前一泵切为工频。这样整个过程压力波动最小。但要注意工频泵一旦投入它的出水量就是额定流量不能调节所以切工频的判定条件必须严格否则夜间小流量时也会误切造成压力波动。减泵逻辑类似当两台泵都在运行当前变频泵频率降到30Hz且压力高于设定值上限持续10秒就撤掉一台工频泵再运行一段时间后变频泵频率降到35Hz且压力偏高再撤一台。这个逐级撤泵过程不能太快管网压力恢复需要时间。3.3 休眠与唤醒夜间降噪省电的关键高层住宅夜间用水量很小一台变频泵低频运行可能已经超出水泵的稳定运行区间效率低噪声大。所以我设置了休眠条件单台泵变频运行频率低于30Hz持续120秒且压力高于设定值说明不用补水则发出休眠指令变频器停止泵停转。但管网和用户用水之间有个小罐或用水点压力会慢慢下降。这时需要唤醒压力低于设定值下限比如设定0.4MPa低于0.35MPa持续5秒就自动启动泵变频运行恢复恒压。这个休眠唤醒的参数要反复根据现场调整。如果设定的唤醒压力差太小比如设定0.4MPa唤醒0.39MPa可能几分钟就启动一次起不到休眠效果如果唤醒压力差太大比如到0.2MPa才启动用户洗澡时会明显感觉水压变小体验不好。我最终调到唤醒压力比设定低0.06MPa休眠延时120秒实测夜间启动频率大约每小时2~3次水泵电机完全能接受。3.4 轮泵机制不让一台泵一直干到老如果系统固定用1号泵变频运行2号泵只在高峰切入那1号泵的磨损会比2号泵大很多。所以在PLC里我加了轮泵功能每次休眠唤醒后自动切换变频泵角色。比如这次唤醒由1号泵变频下次唤醒就由2号泵变频工频泵也跟着切换。这个逻辑其实很简单用一个bool变量记录当前变频泵号唤醒时取反然后让对应的接触器动作。轮泵还有个额外好处当某台泵故障时系统能自动把备泵投入不会因为长期不用而锈死。如果泵的机械密封长时间不用再启动容易卡死。所以轮泵间隔不宜太长最多不要超过3天。4. 博途工程开发实录PLC程序、PID块、通信与HMI4.1 博途项目结构规划用TIA Portal建立一个S7-1200项目组态CPU和SM1231再组态G120作为Profinet从站最后添加KTP700 HMI设备。强烈建议一开始就把PLC变量表按类别定义好后面编程和HMI组态会省很多事。我的变量表分成几组AI信号实际压力Real、备用压力Real频率控制频率给定Real、频率反馈Real、电流反馈RealPID参数目标压力、比例增益、积分时间、微分时间泵状态1号泵运行、2号泵运行、工频投入、变频投入报警高压报警、低压报警、变频故障、缺相、超压等在博途里变量名不要用中文拼音缩写尽量用有意义的英文或拼音英文混合。比如“Running_Pump1”“Pressure_Actual”。HMI里引用变量时只要是同一个项目直接拖拽即可非常方便。4.2 PID_Compact块的正确用法S7-1200的PID_Compact块在OB30循环中断里调用或者你也可以在主OB1里调用但需要注意循环周期的一致性。我放在了OB30循环时间100ms。PID_Compact块参数Setpoint目标压力值Real单位MPaInput实际压力值Real单位MPaInput_PER如果直接连模拟量模块的原始值可以用Input_PER引脚但我更倾向于先用NORM_X和SCALE_X把原始值换算成工程量再接Input这样便于监控和判断。OutputPID输出百分数我把它乘100再映射到变频器频率给定范围0~50Hz。这里有个容易出错的地方PID_Compact的Output范围默认是0~100百分比要和频率量程对应起来。我的做法是定义缩放变量PID_Output_Percent: Real; Frequency_Setpoint: Real; Frequency_Setpoint : PID_Output_Percent / 100.0 * 50.0;如果输出百分比低于30%程序做上下限限幅。还有一个需要处理的场景是启动阶段。PID输出在泵启动前可能是0但管网压力已经在下降一旦泵启动PID积分项会快速攀升容易产生超调。所以我在泵启动前把PID输出手动置0同时给PID_Compact的ManualEnable信号置TRUE等泵启动运行2秒后再切回自动模式。这样模拟量输出和PID输出都不会跳变。4.3 模拟量处理NORM_X SCALE_X压力变送器量程0~1.6MPa输出4~20mA接到SM1231的通道0。SM1231采集后的原始值是0~27648对应0~20mA。需要经过两个指令NORM_X把原始值归一化到0~1SCALE_X再把0~1映射到0~1.6MPa。注意4~20mA时当信号是4mA原始值不是0而是约5529.627648*4/205529.6所以归一化时需要做偏移处理。我直接使用SCALE_X的MIN和MAX设置为-0.4~1.6不对这样不对。更稳妥的方法是用下面的公式实际压力MPa (原始值 / 27648.0 * 20.0 - 4.0) / 16.0 * 1.6或者使用NORM_X的MIN0, MAX27648, 得到0~1然后代入实际压力 (归一化值 * 20 - 4) / 16 * 1.6在博途里写起来比较啰嗦我一般直接用库里的“Scale”函数或者自己写一个模拟量缩放子程序。把公式写成一行表达式省两个暂存变量。核心是要把4mA对应0 MPa这个偏移处理好否则断电或断线时会读出负压力。如果变送器断线或损坏模块读数是32767或0必须做量程限幅。我在程序里加了“坏值判断”原始值小于500或大于27648都认为信号异常置报警并停止泵防止干转。4.4 与G120的Profinet通信组态在博途里组态G120需要安装Startdrive软件。这样G120作为Profinet从站可以直接拖入网络视图。组态时主要配置报文类型。我用的是标准报文1PZD-2/2即控制字/状态字主设定值/实际频率。控制字16位状态字16位主设定值是一个16位整数表示频率给定需要按16384/4000的规则换算不同参数有差异。对于G120报文1的主设定值0~16384对应0~4000十进制实际上用的是十六进制0x4000表示100%额定频率。所以如果要给定40Hz额定50Hz80%则需要写入0x4000 * 0.8 0x3333十进制13107。我在PLC里编写了一个函数块FB100“G120_Control”给变频器发控制字启动控制字 16#047E或要小心停止 16#047F复位故障 16#04FE。实际常用的是停止 16#047E启动 16#047F这是标准报文1最常见的组合其中bit01接通bit11允许运行bit21允许反转其实bit2是0禁止反转bit31斜坡使能bit61使能bit70不要故障确认。我用047F实测可以启动。状态字bit01表示就绪bit21表示运行bit31表示故障。主设定值部分我写了一个NORM_X频率设定0~50Hz映射到0~16384十六进制0x4000然后传给变频器。读取反馈也一样变频器传给PLC的实际频率是0~16384我用SCALE_X对应0~50Hz。写通信块时一定要注意数据一致性用MOVE指令把整个PZD数据块从发送DB拷贝到通信DB读取也是整块拷贝。不要一个个字地去赋值否则可能看到中间状态。4.5 HMI画面与报警设计KTP700触摸屏画面我分了几个主监控画面、参数设置画面、报警画面、趋势曲线画面。主监控画面放了一个圆形水泵图形触摸屏上用“颜色变化”动画表达运行状态绿色运行红色故障灰色停止。下方是三个大数字显示实际压力、设定压力、变频器频率。旁边加了一个手动/自动切换开关。手动模式下可以单独启停每台泵并手动给定频率用于检修自动模式下跑PID和切泵逻辑。参数设置画面放PID参数、压力设定值、压力上下限、休眠唤醒参数、加减泵延迟时间。这里需要设置触摸屏的用户权限操作员只能修改压力设定值工程师才有权限修改PID参数。西门子HMI的“用户管理”里面有角色权限把PID参数对应的“输入对象”的授权级别设为“工程师”操作员登录后无法修改。报警画面显示历史报警。博途HMI里可以通过报警文本的“%s”动态插入当前值非常实用。比如“管网压力低实际压力 %.3f MPa”报警出现时自动把数值填进去。这个功能在旧式HMI上可没有省去写一堆文本拼接。趋势曲线画面用的“趋势视图”控件把实际压力和设定压力做成两条曲线时间轴1小时。这个对现场调PID非常有帮助能直观看到超调、振荡和响应速度。调试时我一直盯着趋势曲线调参数比看数字反应快得多。HMI和PLC通信过程中有一个常见坑KTP触摸屏时间不显示或不信任可能是PLC没有设置正确的时间或视图没有同步。在博途里HMI可以设置“从PLC获取时间”初次上电最好勾上。如果触摸屏上时间显示正常但报警记录时间不对检查时区设置默认是UTC0还是8我还真遇到过因为没有选对时区报警时间比实际差8小时的情况。5. 现场调试全流程从通电到恒压稳定的完整步骤5.1 上电前检查电气检查和模拟IO验证调试的第一步不是写程序而是把电气回路捋清楚。我按下面顺序做用万用表检查24V电源是否短路确认PLC、HMI、变送器的电源极性正确。检查变频器主回路和PLC控制回路是否分开供电如果共用一路开关变频器启动瞬间的压降可能导致PLC复位。我个人习惯给PLC和HMI单独装一个断路器变频器走独立断路器。这种投入非常必要。然后下载硬件组态到PLC先用USB或网线连CPU测试I/O点。把压力变送器接入对照当前压力表的读数看看PLC里读取的工程量是否一致。如果明显偏差检查量程设置、通道地址、4~20mA偏移。千万别急着调PID先把模拟量搞准。变频器通信测试在博途里监视通信DB手动给变频器一个20Hz比如1.0*0.46553的主设定值同时把控制字设为启动命令观察电机是否平滑转到20Hz状态字反馈是否正常。有条件的测下正反转确保水泵转向正确。水泵转向接反会导致出水量为零压力上不去电流异常升高长时间运行会损坏水泵。我每台泵都点动确认转向用标签笔在电机风罩上标好方向。5.2 PID参数整定的“笨办法”西门子PID_Compact有自整定功能但现场往往不敢用因为自整定过程会给系统加阶跃扰动可能引起压力波动。我在这个项目中用的手动整定法效果也快。先把积分时间设一个较大的值如30秒微分设为0比例增益从0.5开始系统运行在手动给定频率比如35Hz状态下然后切到自动观察压力曲线。如果压力出现持续低频振荡比如0.35~0.45MPa来回摆说明P太大减小到0.3再试。如果压力缓慢爬升慢慢接近设定值但稳定后有一些静态偏差就把积分时间逐渐减小到10秒、5秒观察超调。如果压力超调太大且回不来说明积分时间太小增大到8秒。实际我最后用的参数大约是比例增益0.4积分时间8秒微分0。这个参数在现场稳定运行高峰切换时压力波动不超过0.03MPa。PID整定时还有个小技巧把设定压力先设得比实际需要的低一点比如0.35MPa等系统稳定后再逐步提高到0.4MPa。这样每一步都是小扰动不容易失控。5.3 多泵切换和休眠唤醒的现场验证先把加泵减泵延时参数设得保守一点加泵延时15秒减泵延时15秒休眠延时180秒唤醒偏差0.08MPa。然后模拟用水关掉出水阀让压力升高观察是否减泵和休眠再打开出水阀放水观察是否唤醒和加泵。注意现场模拟时最好几个人配合一个在泵房看触摸屏一个在楼下阀门处操作通过对讲机沟通。我为了省事直接用消防接合器接了一段DN50的管道往室外排水模拟用水负荷流量还挺可观。多泵切换时最容易出问题的是接触器互锁不彻底。我遇到过工频泵的接触器释放慢导致变频器输出端和工频电源短暂并联变频器直接报F0002过电压或损坏。所以在程序里切换到工频泵之前必须有至少1秒的“死区时间”而且PLC输出接触器的端子要采用“先断后合”逻辑先让工频接触器断开延时再合另一个接触器。同时接触器的辅助触点要反馈到PLC输入确认实际状态避免直接信PLC输出。5.4 现场网络与通信故障的“幽灵事件”这里单独说一说我在其他项目里遇到过的“西门子PLC通信连不上、重启之后只能连一分钟然后断开”的故障。当时排查了很久最后发现是两个原因叠加一是PLC的IP地址和上位机不在同一网段偶尔能连是广播发现二是交换机端口开启了节能以太网长时间无流量会休眠口导致连接中断。后来我关闭了交换机端口的EEE能效以太网功能并且把上位机网卡驱动里的“允许计算机关闭此设备以节约电源”选项取消问题就解决了。在做恒压供水项目时如果你用博途监控CPU突然掉线先检查一下是不是网络唤醒节能的问题这个坑很隐蔽。另外一个现场常见的通信问题是Profinet报文不更新。表现为画面上的频率反馈卡在某个值不动但变频器面板显示有变化。我排查下来发现是PLC发送的“控制字”有些位没有保持比如有些工程师把控制字的bit0—bit7在OB100里初始化时设置了但后面程序又无意中给它清零。建议把控制字用静态变量保存不要在停机逻辑里整体清零而是按位操作。6. 故障排查速查表这几类问题占现场故障九成为了方便后来人我整理了一份常见故障排查表都是我亲手踩过的和同行交流总结的直接照着查能省很多时间。故障现象可能原因排查和处理压力显示不准/漂移变送器接线错误、屏蔽层未接地、量程设置错检查变送器接线和共地用万用表测4~20mA对照PLC读值变频器启动报F0002/F0003工频倒送电、直流母线过压、电源波动检查接触器互锁和切换死区增加进线电抗器压力振荡不收敛PID比例/积分参数不合适、压力变送器安装位置离泵太近调整PID参数反馈点宜设置在出水总管或最不利点附近不要离泵出口太近泵频繁启停休眠唤醒压差太小、PID输出限幅不合理增大唤醒压差和休眠延时检查PID最小频率限幅变频器和PLC通信时好时断网线质量差、交换机节能、IP冲突更换优质屏蔽网线关闭交换机节能检查IP地址冲突触摸屏时间不对时区设置错误、未启用PLC同步时间HMI设置中启用“从PLC获取时间”修改时区为UTC8工频泵切换时压力突变切泵逻辑时序不对、工频泵出口未装缓闭止回阀调整切泵延时和启泵顺序检查止回阀是否有效电机过热长期低频运行、散热不良、缺相运行增加最低频率限幅或辅助风扇检查接触器和热继电器这里重点提醒一下压力变送器的安装位置在恒压供水系统里往往被忽视。安装在泵出口太近压力脉动大PID容易振荡安装在最远端用户处信号滞后太大又不易稳定。常规做法是安装在出水总管上靠近二级泵房的压力测试点同时远离变频器出线电缆。如果现场条件不允许至少要在管路上加阻尼器或延长取样管减轻脉动。我调试时还遇到过一次“低压报警频繁误报”的问题。原因是压力变送器装在出水总管上而高位水箱补水时总管压力瞬间下降实际不是真正的缺水。后来我把低压报警延时调整到10秒并且只有当所有泵都在运行但压力仍低于下限时才触发报警误报立刻消失。这个逻辑值得写进程序里低压报警不能只看压力值还要看泵是不是已经满负荷。7. 我最后悔没在前期做的一件事项目验收之后我回想整个开发过程最遗憾的就是没有在程序里做“运行数据记录”。S7-1200自带数据日志功能可以把压力、频率、运行状态按分钟记录到存储卡或者通过Modbus TCP上传到上位机。当时为了赶工期这个功能砍掉了。后来甲方问“夏天晚上的压力最低到多少”这类问题我只能用趋势曲线回看很短一段没有历史数据支撑被怼得无言以对。如果你也在做恒压供水这种需要长期连续运行的设备强烈建议从一开始就规划数据记录和历史曲线。哪怕不上位机也要用触摸屏的“数据记录”功能存到SD卡或U盘定期导出Excel。这不光是为了应对甲方更重要的是通过数据可以发现水泵效率衰减、频繁启动趋势、夜间异常压降等问题提前做预测性维护。另外在调试阶段最好把每次修改的参数版本记录下来。我习惯在程序里建一个“调试日志”字符串变量每次调参数后手动写入时间、参数值和备注并保持到PLC的保持性存储区。下次再来现场翻一翻日志就知道之前改过什么不用靠记忆猜测。恒压供水这套系统的开发说难不难说简单也不简单。西门子全家桶把很多底层通信和画面组态的工作简化了真正的功夫还是在于对控制逻辑的理解对现场工况的把握以及那些在书本上找不到的实战细节。希望这份实录能帮你少走几段弯路把精力花在真正重要的地方。