赵银玲,李治国(.西安职业技术学院机电工程系,西安,7003;.中航工业西安飞行自动控制研究所,陕西西安,70065)
西门子PLC在数字信号处理当中的应用探究
赵银玲1,李治国2
(1.西安职业技术学院机电工程系,西安,710032;2.中航工业西安飞行自动控制研究所,陕西西安,710065)
文章介绍了西门子S7-300PLC的硬件组成,研究了其在DCS控制系统中的应用,从实际应用来看,控制的效果是令人满意的。
工业控制系统;DCS;PLC
可编程序控制器PLC是一种进行数字运算的电子系统,是专为在工业环境下的应用而设计的工业控制器。具有数学运算、数据传送、数据转换、排序、查表、位操作等功能,可以完成数据的采集分析及处理。因其具有编程简单、使用方便,功能完善且对环境适应性强等特点,数据处理一般用于大型控制系统,如无人控制的柔性制造系统;同时也被广泛应用于钢铁、石油、化工、电力、造纸、环保以及文化娱乐等各行各业。
1.1 S7-300 PLC系统结构
S7-300PLC功能强、速度快、扩展灵活、它具有紧凑的、无槽位限制的模块化结构。他的主要组成部分有导轨(Rack)、电源模块(PS)、CPU模块、接口模块(IM)、信号模块(SM)和功能模块(FM)。可通过MPI网的接口(5611卡)直接与编程器PG,操作员面板OP和其它S7PLC相连。其工作过程为:CPU首先扫描输入模块状态,并更新输入过程映像寄存器,然后执行用户程序,最后从输出过程映像寄存器中将值输出到输出模块,以此循环。
1.2 S7-300 PLC工作原理
循环扫描工作过程:与其它计算机系统一样,PLC的CPU采用分时操作原理,每一时刻执行一个操作,随着时间的延伸一个动作接一个动作顺序地进行扫描。CPU从第一条指令开始,顺序逐条地执行用户程序,直到用户程序转来,然后返回到第一条指令开始新一轮扫描。扫描周期一般为1-100ms。
1.3 S7-300 PLC程序结构
STEP 7 有三种编程方法可供选用,它们是线性编程、分部式编程和结构化编程。线性编程将整个用户程序写在一个指令连续的块中,处理器线性地或顺序地扫描程序的每条指令。该方法适用于比较简单的控制任务。分部式编程将用户程序分成相对独立的指令块,每个块包含给定的部件组或作业组的控制逻辑。
2.1 模拟量信号的采样
在工业控制现场,被控变量往往分布在生产现场的各个地方,因而计算机的工作环境恶劣,遭受干扰频繁。这些干扰将会影响控制系统的测控精度,因此必须将其滤除,以下以对工业现场信号采样并进行平滑处理的实例来具体说明S7-300PLC的具体应用。该实例从两方面入手,先是采样现场受干扰的信号,然后通过在程序中设置对其进行平滑处理。
一些S7-300 PLC的控制系统中,使用八通道模拟量模块采集信号,当模块数量较多时,读模拟输入量就很繁琐。但是我们可以通过软件设计,方便地把模拟量读回并顺序存入数据块中。我们可以定义:FC1——采样子程序。
表1 FC1的变量声明表如下:
(1) FC1的变量声明表如下:
(2) S7-300 PLC的语句表(STL)编写的采样程序如下:
L #DB_No //传送数据块块号
T LW 0 //保存数据块块号
OPN DB [LW 0] //打开存储数据块
L #PIW_Addr //模入模块通道起始地址
SLD 3 //左移三位形成地址指针
T LD 4 //保存地址指针
L #DBW_Addr //存储在数据块中的起始地址
SLD 3 //左移三位形成地址指针
T LD 8 //保存地址指针
L #DB_LEN //要读入的通道数作为循环次数
Next: T LW 0 //保存通道数
L LD 4 //将地址指针送入累加器
LAR1 //将地址指针送入AR1
L PIW [AR1, P#0.0] //地址指针加上偏移量
T LW 12
L LD 8
LAR1
L LW 12
T DBW [AR1, P#0.0]
L LD 4
+ L#16
T LD 4
L LD 8
+ L#16
T LD 8
L LW 0
LOOP Next
在调用这个程序时还要注意以下几个问题:(1)读模拟量输入模块数据通道是否从数据字的第零位开始;(2)过程量的最大测量范围;(3)数字量的有效值范围。
2.2 PLC对信号的平滑处理