1 引言
西门子S7—200/300为可编程逻辑控制器,具有丰富的指令强大、运行稳定特点,广泛的应用于工业控制。本文将西门子S7—200/300组合,共同构成一个完整的控制网络,该系统应用于一种药品的生产流程控制,其涉及众多反应罐和控制设备,程序设计中进行参数化处理,发掘控制逻辑共性,使整个控制系统逻辑清晰、易于修改。
2 控制系统软硬件环境
2.1 硬件
上位监控计算机两套,下位西门子s7—300PLC-套,s7—200PLC若干套,以及反应釜、阀、泵、变频器等需要被控制的设备。
2.2 软件
上位使用组态王6.5开发和监控软件, 下位为Step7和Step7Micro/Win编程软件。
3 控制对象参数化处理
3.1 控制参数化和流程和配方的概念
流程是一个反应罐生产所进行所有操作,包含每一步所要控制的设备及控制顺序,固化在S7-200PLC中,更改需重新下载。配方是操作人员用上位组态王通过S7-300控制器经DP总线发送到指定200PLC中,配方中包含所有流程步、被执行的顺序及加料量等参数,可以根据工艺修改。
3.2 流程和配方中涉及的参数化处理
(1)流程步参数化:将流程进行排序用流程序号指向对应流程,这在程序的执行中对流程步调用起到指针的作用。(2)设备参数化:将整个流程中所有设备进行编号。规则:0表示空设备,1为泵,2为底阀,3为排污阀,4为总阀,5-14为阀1~10。(3)控制参数化:为解决设备启停连锁先后顺序,引入一个字节开关掩码:低4位开掩码,高4位关掩码。由高到低对应设备编号定义的被控设备,1关联,0不关联。如开关掩码为0010 0110,高四位0010为设备1的关掩码,四位所对应的设备号从高到低4321,表明设备l关闭前提是设备2先关;低四位01l0为设备1的开掩码,表明设备1打开的前提条件是设备2和设备3都打开。
3.3 S7- 200参数化控制编程
(1)读取配方参数:考虑生产需求,配方的执行由人工按钮启动,步执行以后按该步序号读取VB 1200中的流程参数,放到从VB319起始的6个临时内存中。
程序代码(斜体表示):
LD启动步:IO.2
//启动按钮按下
EI 7
CALL指针计算:SBR1 1,&VB1200,10,当前步:VB312,0,
#Point:LD0
//计算出存放配方参数的地址
BMB #Point: LD0,配方序号:VB319,6
//存储配方控制参数
(2)执行流程参数:配方执行(V31 8.24升沿),以内存VB1200中读取的流程序号(已经存储在VB320后单元中)为指针,从VB2000中读取流程控制数据,包括设备编号,开关掩码等,放到从VB300起始内存中。
程序代码:
LD步启动:V318.2
EU
CALL指针计算:SBR1 1,&VB2000,15,执行流程:VB320,1,#Point:LD1
//计算出存放流程参数的地址
BMB #Point: LD10,流程类:VB300,9
(3)输出逻辑控制指令。下面以设备1的启停控制为例说明该逻辑控制的实现。如下面代码所示,其中
控制1:V310.0置1贝0打开设备1,否则关闭。
设备1启动控制代码:
LD步执行:V318.3
//流程步执行中,步执行为1
LD状态2:V309.1
设备2状态与其开掩码常闭触点进行或运算
ON开掩码12:V305.1
ALD
LD状态3:V309.2
ON开掩码13:V305.2
ALD
LD状态4:V309.3
ON开掩码14:V305.3
ALD
S控制1:V310.0,
//输出逻辑控制指令
设备1停止控制代码:
LDN步执行:V3l8.3
LDN状态2:V309.1
//设备2状态常闭触点与其开掩码常闭触点或运算
ON 关掩码12:V305.5
ALD
LDN状态3:V309.2
ON关掩码13:V305.6
ALD
LDN状态4:V309.3
ON关掩码14:V305.7
ALD
R控制1:V310.0,
//输出逻辑控制指令
从控制代码中可以看出:设备1的控制与其它三个设备状态以及开关掩码有关,状态1,状态2,状态3,状态4为三台设备的状态值,开关掩码直接决定设备1的控制指令是否与该设备的状态有关。
以上就是该控制系统中S7-200的参数化编程每一步的代码实现。