ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

西门子1200PLC与KTP触摸屏的涂布机浆料输送控制案例

西门子1200PLC与KTP触摸屏的涂布机浆料输送控制案例 做电池产线的电气工程师十有八九都跟涂布机打过交道。涂布机的浆料输送环节看着不起眼却是直接影响涂布面密度和成品一致性的关键工序——浆料供不上涂布厚度就飘压力忽高忽低极片边缘就会出锯齿。最近我把一套基于西门子1200PLC加KTP触摸屏的浆料输送控制程序完整整理了一遍博途V16环境从项目组态、PLC程序到HMI画面全部走通这台设备在产线上稳定跑了两个多月。这篇文章就把整套案例如实拆给你看包括选型逻辑、程序结构、组态步骤和现场调试踩过的坑。如果你是刚接触S7-1200和KTP触摸屏想照着“博途V16程序案例”搭出一套能跑的浆料控制系统这篇可以直接当参考如果你已经在做锂电池设备那浆料输送的联锁逻辑和PID整定部分应该能帮你解决几个现场实际遇到的顽固问题。1. 项目背景涂布机浆料输送到底要控什么1.1 浆料输送在涂布工艺线里的角色锂电池极片涂布机的工作原理并不复杂把浆料通过供料系统输送到涂布头均匀涂敷在铝箔或铜箔集流体上再经过烘箱烘干。真正难的地方在“均匀”两个字。浆料输送系统一般由供料罐、输送泵、管道、过滤器、压力变送器、液位计和阀门组成它的任务就是在涂布过程中持续提供流量稳定、压力恒定的浆料。表面看只要泵不停就行实际上有几个非常现实的工艺问题。浆料是粘稠液体管路长了以后压力损失大过滤器被异物堵住时压力会突然飙升供料罐液位过低时泵会吸入空气浆料里一旦混入气泡涂布出来的极片就会出现针孔和条纹。这些情况都不能靠操作工肉眼盯着必须由控制系统实时判断并动作。这套程序的控制目标拆开就是四件事稳定供浆根据涂布速度自动调节泵速让管道压力保持在设定范围内。模式灵活设备调试阶段要能手动操作生产阶段切到自动闭环。安全联锁液位过低、压力过高、变频器故障时系统能自动停机并给出报警。生产可视操作工能在触摸屏上直接看到压力、速度、运行状态不需要开柜门看指示灯。1.2 为什么选西门子1200PLC加KTP触摸屏现在做锂电设备的控制方案主流选择无非是西门子S7-1200/S7-1500、三菱FX5U/Q系列还有一堆国产PLC。我最终选S7-1200加KTP这条路线主要是从三个维度考虑的。第一是性价比。S7-1200系列在小型设备上的价格和交期都比较友好CPU 1214C本身自带14路数字输入和10路数字输出对于浆料输送这类以数字量控制为主、模拟量数量不多的工艺本体就够用了。真要上S7-1500性能和扩展能力更强但成本翻了好几倍对这个项目来说属于性能过剩。第二是博途生态的集成度。PLC和HMI用同一个项目文件管理变量可以互相拖拽引用程序结构改完下载到两个设备都方便。用别的品牌PLC搭配独立组态软件的HMI光是变量表和通信地址的维护就够喝一壶的后期改程序极其痛苦。第三是维护友好。锂电产线设备工程师普遍熟悉西门子的操作习惯博途V16也是目前存量设备上比较常见的版本。客户现场如果出问题接手的电工不会因为软件太生疏而束手无策。当然也有缺点。S7-1200对模拟量扩展模块的通道数和精度天花板比较低SM1231 AI模块通常是4通道或8通道如果一个大系统里要采集十几路模拟量扩展成本就上去了。浆料输送这个工况恰好够用这也是选型时需要想清楚的地方。2. 硬件选型与博途V16环境准备2.1 硬件配置清单与IO分配硬件选型不能光看品牌得先算清楚输入输出点数再定具体型号。这套浆料输送系统的点位需求是数字量输入包括泵的运行反馈、变频器故障、供料罐液位低报警、液位低低报警、急停状态数字量输出包括泵启停指令、报警指示灯、卸压阀控制模拟量输入包括管道压力、浆料温度如果有模拟量输出是变频器速度给定。最终硬件清单如下表都是很常规的物料市场上随时能买到设备型号数量用途PLC CPU西门子 S7-1200 CPU 1214C DC/DC/DC1主控制器含14DI/10DO模拟量输入模块SM1231 AI 4x13bit1采集压力变送器、液位变送器等4路模拟量模拟量输出模块SM1232 AQ 2x14bit1给变频器提供0-10V或4-20mA速度给定HMI西门子 KTP700 Basic PN17寸触摸屏以太网连接PLC压力变送器0-1.0MPa输出4-20mA1管路上压力检测液位开关高低液位两个2供料罐液位联锁变频器0.75kW支持模拟量给定1驱动浆料输送泵IO分配我习惯在Excel里先列一版再填进博途的PLC变量表这样后面写程序不会乱。数字量输入地址从I0.0开始分配数字量输出从Q0.0开始模拟量从IW64开始模拟量输出从QW80开始。具体的地址规划要根据实际接线上来我给这套项目用的是I0.0泵运行反馈、I0.1变频器故障、I0.2液位低报警、I0.3液位低低报警、I0.4急停Q0.0泵启动、Q0.1泵停止、Q0.2报警灯AI通道0接管道压力、AI通道1接浆料温度AQ通道0接变频器速度给定。2.2 博途V16项目组态要点博途V16安装本身没什么神秘但几个前置条件没做好会很折磨人。系统建议用64位Windows 10专业版内存不要低于16GB硬盘最好用固态。安装包包含STEP 7 Professional V16和WinCC相关的组件安装时间比较长中途不要动电脑别杀后台否则很容易装到一半报错。组态时最容易卡住的就是许可证问题。网上经常看到“博图v16找不到许可证”我实际遇到的情况是自动化许可证管理器服务没有启动或者杀毒软件拦截了授权组件。解决路径是打开Windows服务找到Automation License Manager Service确认状态为“正在运行”并设为自动启动如果服务正常但依然提示无许可证卸载后重新安装授权管理器再把授权文件用管理员身份导入。项目创建阶段第一步新建项目第二步添加新设备选CPU 1214C第三步添加KTP700 Basic第四步把两个设备的以太网地址配到同一网段例如PLC为192.168.0.1HMI为192.168.0.10子网掩码都用255.255.255.0。然后添加模拟量模块时要注意博途里要给每个AI通道组态量程压力变送器输出4-20mA对应工程量0-1.0MPa这里的量程范围必须和实际传感器一致否则后面换算工程量全是错。初学的人经常忽略这一步结果压力显示数值不对还以为是传感器坏了。3. PLC程序设计浆料输送的核心控制逻辑3.1 程序结构用FC分块而不是一锅端很多初学者拿到一个项目喜欢把所有逻辑都写在一个OB1里几十个网络堆在一起看着能跑一旦出问题查起来想死。我这套程序从一开始就规划成模块化结构OB1只做调用具体功能全部拆到FC里。程序块规划如下程序块功能OB1主程序按周期调用各FCFC100模拟量采集与工程量换算FC200泵控制逻辑手动/自动模式切换与启停FC300PID闭环压力控制FC400联锁与报警逻辑FC500运行状态统计运行时间、累计次数每个FC内部用网络区分比如FC100里就是四段模拟量的采集和滤波。这样做的核心好处是现场调试时如果压力显示不对我只需要打开FC100不需要翻遍整个OB1后期想给泵控制加个联锁条件也只在FC200里加一段。PLC变量表是程序的地基建议把变量名全部写成下划线格式比如Pump_Start、Tank_Level_Low、Pressure_Value。地址也要提前规划好不能在写程序过程中随手新增变量重新分配否则到HMI组态时变量一多连接关系会乱成一团。3.2 模拟量采集从Raw值到工程量的标准做法S7-1200接到模拟量模块后原始值是一个整数RAW值。SM1231 AI模块在4-20mA模式下原始值范围是0到27648对应传感器量程的上下限。要把这个RAW值变成人能看懂的压力值标准写法是先用NORM_X归一化到0~1之间再用SCALE_X缩放到工程量。换算公式其实就是线性关系工程量 (RAW值 / 27648) × (量程上限 - 量程下限) 量程下限以我给这套项目用的压力变送器为例量程是0~1.0MPa那么额定电流20mA时RAW值是27648对应压力1.0MPa4mA时RAW值是0对应压力0MPa。换算SCL代码块如下// 压力工程量换算AI通道0 Pressure_Value : INT_TO_REAL(AI_Ch0_Raw) * 10.0 / 27648.0;这里我直接把乘法因子算成了10.0因为量程上限是10bar。如果传感器量程换成1.6MPa改代码里的缩放系数即可。注意做除法之前必须把INT转成REAL否则PLC会做整数除法结果直接截断成0。模拟量还有一个常被忽视的问题信号噪声。浆料输送管路旁边就是变频器电磁环境很差采集回来的压力值如果直接参与PID控制噪声会让泵速来回抖。我一般做两层处理第一层在SM1231模块属性里启用数字滤波滤波强度选弱或中第二层在FC100里加一个移动平均值滤波算法取最近5次采样平均。两层下来压力曲线基本稳定。3.3 泵速控制手动/自动与PID闭环浆料泵的控制难点在于既要能手动操作又要能自动稳压。手动模式用于设备调试、洗管、排料操作工可以在触摸屏上直接给定泵速百分比自动模式则用管道压力作为反馈由PID控制器调节泵速让压力稳定在工艺设定值。程序里的核心逻辑用SCL描述非常简洁IF Pump_Manual_Mode THEN VFD_Speed_Ref : HMI_Speed_Manual; // 手动速度百分比 ELSE VFD_Speed_Ref : PID_Output; // 自动PID输出百分比 END_IF;PID控制器我用的是博途自带的PID_Compact指令在OB1里调用组态界面里把Input接到压力值Output接到泵速给定。PID_Compact有几个关键参数需要设置控制模式选择标准采样时间根据工艺设为0.5秒浆料管道本身滞后不大采样太快反而容易引入噪声。输出限幅设为0~100%防止PID误动作时给出负速度或超高速。启用Setpoint Ramps设定值斜坡让泵速变化按斜坡走避免启动瞬间速度跳变冲击管道。手自动切换要配置反馈量也就是PID_Compact内部的手动模式切换功能否则切换瞬间泵速会突变。PID整定我建议按这个顺序来先切手动给定泵速50%观察压力稳定值然后把PID的P设为0.5I设为0切自动如果压力震荡幅度大就降P如果压力长时间回不到设定值就逐步加I。浆料管道的压力对象惯性中等纯滞后时间大约两三秒最终我用的参数是P1.2I0.08/min效果比较理想。3.4 联锁与报警浆料系统的安全底线联锁逻辑是整个程序的保命环节优先级最高不管手动还是自动模式都必须生效。我给浆料输送系统设了三条硬联锁第一条供料罐液位低低报警时立即停泵。低液位和低低液位是两个独立的液位开关低液位先报警提醒操作工准备换料罐低低液位说明泵已经开始吸空不停泵就会损坏泵头或者混入大量空气。第二条管道压力超过1.0MPa的90%时触发压力高报警超过100%时跳停泵并打开卸压阀。堵管和过滤器堵塞都会导致压力飙升高压状态下继续运行很危险。第三条急停信号和变频器故障信号同样直接触发停泵。急停要接常闭触点断线被检测为急停状态保证安全。报警逻辑写好以后还需要在HMI报警组态里把变量映射成文本。我习惯在PLC侧汇总一个报警字用Bit0表示液位低、Bit1表示液位低低、Bit2表示压力高、Bit3表示变频器故障HMI侧用报警视图直接监视这个字的每一位。这样做的优点是程序里判断联锁条件清晰HMI报警记录和状态显示也方便统一。现场调试这类设备联锁一定要优先于功能测试。先模拟液位低、压力高这些故障条件确认泵能停、报警能出再开始跑自动模式。别为了赶进度跳过这一步后面真出了事再补就晚了。4. KTP触摸屏画面设计与组态4.1 画面架构与主画面布局KTP700 Basic是7寸屏分辨率800x480画面不能做得太拥挤。我规划的页面结构是主画面、手动操作画面、PID参数画面、报警画面、信息统计画面。每个画面底部放一排导航按钮操作工可以一键切换。主画面主要放工艺流程图用简单的图形和线条画出供料罐、泵、管道、涂布头用变量连接状态颜色泵运行时图形变绿停止时变灰报警时闪红。再把管道压力、当前泵速、当前模式这三个最重要的实时值放在醒目位置。主画面的核心目标是一眼能看出设备现在是什么状态不需要操作工翻到别的页才看到报警。这里有一个细节值得说HMI画面里用图形对象关联PLC变量时建议再配一个文本状态描述比如“自动/手动/故障”三个文本根据变量值切换显示。纯靠图形颜色判断状态现场背光不亮或者角度不对时很容易看错。4.2 手动操作与PID参数设定画面手动操作画面是操作工用得最多的页面布局规则是把所有操作按钮放在右侧用左手操作防误触显示值放在左侧方便右手记录。画面上的按钮有泵启动、泵停止、模式切换手动/自动、急停复位。泵速给定用一个I/O域输入范围限幅到0~100%超出范围PLC侧还会再限制一次双保险。PID参数画面放三个设定值压力设定值、P参数、I参数。这些参数必须通过权限保护才能修改不能让操作工随意改动。我在博途的HMI安全组态里建了管理员用户和操作工用户操作工登录后能改压力设定值管理员才能改PID参数。设定值输入域设上下限压力上限不能超过量程的90%防止误填20MPa导致系统崩坏。参数画面还有一个实用小技巧在PID输出值旁边放一个条柱显示能直观看到当前泵速给到了多少。现场调PID时我通常把压力和泵速两个值放在同一屏在触摸屏上盯着这两个数字动态变化远比在电脑上反复对比曲线更直接。4.3 状态监视与报警记录画面KTP Basic上虽然没有完整的历史趋势控件但实时状态监视可以用条柱显示和I/O域做得很好用。我做了压力条柱显示0~100%对应0~1.0MPa颜色在正常范围显示绿色超过90%变红。条柱显示这种形式对操作工特别友好基本不需要培训就能看懂当前压力处于什么区间。报警画面用的是报警视图控件组态时把HMI报警类别里的“错误”状态加上。报警文本按“位置现象处理建议”的格式写例如“供料罐液位低——更换供料罐”“管道压力高——检查过滤器是否堵塞”。文本尽量具体不要只写“压力高”三个字。操作工看到报警视图就知道该去管路哪里看能明显减少现场沟通成本。报警还需要做“确认”和“复位”两个操作。我在报警视图下方放了确认按钮和复位按钮确认按钮的作用是消音和不闪烁复位按钮是清除仍存在的故障状态。程序上复位的触发条件是故障源已经消失并且操作工按下复位按钮才能清除报警记忆。4.4 HMI与PLC的连接与下载HMI和PLC的通讯是博途项目里很容易出错的一环。正确做法是在博途的设备和网络视图里把PLC的PROFINET接口和KTP的PROFINET接口用网线连接起来让软件自动建立连接关系。HMI侧每个需要访问PLC变量的画面通过变量拖拽方式连接到PLC变量表。下载HMI画面时要注意KTP初次下载前需要先把设备的IP地址配好。KTP启动时会进入一个启动菜单在Comissioning里设置IP地址为192.168.0.10子网掩码255.255.255.0然后电脑网卡临时改成同网段的静态IP再在博途里选择下载目标为“以太网”就能识别到设备并下载画面。如果下载时找不到目标设备多半是电脑网卡没有设成同网段或者Windows防火墙拦截了发现功能。博途里还有一个访问等级的概念S7-1200的CPU属性中有“防护与安全”选项缺省是“完全访问”。如果工程交付前被改成“只读访问”或绑定特定IPHMI的读写就会失败画面里所有输入域都会变灰。我在项目收尾时故意测过一次这个场景确认交付后给客户设置为“HMI访问”只允许触摸屏读写禁止上位机任意改程序防止误操作。5. 现场调试常见问题与排查实录5.1 博途V16许可证与下载问题博途V16使用过程中最容易劝退人的就是许可证。我自己遇到过三种情况。第一种是打开软件提示找不到许可证原因通常是Automation License Manager后台服务被禁用或杀毒清理。处理手段把服务改回自动并重启然后管理员身份运行授权管理器重新激活。第二种是STEP 7和WinCC的授权不属于同一套结果能开PLC程序不能开HMI画面或者反过来。这在博途里很常见因为不同产品组件的授权是分开的安装时要确认套包包含STEP 7 Professional和WinCC Basic/Advanced全部授权。第三种是在虚拟机里跑博途授权狗识别不到解决方法是把USB授权设备映射到虚拟机里或者用软授权时保证虚拟机不能频繁改硬件配置。给设备下载程序时如果提示“在线设备与项目不匹配”优先检查版本项目组态的S7-1200固件版本和CPU实际固件版本是否一致V16支持到V4.4和V4.5的常用固件如果CPU固件太新或太旧都会报这个错。这种情况不需要重装软件在博途里修改设备的固件版本重新下载即可。5.2 触摸屏连不上PLC的排查步骤KTP屏幕显示“连接中断”是现场最常见的故障之一。排查顺序我整理成固定的套路先查物理层再查网络层最后查组态层。物理层检查网线两端是否插牢水晶头弹片是否完好交换机供电是否正常。网络层用电脑分别在两个IP地址下ping对方PLC pr该ping不通就先处理物理连接和IP设置。组态层确认HMI变量连接的子网是同一个确认连接属性里勾选了“允许访问”并且没有因为访问等级设置导致无法读写。还有一次遇到的现象是屏幕偶尔掉线后来发现是车间里一台设备网线老化电磁干扰导致连接不稳定换掉网线后彻底解决。这里顺便说一句KTP700 Basic的以太网口不支持POE供电现场有人图省事用POE交换机直接带结果屏幕不亮还烧了接口设备供电必须按说明书单独接24V。这个错误我当时差点犯写出来给大家提个醒。5.3 模拟量信号飘零与干扰浆料输送的模拟量信号是最容易出问题的地方。压力变送器的4-20mA信号在PLC侧读取后经常出现数值随机漂移比如实际压力0.3MPa显示在0.25到0.35之间来回跳。这种问题我排查下来有三类原因。第一类是信号电缆屏蔽层没有单端接地或者屏蔽层两头都接地形成地环流。标准做法是屏蔽层在PLC柜侧单端接地传感器侧悬空。第二类是信号线和动力电缆走同一个线槽变频器的输出电缆会产生强烈干扰信号线和动力线间距至少要30cm无法满足时要改用屏蔽双绞线并单独穿管。第三类变送器供电电源不干净如果变送器用开关电源供电要确认电源纹波不大最好给变送器配隔离模块。软件层面能补的就只有滤波。我把SM1231的滤波时间从默认改成80ms再在程序里做移动平均双管齐下后压力值就稳定了。但这里必须提醒一点滤波时间加大可以压噪声也会让真实压力变化变得迟钝PID控制器会因此更难整定。滤波强度以“看到的值不乱跳且响应不算太慢”为原则别为了好看把时间调到几秒。5.4 PID震荡与浆料压力波动自动模式跑起来后最烦的就是泵速在那里来回晃压力曲线跟锯条似的。第一次遇到这个问题时我走了不少弯路后来总结了一套排查方法。先检查是不是传感器问题。压力值在手动模式下就波动较大那是采集侧的问题跟PID无关。传感器正常的前提下PID震荡大多是参数不合适引发的常见表现是压力来回穿越设定值周期比较规律那是I太大压力高频抖动那是P太大。处理办法是先把I清零只留P做比例控制把P降到0.3甚至更低看系统能不能自己稳定然后再慢慢加I让稳态误差消失。浆料管路物理上还有脉动泵的问题螺杆泵或隔膜泵天生就有周期性脉动如果工艺允许在管道上安装脉动阻尼器能显著改善压力曲线。如果压力波动周期和泵的旋转周期一致那基本就是机械脉动不是控制问题调PID没有用。我最终的PID参数组合是P1.2I0.08D0采样周期0.5秒压力设定值斜坡时间设为3秒。这套参数在正常工况下能把压力稳定在±1%以内。5.5 版本兼容性固件、软件与访问等级博途这个生态最大的槽点就是版本兼容性。V16项目文件用V17、V18打开通常会提示升级但反过来高版本没折。所以我做项目时会固定用一套版本不要在客户现场用V18打开再存回V16一旦保存格式升级旧版本软件就打不开了。还有一个很多人遇到过的问题“访问等级不能修改”。CPU在线后属性里的防护与安全设置是灰色改不了访问等级原因是当前工程项目的S7-1200固件版本和在线CPU固件版本不匹配博途为了安全不允许修改带保护等级的在线参数。解决办法是先在软件里把CPU固件版本设置成跟在线设备一致再尝试修改。如果固件版本本身就不被当前博途版本支持比如V16去连一个V4.6固件的CPU那就只能升级软件版本到V18或更高。现场调试时我建议至少把PLC的CPU固件版本固定在一个值项目组态、实际设备、备件清单三处保持一致不然换了一个新CPU回来固件版本不同程序下载不进去查半天才发现是固件差异。6. 这套程序还能怎么扩展浆料输送这套程序虽然是针对单台设备做的但控制思想完全可以往上升级。最直接的是把PLC的以太网口接到上位机或MES系统通过Modbus TCP或者西门子S7通信协议把关键数据送出去比如压力、泵速、报警状态、运行时长。S7-1200做Modbus TCP服务器非常方便博途里的Modbus TCP指令库帮我省了好几个晚上的工作量。生产管理者需要看的不是“泵现在转没转”而是“这个班组一共输送了多少浆料、停机了几次”这些数据需要在上位机侧做统计PLC侧把计数器和时间戳准备好就行了。如果设备规模变大比如一条线有多台涂布机、多个浆料输送站那就不能一台PLC孤立跑。可以上一台中央监控的上位机组态软件用OPC UA或者S7通信把所有站的PLC数据汇集到一起做成全厂浆料输送的实时看板。S7-1200固件V4.4以上都支持OPC UA服务器功能组态起来不复杂。如果你用的是其他品牌PLC比如汇川、三菱这类这套程序里总结的联锁优先级、PID整定方法和HMI画面规划思路是通用的差别只在于指令表和组态软件操作习惯核心逻辑完全可以平移过去。做设备调试的人都知道控制方案最值钱的部分从来不是某个指令的用法而是怎么把现场的工艺需求翻译成可控的逻辑。我还想提一下离线验证。程序写完不等于能直接上电跑博途V16自带PLCSIM仿真功能可以先把模拟量通道模拟成固定值跑一遍联锁逻辑确认各分支动作正确。触摸屏部分没法直接仿真但可以在下载前用画面编辑器里的“测试”功能预览画面布局检查变量连接有没有断。每次改程序后先在仿真里跑一圈可以省掉大量现场试错时间。写在最后的一点体会整套程序从搭建到现场跑顺花了我将近两周时间大部分时间都耗在PID整定和边界情况的联锁处理上。我的实际感受是浆料输送这类流程控制项目接线和基本程序很快真正决定设备好不好用的是两件事一是联锁是否考虑周全二是PID参数是否匹配现场。初学者最容易犯的毛病是一上来就堆功能什么都要自动忘了先把手动模式做扎实。手动模式任何时候都是调试的兜底方案管路清洗、试运行、故障排查全靠它。最后再分享一个小技巧把HMI画面上的泵速给定值和当前压力放在同一屏并排显示调试PID时眼睛盯着这两个值同时变化比对着电脑里的数据曲线自己猜快得多。项目完成后我养成了一个习惯每次调试任何闭环回路都先在屏上把给定值、反馈值、输出值三个量一起显示调试效率立刻提升一个档次。这套程序案例后期我还会往多配方管理、浆料余量称重计算方向扩展等有新进展再跟大家细聊。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进