力控学习笔记(一)储存罐液位监控示例

2023-11-21 23:21

本文主要是介绍力控学习笔记(一)储存罐液位监控示例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、创建项目

首先通过力控的“工程管理器”指定工程的名称和工作的路径,不同的工程一定要放在不同的路径下。指定工程的名称和路径,启动力控的“工程管理器”:

点击 “新建”,输入名称,设置路径。

新建完成后,显示在列表中,选中点击“开发”打开工程。

 

二、创建组态界面

1、新建窗口

进入开发环境Draw后,首先需要创建一个新窗口。选择“文件[F]/新建”命令出现“窗口属性”对话框。

 

 

2、 创建图形对象

现在,在屏幕上有了一个窗口,还应看见Draw的工具箱。如果想要显示网格,激活Draw菜单命令“查看/网格”。

1) 首先,我们需要在窗口上画一个储罐,从导航器中选择“选择图库”工具。出现“子图列表”对话框,从中选择一个罐。

 2) 接下来,我们要画出入口阀门。选择菜单条中的“选择图库”工具,在“子图列表”对话框中选择符合要求的阀门子图,修改阀门的位置及大小。

3) 选择工具箱中的“立体管道”工具, 在画面上画两条管线。单击选定管道首段,双击选定管道末端。

4) 修改两条管线的颜色、立体风格和宽度。先选中一条管线,单击鼠标右键, 出现右键菜单。选择“对象属性”菜单项,出现“改变属性”对话框。选择立体风格,宽度改为15,颜色选为灰色。选中另外一条管线,进行同样的修改。

5) 选择工具箱中的“文本”工具,在画面上写两个显示液位的字符串:“液位值:”、“######.####”。其中“######.####”用来显示液位值,显示4位小数。

6) 最后,我们要画两个按钮来执行启动和停止设备的命令。选择工具箱中的“按钮”工具,画一个按钮。把按钮挪到合适的位置并调整好它的大小。按钮上有一个标志“Text”(文本)。右击这个按钮,选择对象属性,在文本框中输入“开始”,然后单击“确认”。用同样的方法继续画“停止”按钮。

 

  三、定义IO设备

IO设备的通讯一般包括:DDE、OPC、PLC、UPS、变频器、智能仪表、智能模块、板卡等,这些设备一般通过串口和以太网等方式与上位机交换数据,只有在定义了IO设备后,力控才能通过数据库变量和这些IO设备进行数据交换,定义IO设备的步骤如下:

1. 在Draw导航器中双击“I/O设备驱动”项出现如下对话框,在展开项目中选择“力控”项并双击使其展开,然后继续选择“仿真驱动”并双击使其展开后,选择项目“Simulator(仿真)”。

 2. 双击 “Simulator(仿真)”出现如下图所示的“I/O设备定义”对话框,在“设备名称”输入框内键入一个人为定义的名称,为了便于记忆,我们输入“plc”(大小写都可以)。接下来要设置plc的采集参数,即“数据更新周期”和“超时时间”。在“数据更新周期”输入框内键入1000毫秒。

提示:一个I/O驱动程序可以连接多个同类型的I/O设备。每个I/O设备中有很多数据项可以与监控系统建立连接,如果对同一个I/O设备中的数据要求不同采集周期,也可以为同一个地址的I/O设备定义多个不同的设备名称,使他们具有不同的采集周期。

例如,一个大的存储罐液位变化非常缓慢, 5到10秒钟更新一次就足够了,而管道内压力的更新周期则要求小于1秒钟。这样,可以创建两个I/O设备:PLCSLOW,数据更新周期为5秒,和PLCFAST,数据更新周期为1秒。

3. 单击“完成”按钮返回,在设备组态画面的右侧增加了一项“plc”,如果要对I/O设备“plc”的配置进行修改,双击项目“plc”,会再次出现plc的“I/O设备定义”对话框。若要删除I/O设备“plc”,用鼠标右键单击项目“plc”,在弹出的右键菜单中选择“删除”。

通常情况下,一个I/O设备需要更多的配置,如:通讯端口的配置(波特率、奇偶校验等)、超时时间、所使用的网卡的开关设置等。因为这是一个“仿真”I/O驱动程序,它仿真“梯形图逻辑”和常用I/O驱动程序任务(实际上完全由PC完成),没有实际的与硬件的物理连接,所以不需要进行更多的配置。

