力控-给排水监控系统设计与实现

实验内容

实验内容参考至建筑组态实验指导书

工程描述:

统采用高位水箱给水方式,包括一个高位水箱,两个给水泵,水箱有两个阀门,分别对生活区和游泳池供水。

功能要求:

1、实现水箱水位变化、阀门开关示意、水泵启停示意的动画连接;

2、水箱要实现低水位、启泵水位、停泵水位、溢流水位的报警,低水位与溢流水位采用紧急报警,启泵水位和停泵水位采用低级报警,当出现报警时要求弹出报警窗口,待确认后可以关闭;

3、水泵要求可自动控制水箱水位,低于启泵水位时要开启水泵,高于停泵水位时要关闭水泵,水泵要求轮流交替使用,当水箱水位低于低水位时,两台水泵同时启动,每台水泵的供水量模拟为每秒3%水箱水量;

4、阀门采用手动控制,生活区的水量消耗模拟为每秒2%水箱水量,游泳池的水量消耗模拟为每秒1%水箱水量;

5、通过点击“演示”按钮启动动画演示,点击“停止”按钮关闭动画演示;

6、工程进入运行状态时要求直接进入给水监控画面。
在这里插入图片描述

实验步骤

1.绘制窗口

给排水监控系统

在这里插入图片描述

组件的放置位置参考 实验1的文章,要找对

管道要分开画,流动时才好看

//水管分三个画,这样在流动时就很漂亮了,可分段的流,演示如下图
//因为一个管道必须要有三节或三节以上才能体现出流动性,所以画的管道要画三节或三节以上。
//可以利用网格工具画直管道(网格在力控软件的工具栏-查看-网格
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

报警窗口

在这里插入图片描述
组件的放置位置参考 实验1的文章,要找对

2. 定义I/O设备

  • 双击“IO设备组态”

在这里插入图片描述

  • “IO设备”-“力控”-“仿真驱动”-“Simulator(仿真)”,右击,新建名为“PLC”、设备地址为1的I/O设备。

在这里插入图片描述
在这里插入图片描述

3.建立实时数据库组态

  • 在数据库定义模拟量I/O点level,数字量I/O点pump1、pump2、valve1、valve2、run
    双击“数据库组态”
    在这里插入图片描述
    右击“数据库”,添加点,模拟量I/O点level,数字量I/O点pump1、pump2、valve1、valve2、run
    在这里插入图片描述

4.建立数据连接

(1)、将模拟量I/O点level的PV参数连接到I/O设备“PLC”的模拟量-常量寄存器输入区的0通道;

(2)、将数字量I/O点pump1的PV参数连接到I/O设备“PLC”的数字量-常量寄存器输入区的0通道;

(3)、将数字量I/O点pump2的PV参数连接到I/O设备“PLC”的数字量-常量寄存器-输入区的1通道;

(4)、将数字量I/O点valve1的PV参数连接到I/O设备“PLC”的数字量-常量寄存器-输入区的2通道;

(5)、将数字量I/O点valve3的PV参数连接到I/O设备“PLC”的数字量-常量寄存器-输入区的3通道;

(6)、将数字量I/O点run的PV参数连接到I/O设备“PLC”的数字量-状态控制-输出区的0通道。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

5.设置实时数据库报警参数和历史参数的组态

  • 对实时数据库点level组态报警参数,可以设置低水位限报警限值为10,报警优先级为高级;设置溢流位报警限值为100,报警优先级为高级。

在这里插入图片描述

6.建立动画连接

给排水监控系统窗口

  • 水泵1组态:组态“颜色变化”动画连接,表达式pump1.PV
  • 水泵2组态:组态“颜色变化”动画连接,表达式pump2.PV

双击水泵,选择表达式旁的按钮“…”-变量选择pump1.PV,后更改打开、关闭时的颜色
//如果数据库变量直接放在数据库,那变量的名称就pump1.PV
//如果数据库变量放在数据库的区域0里,那变量的名称就区域0\pump1.PV

在这里插入图片描述

  • 对水泵1的管道1的流动属性”动画连接,pump1.PV

  • 对水泵2的管道2的流动属性”动画连接,pump2.PV

  • 对水泵1、水泵2的管道3的流动属性”动画连接,pump1.PV||pump2.PV
    在这里插入图片描述

  • 阀门1阀门组态:组态“颜色变化”动画连接,表达式valve1.PV

  • 阀门2阀门组态:组态“颜色变化”动画连接,表达式valve2.PV

  • 对阀门1的管道1的流动属性”动画连接,valve1.PV

  • 对阀门2的管道2的流动属性”动画连接,valve2.PV

  • 对阀门1、阀门2的管道3的流动属性”动画连接,valve1.PV||valve2.PV
    在这里插入图片描述

  • 对“演示”按钮组态:“触敏动作/左键动作/按下鼠标”动画连接,这时脚本为:run.pv=1;

  • 对“停止”按钮组态:“触敏动作/左键动作/按下鼠标”动画连接,这时脚本为:run.pv=0;

  • 对显示液位高度的文本(“####.##”)组态:“数值输出/模拟”动画连接,让其显示level.pv的值。

报警窗口

  • 该窗口中除“确认所有报警按钮而外的各按钮的动画连接可以参考前面的内容,而“确认所有报警”按钮的“触敏动作/左键动作/按下鼠标”动画连接中的脚本为:
    AlmAckAll(0,0);
    CloseWindowEx(“报警窗口”);
    表示确认本地实时数据库中0区域中的当前所有报警,并关闭窗口。

  • 双击“报警记录”–“记录格式”页中添加“说明”长度为12,其余参数可以采用默认值。
    在这里插入图片描述

7.脚本编写

  • 编写“应用程序动作脚本”的“程序运行周期执行”动作脚本
    在这里插入图片描述
    脚本内容如下


IF run.PV==1 THEN 

       SWITCH (level.PV)

       CASE 0 TO 10:

       pump1.PV=1;

       pump2.PV=1;

    level.PV=level.PV+3;

       CASE 11 TO 20:

       pump1.PV=1;

       pump2.PV=0;

    level.PV=level.PV+1;

       CASE 21 TO 90:

       pump1.PV=0;

       pump2.PV=1;

    level.PV=level.PV+1;

       DEFAULT:

    pump1.PV=0;

       pump2.PV=0;

       ENDSWITCH     

   

       IF valve1.PV==1 THEN

              level.PV=level.PV-2;

       ENDIF

 

    IF valve2.PV==1 THEN

              level.PV=level.PV-1;

       ENDIF

ENDIF

IF level.ALMSTAT==1 THEN

display("报警窗口");

ENDIF


IF level.ALMSTAT==1 THEN
display(“报警窗口”);
ENDIF

这段逻辑语句表示,在发生警报时,自动弹出报警窗口
在这里插入图片描述

实验心得

1.通过实验二使我对数据库点的属性及组件的属性有了更深的了解,也能很好的运用在开发中。
2.对窗口的属性及应用也有很大的认识。
3.窗口不能同时显示两个窗口,请保证窗口属性如下 1.覆盖窗口; 2.窗口大小位置适中,防止遮挡住窗口; 3.把打开其他窗口时自动关闭的勾去掉。
4.管道没有显示出流动的效果,原因是:管道没有三节或三节以上。

因为很多内容在 实验1 这篇文章已经讲解过,有不明白的可以去这找找

以上为个人学习经验,欢迎大家来交流

发布了4 篇原创文章 · 获赞 2 · 访问量 169

猜你喜欢

转载自blog.csdn.net/qq_43662263/article/details/105129318