ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

S7-200 PLC与组态王空调自动控制系统设计与实现

S7-200 PLC与组态王空调自动控制系统设计与实现 做空调自动控制系统S7-200 PLC配合组态王是我这几年用得最多的一套组合。前段时间刚完整做完一个项目从电气接线、梯形图编写到组态王画面组态、通信调试整个流程走下来收获很大。这篇文章就把这套基于S7-200 PLC和组态王的空调自动控制系统完整拆开讲一遍内容包括系统需求分析、硬件选型、梯形图核心程序、组态王监控画面制作、通信配置以及联调排障尽量做到让拿到资料的人能照着往下推。这套系统要解决的现场问题很典型一台组合式空调机组负责厂房恒温恒湿以前全靠人工现场操作夜里、周末出故障都得人到现场。改造后要求在中控室就能看到温度、湿度、风机状态能远程启停、报警提醒。项目做完温度稳定在设定值±1℃以内操作员再不用跑现场了。1. 项目概述与需求分析1.1 这个空调自动控制系统要解决什么现场问题很多空调自控项目工艺看起来简单实际上现场条件比想象中复杂。我们这个项目控制的是一台组合式空调机组AHU按功能段来看有新风段、初效过滤段、表冷段、加热段、加湿段和送风机段。车间对温湿度有明确要求温度24±2℃相对湿度50%左右夏天要制冷除湿冬天要加热加湿。改造之前的痛点很实际操作员在现场开送风机、按压缩机启停按钮表冷器的冷冻水阀靠手动调节冬天电加热开多大也全凭感觉。夜里如果温度异常值班人员只能关掉风机等第二天再处理。车间白班夜班工艺都不停所以这套空调系统必须能24小时自动运行并具备远程监控能力。从控制需求上讲这套系统要处理的东西有这些送风机和排风机的启停控制以及运行状态反馈压缩机启停控制带高低压保护联锁回风温度、回风湿度、送风温度的信号采集冷冻水阀开度调节用PID控制电加热、加湿器的自动投切过滤器压差报警风机过载报警压缩机故障报警手动和自动两种模式自动模式由PLC根据温度偏差自行调节手动模式供检修和调试用。把这些需求转成控制点大概就是20个点左右。用一台S7-200加上一块模拟量扩展模块完全能覆盖不需要上太大系统。1.2 为什么锁定S7-200 PLC加组态王选型时也考虑过其他方案比如直接用现场仪表加继电器控制或者上DCS但最终选了S7-200加组态王。原因很简单项目预算有限、控制点不算多、现场维护电工对西门子PLC比较熟。S7-200虽然是西门子入门级PLC但性能可靠指令丰富内置PID指令尤其适合空调这种温度控制场景。梯形图这种编程方式电工师傅一看就懂后期维护压力小。对小型自控项目来说S7-200的性价比很高。组态王这边它是国产组态软件最大的好处是驱动全、上手快。里面自带西门子S7-200的PPI通信驱动配置设备、定义变量、拖图库一两天就能把监控画面做出来。相比从零开始写上位机界面组态王省掉的开发时间不是一点半点。这套组合的通信链路也成熟S7-200的PPI口和组态王走串口协议一根编程电缆就能连上。后续如果现场要升级以太网也可以加模块扩展路径清晰。2. 系统硬件配置与控制方案2.1 硬件清单和IO分配表硬件选型决定了项目后期的稳定程度。这套空调系统的硬件配置按实测需求来定包括PLC主机、扩展模块、传感器、执行器和通信设备。设备型号/规格数量PLC主机西门子S7-200 CPU224 AC/DC/RLY1模拟量扩展模块EM231 4AI 12位精度1温度变送器PT100输出4-20mA0-100℃2湿度变送器输出4-20mA0-100%RH1继电器24V DC中间继电器配底座4开关电源24V DC 5A1通信电缆USB-PPI编程电缆1断路器施耐德或正泰按回路配置若干IO分配这块要提前规划好现场接线才不会乱。数字量输入占用I0.0到I0.7数字量输出占用Q0.0到Q0.3模拟量通道从AIW0开始分配表如下。地址功能信号类型I0.0启动按钮常开触点I0.1停止按钮常闭触点I0.2风机运行反馈接触器辅助触点I0.3过滤器压差报警压差开关I0.4压缩机过载保护热继电器的常闭触点I0.5手自动切换开关旋转开关AIW0回风温度4-20mAAIW2回风湿度4-20mAAIW4送风温度4-20mAQ0.0送风机启停继电器输出Q0.1压缩机启停继电器输出Q0.2电加热投切继电器输出Q0.3加湿器投切继电器输出注意S7-200的输出点是继电器型直接驱动接触器线圈没问题但驱动电流较大时必须加中间继电器做隔离尤其是压缩机这类感性负载触点寿命才有保证。2.2 控制策略PID调节和启停控制怎么搭配空调系统的控制逻辑需要区分执行器类型。压缩机这类设备只能启停不适合连续调节所以采用温差控制加回差避免频繁启停冷冻水阀、电加热这类执行器可以连续调节由PID回路输出。温度控制的核心思路是回风温度作为反馈信号温度设定值由组态王下发到PLCPID指令根据偏差计算输出值输出对应冷冻水阀开度。冬天需要制热时切换回路电加热通过时间比例方式控制。湿度控制类似回风湿度低就开启加湿器湿度达到设定值后关闭同样做回差控制。PID参数在前期按经验设置比例增益先给0.5积分时间120秒微分置零。经过现场调整最终系统稳定下来温度波动控制在±1℃以内。后文梯形图部分会具体说明PID指令的配置方法。3. 梯形图程序设计核心逻辑逐段拆解3.1 手自动模式切换和启停自保持梯形图程序是整个控制系统的核心。这里用STEP 7-Micro/WIN V4.0编程语言选择LAD梯形图。程序按网络分段组织每个网络完成一个独立功能并在注释中写明作用方便后期维护。系统运行标志是基础网络完成启动自保持和停止复位功能。启动按钮I0.0按下后M0.0得电并自保持直到停止按钮I0.1断开或故障封锁信号M1.0断开。Network 1 系统运行允许标志 LD I0.0 // 启动按钮 O M0.0 // 自保持 AN I0.1 // 停止按钮常闭 AN M1.0 // 故障封锁 M0.0 // 运行允许标志手自动切换用I0.5开关分成两个中间继电器M2.0和M2.1。手动模式下各输出直接由现场按钮控制自动模式下输出由温度逻辑和PID控制。Network 2 手自动模式区分 LDN I0.5 // 开关在手动位 A M0.0 M2.0 // 手动模式标志 LD I0.5 // 开关在自动位 A M0.0 M2.1 // 自动模式标志提示手自动切换必须用中间继电器过渡千万别直接让开关触点进入输出回路否则切换瞬间输出容易抖动。3.2 温湿度采集与工程量换算模拟量信号转换为工程值是梯形图里最容易出错的地方。EM231模块接收4-20mA信号对应数字量6400到32000。换算公式是实际工程量 采样值 - 6400× 量程上限 /32000 - 6400。以0-100℃温度变送器为例程序如下。Network 3 回风温度采集换算 LD SM0.0 MOVW AIW0, VW100 -I 6400, VW100 // 减去4mA对应的6400 ITD VW100, VD110 // 整数转双整数 *D 100, VD110 // 乘以量程100 /D 25600, VD110 // 除以25600VD110里就是实际的回风温度值乘以10可以保留一位小数也可以在组态王里直接显示整数温度。湿度通道和送风温度通道同样处理分别换算到VD114和VD118。项目里使用这个换算方式后现场温度和变送器实测值完全一致。要注意的是S7-200的V区地址是字节重叠的VW100占用VW100和VW101VD110占用VB110到VB113如果换算结果保存在VD110再往VD114写下一个通道千万别把地址挤在一起。3.3 PID控制回路的组态与调用S7-200的PID指令可以通过向导配置程序里只需要调用生成的子程序。在STEP 7-Micro/WIN中依次选择“工具→指令向导→PID”配置以下参数回路编号0输入参数AIW4送风温度或设定为回风温度输出参数AQW0模拟量输出接冷冻水阀设定值VD200由组态王写入采样周期1秒比例增益0.5积分时间120秒微分时间0。向导生成PID0_INIT和PID0子程序后在主程序里只需要一行调用。PID运算结果通过模拟量输出模块控制电动调节阀。Network 4 PID回路初始化调用 LD SM0.0 CALL PID0_INIT需要特别说明的是S7-200的PID向导会自动生成PID指令所需的数据块不需要手动填写回路表。调试时调节温度设定值VD200AQW0输出会跟随偏差变化冷冻水阀逐渐开大或关小实际运行不会出现剧烈波动。3.4 风机、压缩机和电加热的联锁控制联锁逻辑是空调系统安全运行的关键。送风机是前置条件风机没有运行时压缩机、电加热、加湿器都不能启动。风机运行反馈用I0.2接入压差开关信号可以确认风道有风压。Network 5 送风机启停控制 LD M0.0 // 系统运行 AN M1.1 // 风机故障 AN M1.3 // 过滤器差压报警 Q0.0 // 送风机输出压缩机的启动条件更严格系统运行、自动模式、风机反馈到位、无高压报警、无低压报警再加上启动前延时防止频繁启动。Network 6 压缩机联锁控制 LD M2.1 // 自动模式 A I0.2 // 风机运行反馈 AN M1.0 // 无故障封锁 AN T37 // 未在延时时间内 TON T37, 100 // 10秒启动延时 LD T37 AN I0.4 // 无过载 Q0.1 // 压缩机输出电加热和加湿器类似由温度或湿度判断进行投切。冬季模式时如果回风温度低于设定值一定偏差电加热投入到达设定值后关闭。这里采用时间比例方式控制电加热输出不连续导通而是以1分钟周期输出脉冲温度越接近设定值输出时间越短效果比简单的开关控制好很多。3.5 报警、故障复位和时间延时处理报警逻辑采用保持方式故障出现后即使原信号恢复正常报警状态也要保持到人工复位。M1.0为故障总封锁由过滤器压差、压缩机过载、温度超高信号置位复位按钮I0.6触发M1.2解除报警状态。Network 7 故障报警与复位 LD I0.3 // 过滤器压差报警 O I0.4 // 压缩机过载 O M1.0 // 自保持 AN M1.2 // 复位按钮 M1.0 // 故障总封锁 Network 8 故障输出指示 LD M1.0 Q0.4 // 报警指示灯这样处理的好处是值班人员到现场检查消除故障后还要手动按一次复位按钮才能重新投入运行避免故障未排除就自动重启的危险。4. 组态王监控界面制作4.1 组态王版本选择与工程创建组态王这个软件版本影响不大常用的6.60SP4或者6.55都行。SP4补丁包驱动更全对S7-200的支持已经很稳定不需要单独装额外驱动。安装时注意把组态王装到系统盘默认路径驱动文件和工程文件分开存放避免后期升级时工程被覆盖。双击组态王图标进入工程管理器。新建工程时设定工程名称和存储路径工程存放路径最好用全英文目录避免个别版本软件出现数据词典乱码问题。工程建好后双击打开开发环境后面所有画面和变量都在这里完成。创建工程后第一步不是画画面而是先定义设备。在“设备”节点下选择“新建”出现设备配置向导。选择驱动PLC → 西门子 → S7-200系列 → PPI串口指定串口COM1或实际使用的串口号设置设备地址2这是S7-200默认站地址通信参数波特率96008位数据位偶校验1位停止位和PLC侧保持完全一致。4.2 数据词典变量定义组态王的变量全部在“数据词典”中定义分I/O变量和内存变量。I/O变量直接对PLC的寄存器进行读写内存变量用于画面内部的逻辑控制。核心的I/O变量定义成如下形式。变量名变量类型连接设备寄存器数据类型回风温度I/O实数S7-200VD110INT回风湿度I/O实数S7-200VD114INT送风温度I/O实数S7-200VD118INT温度设定值I/O实数S7-200VD200INT送风机启停I/O离散S7-200Q0.0Bit压缩机启停I/O离散S7-200Q0.1Bit系统故障报警I/O离散S7-200Q0.4Bit启动按钮I/O离散S7-200M0.0Bit停止按钮I/O离散S7-200M0.1Bit寄存器地址要和PLC梯形图中的地址一一对应。VD110是整数格式组态王定义时选INT不然显示出来就是乱码。组态王里寄存器类型的写法V区对应数据寄存器Q区对应输出位M区对应中间继电器。远程启停这里要特别说明组态王无法直接对PLC的启动按钮地址I0.0写入所以PLC程序里专门设计M0.0为上位机启动命令组态王按钮对M0.0置数。这样PLC本地按钮和远程控制可以共存互不干扰。4.3 空调机组画面绘制与动画连接组态王的图库功能让画面制作省了很多事。在“图库管理器”中找到空调机组、风机、阀门、管道、温度计、文字标签等图元直接拖拽到画面上再用图形工具调整大小位置。以实际画面为例左上角放回风温度和回风湿度显示框中间画机组流程图新风段、过滤段、表冷段、加热段、加湿段、风机段依次串联风机下面放运行状态指示灯右下角放报警窗口和趋势窗口。画面做好后最关键的是动画连接。每个图元都要连接到对应的变量温度显示框动画连接选择“模拟值输出”关联变量“回风温度”输出格式两位整数风机运行指示灯动画连接选择“隐含”当送风机启停变量为1时显示0时隐藏用红色高亮表示运行启动按钮动画连接选择“离散量输出”按下时变量“启动按钮”置1松开置0报警指示灯动画连接“离散量输出”关联“系统故障报警”报警时闪烁。阀门开度可以用“闪烁”或“填充”动画来体现填充的幅度关联PID输出变量能够直观看到冷冻水阀的开大关小。画面上不要堆太多图元动线和静态线分清楚值班人员看起来才不累。4.4 实时趋势曲线与报警窗口配置空调系统的温湿度趋势曲线是工艺人员最喜欢的功能组态王里配置起来很方便。画面空白处右键“插入通用控件”选择“实时趋势曲线”。在曲线属性里添加变量坐标轴设定量程温度0到100湿度0到100时间跨度建议设成30分钟。运行画面后回风温度和送风温度会实时滚动刷新温度变化趋势一眼就能看明白。历史趋势要另外配置历史库工程师站一般都会加上用于回溯故障发生前的温度变化。报警窗口用“报警事件”控件实现。在数据字典里把温度超高、过滤器压差、压缩机故障等变量加入报警组设定报警优先级和报警限。运行时报警窗口会弹出报警记录同时画面上报警指示灯闪烁。组态王的报警记录可以存到文本文件或数据库方便后续导出分析。5. 通信配置、联调与常见问题5.1 S7-200和组态王通信配置要点S7-200和组态王之间的通信是整个系统能否正常工作的关键。通信失败时画面上的温度显示为灰色按钮点了没反应故障现象看起来像PLC程序丢了实际上往往是通信参数不匹配。PLC侧的通信参数在STEP 7-Micro/WIN中设置“通讯”对话框中找到“设置PG/PC接口”选择PC/PPI cable属性里指定本机通讯接口、地址和波特率。S7-200默认PLC站地址为2波特率9600这是非常常见的出厂默认配置。组态王设备配置侧必须一致否则连不上。直接列一下实测最稳的参数组合。参数项PLC侧设置组态王侧设置通信协议PPIPPI站地址22波特率96009600数据位88校验位偶校验按电缆默认偶校验停止位11通信电缆的选择要注意。原装西门子USB-PPI电缆兼容性最好第三方电缆在部分电脑上会掉线尤其是USB转串口芯片不稳定的情况。建议通信不稳时优先换一根原装电缆或者加一块PCI串口卡来解决。5.2 联调流程先PLC后组态王联调阶段最容易排查出问题千万别一上来就组态王、PLC一起开。按顺序走先单独用STEP 7-Micro/WIN连接PLC下载程序在线监控确认梯形图运行正常启动、停止、手自动切换、报警逻辑都能在监控里看到状态变化组态王中做“设备测试”。在开发环境“设备”节点找到S7-200设备右键“测试”变量定义成功后测试框里能实时读到PLC返回的数据这一步能快速确认通信链路是否畅通通信正常后再开发画面定义一个I/O变量连接到PLC寄存器观察画面上的数据是否随现场变化刷新空载试运行先手动模式每个输出单独测试再切自动模式调节设定值观察PID输出变化。这套联调顺序能减少一半的排障时间。设备测试通过后画面数据依然显示异常那就是变量地址或者数据类型的问题和通信无关。5.3 常见问题排查速查表现象可能原因排查与解决组态王设备显示“正在通信”但数据不变PLC处于STOP模式切换PLC到RUN模式检查PLC状态指示灯设备测试超时站地址错误、波特率不一致、COM口被占用核对PLC地址统一波特率关闭串口调试工具温度显示为0或满量程模拟量接线松动、变送器无输出、量程换算不对先用万用表测变送器电流再查EM231模块和AIW地址温度显示跳动很大屏蔽层未接地、24V电源干扰信号线用屏蔽电缆屏蔽层单端接地PLC和传感器分开供电画面按钮点了没反应按钮连接的变量地址写错或PLC程序里没有对应M区检查动画连接变量在PLC在线监控看对应M区是否变化压缩机频繁启停PID输出波动或温差回差设置太小加大回差或调整PID参数增加启动延时组态王偶尔掉线USB转串口芯片不稳定、通信线过长换原装USB-PPI电缆改用PCI串口卡6. 项目落地后的几点实操经验整套系统完成之后有几个细节是常规调试文档里不会写的但实际项目里非常重要单独列出来分享。第一梯形图程序里所有输出线圈尽量集中在程序最后。S7-200允许同一个输出位在不同网络中出现但程序扫描时只有最后一个结果有效。真要在压缩机、电加热、加湿器的多个条件里控制同一个Q点最好用中间继电器M区汇总最后统一输出到Q点这样逻辑清晰也不容易出双线圈问题。第二V区地址分配要有规划。设计一套寄存器分配表比如VW100到VW150规划为模拟量采集区VD200到VW230规划为PID设定区M0.0到M1.5规划为控制标志区。修改程序时先查表再动地址。我在这个项目中期就吃过亏换了一个VW地址后组态王那边的变量得跟着改一遍多花了大半天。第三组态王设温度设定值时别忘了V区的掉电保持属性。如果掉电后设定值丢失开机默认回到0℃夏天系统一启动就全速制冷设备会受不了。解决办法是在PLC数据块里为VD200定义初始值或者用掉电保持V区让组态王下发的设定值在断电后还能保留。第四PID参数的整定不用追求教科书式的完美曲线。这套项目后期参数是增益0.8积分时间90秒微分时间0采样周期1秒。温度恢复时间大概5分钟超调也就0.5℃完全够用。第一次跑PID时输出大幅波动不要慌先把增益退回一半再把积分时间调大稳定下来再往回收。第五调试现场必带两样东西一本S7-200编程手册电子版和一根原装USB-PPI电缆。很多问题比如指令用法不熟、通信连接不上手册和原装线能省掉一半折腾时间。笔记本上提前装好STEP 7-Micro/WIN和组态王两个软件不要到了现场才找安装包。这套系统从设计到交付我先后花了一个多月时间大部分时间都耗在通信稳定和PID参数整定上。如果你也正在做类似的空调自动控制项目希望这份经验能让你少走点弯路把时间花在真正重要的控制逻辑上。
返回列表