四、创建实时数据库

第一步:明确数据库要求:

需要定义一个模拟I/O点,这个点的PV参数表示存储罐的液位值,把这点的名称定为“LEVEL”。我们还需要一个数字I/O点来分别反映入口阀门的开关状态,当这个点的PV参数值为0时,表示入口阀门处于关闭状态,PV参数值为1时,表示入口阀门处于开启状态,我们将这个点的点名定为“IN_VALVE”。同样,要定义一个反映出口阀门开关状态的数字I/O点,命名为“OUT_VALVE”。另外,在假想的PLC中还有一个开关量来控制整个系统的启动与停止,这个开关量可以由我们在计算机上进行控制,所以我们需要再定义一个数字I/O点,将其命名为“RUN”。

第二步:最终的数据库点表是:

点名

点类型

说明

LEVEL

模拟I/O点

存储罐液位

IN_VALVE

数字I/O点

入口阀门状态

OUT_VALVE

数字I/O点

出口阀门状态

RUN

数字I/O点

系统启停状态

1、创建数据库点的步骤 

1) 在Draw导航器中双击“数据库组态”启动组态程序DBMANAGER(如果没有看到导航器窗口,激活Draw菜单命令“查看/导航器”)。

2) 启动DBManager后出现如下图所示的DBManager主窗口。

3) 单击菜单条的“点”选项选择新建或双击单元格,出现“请指定区域、点类型”向导对话框。

双击“模拟 I/O点”后,输入点名为LEVEL(这里我输入的是VALUE,取名根据自己喜好,但需要有含义,这样数据繁多时才能一一对应)。

 

其它参数如量程、报警参数等可以采用系统提供的缺省值。单击 “确定”按钮返回,在点名单元格中增加了一个点名“VALUE”。

按如上所述步骤,创建数字I/O点“IN_VALVE”“OUT_VALVE ”和“RUN” 。如下图:

 2、数据连接

将我们已经创建的4个数据库点与plc中的数据项联系起来,以使这4个点的PV参数值能与I/O设备plc进行实时数据交换。

双击数据库中点LEVEL的单元格,选择“数据连接”选项或双击LEVEL所对的“%IOLINK[I/O连接]”单元格。

3. 再为三个数字I/O点建立数据连接。

下表列出了我们刚刚定义的4个数据连接:

点.参数

数据连接说明

LEVEL.PV

增量寄存器,寄存器地址为0

IN_VALVE.PV

常量寄存器,寄存器地址为0

OUT_VALVE.PV

常量寄存器,寄存器地址为1

RUN.PV

状态控制,地址为0

 

五、制作动画连接

1、阀门需单击切换颜色,关闭时为红,打开时为绿。双击阀门。设置变量表达式。如图为入口阀门,同理设置出口阀门变量表达式,显示为“OUT.PV”。

 2、定义出口阀门的颜色变化条件及相关的变量。处理有关液位值的显示和液位变化的显示,选中存储罐下面的#######.###符号,然后双击鼠标左键,出下出现动画连接对话框,在这里选用“数值输出/模拟”,点击“模拟”按钮,弹出“模拟值输出”对话框,在表达式项内输入“LEVEL.PV”或是点击“变量选择”按钮,出现变量选择对话框,然后选择点名“LEVEL”,在右边的参数列表中选择“PV”参数,点击“选择”按钮,“表达式”项中自动加入了变量名“LEVEL.PV”。

 3、选中储罐后双击鼠标左键,出现如下图所示的动面连接对话框。

六、脚本动作

1. 选中“开始”按钮后双击鼠标左键,出现动画连接对话框,选择“触敏动作/左键动作”按钮。单击“左键动作”按钮,弹出脚本编辑器对话框选择“按下鼠标”事件,在脚本编辑器里输入“RUN.PV=1”;如下图所示,这个设置的意思是当在运行界面按下“开始”按钮后,变量RUN.PV的值被设成1,相应地PLC中的程序被启动运行。

