力控-油罐进出油控制设计
实验介绍
----实验内容设计参考至建筑组态实验指导书及力控入门教程教本----
实验描述:工艺设备包括一个油罐,一个进油控制阀门,一个出油控制阀门。当按下开始按钮时,进油控制阀门打开,一旦存储罐即将被注满,进油控制阀门关闭,出油控制阀门打开,存储罐被排空,如此反复进行。当按下停止按钮时,停止动作。“实时趋势”按钮可以查看油罐油值的实时曲线变化,“历史趋势”按钮可以查看油罐油值的历史曲线变化,以及“报警处理”按钮可以查看、处理油罐的报警信息。
实验步骤
1.绘制窗口
- 依次绘制名为“油罐进出油控制”,“实时趋势”、“历史趋势”及“报警处理”窗口并进行存盘。
“油罐进出油控制”
- 窗口绘制如下图
新建窗口,文件-新建-创建空白界面
// 窗口的属性要设置为 1.覆盖窗口; 2.窗口大小位置要适中,防止遮挡住窗口; 3.把打开其他窗口时自动关闭的勾去掉,这样才可以使得窗口不被上一个窗口遮挡
阀门在标准图库-阀门-类别3
管道在工具箱-基本图元-管道
管道-右击-对象属性,可更改管道的样式
//因为管道必须要有三节或三节以上才能体现出流动性,所以画的管道要画三节或三节以上。 //可以利用网格工具画直管道(网格在力控软件的工具栏-查看-网格)
罐在标准图库-罐-类别3
按钮在工具箱-基本图元-增强型按钮
选中按钮-右击-对象属性-新字符,可更改按钮字符。
//可利用ctrl+c / ctrl+v 复制粘贴按钮(复制粘贴的控件会保留原控件的属性)
文本在工具箱-基本图元-文本
“实时趋势”
- 窗口绘制如下图
新建窗口,文件-新建-创建空白界面
// 窗口的属性要设置为 1.覆盖窗口; 2.窗口大小位置要适中,防止遮挡住主窗口; 3.把打开其他窗口时自动关闭的勾去掉,这样才可以使得窗口不被上一个窗口遮挡
曲线在复合组件-曲线-趋势曲线
“历史趋势”
- 窗口绘制如下图
新建窗口,文件-新建-创建空白界面
// 窗口的属性要设置为 1.覆盖窗口; 2.窗口大小位置要适中,防止遮挡住主窗口; 3.把打开其他窗口时自动关闭的勾去掉,这样才可以使得窗口不被上一个窗口遮挡
曲线在复合组件-曲线-趋势曲线
“报警处理”
- 窗口绘制如下图
新建窗口,文件-新建-创建空白界面
// 窗口的属性要设置为 1.覆盖窗口; 2.窗口大小位置要适中,防止遮挡住主窗口; 3.把打开其他窗口时自动关闭的勾去掉,这样才可以使得窗口不被上一个窗口遮挡
报警报表在复合组件-报警-复合报警
2.定义I/O设备
- 双击“IO设备组态”
- “IO设备”-“力控”-“仿真驱动”-“Simulator(仿真)”,右击,新建名为“PLC”、设备地址为1的I/O设备。
3.建立实时数据库组态
- 在数据库组态的区域0定义模拟量I/O点level,数字量I/O点in_value、out_value、run
双击“数据库组态”
右击“数据库”,新建节点,并命名为区域0
右击区域0,添加点,模拟I/O点level,数字量/O点in_value、out_value、run
4.设置数据连接
(1)、将模拟量I/O点level的PV参数连接到I/O设备“PLC”的模拟量-增量寄存器输入区的0通道;
(2)、将数字量I/O点in_value的PV参数连接到I/O设备“PLC”的数字量-常量寄存器输入区的0通道;
(3)、将数字量I/O点out_value的PV参数连接到I/O设备“PLC”的数字量-常量寄存器-输入区的1通道;
(4)、将数字量I/O点run的PV参数连接到I/O设备“PLC”的数字量-状态控制-输出区的0通道。
5.设置实时数据库报警参数和历史参数的组态
- 对实时数据库点level组态报警参数,可以设置高限报警限值为70,报警优先级为低级;设置高高限报警限值为90,报警优先级为高级。
- 为了查询油罐液位的历史值,需要对实时数据库点level组态历史参数,设置level.pv的值在精度变化1%时保存历史值。
6.设置动画连接
油罐进出油控制窗口
- 对入口阀门组态进行“颜色变化”动画连接
双击阀门,选择表达式旁的按钮“…”-变量选择区域0\in_value.PV,后更改打开、关闭时的颜色
//如果数据库变量直接放在数据库,那变量的名称就in_value.PV;
//如果数据库变量放在数据库的区域0里,那变量的名称就区域0\in_value.PV;
- 对入口阀门处的管道组态进行“流动属性”动画连接
双击管道-杂项-流动属性
//条件 区域0\in_value.PV==1
-
对出口阀门及相应管道也分别进行“颜色变化”动画连接和“流动属性”动画连接。只是这时的条件改变为:区域0\out_value.pv==1。
-
对“开始”按钮组态“触敏动作/左键动作/按下鼠标”动画连接,这时脚本为:区域0\run.pv=1;
-
对“停止”按钮组态“触敏动作/左键动作/按下鼠标”动画连接,这时脚本为:区域0\run.pv=0;
-
对“实时趋势”按钮组态“触敏动作/窗口显示”动画连接,选择“实时趋势”窗口;“历史趋势”按钮、“报警处理”按钮分别组态类似的动画连接;
-
对显示液位高度的文本(“####.##”)组态“数值输出/模拟”动画连接,让其显示level.pv的值。
-
双击罐,在表达式中写入 区域0\level.PV
实时趋势窗口
双击趋势曲线,Y轴变量选择区域0\level.PV,删除多余的曲线,曲线类型选择实时趋势
历史趋势窗口
双击趋势曲线,Y轴变量选择区域0\level.PV,删除多余的曲线,曲线类型选择历史趋势
报警处理窗口
双击“确认所有报警按钮”,“触敏动作/左键动作/按下鼠标”动画连接,这时脚本为:AlmAckAll(0,0);
7.编写脚本
- 编写“应用程序动作脚本”的“程序运行周期执行”动作脚本
脚本内容如下
IF 区域0\run.PV==1 THEN
IF 区域0\level.PV<=96 THEN
区域0\in_value.PV=1;
区域0\out_value.PV=0;
ENDIF
ENDIF
IF 区域0\level.PV>=100 THEN
区域0\in_value.PV=0;
区域0\out_value.PV=1;
ENDIF
IF 区域0\run.PV==0 THEN
区域0\in_value.PV=0;
区域0\out_value.PV=0;
ENDIF
实验心得
1.觉得力控这个软件挺好玩的,有点Delphi的感觉,但比Delphi开发得更快,上手得更快。
2.对控件的属性、方法和事件,以及脚本的逻辑语句还不是很熟,还需要多加学习。
3.按开始按钮后罐的油值没有变化的原因可能是:数据库变量没有连接好,或有时候可能要在应用程序脚本里给油值一个初值 区域0\level.PV=1;
4.窗口不能同时显示两个窗口,请保证窗口属性如下 1.覆盖窗口; 2.窗口大小位置适中,防止遮挡住窗口; 3.把打开其他窗口时自动关闭的勾去掉。
5.管道没有显示出流动的效果,原因是:管道没有三节或三节以上。
6.罐值得绿条没有变化,原因是:没有设置罐的动画连接,请双击罐,并在表达式中写入 区域0\level.PV
以上为个人学习经验,欢迎大家来交流