论文部分内容阅读
一、现状简介
我厂是一间具有70万吨自来水生产能力的自来水厂,自2009年起分三期完成了常规工艺的改造,新建了38格v型滤池以取代原有移动罩滤池和无阀滤池。由于滤池数量众多,因此建立一个稳定可靠的控制系统异常重要,一个稳定可靠的控制系统不仅能大大减少值班人员的劳动强度,提高劳动生产率,还能大大提高v型滤池运行的安全性。此文主要就v型滤池控制系统建设过程中遇到的一些问题进行讨论,下面先简单介绍一下38格滤池的硬件组成和网络结构。
(一) 主要反冲洗控制设备
1、三台变频器控制的鼓风机及其相关阀门;
2、三台变频器控制的反冲洗水泵及其相关阀门;
3、38格滤池上的现场控制plc;
4、反冲洗主控plc;
(二) 控制网络
整个控制系统主要由两种控制网络组成。
1、ethernet/ip;
该网络用于反冲洗主控plc与滤池现场控制plc之间的数据交换及控制;
2、devicenet。
该网络主要用于反冲洗主控plc与鼓风机及反冲洗水泵之间的数据交换及控制;
二、控制方案的制定
1、控制要求
设备能够按照工艺要求自行进行反冲洗及滤水操作,实现无人值守。
2、两种控制方案的分析
方案一:把整个控制系统看作一个人体,反冲洗主控plc为大脑,而38格滤池现场plc则为四肢。这种控制方案38格滤池现场plc只作为现场执行机构,负责现场设备的控制。反冲洗主控plc负责38格滤池的滤水及反冲洗等的逻辑控制,并通过控制网络把控制指令发送给滤池现场plc及相关反冲洗设备。
方案二:把整个控制系统看作一个社会,38格滤池现场plc为社会中的个体,而反冲洗主控plc则充当社会管理者的角色。38格滤池现场plc作为一个独立的控制系统存在,负责自身包括滤水及反冲洗等过程的逻辑控制。而反冲洗主控plc则负责协调各滤池间反冲洗请求及反冲洗设备的使用。
兩个方案之间的区别主要在于滤池及反冲洗的控制逻辑归属问题,是由反冲洗主控plc实现呢,还是由滤池现场plc实现呢?方案一在程序编写的角度来说会比较简单和方便,主要体现在所有的逻辑关系均在一台plc中实现,不需要考虑与其他plc之间的配合问题,且设备控制相对集中容易管理。但这种方案的优点也是其缺点所在,在实际运行中会出现较大的安全隐患,因为所有的滤池操作均需要在反冲洗主控plc中实现,一但主控plc发生故障,全部38格滤池将陷于瘫痪,造成停产事故。另外这种控制方式对于日后的生产维护也是不利的,任何涉及主控plc的维护工作均会对水厂的正常生产造成严重影响。方案二,则在程序编写及调试方面需要花费较多精力,但效果也是明显的,这种控制方式不但能充分发挥滤池现场plc的控制功能,而且更重要的是滤池的安全运行能够得到充分的保证。每格滤池的运行均由滤池现场plc进行控制,控制流程只在需要进行反冲洗时与反冲洗主控plc进行配合,因而即使反冲洗主控plc需要进行维护受到影响的也只是少数的一个或者两个滤池,对整个水厂的正常生产不会造成太大的影响。经过以上分析,从安全生产的角度来看方案二更为有利。
三、控制逻辑中需解决的问题
确定控制方案后,我们需要对具体的控制逻辑进行确认,其中主要有以下几个问题
1、 在单个滤池洗池流程已确定的情况下,如何合理安排38格滤池的洗池。在这里我们提出了两个方案
方案一、由反冲洗主控plc按一个既定的顺序一个接一个的洗;方案二、由每个滤池按照滤池自身运行情况判断是否进行洗池;同样的方案一的优点在于控制逻辑简单,但对滤池的运行不利,一方面容易在短时间内产成大量的污水,从而对污水回收系统造成巨大的负担,另一方面也使得整个滤池的洗池操作可控性不足,对日后的运行维护不利。而方案二则显得比较合理,不但能实时根据各个滤池的运行状态来确定洗池操作,而且还能避免大量滤池集中在某一时间进行洗池操作的弊端。
2、 如何解决在某个滤池的洗池过程中,其他滤池的洗池请求
为解决这个问题我们引入了“排队”的概念,即当接到洗池请求后反冲洗主控plc便建立一个单列n行的数组,这个数组就相当于一个洗池的队列,并按照先进先出的原则进行排队,每个在这个数组被重置之前发出洗池请求的滤池都会被加入到这个洗池队列之中,而数组被重置的时间就是队列中所有滤池的洗池操作完成之时。排队的具体实现逻辑如下:首先在程序中建立两个38行n列个数组和一个单列38行的数组,数组1用于存储38个滤池的运行数据及滤池对主控plc控制指令,数组2则用于存储主控plc反冲洗设备的运行状态及对滤池控制指令的反馈。这两个数组会以固定的时间间隔发送到相应的现场控制plc中。数组三则用于存储洗池队列。主控plc根据数组1中的内容判断是否收到洗池请求,如果接到洗池请求则将其池号加入到洗池队列中,然后程序判断洗池队列为非0则启动洗池队列,并在数组2中置位相应池号的洗池许可位并发送至滤池现场plc,滤池现场控制plc接到洗池许可后便启动洗池程序。此时,该滤池现场plc获得反冲洗鼓风机及水泵的控制权,当该池洗池完成后或者洗池过程中出现任何故障时,反冲洗主控plc将把反冲洗鼓风机及水泵的控制权收回,并将其赋予队列中的下一个滤池。当在洗池过程中有滤池申请加入洗池队列,反冲洗主控plc会根据数组1里的内容把相应的池号加入至队列的最后,并置位数组2中相应的排队位并发送至相应的滤池现场plc告诉其已加入洗池队列,并在往后的判断中根据该位的状态阻止其重复加入洗池队列。在整个洗池队列的运行过程中,我们还引入了“指针”的概念,该指针的作用主要用于确定洗池队列的具体位置,确定当前洗池的滤池号,该指针随着洗池队列非0的判断生效而启动,并置初始值1,每当有数组1中出现洗池完成位而加1,当指针指向队列中的0位时,则洗池队列完成,并清零队列中的所有洗池池号。
3、 提高程序的执行效率
由于需要监控的滤池数量众多,若按照一般的顺序控制逻辑进行编程的话,主控plc的控制逻辑将非常庞大而复杂,程序的执行效率会非常低下,特别是每个池控制状态字和洗池排队的判断。因此需要找方法对这部分逻辑进行优化,首先我们在逻辑控制中引入两个中间变量,变量一用于滤池的控制状态字的映射,变量二则用于洗池排队的控制。这样我们就可以利用这两个变量来建立一个循环用以实现滤池控制状态字的映射和洗池排队控制。具体的实现方法如下:变量一的每次程序扫描便加1,当变量一的值大于38时将其置零,在每次程序扫描的过程中将变量一作为池号,把相应池号的控制状态字映射至对应的数组。变量二的每次程序扫描便加1,当变量二的值大于38时将其置零,在每次程序扫描的过程中将变量二作为池号与洗池队列指针对应的洗池号进行对比,两者相同的话则进行洗池操作,若两者不等则将其排队。对程序进行循环处理后,能大大的简化控制程序,同时提高程序执行的效率。
结束语
在进行一个自控系统的规划时需充分了其控制过程及规模,并结合硬件设备的性能进行综合考虑,只有这样才能在保证基本控制功能的同时,充分发挥设备的性能。在数量面前,简单的控制逻辑也会变得不简单。面对数量众多的控制设备如何制定一个合理的逻辑从属关系至关重要,只有在理清各设备间关系的前提下,才能使编写的逻辑程序能高效地执行。
我厂是一间具有70万吨自来水生产能力的自来水厂,自2009年起分三期完成了常规工艺的改造,新建了38格v型滤池以取代原有移动罩滤池和无阀滤池。由于滤池数量众多,因此建立一个稳定可靠的控制系统异常重要,一个稳定可靠的控制系统不仅能大大减少值班人员的劳动强度,提高劳动生产率,还能大大提高v型滤池运行的安全性。此文主要就v型滤池控制系统建设过程中遇到的一些问题进行讨论,下面先简单介绍一下38格滤池的硬件组成和网络结构。
(一) 主要反冲洗控制设备
1、三台变频器控制的鼓风机及其相关阀门;
2、三台变频器控制的反冲洗水泵及其相关阀门;
3、38格滤池上的现场控制plc;
4、反冲洗主控plc;
(二) 控制网络
整个控制系统主要由两种控制网络组成。
1、ethernet/ip;
该网络用于反冲洗主控plc与滤池现场控制plc之间的数据交换及控制;
2、devicenet。
该网络主要用于反冲洗主控plc与鼓风机及反冲洗水泵之间的数据交换及控制;
二、控制方案的制定
1、控制要求
设备能够按照工艺要求自行进行反冲洗及滤水操作,实现无人值守。
2、两种控制方案的分析
方案一:把整个控制系统看作一个人体,反冲洗主控plc为大脑,而38格滤池现场plc则为四肢。这种控制方案38格滤池现场plc只作为现场执行机构,负责现场设备的控制。反冲洗主控plc负责38格滤池的滤水及反冲洗等的逻辑控制,并通过控制网络把控制指令发送给滤池现场plc及相关反冲洗设备。
方案二:把整个控制系统看作一个社会,38格滤池现场plc为社会中的个体,而反冲洗主控plc则充当社会管理者的角色。38格滤池现场plc作为一个独立的控制系统存在,负责自身包括滤水及反冲洗等过程的逻辑控制。而反冲洗主控plc则负责协调各滤池间反冲洗请求及反冲洗设备的使用。
兩个方案之间的区别主要在于滤池及反冲洗的控制逻辑归属问题,是由反冲洗主控plc实现呢,还是由滤池现场plc实现呢?方案一在程序编写的角度来说会比较简单和方便,主要体现在所有的逻辑关系均在一台plc中实现,不需要考虑与其他plc之间的配合问题,且设备控制相对集中容易管理。但这种方案的优点也是其缺点所在,在实际运行中会出现较大的安全隐患,因为所有的滤池操作均需要在反冲洗主控plc中实现,一但主控plc发生故障,全部38格滤池将陷于瘫痪,造成停产事故。另外这种控制方式对于日后的生产维护也是不利的,任何涉及主控plc的维护工作均会对水厂的正常生产造成严重影响。方案二,则在程序编写及调试方面需要花费较多精力,但效果也是明显的,这种控制方式不但能充分发挥滤池现场plc的控制功能,而且更重要的是滤池的安全运行能够得到充分的保证。每格滤池的运行均由滤池现场plc进行控制,控制流程只在需要进行反冲洗时与反冲洗主控plc进行配合,因而即使反冲洗主控plc需要进行维护受到影响的也只是少数的一个或者两个滤池,对整个水厂的正常生产不会造成太大的影响。经过以上分析,从安全生产的角度来看方案二更为有利。
三、控制逻辑中需解决的问题
确定控制方案后,我们需要对具体的控制逻辑进行确认,其中主要有以下几个问题
1、 在单个滤池洗池流程已确定的情况下,如何合理安排38格滤池的洗池。在这里我们提出了两个方案
方案一、由反冲洗主控plc按一个既定的顺序一个接一个的洗;方案二、由每个滤池按照滤池自身运行情况判断是否进行洗池;同样的方案一的优点在于控制逻辑简单,但对滤池的运行不利,一方面容易在短时间内产成大量的污水,从而对污水回收系统造成巨大的负担,另一方面也使得整个滤池的洗池操作可控性不足,对日后的运行维护不利。而方案二则显得比较合理,不但能实时根据各个滤池的运行状态来确定洗池操作,而且还能避免大量滤池集中在某一时间进行洗池操作的弊端。
2、 如何解决在某个滤池的洗池过程中,其他滤池的洗池请求
为解决这个问题我们引入了“排队”的概念,即当接到洗池请求后反冲洗主控plc便建立一个单列n行的数组,这个数组就相当于一个洗池的队列,并按照先进先出的原则进行排队,每个在这个数组被重置之前发出洗池请求的滤池都会被加入到这个洗池队列之中,而数组被重置的时间就是队列中所有滤池的洗池操作完成之时。排队的具体实现逻辑如下:首先在程序中建立两个38行n列个数组和一个单列38行的数组,数组1用于存储38个滤池的运行数据及滤池对主控plc控制指令,数组2则用于存储主控plc反冲洗设备的运行状态及对滤池控制指令的反馈。这两个数组会以固定的时间间隔发送到相应的现场控制plc中。数组三则用于存储洗池队列。主控plc根据数组1中的内容判断是否收到洗池请求,如果接到洗池请求则将其池号加入到洗池队列中,然后程序判断洗池队列为非0则启动洗池队列,并在数组2中置位相应池号的洗池许可位并发送至滤池现场plc,滤池现场控制plc接到洗池许可后便启动洗池程序。此时,该滤池现场plc获得反冲洗鼓风机及水泵的控制权,当该池洗池完成后或者洗池过程中出现任何故障时,反冲洗主控plc将把反冲洗鼓风机及水泵的控制权收回,并将其赋予队列中的下一个滤池。当在洗池过程中有滤池申请加入洗池队列,反冲洗主控plc会根据数组1里的内容把相应的池号加入至队列的最后,并置位数组2中相应的排队位并发送至相应的滤池现场plc告诉其已加入洗池队列,并在往后的判断中根据该位的状态阻止其重复加入洗池队列。在整个洗池队列的运行过程中,我们还引入了“指针”的概念,该指针的作用主要用于确定洗池队列的具体位置,确定当前洗池的滤池号,该指针随着洗池队列非0的判断生效而启动,并置初始值1,每当有数组1中出现洗池完成位而加1,当指针指向队列中的0位时,则洗池队列完成,并清零队列中的所有洗池池号。
3、 提高程序的执行效率
由于需要监控的滤池数量众多,若按照一般的顺序控制逻辑进行编程的话,主控plc的控制逻辑将非常庞大而复杂,程序的执行效率会非常低下,特别是每个池控制状态字和洗池排队的判断。因此需要找方法对这部分逻辑进行优化,首先我们在逻辑控制中引入两个中间变量,变量一用于滤池的控制状态字的映射,变量二则用于洗池排队的控制。这样我们就可以利用这两个变量来建立一个循环用以实现滤池控制状态字的映射和洗池排队控制。具体的实现方法如下:变量一的每次程序扫描便加1,当变量一的值大于38时将其置零,在每次程序扫描的过程中将变量一作为池号,把相应池号的控制状态字映射至对应的数组。变量二的每次程序扫描便加1,当变量二的值大于38时将其置零,在每次程序扫描的过程中将变量二作为池号与洗池队列指针对应的洗池号进行对比,两者相同的话则进行洗池操作,若两者不等则将其排队。对程序进行循环处理后,能大大的简化控制程序,同时提高程序执行的效率。
结束语
在进行一个自控系统的规划时需充分了其控制过程及规模,并结合硬件设备的性能进行综合考虑,只有这样才能在保证基本控制功能的同时,充分发挥设备的性能。在数量面前,简单的控制逻辑也会变得不简单。面对数量众多的控制设备如何制定一个合理的逻辑从属关系至关重要,只有在理清各设备间关系的前提下,才能使编写的逻辑程序能高效地执行。