单学军 屠冬萍
(上海恒逸聚酯纤维有限公司,上海201424)
某聚酯生产装置采用霍尼韦尔TPS系统实现生产流程的自动控制,在一次技术改造过程中,新增了一个小反应釜,后接一台熔体泵18P03和转速控制回路SK03。根据生产需求,SK03要与PC01或PC02组成串级回路,控制18P03的转速。这样控制关系比较复杂,3个控制回路的串级控制需要多次操作才能设置成功,工艺人员经常会由于某个串级没有退出,或开关点的选择不正确,导致无法投运。比如,如果SK03和PC01要组成串级控制,SK01和PC01就要先退出串级控制方式,同时要把PC01.OP输出由SK01.SP切换到SK03.SP。同理,其他回路也需要进行同样的操作。为了减轻工艺操作难度,充分利用TPS的优势,采用CL程序和VB语言编程,实现一键切换,以杜绝误操作。
生产装置中有一个大的主反应釜,后接两台熔体输送泵18P01和18P02。纺丝生产线A入口压力控制回路PC01作为主环与18P01的转速控制回路SK01组成串级控制,纺丝生产线B入口压力控制回路PC02作为主环与18P02的转速控制回路SK02组成串级控制,如图1所示。18P01转速串级控制相当于K1闭合,PC01.OP送到SK01.SP;18P02转速串级控制相当于K2闭合,PC02.OP送到SK02.SP。
图1 原有系统串级控制
切换开关有3个位置,当有回路处于串级控制时禁止切换,需隐藏切换开关,防止误操作。需要改变切换开关的位置时工艺应退出全部串级控制,此时切换开关显示,表明可以操作切换开关了。工艺选择流程图画面上切换开关“组合框”的下拉菜单,选择相应开关位置,两台纺丝入口压力控制回路的输出PC01和PC02,按工艺要求同步切换到输出目的源。改造后熔体泵的控制方案如图2所示,18P01转速控制,串级方式时相当于SW11闭合,SK01.SP的输入源由SW11的位置决定;18P02转速控制,串级方式时相当于SW12闭合,SK02.SP的输入源由SW12的位置决定。
图2 改造后熔体泵转速串级控制
切换开关设置如下:
a. 位置1。PC01和SK01串级,控制18P01转速;PC02和SK02串级,控制18P02转速。
b. 位置2。PC01和SK01串级,控制18P01转速;PC02和SK03串级,控制18P03转速。
c. 位置3。PC01和SK03串级,控制18P03转速;PC02和SK02串级,控制18P02转速。
将纺丝入口压力控制回路输出,通过“一入三出”扩展为3路,由操作人员选择流程图上的切换开关,通过CL程序来判断并选择“三选一”开关位置,将相关控制回路输出送到对应熔体泵转速控制设定值输入端,完成多回路的同步切换。
由于TPS系统的控制输出只能“推送”到一个输入点。因此,需要组态“一入三出”的开关点,把纺丝入口压力控制回路的一个输出扩展为3个输出。两台增压泵共需组态SW01和SW02两个开关点。
同样,TPS系统的设定点输入也只能来自一个输出点。因此,还要组态“三选一”的开关点,把经过选择的纺丝入口压力控制回路输出,送到相关的熔体泵转速控制回路设定点。3台熔体泵需要组态SW11、SW12和SW13共3个开关点。
操作人员在工艺流程图上选择一键切换的下拉菜单时,通过编写CL程序来判断操作人员当前选择的切换位置,由CL程序完成3个熔体泵控制回路的切换。CL程序为YC20。
编写流程图脚本,实现切换开关的显示与隐藏,当熔体泵的3个控制回路有一个或一个以上处于串级控制方式时,隐藏切换开关;否则显示切换开关。切换开关为LS21。
PC01点的OP值通过组态开关点“SW01”扩展为三输出,其点位号为SW01,组态点类型SWITCH,输入点数目为1,输入源PC01.OP,输出点数目为3,输出源有SW11.X1、SW11.X2和SW13.X3。其中,SW11是熔体泵18P01的输入选择开关;SW13是熔体泵18P03的输入选择开关。
PC02点的OP值通过组态开关点“SW02”扩展为三输出,其点位号为SW02,组态点类型SWITCH,输入点数目为1,输入源PC02.OP,输出点数目为3,输出源有SW12.X1、SW13.X2和SW12.X3。其中,SW12是熔体泵18P02的输入选择开关;SW13是熔体泵18P03的输入选择开关。
SK01的SP值通过开关点“SW11”选择输入源,其点位号SW11,组态点类型SWITCH,输入点数目为3,输入源有SW01.X1、SW01.X2和SK01.SP,输出点数目为1,输出源SK01.SP。其中输入源SW01.X1和SW01.X2是纺丝入口压力控制回路PC01的输出扩展开关;18P01.SP的作用是避免输入端开路。
SK02的SP值,通过开关点“SW12”选择输入源,其点位号SW12,组态点类型SWITCH,输入点数目为3,输入源有SW02.X1、SK02.SP和SW02.X3,输出点数目为1,输出源SK02.SP。其中输入源SW02.X1和SW02.X3是纺丝入口压力控制回路PC02的输出扩展开关;SK02.SP的作用是避免输入端开路。
SK03的SP值通过开关点“SW13”选择输入源,其点位号SW13,组态点类型SWITCH,输入点数目为3,输入源有SK03.SP、SW02.X2和SW01.X3,输出点数目为1,输出源:SK03.SP。其中输入源SK03.SP的作用是避免输入端开路;SW02.X2是纺丝入口压力控制回路PC02的输出扩展开关;SW01.X3是纺丝入口压力控制回路PC01的输出扩展开关。
切换开关位置判断的CL源程序代码如下:
SEQUENCE YC20(HPM;POINT YC20)//YC20为CL程序点
EXTERNAL SW11,SW12,SW13,LS21//LS21切换开关,共3个切换位置
PHASE INITIAL
BEGIN:IF LS21.S1=ON THEN//切换开关选择位置1时
&(SET SW11.S1=ON;SET SW11.S2=OFF;SET SW11.S3=OFF;
& SET SW12.S1=ON;SET SW12.S2=OFF;SET SW12.S3=OFF;
& SET SW13.S1=ON;SET SW13.S2=OFF;SET SW13.S3=OFF)
IF LS21.S2=ON THEN//切换开关选择位置2时
& (SET SW11.S1=OFF;SET SW11.S2=ON;SET SW11.S3=OFF;
& SET SW12.S1=OFF;SET SW12.S2=ON;SET SW12.S3=OFF;
& SET SW13.S1=OFF;SET SW13.S2=ON;SET SW13.S3=OFF)
IF LS21.S3=ON THEN//切换开关选择位置3时
& (SET SW11.S1=OFF;SET SW11.S2=OFF;SET SW11.S3=ON;
& SET SW12.S1=OFF;SET SW12.S2=OFF;SET SW12.S3=ON;
& SET SW13.S1=OFF;SET SW13.S2=OFF;SET SW13.S3=ON)
GOTO BEGIN
EDN YC20
切换开关(LS21)组合框选择程序源代码如下:
Sub OnChang()
If me.listindex=0 then
Display.params.tagname.selxinp=”SELECTX1”
Else if me.listindex=1 then
Display.params.tagname.selxinp=”SELECTX2”
Else if me.listindex=2 then
Display.params.tagname.selxinp=”SELECTX3”
End if
End if
Edn if
End sub
切换开关(LS21)显示/隐藏脚本源代码如下:
Sub OnDataChang()
If (LCN.SK01.MODE=”CAS” or LCN.SK02.MODE=”CAS”or
& LCN.SK03.MODE=”CAS”)Then
Me.Visible=FALSE
Else
Me.Visible=TRUE
End If
其中SK01、SK02和SK03为3台熔体泵转速控制回路,MODE=“CAS”表示控制回路处于串级方式。
当选择切换开关位置1时,显示切换开关位置1的输入和输出之间的连线和连接端号,同时隐藏位置2、3的输入/输出之间的连线。该显示在流程图画面上,实际切换由CL程序完成。切换开关位置1的源程序代码如下:
Sub OnDataChange()
If display.params.tagname.s1=true then
Me.visible=true
Line2.visible=false
Line3.visible=false
Text4.text=”X1”
Else
Me.visible=false
End if
End sub
当选择切换开关位置2时,显示切换开关位置2的输入和输出之间的连线和连接端号,隐藏位置1、3输入和输出之间的连线,流程图画面上的实际切换由CL程序完成。切换开关位置2的源程序代码如下:
Sub OnDataChange()
If display.params.tagname.s2=true then
Me.visible=true
Line1.visible=false
Line3.visible=false
Text4.text=”X2”
Else
Me.visible=false
End if
End sub
当选择切换开关位置3时,显示切换开关位置3的输入和输出之间的连线和连接端号,隐藏位置1、2的输入和输出连线,实际切换由CL程序完成。切换开关位置3的源程序代码如下:
Sub OnDataChange()
If display.params.tagname.s3=true then
Me.visible=true
Line1.visible=false
Line1.visible=false
Text4.text=”X3”
Else
Me.visible=false
End if
End sub
装置的切换开关LS21有3个位置,所以组合列表框要组态3个状态,分别是X1、X2和X3。当操作人员选择X1时,表明切换到位置1,CL程序执行切换到位置1的功能,把3个“三选一”开关——SW11、SW12和SW13,全部切换到位置1的状态。此时,PC01.OP送SK01.SP,PC02.OP送SK02.SP。操作人员可以根据实际情况,选择将SK01或SK02投入串级控制方式,此时,SK03只能选择手动方式或者自动方式,即使操作人员选择串级方式,也等同自动方式。同理,选择X2或X3时,CL程序也执行相应的动作完成所需的切换功能。切换开关LS21选择X1时,相关点连接状态如图3所示。
实际使用时,开关SW11、SW12和SW13位于不同的流程图上,每个流程图的切换开关旁都有选择开关LS21,操作人员可以选择任意一个进行切换,3个开关同步动作。
充分利用CL程序来完成多回路同步切换,利用脚本来显示/隐藏切换开关,既避免了工艺人员的误操作,又提高了系统的安全性。在实际使用中,发挥了很好的效果。同样的原理,可以按照这一思路,进行功能扩展,实现更加复杂的功能。使工艺操作更加简洁,进一步提高工业生产装置的智能化水平。
图3 切换开关选择位置1的组态