摘要本文根据液位系统过程机理,建立了单容水箱的数学模型。
在设计中用到的PID算法提到得较多,PLC方面的知识较少。
并根据算法的比较选择了增量式PID算法。
建立了PID 液位控制模拟界面和算法程序,进行了系统仿真,并通过整定PID参数,同时得出了整定后的仿真曲线和实际曲线。
主要内容包括:PLC的产生和定义、过程控制的发展、水箱的特性确定与实验曲线分析,FX2系列可编程控制器的硬件掌握,PID参数的整定及各个参数的控制性能的比较,应用PID控制算法所得到的实验曲线分析,整个系统各个部分的介绍和讲解PLC的过程控制指令PID指令来控制水箱水位。
PLC在工业自动化中应用的十分广泛。
PID控制经过很长时间的发展,已经成为工业中重要的控制手段。
本设计就是基于PLC的PID算法对液位进行控制。
PLC经传感电路进行液位高度的采集,然后经过自动调节方式来确定完PID参数后,通过控制直流泵的工作时间来实现液位的控制。
PID处理一般是运行专用的PID子程序。
过程控制在冶金、化工、热处理、锅炉控制等场合有非常广泛的应用。
本次设计主要内容是利用提供的被控对象单容水槽和相关仪器仪表,设计液位控制系统,利用组态王软件编写控制算法实现控制系统的上位机监控。
关键词:组态王,液位控制,PID算法,过程控制一、设计任务 (3)二、实验目的 (3)三、实验方案 (4)四、实验过程 (5)实验总结 (17)参考文献 (18)附录 (19)一、设计任务:(1)液位监控:完成一个液位监控系统,要有流程图画面,报警画面,历史曲线、实时曲线、报表等个画面键可以灵活切换。
(2)通过组态软件,结合实验已有设备,按照定值系统的控制要求,根据较快较稳的性能要求,采用但闭环控制结构和PID控制规律,设计一个具有美观组态画面和较完善组态控制程序的液位单回路过程控制系统。
设计要求(1)根据液位单回路过程控制系统的具体对象和控制要求,独立设计控制方案,正确选用过程仪表。
(2)运用组态软件,正确设计液位但回路过程控制系统的组态图、组态画面和组态控制程序。
二、实验目的:(1)能根据具体对象及控制要求,独立设计控制方案,正确选用过程仪表。
(2)能够根据过程控制系统A/D、D/A和开关I/O的需要,正确选用模块。
(3)能根据与计算机串行通讯的需要,正确选用RS485/RS232转换与通讯模块。
(4)能运用组态软件,正确设计过程控制系统的组态图、组态画面和组态控制程序。
(5)控制要求超调量小于等于4%,峰值时间不超过30s。
调节时间越短越好。
三、实验方案:整个过程控制系统由控制器、调节器、测量变送、被控对象组成。
在本次控制系统中控制器为计算机,采用算法为PID控制规律,调节器为电磁阀,测量变送为HB、FT两个组成,被控对象为流量PV。
结构组成如下图2.2所示。
当系统启动后,水泵开始抽水,通过管道将水送到上水箱,由HB返回信号,是否还需要抽水到水箱。
若还需要(即水位过低),则通过电磁阀控制流量的大小,加大流量,从而使下水箱水位达到合适位置;若不需要(即水位过高或刚好合适),则通过电磁阀使流量保持或减小。
其整个流程图如图2.1所示。
图2.1 液位单回路控制系统图过程控制系统由四大部分组成,分别为控制器、调节器、被控对象、测量变送。
本次设计为流量回路控制,即为闭环控制系统,如下图2.2.计算机控制器电动调节阀管道流量检测传感器_PVSPPV1图2.2 液位单回路控制系统框图四、实验过程:• 在组态王中,我们所建立的每一个组态称为一个工程。
每个工程反映到操作系统中是一个包括多个文件的文件夹。
工程的建立则通过工程管理器。
• 点击“开始”---〉“程序”---〉“组态王6.5*”---〉“组态王6.5*” (或直接双击桌面上组态王的快捷方式),启动后的工程管理窗口• 搜索:单击此快捷键,在弹出的“浏览文件夹”对话框中选择某一驱动器或某一文件夹,系统将搜索指定目录下的组态王工程,并将搜索完毕的工程显示在工程列表区中。
•删除:在工程列表区中选择任一工程后,单击此快捷键删除选中的工程。
•属性:在工程列表区中选择任一工程后,单击此快捷键弹出工程属性对话框,可在工程属性窗口中查看并修改工程属性。
备份工程备份是在需要保留工程文件的时候,把组态王工程压缩成组态王自己的“.cmp”文件。
•第一步:创建新工程•第二步:定义硬件设备并添加工程变量。
添加工程中需要的硬件设备和工程中使用的变量.包括内存变量和I/O 变量•第三步:制作图形画面并定义动画连接•按照实际工程的要求绘制监控画面并使静态画面随着过程控制对象产生动态效果。
•第四步:编写命令语言。
通过脚本程序的编写以完成较复杂的操作上位控制。
•第五步:进行运行系统的配置。
对运行系统、报警、历史数据记录、网络、用户等进行设置,是系统完成用于现场前的必备工作。
•第六步:保存工程并运行完成以上步骤后,一个可以拿到现场运行的工程就制作完成了。
1水泵的动画连接及其程序编写2水管的动画连3启动按键的定义4停止按键的定义5历史曲线的按键定义6实时曲线的定义7报警按键定义命令语言• 组态王除了在定义动画连接时支持连接表达式,还允许用户编写命令语言来扩展应用程序的功能,极大地增强了应用程序的可用性。
• 命令语言的句法和C语言非常类似,可以说是C的一个简化子集,具有完备的词法语法查错功能和丰富的运算符、数学函数、字符串函数、控件函数、SQL 函数和系统函数。
命令语言分类• 应用程序命令语言:可以在程序启动时、关闭时或在程序运行期间周期执行。
如果希望周期执行,还需要指定时间间隔。
• 热键命令语言:被链接到设计者指定的热键上,软件运行期间,操作者随时按下热键都可以启动这段命令语言程序。
• 事件命令语言:规定在事件发生、存在、消失时分别执行的程序。
• 数据改变命令语言:只链接到变量或变量的域。
在变量或变量的域值变化到超出数据字典中所定义的变化灵敏度时,它们就被触发执行一次。
• 还有自定义函数命令语言,画面、按钮命令语言实现画面切换功能• 利用系统提供的“菜单”工具和ShowPicture() 函数能够实现在主画面中切换到其他任一画面的功能• ShowPicture("3实时曲线"); 趋势曲线• 趋势曲线用来反应变量随时间的变化情况.趋势曲线有两种:实时趋势曲线和历史趋势曲线。
应用程序if(\\本站点\开关转换==1){\\本站点\Ti=8;\\本站点\Kp=15;\\本站点\Td=10;if(\\本站点\电机==1 &&\\本站点\开关==0){\\本站点\ek0=\\本站点\Sp-\\本站点\水箱液位;\\本站点\微分液位差=\\本站点\ek0+\\本站点\ek2-2*\\本站点\ek1;\\本站点\Uk=(\\本站点\Ti*(\\本站点\ek0-\\本站点\ek1)+\\本站点\Kp*\\本站点\ek0+\\本站点\Td*\\本站点\微分液位差)/500;\\本站点\水箱液位=\\本站点\水箱液位+\\本站点\Uk;\\本站点\液位传递值=\\本站点\ek1;\\本站点\ek1=\\本站点\ek0;\\本站点\ek2=\\本站点\液位传递值;\\本站点\储水箱液位=300-\\本站点\水箱液位;}if(\\本站点\电机==1 &&\\本站点\开关==1){\\本站点\ek0=\\本站点\Sp-\\本站点\水箱液位;\\本站点\微分液位差=\\本站点\ek0+\\本站点\ek2-2*\\本站点\ek1;\\本站点\Uk=(\\本站点\Ti*(\\本站点\ek0-\\本站点\ek1)+\\本站点\Kp*\\本站点\ek0+\\本站点\Td*\\本站点\微分液位差)/500+\\本站点\水流;\\本站点\水箱液位=\\本站点\水箱液位+\\本站点\Uk-\\本站点\水流;\\本站点\液位传递值=\\本站点\ek1;\\本站点\ek1=\\本站点\ek0;\\本站点\ek2=\\本站点\液位传递值;\\本站点\水流=\\本站点\水箱液位/100;\\本站点\储水箱液位=300-\\本站点\水箱液位;}if(\\本站点\电机==0 &&\\本站点\开关==1){\\本站点\水流=\\本站点\水箱液位/100;\\本站点\水箱液位=\\本站点\水箱液位-\\本站点\水流;\\本站点\储水箱液位=300-\\本站点\水箱液位;if(\\本站点\水箱液位<1)\\本站点\水流=0;}}if(\\本站点\开关转换==0){if(\\本站点\电机==1 &&\\本站点\开关==0){\\本站点\ek0=\\本站点\Sp-\\本站点\水箱液位;\\本站点\微分液位差=\\本站点\ek0+\\本站点\ek2-2*\\本站点\ek1;\\本站点\Uk=(\\本站点\Ti*(\\本站点\ek0-\\本站点\ek1)+\\本站点\Kp*\\本站点\ek0+\\本站点\Td*\\本站点\微分液位差)/500;\\本站点\水箱液位=\\本站点\水箱液位+\\本站点\Uk;\\本站点\液位传递值=\\本站点\ek1;\\本站点\ek1=\\本站点\ek0;\\本站点\ek2=\\本站点\液位传递值;\\本站点\储水箱液位=300-\\本站点\水箱液位;}if(\\本站点\电机==1 &&\\本站点\开关==1){\\本站点\ek0=\\本站点\Sp-\\本站点\水箱液位;\\本站点\微分液位差=\\本站点\ek0+\\本站点\ek2-2*\\本站点\ek1;\\本站点\Uk=(\\本站点\Ti*(\\本站点\ek0-\\本站点\ek1)+\\本站点\Kp*\\本站点\ek0+\\本站点\Td*\\本站点\微分液位差)/500+\\本站点\水流;\\本站点\水箱液位=\\本站点\水箱液位+\\本站点\Uk-\\本站点\水流;\\本站点\液位传递值=\\本站点\ek1;\\本站点\ek1=\\本站点\ek0;\\本站点\ek2=\\本站点\液位传递值;\\本站点\水流=\\本站点\水箱液位/100;\\本站点\储水箱液位=300-\\本站点\水箱液位;}if(\\本站点\电机==0 &&\\本站点\开关==1){\\本站点\水流=\\本站点\水箱液位/100;\\本站点\水箱液位=\\本站点\水箱液位-\\本站点\水流;\\本站点\储水箱液位=300-\\本站点\水箱液位;if(\\本站点\水箱液位<1)\\本站点\水流=0;}}if(\\本站点\Uk<=1)\\本站点\uk=\\本站点\Uk*100;else\\本站点\uk=100;if(\\本站点\电机==0)\\本站点\Uk=0;if(\\本站点\水箱液位>\\本站点\Sp)\\本站点\水箱液位=\\本站点\水箱液位-\\本站点\水流;实验总结通过此次设计,我掌握了流量单回路控制系统的构成。