艾默生ec20系列plc在空压机联控中的应用
三 控制程序
空压机联控系统主要是plc与单片机交换数据并确定每台空压机的运行方式。
程序的编写主体上分两大部分:读数据部分和写数据部分,流程图如下,
(一)读取单片机的信息
根据空压机控制器内单片机的相关modbus通讯协议,编写通讯“读信息指令”的数据帧,以plc中的modbus通讯指令发给控制器内的单片机,单片机响应后返回相应的数据帧。通过返回帧的相应字符串判断与控制器相连的空压机的各种故障状态工作状态以及空压机的各种压力温度数据,并将返回的各类数据存放在相应的数据寄存器。
在该子程序的开始部分,执行站地址加1的操作,即每进入读数据子程序就会读取上次读过的程序的下一台;靠站地址的不断变化我们实现了读取数据通讯的轮询操作。
modbus指令只需要一次上升沿作为发送使能,第一周期sm124没有开合的状态变化即没有上升沿,所以第一周期过后靠sm1的常闭上升沿作为modbus指令的发送使能。每次发送的同时靠发送使能的上升沿把sm135、sm136清位。sm135、sm136与通讯程序没有任何直接关系,只是贯穿程序所必须的标志位。
(二)向单片机中写入相关信息
整个写信息部分分下面三块:
a.逻辑判断运算部分
供气压力是系统各种运行状态改变与保持的唯一指标。压力小于供气压力要求下限就要更多的供气机组运行以增加供气量,压力大于供气压力要求上限就要把当前运行供气机组减少以减少供气量。而处于上下限之间的压力值时就保持当前机组的运行状态不变。
按照工艺控制逻辑来构成逻辑判断运算部分,并且机组按照先开后停的原则顺序启动(1、2、3←→3、2、1)。
为保证数据的正确性,需要判断读信息子程序的站地址与写信息程序将执行控制操作的站地址是否一致,然后需要判断相应的故障信息寄存器是否为0,为0证明无故障或轻故障,不为0则不向该站发任何控制指令并马上对下一台操作。
由于我们对故障进行了分类,所以可以根据不同类别的故障进行不同的控制操作:
1类故障不读不写(相应的故障信息寄存器为1)
2类故障只读不写(相应的故障信息寄存器为2)
没有故障纪录(相应的故障信息寄存器默认值为0)
对故障分类的控制策略是很有价值的,在以后的控制过程根据故障类别或者可以作为运行态的类别,进行有所区分的控制。不管是通讯控制方式还是数字i/o控制方式,相信都可以在某种程度上采用这类简便有效的方法。