邢本福,夏国强,李 萌,张重越
(1.北京中水科水电科技开发有限公司,北京 100038;2.三峡水力发电厂,湖北 宜昌 443000)
随着PLC产品的飞速发展、编程语言的多样化,在程序设计和应用方面对编程语言选择有了更高的要求。目前,PLC编程语言大致分为顺序功能图(SFC)、梯形图(LD)、功能模块图(FBD)三种图形化语言和语句表(IL)、结构文本(ST)两种文本语言;其中顺序功能图(SFC)编程语言具有流程可视化、程序易读、故障易查、编程简单、易维护等优点,在水电站开停机流程中得到了广泛应用。某巨型水电站改造前的开停机流程采用的是SFC编程方式,改造后的PLC采用的是傲拓科技自主可控高性能NJ600系列PLC,该PLC支持顺序控制图(SCC)而不支持SFC编程语言,以下主要对通过使用顺序控制图(SCC)图形化语言实现顺控流程的可视化编程进行阐述。
顺序控制图(SCC)属于图形化编程语言,且执行逻辑是顺序执行,编程方式如图1所示。该流程图由开始框、执行框、条件框、结束框、连线组成。
开始框:开始框在每个顺序控制图中都必须有并且是唯一的,它是顺序控制图的开始,开始框无需设置参数。
执行框:也称为步属性框,当使用某种操作时,需要选用执行框,执行框中有13种基本操作,可根据需要进行选择。
条件框:用来判断一个条件是否成立,如果条件成立,就走“是”分支,如不成立就走“否”分支。
结束框:一般的顺序控制图都要有结束。结束框也无需设置参数。也有个别需始终循环执行的顺序控制图可以没有结束框。
结合顺序控制图(SCC)编程语言特点,最终确定了在执行框属性中选择调用程序,在调用程序段中写入执行框步号、步运行时间、步超时时间及启动下一步条件程序,通过执行框中的“启动下一步条件程序”来判断是否满足下一步执行条件,从而实现顺控流程中的设备顺序控制。
以图1为例:在PLC编程软件变量表中建立顺控流程所需要的数据点,包括但不限于运行步号、步运行时间、步运行状态、步超时时间、下一步就绪、启动下一步条件满足。
运行步号:整型变量,用于上送,便于运行人员实时监视流程运行到哪一步。
步运行时间:整型变量,用于上送,以便运行人员实时监视流程本步运行了多长时间。
图1 顺序控制图(SCC)示意图
步超时时间:整型变量,步运行最长时间,如果步运行时间超过步超时时间,则发出步超时报警信号,并根据需要来执行中断流程或者跳转其他执行框。
(1)步运行:BOOL型变量,作为中间变量,执行顺控流程中对设备的操作。
(2)启动下一步条件满足:BOOL型变量,当此条件满足时,直接执行下一个执行框。
表1 设备执行逻辑名称
(1)根据顺控流程建立SCC顺控图程序,如图1所示。
(2)建立执行框读写程序,前面提到执行框支持13种基本操作,由于水电站顺控流程复杂且单个设备具有多种操作方式,因此执行框应选择“调用程序”基本操作属性,调用程序段内容应包含以下几个方面:对运行步号的读写功能;对运行超时时间的读写功能;对步运行属性的读写功能;对启动下一步条件的读写功能。通过对“程序段”编程,可以实现顺控流程中步运行时间监视、步运行超时报警、下一步启动条件读写、步与步之间转换等功能,逻辑如图2所示。
图2 执行框逻辑
(3)建立设备执行程序,水电站设备执行一般分为自动执行和手动执行2种操作方式,其中自动执行是根据顺控流程步运行状态直接触发,手动执行是运行人员在上位机进行下令触发,具体逻辑如图3所示。
图3 设备执行逻辑
(4)建立启动、中止SCC触发程序, SCC顺控图程序启动需要用EXEC功能块触发,流程执行异常中止需要用KILL功能块触发。如图4所示,“SEQ_S101_DI62”为S101流程启动信号, “RESET_SYN_ALL”为S101流程中止信号,通过二者信号的上升沿触发SCC流程启动、中止功能。
图4 SCC启动、中止调用程序
SCC流程执行过程中,已运行或正在运行的程序段颜色显示为红色,未执行的程序段显示为蓝色,方便技术人员实时观察程序运行到了哪一步,如图5所示。
图5 SCC运行监视
顺控流程在水电站机组运行过程中起着至关重要的作用,因此顺控流程设计的可视化、逻辑实现的清晰化、编程的简单化、维护便捷化在PLC编程中显得尤为重要,通过SCC顺序控制图对顺控流程的设计,使得顺控流程执行可视化、程序维护更加清晰易懂,减少了用户维护难度,相比其他编程方式,SCC顺序控制图在顺控流程方面节约了近30%的维护工作量。