技术文章

当前页面: 首页 >技术文章 >西门子SCL高级编程语言在PSA装置中的应用

西门子SCL高级编程语言在PSA装置中的应用

供稿:中国工控网 2016/3/7 13:01:19

0 人气:418

  • 关键词: 氢气变压吸附分离 PLC SCL
  • 摘要:梯形图是PLC应用广泛的编程语言,但面对越来越复杂的控制要求,梯形图编程语言往往很难满足生产要求。西门子的编程语言中有一种被称为结构化控制语言(SCL)的高级编程语言,可以解决复杂控制的要求。在氢气PSA提纯单元采用了西门子公司最新的S7-400H系列冗余PLC作为控制系统,完成对氢气提纯装置的控制,其编程语言就是结构化控制语言(SCL)。

0.引言

  PSA为变压吸附(Pressure Swing Adsorption)。变压吸附(PSA)技术是:利用不同吸附剂对不同物质的吸附能力,吸附速度和吸附容量的不同,以及吸附剂对混合气体中各种组分的吸附容量随压力而变化的物理特性。采用自动控制阀门开关,自动实现升压吸附、降压解析的气体分离过程。

  PSA提纯单元采用以10塔为主的工艺流程运行方式。当与某一吸附器相连的程序控制阀或控制阀门开关的元件出现故障时,可根据对产品气的要求情况,自动(或手动)地转换为9塔、8塔、7塔、6塔和5塔等运行方式。10台吸附塔分成2组(每5台1组),当某组出现故障时,可以完全切除1组,达到真正不停产检修的目的,从而大大增加了装置长期稳定运行的可靠性。

1.  SCL语言

1.1 SCL语言简介

  SCL含义为结构化控制语言(Structured Control Language),是一种类似于计算机高级语言的编程方式,它的语法规范接近计算机中的PASCAL 语言,符合国际标准IEC 61131-3,它不仅仅具有PLC典型的元素(例如:输入/输出、定时器、计数器、符号表),而且具有高级语言的特性,例如:循环、选择、分支、数组、高级函数等。由于使用了强大语言结构,使编程更简单、快速,程序不易出错。读取更简单,结构更清晰。使用高级的语言和调试程序,程序测试更简单。

  S7-SCL特别适用于编程复杂的算法和算术功能,或者用于数据处理任务以及过程优化。氢气PSA提纯单元具有程控调节和参数优化控制等复杂控制方案,并且顺控步骤复杂,使用传统STEP-7编程语言困难、容易出错、调试不方便,因此使用S7-SCL语言进行编程。

1.2 SCL语言编程方法及步骤

  如安装STEP-7软件时没有集成安装S7-SCL语言,因此必须另外安装S7-SCL软件包和相关授权才能进行SCL语言编程。

  S7-SCL仍然支持STEP-7的程序块概念,OB(组织块)、FC(功能)、FB(功能块)、DB(数据块)、UDT(用户自定义数据类型)等可以由S7-SCL创建。在一个S7程序中,S7-SCL程序块也能够与其他STEP-7编程语言所编写的块相结合,块可以互相调用。S7-SCL块也可以存储在库中并被其他语言使用。

步骤如下:

1.2.1生成SCL源文件

右击源文件,点击插入新对象,选SCL源文件,如图1。

1.2.2编辑SCL源文件

双击打开生成的SCL源文件,这时源文件为空白文件,没有任何内容。可以根据要生成的程序块类型,来插入相应程序块模板来开始编辑源文件,如图2。

  

           

1.2.3编译源文件

按下图3中的编译按钮进行编译,编译后即可生成相应程序块。

     

            

图3 编译源文件

1.  控制功能介绍

  PSA氢气提纯单元采用以10塔为主的工艺流程方式运行,也可以运行在9塔、8塔、7塔、6塔和5塔等方式下运行。无论在哪种运行方式下都会按照分周期和步位切换方式运行,各吸附塔经历吸附、均压降、顺放、逆放、冲洗、均压升、终冲等操作步序。10个吸附塔分为2组,塔1、3、5、7、9为1组,塔2、4、6、8、10为2组。在操作步序中,同时处于吸附步序的有2个,可以是12、23、34、45、56等组合,当发生吸附步序切换时其间隔被称为分周期(FLOOP)。每个分周期内,各塔为完成步序切换要经历若干操作步骤被称为步位(BLOOP)。10塔运行时有10个分周期,每个分周期为8个步位。

  PSA控制系统程序的主线就是分周期和步位的切换,在此基础上再进一步控制相关阀门的动作。这部分程序的源代码在OB1(组织块)中编写,源程序如下:

IF DB1.STEP OR DB2.Q THEN          // 判断有无进指令或步位运行时间到

   IF DB1.BLOOP < 8 THEN

      DB1.BLOOP :=DB1.BLOOP+1;     // 如果有则步位加1

   ELSE

      DB1.BLOOP :=1;                  // 直到步位大于8复位为1

      IF DB1.FLOOP < DB1.STATETHEN

         DB1.FLOOP :=DB1.FLOOP+1;  // 步位复位为1时分周期加1

      ELSE

         DB1.FLOOP :=1;               // 分周期大于运行塔数时复位为1

      END_IF;

   END_IF;

END_IF;

  上述源程序中DB1是存放分周期、步位、步进、运行塔数等数据的数据块,其中FLOOP为分周期、BLOOP为步位、STEP为手动步进、STATE为运行塔数。DB2.Q为步进运行时间到标志位,由程序计算得出。通过上述程序,分周期和步位就会按程序增加,直到完成所有分周期和步位,分周期和步位恢复到初始位置1,开始下一周期运行。

3 结束语

  氢气PSA提纯装置自开车以来已连续运行6年时间,在这六年时间里,S7-400PLC控制系统运行平稳,性能稳定,从未出现CPU故障、I/O卡件故障、通讯故障以及程序错误等。SCL(结构化控制语言)编程简单、各种复杂控制、顺序控制功能易于实现。经过这几年的连续运行,程序未出现过任何错误。为装置的安稳长满优连续运行保驾护航,给企业带来了可观的经济效益。

 


审核编辑(王静)
更多内容请访问 中国工控网(http://www.gongkong.com)

手机扫描二维码分享本页

工控网APP下载安装

工控速派APP下载安装

 

我来评价

评价:
一般