1. 项目概述:这套系统到底在做什么
一个朋友问我,说手头有个三水箱供水系统的项目,用PLC和触摸屏来做,设备已经拉起来了,但调试了两天总感觉哪里不对劲:要不就是液位到了不动作,要不就是触摸屏偶尔弹出通讯报警,想让我帮忙捋一捋思路。我当时就说,这类系统别急着改程序,先把控制流程和变量表捋清楚,问题基本就解决了一半。
所谓三水箱供水系统,说白了就是三个水箱按顺序配合,完成"来水—存储—分配"的过程。常见于楼宇供水、小型水处理装置、实验室设备,甚至不少教学实训台也是这个结构。它一般由三个水箱组成,通常叫一箱、二箱、三箱,三个箱子之间有管道连接,通过水泵和阀门控制水流方向,PLC负责整个流程的逻辑判断,触摸屏则作为操作员窗口,完成启动、停止、参数设定、状态监视和报警记录。
这篇文章不是教科书式的原理讲解,而是一份实打实的调试手记。我会把方案设计、PLC程序结构、触摸屏变量映射、通讯参数、现场抢修经验全部摊开来讲。适合三类人看:一是刚入行的电气工程师,正在为第一个非标项目发愁;二是做设备维护的人,领导丢给你一套旧设备让你改流程;三是在学校做PLC课程设计的学生,想看看真实项目里是怎么组织的。
这套系统看着不复杂,但麻雀虽小五脏俱全。三水箱的液位控制往往牵扯到PID闭环、手自动切换、多泵联锁、缺水保护、溢流报警、通讯故障处理,这些在单水箱系统里根本碰不到。所以把三水箱玩明白了,后面再去做多泵联调或者更复杂的工艺控制,心里就踏实很多。
2. 控制流程和方案选型:先想清楚再动手
2.1 工艺逻辑与控制需求拆解
我在接触这类项目时,第一件事不是打开编程软件,而是先把工艺流程画出来。三水箱供水系统的控制需求通常可以拆成下面几块。
第一个是液位采集。每个水箱都需要液位检测,常见的有浮球开关、投入式液位变送器、超声波液位计。选型取决于成本和精度要求。浮球只能给出开关量,适合做上下限保护;超声波和投入式变送器输出4-20mA或0-10V模拟量,能读连续液位值。三水箱系统要做连续调节,一般至少中间那个水箱得用模拟量液位计,前后两个水箱可以用开关量做保护也可以都用模拟量,看预算。
第二个是动力控制。水泵和电动阀怎么配合,这是核心。比如一箱高水位时启动水泵往二箱打水,二箱高水位时再启动增压泵往三箱供水,三箱直接对用户管网供水。如果几个泵同时抢水,管路压力会波动剧烈,所以要设定优先级和联锁关系。
第三个是这个系统的安全保护。低液位禁止泵启动称为防空抽保护;高液位停止注水称为满水保护;同时还要考虑水泵故障、传感器断线等异常。这些在初始设计阶段就得预留逻辑。
这套三水箱系统的调试难点并不是程序本身,而是"联锁关系"和"时序配合"。调试时最常遇到的问题是现场阀门动作太慢而程序判断太快,或者模拟量信号跳变导致逻辑反复触发。这些都不是写代码的问题,而是对工艺理解不到位。
2.2 硬件选型策略与关键参数
硬件选型搞定了,后面调试才能顺。PLC这块,三水箱系统输入输出点不多,模拟量输入三路、数字量输入五六路、输出四五路,选小型PLC完全够用。我用过的有西门子S7-200 SMART、三菱FX3U、汇川AM系列,各有特点。S7-200 SMART在第三方设备通讯上支持比较好,三菱的指令上手快但模拟量模块要单独加,汇川AM系列在本地IO扩展上做得比较灵活。
触摸屏(HMI)我这次用的是威纶通MT系列,后来朋友那边用的是MCGS,两个都调过,思路是相通的。威纶通的编程软件是EBPro,MCGS是MCGS嵌入版组态环境。两个软件在变量组态、画面制作上有个共同核心点:PLC地址和触摸屏地址必须完全对应,位号和寄存器号差一点都不行。
通讯方式上,现在主流是工业以太网,也就是PLC和触摸屏都接入交换机,通过IP地址通讯。老设备可能走串口RS485,速度慢但稳定。我这套用的是以太网,调试起来方便,不用来回插线,还能在线监控。
硬件清单大致是这样:S7-200 SMART SR30主机一台,模拟量扩展模块EM AM06一块(三路液位变送器信号),水位变送器三个,水泵三台,电动阀两个,威纶通MT8071触摸屏一台,交换机一个,24V开关电源一个。这套配置在3000-5000元级别,属于很常见的实训和中小型项目配置。
▼ 硬件配置与作用一览
| 设备 | 型号/规格 | 作用 | 备注 |
|---|---|---|---|
| PLC | S7-200 SMART SR30 | 逻辑控制核心 | 自带以太网口 |
| 模拟量模块 | EM AM06 | 扩展三路模拟量输入 | 4-20mA信号 |
| 液位变送器 | 投入式/超声波 | 液位连续检测 | 量程按水箱高度选 |
| 触摸屏 | 威纶通MT8071 | 人机交互 | 10寸屏 |
| 交换机 | 普通工业交换机 | 以太网通讯互联 | 至少4口 |
这里特别提醒一下,模拟量模块的通道映射地址不要去"猜"。S7-200 SMART的系统手册里写得很清楚,第一个扩展模块从AIW16开始,依次累加。你要是拿着AIW0去读,那就是在读取CPU本体自带的模拟量通道(如果有的话),结果要么是0要么是乱跳的开关量变化,能把你坑惨。
3. PLC内部程序结构的搭建细节
3.1 PLC程序的总设计思路
三水箱PLC程序我习惯分成几个程序段来组织,这样后期维护方便。分段的逻辑是按"功能"划分,不是按"扫描周期"划分。把主程序拆成泵控制、阀控制、报警处理、手自动切换等块,出了问题能直接找到对应行。
S7-200 SMART的程序块在软件左侧树形菜单里管理,可以建多个子程序。我的结构大概是:
- 主程序OB1:扫描周期调度,调用下面几个子程序
- 初始化子程序:上电时设置各输出初始态,把非保持型变量清零
- 模拟量处理子程序:读取三路液位信号,做滤波和标定,换算成实际液位值(单位厘米或百分比)
- 泵逻辑子程序:手自动选择,泵启停判断,联锁保护
- 报警子程序:低液位、高液位、通讯超时、泵故障等报警汇总
- 触摸屏交互子程序:处理来自触摸屏的置位操作和参数写入
程序分段的意义,在我们调试时能真正体会到:一旦液位到了不动,你可以直接进泵逻辑子程序查看,不用在主程序里翻来翻去。
3.2 模拟量处理与滤波逻辑
液位变送器输出4-20mA电流信号,进到PLC的模拟量模块后,CPU内部读到的是一个0到27648左右的整数(西门子S7-1200/1500是0-27648,S7-200 SMART也是同样的比例)。这个原始数值需要换算成实际工程量。
换算公式很简单,就是线性映射:
实际值 = (原始值 - 0) / (27648 - 0) * 满量程
假如你的液位变送器量程是0到200厘米,那么2米水箱对应原始值27648。程序里用浮点数运算,把整数原始值转成实数再算。
但真正干活的人都知道,数值不能拿过来直接用。信号在传输过程中会有干扰,尤其是变频器附近。我见过液位值在低位时跳变三四个厘米的,一旦程序判断低液位停泵,干扰就可能造成误动作。所以我在模拟量处理里做了一阶滤波,也叫惯性滤波。
它的原理非常简单:当前显示值 = 上次显示值 乘以 权重 + 新采样值 乘以 (1 减 权重)。权重一般取0.7到0.9,这个值越大,曲线越平滑,但响应也越慢。我一般取0.8,对三水箱这种缓慢变化的液位,响应速度和稳定性都能接受。
有一点要记住,滤波后的值不要直接参与报警判断。报警判断要用原始转换值(或者轻微滤波值),否则液位已经低过警戒线了,程序还在等滤波后的值慢慢靠近,会延迟报警时间。这在安全保护上是有讲究的。
3.3 泵启停逻辑与手自动切换
泵逻辑是整个程序的核心,我一般是按"模式+条件"的方式来写。先判断工作在手动还是自动模式,再根据模式执行不同分支。
手动模式主要用于试车和检修。触摸屏上放一个"手动/自动"切换开关,切到手动后,操作员可以直接按钮启停每一台泵。手动模式下PLC必须跳过自动逻辑,但不跳过保护逻辑。就是说,你手动启动了泵,但如果液位太低,还是要强行停掉,这就是防空抽保护。保护永远高于手动操作,这点在设计逻辑时必须写进去,不然出了事就是事故。
自动模式下,泵的控制根据液位值来做逻辑判断。以我的三水箱工艺为例:
- 三箱液位低于下限时,开启二箱向三箱供水的增压泵
- 二箱液位低于下限时,开启一箱向二箱供水的转输泵
- 三箱液位高于上限时,关闭增压泵
- 二箱液位高于上限时,关闭转输泵,同时打开自来水补水阀给一箱补水
这里要注意,二箱和三箱之间是连锁的。如果二箱缺水,增压泵再使劲抽,就会把二箱抽空。所以三箱液位低时要先检查二箱液位是否满足启动条件,不够就得先等转输泵工作把二箱补起来。程序上可以通过"允许启动标志位"来实现:二箱液位在中间值以上,且三箱液位低于下限,增压泵才允许启动。
这个联锁逻辑用梯形图写出来也就十来行,但现场调试时最容易出错。我曾经遇到过的情况是,三箱一直缺水,增压泵却不启动,查了半天发现是二箱的液位信号在启动临界值附近反复跳动,导致允许标志位时有时无。后来在触摸屏上看趋势曲线才看出问题。自此以后,我在泵启动条件里都加了5秒的稳定延时,防止临界值抖动。
4. 触摸屏(HMI)组态的核心变量与画面设计
4.1 与PLC通讯建立的关键参数
触摸屏的调试,先说通讯。威纶通和MCGS的通讯建立流程基本一致:在组态软件里选对PLC型号,填IP地址和端口号,然后下载到触摸屏。但就是这几步,很多人能折腾一下午。
新建工程时,系统参数里要选PLC类型。以威纶通为例,在系统参数里添加设备,型号选择"Siemens S7-200 SMART (Ethernet)",然后设置IP地址。PLC的IP地址在S7-200 SMART的编程软件里设定,默认是192.168.2.1,触摸屏的IP可以在EBPro里设置,比如192.168.2.10。两个设备必须在同一网段,子网掩码保持默认255.255.255.0即可。
这里有一个高频问题,也是我们做技术支持时经常被问到的:触摸屏提示"Device no response",翻译过来就是设备无响应。出现这个提示,90%的可能是IP不在同网段、PLC的以太网口没插网线、PLC侧未启用以太网连接,或者PLC的端口被其他软件(比如你正在用的STEP 7 Micro/WIN SMART)占用。是的,你没看错,STEP 7 Micro/WIN SMART在线监控的时候会把CPU通讯资源占掉一部分,尤其是你打开了几个监控表又没关掉的时候。
我在调试时养成了一个习惯:在线监控完PLC程序,先把软件里的监视功能停掉,再切到触摸屏操作。这不是玄学,是因为S7-200 SMART的以太网连接数有限,不支持无限多客户端同时连接。你的电脑在监视PLC,触摸屏也要连PLC,两边同时在线确实偶尔会出现断连。
4.2 内部变量表与地址映射表
HMI里建立变量,本质上是把PLC里的存储位置映射到触摸屏的"标签"上。我用的方式是在触摸屏软件里直接建立与PLC软元件地址对应的变量表,变量名自己起,数据类型要匹配。
以S7-200 SMART和威纶通为例,常见地址映射关系:
| 触摸屏变量名 | PLC地址 | 数据类型 | 用途 |
|---|---|---|---|
| 三箱液位 | AIW16 | 16位整型 | 读取液位原始值 |
| 增压泵启停 | Q0.0 | 位 | 输出控制 |
| 自动模式标志 | M0.0 | 位 | 模式切换 |
| 液位下限设定 | VW100 | 16位整型 | 触摸屏写入设定值 |
| 报警汇总 | MW10 | 16位整型 | 报警状态 |
触摸屏变量建立时,类型一定不能选错。SIEMENS的I、Q是位输入输出,M是内部位寄存器,V是数据寄存器,AIW是模拟量输入字,AQW是模拟量输出字。很多人会把VW100误写成V100,那就完全错了。西门子寻址方式里,VW100表示起始地址为100的一个字(16位),而V100表示地址偏移是100的一个字节单元。差这一个字母,数据范围完全不对,读出来的值要么是0,要么是离奇的乱数。
在威纶通EBPro里,建立了变量表后,画面上的按钮、指示灯、数值显示框都直接绑定变量名。这样如果你改过PLC地址,只需要在变量表里改一次地址,画面上所有引用这个变量的元件都会跟着更新。MCGS也一样,建完变量后用"图元连接变量",走的是同一套思路。
我在触摸屏上放了四个关键画面:
第一个是主监控画面。显示三个水箱液位的柱状图,三个水泵的运行/停止状态,下方一排报警灯。柱状图在威纶通里可以用"液位"元件做,绑定液位变量,设定量程范围和方向即可。MCGS里也有类似的动画构件,用基本元件配合脚本也行。
第二个是控制画面。放手动/自动切换开关、每组泵的启动停止按钮、补水阀开关按钮、参数设定区(上下限设定值)。这里涉及一个安全设计:手动模式下,泵的启停按钮要置成"弹起复位型",也就是按住才运行,松开就停。这样防止操作人员误触了按钮后泵一直持续运行。很多现场出问题,就是给了"开关型"按钮,人点一下泵开,人走了泵忘了关。
第三个是参数设定画面。用于修改液位上下限、PID参数(如果用到的话)。这些数值存放在PLC的VW保持寄存器里,断电后不会被清零,所以触摸屏上改了直接生效。需要注意的是,发布给用户的SP值一定得做上下限限制。比如你在PLC里设VW100存储三箱下限液位,那触摸屏输入框的数值范围就限制在5到40厘米之间,防止操作员填了个负数进去把控制逻辑搞崩。
第四个是报警/历史画面。PLC内部用定时器把报警浓度位组合成一个整数MW10,每一位对应一种报警。触摸屏做报警显示时,用"事件登录"功能,配合"PLC控制"里面的报警触发地址来采集。这里有个经验:报警记录不要存在触摸屏本地的掉电保持区,尽量通过事件上传或存至SD卡/USB,否则屏一更换,历史报警全部丢失,售后时查不到原因。
4.3 多画面跳转与全局宏的应用
威纶通的工程结构里,全局宏和局部宏是个高级用法。全局宏独立于任何画面,在后台周期性执行;局部宏依附在某个画面或元件上,在特定事件发生时触发。很多人只把宏用来做数据运算,实际上我们调试中最重要的一种用法,是把宏当作"通讯桥"来用。
比如说,你有一台Modbus设备(比如变频器、温控表)的数据想显示在触摸屏上,但PLC不会去读它,那么可以在触摸屏上用宏命令去读,然后把结果写回PLC的VW区。这种方式可以减轻PLC扫描周期压力,也可以让触摸屏直接充当"协议转换网关"。在三水箱系统里,我没用到变频器,但你如果接了变频器要调频率,完全可以让触摸屏用MODBUS协议直接读变频器的运行频率和电流,再通过宏写进PLC的VW寄存器,PLC侧不需要写任何通讯程序。
局部宏还有一个非常实用的场景:开机初始化。写一个初始化宏,在上电时把某些HMI内部寄存器LB或LW清零,比如把报警确认标志清掉,把当前的画面编号设置到主监控画面。MCGS里对应的概念是"启动脚本",效果类似。
触摸屏编程100例之类的资料我翻过不少,但实际项目里真正核心就是上面这套:通讯、变量表、画面绑定、宏。把这几样弄熟练,绝大多数触摸屏项目都能拿下来。
5. 调试全流程实录与故障排查
5.1 上电前的检查清单
我调过不少设备,也见过很多跳闸烧模块的场面。三水箱系统上电前,我每次都会走一遍快速检查清单,别看它简单,能挡掉一半的故障。
第一,电源确认。PLC的24V电源是否接对?很多开关电源输出是24V+和0V,PLC标的是L+和M,接反直接烧。三线制液位变送器的棕线接24V,蓝线接0V,黑线(或白线)才是信号线。信号线接不进模块,那读数永远是4mA以下或超量程。
第二,模拟量信号线确认。信号线是不是从变送器接到了扩展模块的正确通道?模拟量模块上的通道编号,通常从0开始。EM AM06第一路是IW16?不对,S7-200 SMART的CPU SR30自带模拟量的,模拟量通道从AIW16开始?这里要澄清一下,S7-200 SMART的SR30是继电器输出型,它本体不带模拟量,所以要模拟量只能扩展EM AM06,扩展模块的通道地址就是AIW16和AIW18,依次往下。如果是其他型号的CPU带了本体模拟量,首通道是从AIW16开始。这里每款型号不同,建议以选型手册中"地址分配"章节为准。
第三,通讯网线是否插好。触摸屏和PLC之间不管是直连还是经交换机,网线都不能少于四芯通。水晶头压接不良偶尔也会造成通讯偶发中断,测试时多插拔几次看看有没有区别。
第四,输入点状态复核。逐个短接输入端子,确认每个输入点对应的PLC地址和触摸屏按钮逻辑方向是"常开"还是"常闭"没有反。这里最坑的是急停按钮,很多急停用的是常闭触点,接进PLC后输入点信号是1(有电)表示正常,一旦急停按下,信号变为0(断电)。如果你在PLC里写了"急停未触发时允许启动"用了常开逻辑,那上电急停没按,输入点是1,你判断成了"正常",一旦按下变成0,你还是可能判断成"故障"。方向搞反,后果很严重。
5.2 调试过程中的系统推进顺序
硬件检查完,我习惯分阶段调试,从最容易确认的部分往难推进。第一阶段,触摸屏通讯连上,先不做控制画面,只放一个数值显示框绑定三路液位地址。目的是确认通讯和模拟量。
这个阶段的关键是液位显示值的正确性。假如你看到的数值是乱跳的,先确认是不是线接错了通道,再看是不是24V电源地没有共地导致信号有偏置。4-20mA是电流信号,变送器供电和PLC模块必须共地,否则回路中有压差,读数值来回飘。
第二阶段,开始调试泵的逻辑,但不带真实电机,用主回路打空车或者用PLC软件里的强制功能去模拟。S7-200 SMART的在线监控里支持位和字的写入,你可以在线状态下手动给M区写值,观察程序逻辑走向。这一步要特别小心,在线强制Q输出是致命操作,因为你强制了Q0.0为1,如果实际电机接好了,它就真的转了。我一般是在断电或断开主回路的时候才做强制,强制完立即取消,绝不留着强制值运行设备。
在线强制模拟几次后,触摸屏上的按钮逻辑也应该验证。切换手动模式,屏幕上点启动按钮,对应Q点置位;点停止,Q点复位。这个没问题后,把自动模式切回来,用软件模拟液位变化,验证自动启停逻辑。
第三阶段,真正带水调试。这个过程最考验耐心。因为液位上升需要时间,下降也需要时间,而你的程序里延时如果设太短,会出现泵反复启停。
我遇到过一个典型的振荡:三箱液位低于30厘米时启动增压泵,高于50厘米时停止。因为增压泵流量大,水箱内液位波动明显,加上传感器响应和滤波延迟,液位到了35厘米的时候泵启动,结果一个扫描周期内滤波值冲过了50厘米又停泵,泵就变成打嗝机。解决办法是设置滞回区间(也叫回差)。比如下限设为25厘米启动,上限设为55厘米停止,让启动点和停止点之间留出10到15厘米的余量。液位上升过程中即使有一点过冲,也不至于马上触发停止。这个回差值在触摸屏参数里做成可设的,现场根据水泵流量实际调。
5.3 PID闭环调试的要点(如果用到)
三水箱系统如果对供水压力或流量有恒定的需求,那二箱向三箱供水的水泵就不能用简单的开关量启停来控制,得走PID调节。用PID的意思是让变频器驱动水泵,通过调节电机转速让液位或压力稳定在设定值。
S7-200 SMART的PID功能在软件里以PID向导形式生成,用起来还比较顺手。但PID向导生成的PID块会自动占用一个定时中断,一般是以100毫秒为周期。这个中断不能和项目中其他用途的定时中断冲突。
PID调试我建议直接采用经验试凑法,不需要一开始就去算传递函数。先设置纯比例模式,比例增益从0.5开始,观察液位响应曲线。如果曲线振荡加剧,就减增益;如果响应太慢,就适当增加增益。等液位能够在设定值±5%范围内波动且不振荡后,再加积分时间,先从300秒往下试。微分在三水箱这种大惯性对象里尽量不用或者用很小,不然变频器频率会被噪声信号折腾得乱跳。
PID参数我一般会在触摸屏上做成可设定项,存到VW区。这样现场调参不用开电脑,直接在屏幕上操作,效率高很多。在实际操作中我们做过一个测试:把比例增益从1改到3,液位响应明显超调了7%,说明对象惯性很大。把增益拉回1.5,同时积分时间从300改为120秒,系统在80秒左右稳定,超调控制在2%以内。这个结果说明,参数是要根据现场逐一试出来的,没有万能值。
5.4 常见问题速查表与排查心得
调试过程中,遇到最多的问题我整理了一下,做成速查表,供你现场对照。
| 现象 | 可能原因 | 排查步骤 | 解决方案 |
|---|---|---|---|
| 触摸屏显示数值为0 | 信号线断、变送器供电缺失、通道地址错误 | 用万用表量变送器输出端信号是否4-20mA | 补接线或更正地址AIW16/AIW18 |
| 触摸屏数值最大不变 | 模拟量通道正负极接反,变送器信号溢出 | 检查信号线接入端子定义 | 对调信号线端子 |
| 泵启动后立即停止 | 过滤器堵塞导致出水流太大、延时保护触发 | 查泵电流、查停机原因标志位 | 清洁过滤阀或调整延时 |
| 液位到设定值不动作 | PLC程序未扫描到该段或变量地址映射错误 | 在线监控看输入状态和条件位 | 修改PLC逻辑或触摸屏地址 |
| 触摸屏卡死无法操作 | 通讯被在线监视占用或触摸屏内存碎片 | 断开电脑连接、断电重启触摸屏 | 优化在线监视时间,及时退出调试模式 |
| 手动模式下泵也停 | 保护逻辑住了 | 查保护条件是否满足(低液位、急停) | 属于正常逻辑,检查液位设备 |
这里面有一个很隐蔽但常见的问题,就是某个液位信号漂移。比如变送器在接近满量程时输出到了20.5mA,超出了PLC模拟量模块的量程上限,模块读数会钳在27648,程序判断为高液位,联锁把所有泵都停了。这种就属于传感器标定问题,需要在触摸屏上做"零点/满程标定"功能,或者通过PLC里减法偏置量来处理。
还有一次,现场报故障说"一送电就烧保险",查了半天是液位变送器的供电接线接在了PLC输出端的COM端子上,输出COM接到电源负极,造成短路。这种低级错误,说实话接线图看着没错,但视觉上COM端子和24V-长得太像了,稍微分心就会接错。所以在接线图纸上,我要求把24V-用单独编号标出,严禁与输出公共端共用,哪怕PLC本体上的端子距离再近。
5.5 通讯故障的独家排查思路
如果有两台触摸屏同时要连一台PLC,很多人第一反应是"是不是只能连一台"。其实S7-200 SMART支持多个客户端同时访问,你完全可以用两台触摸屏(比如一台嵌在柜门上,一台放在操作台)同时连接同一台PLC,做冗余或双控制位。关键是IP地址不能冲突,端口默认是102,两条连接共用同一端口,理论上没问题。不过真正的瓶颈在于CPU连接资源,S7-200 SMART的连接数需要查阅型号手册,小型机大概支持3-4路并发连接。
如果加了变频器、温控表等其他Modbus从站,场景就复杂一些。此时需要规划一个清晰的Modbus地址表,PLC做主站轮询读取多个从站,触摸屏只跟PLC通讯。这样可以避免多主站同时访问造成的总线冲突或者数据不一致。我遇到过用户直接把触摸屏也加了多个Modbus驱动,同时和好几个设备通讯,最后因为波特率和校验参数不一致导致总线偶尔风暴,所有设备都收不到完整数据。解决方案是统一使用Modbus RTU,9600波特率,8数据位,1停止位,无校验(或偶校验),尽量简化总线结构。
关于"device no response",再补充一个冷门原因。威纶通触摸屏有些新固件默认开启了"以太网自动协商",如果你的交换机是老旧型号不支持1000M全双工协商,偶尔就会出现连接后过几分钟自动断开的怪现象。可以把触摸屏的以太网速度手动设为100M半双工或自适应模式,重新下载工程。这个经验我是在一个老项目上踩出来的,当时换了两根网线都没解决,最后改了网络速度设置就好了。
6. 最后的个人经验和技术沉淀
这套三水箱系统的调试,前前后后用了三个整天。第一天,检查线路和IO,把触摸屏和PLC的通讯打通,确认模拟量信号正常。第二天,调试泵控制逻辑,手动、自动全部跑通,同时处理了两次液位信号漂移问题。第三天,做带水整定,优化了泵的启停滞回区间,并把报警清单跟操作员做了交底。
在整个过程中我最想强调的一点是,PLC和触摸屏调试,拼的其实不是技术炫技,而是对整个系统的"预期管理"。你写程序之前,脑海里得有一个完整的"什么时候该干什么"的流程;你画画面之前,得知道操作员会在哪个环节做哪个动作。程序写得再花哨,如果操作员看不懂画面、找不到按钮,照样是废品。
还有一点,备份和注释。我在给设备落地前,会把PLC程序的注释全部补齐(包括每条网络的功能说明),把触摸屏工程里的变量表导出成Excel,然后存档。这个动作在设备后期维护、故障排查、或者人员交接时,能省下巨大工作量。我看到太多工程师在现场改完程序不更新注释,过了三个月自己回来也看得一头雾水。这种"地雷",千万不要埋。
如果后续要扩展,这套三水箱系统可以加的东西还挺多。比如接入SCADA系统,把液位、泵状态、报警通过Modbus TCP或OPC UA协议上传到上位机或云平台,做远程监控。触摸屏侧也可以把数据用宏写到SQLite数据库,生成报表。这些在工业互联网的大背景下都是很好的增值方向,但基础还是今天说的这些调试基本功。
最后再分享一个小技巧:调试这种多水箱系统时,触摸屏上一定要有一个"全部停止"的急停按钮,并且这个按钮不仅要停泵,还要关闭所有电动阀,逻辑上独立于画面层级,任何时候都能按到。我见过太多项目因为画面嵌套太深,操作员一时找不到停止按钮,眼睁睁看着水箱溢流。这类教训,有一次就够你记住一辈子。