水塔水位西门子S7-1200PLC和MCGS7.7联机程序博途V16,带io表和注释
水塔水位西门子S7-1200PLC和MCGS7.7联机程序博途V16带io表和注释V20变频器接线说明水塔水位控制是工业自动化中常见的应用场景今天咱们聊聊如何用西门子S7-1200 PLC和MCGS7.7触摸屏搭个联机控制系统。实际项目中遇到过水位传感器信号跳变的问题最后用了个简单的滤波程序搞定这事儿后面细说。硬件配置这块S7-1200 CPU选的是1214C DC/DC/DC款数字量输入用了I0.0-I0.3接水位浮球开关Q0.0控制水泵启停。V20变频器的模拟量输出接PLC的AI0用来读取频率反馈。IO表大概长这样//----数字量输入----I0.0 低水位开关I0.1 高水位开关I0.2 急停按钮//----模拟量输入----AI0 变频器频率反馈(4-20mA)//----数字量输出----Q0.0 水泵接触器Q0.1 变频器运行信号PLC程序里最核心的是自动控制逻辑。在博途V16里建个FB块关键代码如下NETWORK 1: 手动/自动模式切换A HMI_ManualMode //触摸屏手动模式信号JNB _001L HMI_ManualOutput //直接取手动设定值T Pump_CmdJU _002001: L AutoOutput //自动模式输出水塔水位西门子S7-1200PLC和MCGS7.7联机程序博途V16带io表和注释V20变频器接线说明T Pump_Cmd_002: NOP 0这段切换逻辑有个坑要注意——手动模式切换时要做好输出无扰切换要不然水泵会突跳。之前现场调试时就因为没做斜坡处理把机械密封给冲坏了。变频器控制部分用的是MODBUS RTU协议西门子这个CM1241模块配置参数时记得把报文间隔时间设成大于100ms。调试时用下面的指令抓包发现丢帧后来改到150ms就稳了MBMASTERDB(REQ:TRUE,MB_MODE:0,MBDATAADR:P#DB3.DBX0.0 BYTE 8,MBDATALEN:8);触摸屏这边用MCGS7.7做了个双水位指示动画把PLC里的实数变量WaterLevel绑定到进度条控件。有个小技巧是把水位量程转换成百分比时用线性标定公式做了个死区补偿防止浮球开关抖动WaterLevelPercent (RawValue - 500) * 0.1;if(WaterLevelPercent 0) WaterLevelPercent0;if(WaterLevelPercent 100) WaterLevelPercent100;说到V20变频器接线DI1端子接PLC的Q0.1模拟量输出AO1的端接PLC AI0别忘了在变频器参数里把P0771设成27输出实际频率。电源端子U1/V1/W1接水泵电机时一定要先确认电机铭牌上的额定电流有次新手同事接错线导致变频器炸机那味道现在还记得...调试过程中发现个有意思的现象当水位接近设定值时PID调节输出会频繁波动。后来在程序里加了带死区的PID算法当偏差小于5%时不调节直接让变频器保持当前频率效果立竿见影。具体实现是在PID指令前加了个比较块A WaterLevel_ErrorL 5.0R PID_Enable这套系统跑起来后最直观的感受是触摸屏上的历史曲线功能真香能清楚看到早中晚三个用水高峰期的水位波动规律。有次夜班水位异常下降就是靠曲线记录抓到是哪个熊孩子把进水阀给关了。最后说下接地——PLC柜、变频器、传感器必须共地之前省事没接结果模拟量信号时不时抽风用万用表量出1.2V的共模电压接地后马上正常。这血泪教训值两包华子钱各位同行切记。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2449900.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!