4.3.2 控制程序设计
按照系统总体设计要求和系统实际情况,利用STEP7 编写控制程序。图4-9为系统接线原理图,图4-10为控制程序流程图。
计算机 液位检测信号 电动调节阀
反馈信号
CPU DI DO AI/O PLC PS
现场手动控制报警信号
信号
图4-9 系统接线原理图
开机 电动调节阀控制信号 初始化
输入量化
报警 手动 现场
给定数值 自动
PID
输出
图4-10 控制程序流程图
26
4.3.3 程序总体结构
在Step 7 中集成了PID 调节功能块FB41 (连续量)、FB42 (开关量) 和脉冲转换功能块FB43, 以便于用户使用其PID 调节功能。Step 7 还提供了标准闭环控制模块FM 355, 可以实现定值控制、串级控制、比例控制和三分量控制等多种功能。由于本控制系统实现的控制功能较简单, 故只用Step 7 内置PID 功能块即可。
在S7 系列PLC 的CPU 中, 有两种不同的程序总被执行: 操作系统和用户程序。操作系统用于组织与特定的控制任务无关的CPU 的功能和顺序, 包括处理热启动、刷新输入和输出的过程印表、调用用户程序、检测中断并调用中断、检测并处理错误、管理存储区域、与编程设备和其它通讯伙伴之间的通讯等。系统中提供的OB 块、SFC 块和SFB 块可以让用户设置和访问一些重要的系统功能, 其中OB 块是操作系统和用户程序之间的界面[5]。
用户程序是必须由用户自己生成并下载到CPU 中的程序, 其中包含处理特定的自动化任务所需要的所有功能, 它包括: 指定在CPU 上暖启动和热启动的条件, 处理过程数据, 指定对中断的响应, 处理程序在正常运行中的干扰等[6]。
Step 7 的用户程序允许线性编程和结构化编程。线性化编程是指整个用户程序都写在OBl 中, 此种方法只有在编写简单程序并且仅需较少存储区域时使用。现在普遍使用的是结构化编程, 即将复杂的自动化任务分解为能够反映过程的工艺、功能或可以反复使用的小任务, 并将相应的程序分别编在不同的程序块(OB , FC 或FB) 中。OB 1 通过调用这些块来完成整个自动化任务 。图4 -11即是结构化编程的简单示意图, 图中FB1, FC1 在OBl 中直接调用, FB1 中又调用FC2。程序在PLC 内按箭头所示方向循环执行。在其他OB 块中可有中断组织块。若在用户程序中设置了中断, 在中断到达时PLC 会中断此循环,自动转到相应的中断组织块执行中断程序。
27
操作系统 OB1 FB1 FC1 SFB FC2 FB1 SFC 其他OB
图4-11 结构化编程
结构化编程可以对单个的程序部分进行标准化, 简化程序组织, 使程序修改更容易, 大规模的程序更易于被理解。由于可以分别测试程序的各个部分, 查错更为简单, 系统的调试也更容易。
4.4 Step7编程界面简介
图4-12为PLC编程软件界面
(a)
28
(b)
(c) 图4-12 STEP7编程界面
29
4.5 MATLAB系统仿真
根据前文所得出的数学模型进行系统仿真,得出单容水箱阶跃响应曲线如图4-13所示。
命令:
>> sys = tf(1,[1 1],'Inputdelay',0.3); >> step(sys)
>> sys = tf(1,[1 1]); >> step(sys)
(a)
(b)
30