同样,下面定义“停止”按钮的动作。在脚本编辑器里输入“RUN.PV=0”;这个设置的意思是,当鼠标按下“停止”按钮后,变量RUN.PV的值被设成0。设备PLC1中的程序就会停止运行。在动画连接过程中,系统可以自动引用到的数据库变量,引用完后,如果要看这些变量,可以激活导航器中“变量”出现,可以看到在上面工程中所引用的所有数据库变量:LEVEL.PV、IN_VAVLE.PV、OUT_VAVLE.PV和RUN.PV,它们全部由系统自动创建。

 2. 工程的逻辑控制过程要由脚本来完成,在力控的开发系统中,导航器/动作/条件动作或应用程序动做中写入下列脚本程序:

if RUN.PV==1 thenif LEVEL.PV<=3 then IN_VALVE.PV=1; OUT_VALVE.PV=0; endifif LEVEL.PV>=100 thenIN_VALVE.PV=0; OUT_VALVE.PV=1; endif endifif RUN.PV==0 thenIN_VALVE.PV=0;OUT_VALVE.PV=0;endif

七、运行

点击左边“全部编译”后,右边“运行”。

设置运行初始启动窗口。左侧导航栏点击“系统配置”,进入“系统配置/初始启动窗口”,点击添加,选中窗口后确认,运行时可默认直接打开此窗口,不需要进行选择。

 

 

 

 

 

这篇关于力控学习笔记(一)储存罐液位监控示例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/405826

相关文章

Linux使用nload监控网络流量的方法

《Linux使用nload监控网络流量的方法》Linux中的nload命令是一个用于实时监控网络流量的工具,它提供了传入和传出流量的可视化表示,帮助用户一目了然地了解网络活动,本文给大家介绍了Linu... 目录简介安装示例用法基础用法指定网络接口限制显示特定流量类型指定刷新率设置流量速率的显示单位监控多个

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

在 Spring Boot 中使用 @Autowired和 @Bean注解的示例详解

《在SpringBoot中使用@Autowired和@Bean注解的示例详解》本文通过一个示例演示了如何在SpringBoot中使用@Autowired和@Bean注解进行依赖注入和Bean... 目录在 Spring Boot 中使用 @Autowired 和 @Bean 注解示例背景1. 定义 Stud

oracle DBMS_SQL.PARSE的使用方法和示例

《oracleDBMS_SQL.PARSE的使用方法和示例》DBMS_SQL是Oracle数据库中的一个强大包,用于动态构建和执行SQL语句,DBMS_SQL.PARSE过程解析SQL语句或PL/S... 目录语法示例注意事项DBMS_SQL 是 oracle 数据库中的一个强大包,它允许动态地构建和执行

Python中顺序结构和循环结构示例代码

《Python中顺序结构和循环结构示例代码》:本文主要介绍Python中的条件语句和循环语句,条件语句用于根据条件执行不同的代码块,循环语句用于重复执行一段代码,文章还详细说明了range函数的使... 目录一、条件语句(1)条件语句的定义(2)条件语句的语法(a)单分支 if(b)双分支 if-else(

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

Python中Markdown库的使用示例详解

《Python中Markdown库的使用示例详解》Markdown库是一个用于处理Markdown文本的Python工具,这篇文章主要为大家详细介绍了Markdown库的具体使用,感兴趣的... 目录一、背景二、什么是 Markdown 库三、如何安装这个库四、库函数使用方法1. markdown.mark

MySQL数据库函数之JSON_EXTRACT示例代码

《MySQL数据库函数之JSON_EXTRACT示例代码》:本文主要介绍MySQL数据库函数之JSON_EXTRACT的相关资料,JSON_EXTRACT()函数用于从JSON文档中提取值,支持对... 目录前言基本语法路径表达式示例示例 1: 提取简单值示例 2: 提取嵌套值示例 3: 提取数组中的值注意

CSS3中使用flex和grid实现等高元素布局的示例代码

《CSS3中使用flex和grid实现等高元素布局的示例代码》:本文主要介绍了使用CSS3中的Flexbox和Grid布局实现等高元素布局的方法,通过简单的两列实现、每行放置3列以及全部代码的展示,展示了这两种布局方式的实现细节和效果,详细内容请阅读本文,希望能对你有所帮助... 过往的实现方法是使用浮动加