• 自动控制系统 > 西门子 S7200 在多台潜水泵自动控制系统的应用
  • 西门子 S7200 在多台潜水泵自动控制系统的应用

    免费下载 下载该文档 文档格式:PDF   更新时间:2014-08-03   下载次数:0   点击次数:1
    1 西门子 S7200 在多台潜水泵自动控制系统的应用 本文介绍西门子 S7200 在多台潜水泵自动控制系统中的应用 关键词:FIFO、队列、故障自投、自动轮换、功能子程序 一、 引言 化工厂、电子厂的漂染冲洗液或电镀冲洗液等工业废水为合乎排放要求,必须经过分离、沉 淀等多级处理,使用污水潜水泵对此工业污水进行提升、汇集、调节等处理.PLC 因其经 济性、灵活性可靠性而得到广泛的应用,PLC 的软件可以完成以往传统的接触器继电器式 控制无法实现的控制功能,而且程序的编制修改灵活方便.西门子 S7200 系列 PLC 因结构 紧凑,编程简单方便、指令丰富、功能齐全而得到广大工程技术人员的喜爱,广泛应用于各 种中小型自动控制系统之中. 二、 系统控制要求 系统要求控制五台 45KW 的潜水污水泵轮换工作,并且具有故障自投、互为备用功能,以 保证某台水泵出现故障时, 其它水泵能及时投入使用. 水泵的起停液位控制器使用浮球控制 器、5 个,分为 5 级水位控制,每个浮球的高水位作为起泵信号使用,低水位作为停泵信号 使用. 三、 系统设计 系统的设计分为手动及自动控制系统两部分,手动控制系统作为一种应急控制而存在,自动 控制系统使用 PLC 实现. 1 、自动控制系统设计思路 为实现多台水泵的轮换起停及故障自投功能,一个可行的设计方法是使用西门子 S7200 系 列微型 PLC(CPU224)的入表指令(ATT)及先入先出指令(FIFO),将5台水泵作为 一个队列,当水泵运行或故障时出列,水泵故障排除或低水位停止时入列.例如,队列中原 PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn 2 来水泵的启动工作顺序为 12345 循环启动,当3#泵故障时出列,水泵的启动次序为 1245 循环启动,当3#泵修复正常后,水泵的工作次序为 12453 循环启动,如此类推(如图 1). 因此,我们将正常无故障的水泵作为一个备用泵队列,将正在运行的水泵作为运行泵队列, 通过队列中水泵的出入来实现水泵电机的循环启动功能. 2、 软件设计特点 本控制系统中,5 台水泵的热继电器故障输入及 5 个高水位信号输入共 10 个输入点,5 个 启动水泵及一个报警输出点共 6 个输出点,西门子 CPU224 具有 12 个输入点,10 个输出 点,已满足使用要求 . 启动信号:1#~5#高水位脉冲信号,共用信号,水泵启动时代表水泵的队列编号(1#~5#) 从备用泵队列中出列,同时此编号入运行泵队列; 停止信号:1#~5#低水位脉冲信号,共用信号,此时水泵编号的转移从运行泵队列移至备用 泵队列; 入列(入先进先出队列):当高水位脉冲信号到达时,使用填表指令(ATT)入表 出列(出先进先出队列):当低水位脉冲信号到达时,使用先进先出指令(FIFO)出列 故障出列:包括水泵运行或停止时出现故障时的出列,故障泵自动退出运行,并把下一台未运 PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn 3 行的正常泵作为备用泵,随时等待启动信号; 故障定义:空气开关跳闸的输出信号、电机热继电器过载. PLC 的程序设计流程图如图 2. 西门子 PLC 具有良好的编程界面,对于 S7200 的编程软件 STEP7 Micro WIN,各子程序及 主程序是在编写时独立分开的,各个子程序可以定义为完成各种单独功能的子程序,以主程 序调用各个子程序,各子程序之间可以互为调用.在本系统设计中,各子程序的功能定义及分 配如下: SBR0: 初始化子程序 SBR1: 备用泵初始入列处理子程序 SBR2: 故障出入列处理子程序 SBR3: 队列移位处理子程序 SBR4: 启停泵处理子程序 SBR5: 定时轮换处理子程序 PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn 4 以1#泵出现故障为例, 在SBR2 子程序中,水泵故障及修复后出入队列的部分程序如右下图 3,其中,参数 IN1 传递的为水泵备用队列编号,参数 IN2 传递的为水泵运行队列编号. 软件编写时应该考虑以下问题: 1) 为防止水面波动引起浮球误动作,增加延时 2S 判断; 2) 浮球故障引起的上下水位信号中有 2 个或以上信号同时或短时间内接通,此时只接收 一个信号,同时由 PLC 输出报警,以便检查故障; 3) 因水泵启动方式为 Y启动,要求电机完全启动(即 Y启动转换完毕)后第一水泵后 才能启动下一台水泵,同时,为了减少电机启动时对电网的冲击,都不允许两台泵在短时间 内相继启动,因此,需要对启动两台水泵之间增加一个延时判断,即如果在接收一个启泵信 号之后的一定时间内不能再接收第二个启泵信号. 4) 水泵的定时轮换工作. 四、结束语 本文介绍了多台电机的轮换控制的一种实现方法,该系统由于采用西门子 S7200PLC 实现 PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn 5 多台电机的轮换工作及故障自动切换,使水泵工作时间均等,水泵电机寿命延长.由于该系 统设计西门子 S7-200 在多台潜水泵自动控制系统的应用 未知来源 供稿 2005-3-19 11:23:00 【字体:大中小】 1 引言 化工厂、电子厂的漂染冲洗液或电镀冲洗液等工业废水为合乎排放要求,必须经过分离、沉淀等多级处理,使用污水潜水泵对此工业污 水进行提升、汇集、调节等处理.PLC 因其经济性、灵活性可靠性而得到广泛的应用,PLC 的软件可以完成以往传统的接触器继电器式 控制无法实现的控制功能,而且程序的编制修改灵活方便.西门子 S7-200 系列 PLC 因结构紧凑,编程简单方便、指令丰富、功能齐全 而得到广大工程技术人员的喜爱,广泛应用于各种中小型自动控制系统之中. 2 系统控制要求 系统要求控制 5 台45kW 的潜水污水泵轮换工作,并且具有故障自投、互为备用功能,以保证某台水泵出现故障时,其它水泵能及时投 入使用.水泵的启停液位控制器使用浮球控制器 5 个,分为五级水位控制,每个浮球的高水位作为启泵信号使用,低水位作为停泵信号 使用. 3 系统设计 系统设计分为手动及自动控制系统两部分,手动控制系统作为一种应急控制而存在,自动控制系统使用 PLC 实现. 3.1 自动控制系统设计思路 为实现多台水泵的轮换启停及故障自投功能,一个可行的设计方法是使用西门子 S7-200 系列微型 PLC(CPU224)的入表指令(ATT)及先 入先出指令(FIFO),将5台水泵作为一个队列,当水泵运行或故障时出列,水泵故障排除或低水位停止时入列.例如,队列中原来水泵 的启动工作顺序为 12345 循环启动,当3#泵故障时出列,水泵的启动次序为 1245 循环启动,当3#泵修复正常后,水泵的工作次序为 1 2453 循环启动,如此类推, 如图 1 所示.因此,我们将正常无故障的水泵作为一个备用泵队列,将正在运行的水泵作为运行泵队列, 通过队列中水泵的出入来实现水泵电机的循环启动功能. PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn 6 图1水泵的启动次序 3.2 软件设计特点 本控制系统中,5 台水泵的热继电器故障输入及 5 个高水位信号输入共 10 个输入点,5 个启动水泵及一个报警输出点共 6 个输出点,西 门子 CPU224 具有 12 个输入点,10 个输出点,已满足使用要求. (1) 启动信号:1#~5#高水位脉冲信号,共用信号,水泵启动时代表水泵的队列编号(1#~5#)从备用泵队列中出列,同时此编号入运行泵 队列. (2) 停止信号:1#~5#低水位脉冲信号,共用信号,此时水泵编号的转移从运行泵队列移至备用泵队列 入列(入先进先出队列):当高水位脉冲信号到达时,使用填表指令(ATT)入表; 出列(出先进先出队列):当低水位脉冲信号到达时,使用先进先出指令(FIFO)出列. (3) 故障出列:包括水泵运行或停止时出现故障时的出列,故障泵自动退出运行,并把下一台未运行的正常泵作为备用泵,随时等待启动 信号. 故障定义:空气开关跳闸的输出信号、电机热继电器过载. (4) PLC 的程序设计流程图 图2示出 PLC 程序流程图. PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn 7 图2PLC 程序流程图 西门子 PLC 具有良好的编程界面,对于 S7-200 的编程软件 STEP7 Micro WIN,各子程序及主程序是在编写时独立分开的,各个子程 序可以定义为完成各种单独功能的子程序,以主程序调用各个子程序,各子程序之间可以互为调用.在本系统设计中,各子程序的功能 定义及分配如下: SBR0:初始化子程序; SBR1:备用泵初始入列处理子程序; SBR2:故障出入列处理子程序; SBR3:队列移位处理子程序; SBR4:启停泵处理子程序; SBR5:定时轮换处理子程序. 以1#泵出现故障为例,在SBR2 子程序中,水泵故障及修复后出入队列的部分程序如图 3,其中,参数 IN1 传递的为水泵备用队列编号, 参数 IN2 传递的为水泵运行队列编号. PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn 8 图3子程序 SBR2 (5) 软件编写时应该考虑的问题 为防止水面波动引起浮球误动作,增加延时 2s 判断; 浮球故障引起的上下水位信号中有两个或以上信号同时或短时间内接通,此时只接收一个信号,同时由 PLC 输出报警,以便检查故障; 因水泵启动方式为 Y/启动,要求电机完全启动(即Y/启动转换完毕)后第一水泵后才能启动下一台水泵,同时,为了减少电机启动时 对电网的冲击,都不允许两台泵在短时间内相继启动,因此,需要对启动两台水泵之间增加一个延时判断,即如果在接收一个启泵信号 之后的一定时间内不能再接收第二个启泵信号; 水泵的定时轮换工作. 4 结束语 本文介绍了多台电机的轮换控制的一种实现方法,该系统由于采用西门子 S7-200 PLC 实现多台电机的轮换工作及故障自动切换,使水 泵工作时间均等,水泵电机寿命延长.由于该系统设计合理,自投入运行以来一直正常. 参考文献 [1> S7-200 系列可编程控制器系统手册. 2002 PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn 9 作者简介 刘敏俊(1977-) 男 目前主要从事生产自动化的系统设计及应用编程. 有10 个单元,每个单元有相同的工作流程,且同一时间内最多只能有 1 个单元进行工作,每个单元都会 发出动作请求和动作完成信号(开关量) ,并且先请求的先动作,完成动作后,单元发出动作完成信号(开 关量) . 在用先入先出指令时,我用每一个单元的动作完成信号并联作为先入先出指令的标志位,这样会 出现一个问题,当开始的时候没有一个单元能发出动作完成信号,所以先入先出指令无法执行,怎么办? ersacn 侠士 经验值: 1283 发帖数: 865 精华帖: 5 主题:回复:先入先出指令的运用问题 2011-08-30 12:19:48 1 楼 可以在上电初始化中先定义一个启动位,让其执行.也可以做个按钮定义启动. 学无止境,活到老学到老 jk88 游民 经验值: 82 发帖数: 26 精华帖: 0 主题:回复:先入先出指令的运用问题 2011-08-30 15:26:10 2 楼 谢谢 ersacn 的回答. 不过不行啊.因为单元不是一开始就进行排队的,而是完成一定的工序后自动进行 排队到表中.每个单元发出请求后,得到允许信号(开关量)后,才进行动作的.也就是每个单元先发出 请求信号,然后在表中排队,等前一个动作完了,发出允许信号给单元,这时单元才动作. 凌飞翼 PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn 10 侠圣 经验值: 2432 发帖数: 1828 精华帖: 14 主题:回复:先入先出指令的运用问题 2011-08-30 17:04:08 3 楼 这不就是一个初始化的问题吗? 在队列为空的时候,哪个申请都立即响应. 【凌飞翼=0 非1=0 不是 1】学而不思则罔,思而不学则殆---工控人切记:实践是检验真理的唯一标准! jk88 游民 经验值: 82 发帖数: 26 精华帖: 0 主题:回复:先入先出指令的运用问题 2011-08-30 17:49:09 4 楼quote:以下是引用凌飞翼在 2011-08-30 17:04:08 的发言: 这不就是一个初始化的问题吗? 在队列为空的时候,哪个申请都立即响应. 0 不是 1 老师 怎样能实现您说的方法?如何判定队列为空?或者说以什么来做先入先出的标志位? (10 个单元都有两路输出分别是请求和完成信号给主控 PLC,然后每个单元都有来自 PLC 的允许信号, 每个单元只有发出了请求,接收到 PLC 的允许信号后,方可动作)关键是同一时间内只能有一个单元动作 PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn 11 (动作时间大约 10 分钟) zhangli0 奇侠 经验值: 7109 发帖数: 5889 精华帖: 15 主题:回复:先入先出指令的运用问题 2011-08-30 20:16:43 5 楼 先入先出队列如果第一个数据和最后一个数据都是空(数值为 0)则队列是空的.初始化的时候你可以人 为定义一个顺序.这个顺序只要符合实际就可以了.当你定义的完全执行一次后就会按照实际排序来执行 了. 活到老,学到老!为了生活学习吧! icegrave 游侠 经验值: 504 发帖数: 195 精华帖: 2 主题:回复:先入先出指令的运用问题 2011-09-01 17:06:40 7 楼 根据楼主的意思我也写了个 我不判断队列是否空,初次执行时,按下执行按钮,就执行最先请求的单元.以后就用动作完成信号来激 活下一次动作的执行. 在执行按钮串个动作执行标志,防止在动作执行过程中,按下动作执行按钮,动作错误. TITLE=程序注释 Network 1 // 初始化 // 1.建动作请求表 // 2.初始化动作请求表 LD SM0.1 MOVW 5, VW0 FILL 0, VW2, 6 Network 2 // 网络标题 // I0.0---I0.4 对应 1 到5号单元的动作请求 // 每次收到动作请求响应 // 1.把动作请求的单元编号存到表中 PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn 12 // LD I0.0 EU ATT 1, VW0 Network 3 // 网络标题 // 网络注释 LD I0.1 EU ATT 2, VW0 Network 4 // 网络标题 // 网络注释 LD I0.2 EU ATT 3, VW0 Network 5 // 网络标题 // 网络注释 LD I0.3 EU ATT 4, VW0 Network 6 // 网络标题 // 网络注释 LD I0.4 EU ATT 5, VW0 Network 7 //首次执行, M0.0 启动按钮,M0.1 动作执行标志 LD M0.0 EU AN M0.1 FIFO VW0, VW101 Network 8 // 把表中的单元编号,按先进先出的顺序读出来. // I0.5---I1.1 对应 1 到5号单元的动作完成信号输入 LD I0.5 EU LD I0.6 EU OLD LD I0.7 EU OLD LD I1.0 EU OLD PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn 13 LD I1.1 EU OLD FIFO VW0, VW101 Network 9 // 根据单元编号执行动作 // Q0.0-----Q0.4 对应 1 到5号单元的动作使能 LDW= VW101, 1 = Q0.0 = M0.1 Network 10 LDW= VW101, 2 = Q0.1 = M0.1 Network 11 LDW= VW101, 3 = Q0.2 = M0.1 Network 12 LDW= VW101, 4 = Q0.3 = M0.1 Network 13 LDW= VW101, 5 = Q0.4 = M0.1 生命就是次单程旅行 jk88 游民 经验值: 82 发帖数: 26 精华帖: 0 主题:回复:先入先出指令的运用问题 2011-09-02 09:32:19 8 楼icegrave 你好 谢谢你的指导 下面有我的一点意见 共同讨论下 1 FILL 0, VW2, 6 这条指令不用要吧 2 不能设按钮,因为是自动化的,设按钮就失去了自动化的意义, 再说不知道单元何时发出请求,所以设 按钮就没必要了.每一个单元都上一个动作流程完成后发出请求,得到 PLC 的允许后开始动作,动作完成 后发出完成信号反馈给 PLC. PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn 14 3 我个人的一点意见是在先入先出的标志位上加一个判断,就是在你的程序中的 VW4 中应该是排队的第 一个数据,vw6 中应该是第二个数据,当只有一个数据排队时,没有完成信号的激活先入先出指令,所以 就不会执行,这时,我用比较指令,vw4 大于等于 1 的开点和 VW6 小于等于 1 的闭点串联,然后并到完 成信号中,来做先入先出的标志位. 老兄以为如何? 同时 也欢迎高手前来指导 icegrave 游侠 经验值: 504 发帖数: 195 精华帖: 2 主题:回复:先入先出指令的运用问题 2011-09-02 15:12:03 9 楼Jk88 1 FILL 0, VW2, 6 这条指令不用要吧 这条这条指令是用来初始化表格的.因为在用的时候我并不清楚这一段存储空间的状态. 2.关于按钮,那是用来上电后首次执行动作用的.只要设备进入动作执行状态,下次执行都是依靠动作完 成信号来激活.并不会失去自动的意义.如果不想用也是可以的. 在设备动作执行过程中,哪怕队列中只有一个动作请求也是会执行的,这一点我刚才试过了. 在我给你程序中应该加上队列中请求数的判断,当队列中只有一个请求,执行完后,如果没有新的动作请 求,应该给 VW101 写0让设备停下来,队列中的请求数直接读 VW2(表的实际条目数) ,你看这样是不 是比判断 vw4 大于等于 1 的开点和 VW6 小于等于 1 更加省事? 我将程序改了下,你看看能不能达到你的要求. TITLE=程序注释 Network 1 // 初始化 // 1.建动作请求表 // 2.初始化动作请求表 LD SM0.1 MOVW 5, VW0 FILL 0, VW2, 6 Network 2 // 网络标题 // I0.0---I0.4 对应 1 到5号单元的动作请求 // 每次收到动作请求响应 // 1.把动作请求的单元编号存到表中 // LD I0.0 EU ATT 1, VW0 PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn 15 Network 3 // 网络标题 // 网络注释 LD I0.1 EU ATT 2, VW0 Network 4 // 网络标题 // 网络注释 LD I0.2 EU ATT 3, VW0 Network 5 // 网络标题 // 网络注释 LD I0.3 EU ATT 4, VW0 Network 6 // 网络标题 // 网络注释 LD I0.4 EU ATT 5, VW0 Network 7 // 把表中的单元编号,按先进先出的顺序读出来. // I0.5---I1.1 对应 1 到5号单元的动作完成信号输入 LDW= VW2, 1 LD I0.5 EU OLD LD I0.6 EU OLD LD I0.7 EU OLD LD I1.0 EU OLD LD I1.1 EU OLD AW>= VW2, 1 FIFO VW0, VW101 Network 8 //如果队列中无请求,则停下来 LDW= VW2, 0 PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn 16 MOVW 0, VW101 Network 9 // 根据单元编号执行动作 // Q0.0-----Q0.4 对应 1 到5号单元的动作使能 LDW= VW101, 1 = Q0.0 = M0.1 Network 10 LDW= VW101, 2 = Q0.1 = M0.1 Network 11 LDW= VW101, 3 = Q0.2 = M0.1 Network 12 LDW= VW101, 4 = Q0.3 = M0.1 Network 13 LDW= VW101, 5 = Q0.4 = M0.1 生命就是次单程旅行 icegrave 游侠 经验值: 504 发帖数: 195 精华帖: 2 主题:回复:先入先出指令的运用问题 2011-09-02 15:21:29 10 楼 有点遗憾的是,我不知道这么解决两个以上的单元同时请求的问题 还有就是希望楼主如果可以的话,把这个项目情况说得更清楚点. 这样可以考虑得清楚点. 生命就是次单程旅行 jk88 游民 经验值: 82 PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn 17 发帖数: 26 精华帖: 0 主题:回复:先入先出指令的运用问题 2011-09-14 22:13:06 11 楼icegrave 感谢老兄精彩的分析,我觉得两个单元不会同时请求的,因为它就是间隔时间再短,也毕竟会有 个间隔的. 你说的让把情况说明白点, 我尝试传点图纸什么的, 但可惜传不上来.留下你的邮箱或者 Q 号, 咱们做深入的探讨.呵呵 我的 Q 号190101642 yanxiao 斑竹 经验值: 9110 发帖数: 7880 精华帖: 22 主题:回复:先入先出指令的运用问题 2011-09-15 07:28:17 12 楼 好象没有考虑队列溢出问题.同一个单元在未执行前,会发起多个请求没? icegrave 游侠 经验值: 504 发帖数: 195 精华帖: 2 主题:回复:先入先出指令的运用问题 2011-09-15 09:12:05 13 楼 多谢 Y 版的提醒. 如果楼主是设备不会重复请求,就不会出现队列溢出的问题. 5 个单元对应 5 个设备,最少有一个设备的动作请求处于执行状态. 如果楼主的设备在请求一段时间后动作未执行再次发出申请的话,就只好啰嗦点在每次填表前都先查表, 如果已对应的请求已经存在则不填表,否则填. 生命就是次单程旅行 jk88 游民 经验值: 82 发帖数: 26 PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn 18 精华帖: 0 主题:回复:先入先出指令的运用问题 2011-09-27 16:48:31 14 楼 谢谢各位的意见 问题已经解决了 风淡云晴 游侠 经验值: 431 发帖数: 153 精华帖: 3 主题:回复:先入先出指令的运用问题 2011-09-30 01:37:25 15 楼 很实用的资料 心晴朗,就会看得到永远;等一个晴天,阳光中,风筝会再飞上天 PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn
  • 下载地址 (推荐使用迅雷下载地址,速度快,支持断点续传)
  • 免费下载 PDF格式下载
  • 您可能感兴趣的
  • 电力拖动自动控制系统  自动控制系统课程设计  校园铃声自动控制系统  锅炉燃烧自动控制系统  配料称重自动控制系统  水位自动控制系统  自动控制系统的组成  水箱水位自动控制系统  自动控制系统论文  空调自动控制系统