通过WinCC基本功能实现批次查询及批次报表

news2024/9/23 9:20:49

谈到WinCC中的批次数据处理和批次报表,也许有人会想到PM-Quality这款专业的批次报表软件。但如果你的银子有限,批次报表要求又比较简单,不妨看看此文。

—《通过 WinCC 基本功能实现批次数据过滤查询以及打印批次数据报表》

实现的功能描述

模拟生产数据的生成

  1. 首先在批次名称输入域中输入将要开始生产的批次名称,例如“P202002071102”(在实际应用中也可以通过全局脚本根据用户需求自动输入批次名称)。

  2. 然后点击“开始批次生产”按钮启动生产。此时“开始时间”会自动显示当前批次开始生产的时间。

  3. 当生产完成后,点击“结束批次生产”按钮来停止生产。此时“结束时间”会自动显示当前批次结束生产的时间。

  4. 最终生产结束时该批次的“批次名称”、“开始时间”、“结束时间”会被归档,同时会显示到左侧的“TableControl”控件中。而右侧“TableControl2”及下方的“TrendControl”控件中的数据还处于实时更新之中。经过多次生产过程后,左侧的“TableControl”控件即批次选择列表中会出现之前所有已完成批次的信息以供选择。

图片

查询批次数据

  1. 首先在查询批次选择列表(左侧的TableControl 控件)工具栏上点击“启动/停止”按钮来停止控件的实时更新。  

  2. 然后在列表中选择希望查询的批次,例如“P202002071125”。

  3. 点击“选择并查询”按钮。列表中所选择的批次信息将会显示在右侧的输出域中,包括查询批次名称、生产启停时间以及该批次的生产时长。如本例中所选择的批次生产是从“2020-02-07 11:25:21”到“2020-02-07 11:25:33”,持续了12秒,转换为分钟后则为0.2分钟。最终该批次内的生产数据则呈现在右侧的TableControl2以及下方的TrendControl中。

图片

打印批次数据报表

点击“打印”按钮,该批次的数据将会被打印成 PDF 文档存储到项目文件夹当中

图片

双击最新打印出的文件。在 Wind10 中可通过 Microsoft Edge 浏览器进行查看

图片

实现原理

首先明确应用需求的重点是希望根据批次名称进行历史数据的查询。那么也就意味着只要能够在 WinCC中归档批次名称的同时,将该批次的开始生产时间以及结束生产时间与批次名称一同进行归档。当选择了需要查询的批次名称的时候也就能够获取到该批次的生产起始以及结束时间,再根据这两个时间即可过滤查询出该批次生产过程中归档的所有历史数据。

实现步骤( 环境:WinCC V7.5 SP1 亚洲版)

  • 创建测试变量

创建测试变量(为便于演示,此例中创建的变量均为内部变量。实际项目中,生产数据变量为外部变量)。

图片

在变量管理器中创建变量组并命名为“report”。在变量组“report”中创建变量,注意数据类型。各个变量的用途参考变量注释。

  • 创建过程值归档

在变量记录中创建过程值归档“batchState”,并在该归档中添加归档变量 “batchName”、“beginTime”、“endTime”。采集类型均选择为“非周期”,起始变量均选择为“batchRecordTrigger”。这将意味着变量“batchRecordTrigger”的值一旦发生改变,则会对 3 个归档变量进行一次归档。该过程值归档用于记录批次名称以及批次生产的开始和结束时间。

图片

在变量记录中创建过程值归档“batchDatas”,并在该归档中添加归档变量 “data1”、“data2”、“data3”。采集类型均选择为“周期 - 连续”,采集周期与归档/显示周期均设置为 “1 second”(实际应用根据需要确定即可)。该过程值归档用于记录生产数据。

图片

  • 编辑画面监视域

在画面编辑器中添加静态文本以及输入/输出域进行数据监视及输入。

根据需要添加静态文本以及输入/输出域,并按照图中的蓝色标签关联之前已经创建的相应变量。其中“批次名称输入/输出域”用于批次名称的输入,其它输入/输出域均设置为输出类型即可。

图片

  • 编辑画面控件

添加 2 个“OnlineTableControl”控件,分别命名为“TableControl”及“TableControl2”。添加 1 个“OnlineTrendControl”控件,命名为“TrendControl”。

控件“TableControl”关联 3 个归档变量:“batchName”、“beginTime”、“endTime”。

控件“TableControl2”关联3个归档变量:“data1”、“data2”、“data3”。

控件“TrendControl”关联3个归档变量:“data1”、“data2”、“data3”。

图片

  • 编辑按钮

添加3个按钮,开始批次生产、结束批次生产以及选择并查询。

图片

为开始批次生产按钮编写脚本

图片

为结束批次生产按钮编写脚本

图片

为选择并查询按钮编写脚本

图片

  • 创建并编辑报表布局

创建布局“batchReport”并根据需要编辑布局。关键步骤:在CCAxOnlineTableControl.表格的动态参数中,关联 TimeColumnBeginTime 到变量“queryBeginTime_1”,关联TimeColumnEndTime 到变量“queryEndTime_1”。

图片

表格控件 Properties 中,取消选择时间列选项页中的“刷新”。

图片

  • 创建并组态打印作业

创建打印作业命名为“batchReport”,并在常规选项页中选择已完成编辑的报表布局“batchReport.RPL”,选择“无对话框”。

在打印机设置选项页中取消勾选“打印机”,并勾选“PDF”(该选项需要安装了 WinCC DataMonitor 选件后可用)。

图片

  • 添加打印按钮

添加打印按钮,并在按钮单击鼠标事件中编写 C 脚本。

图片

完成组态过程,运行后效果即如开篇所述。

博途工控人平时在哪里技术交流博途工控人社群

博途工控人平时在哪里技术交流博途工控人社群

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1315913.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一维数组的定义

什么是数组? (1)数组是具有一定顺序关系的若干变量的集合,组成数组的各个变量统称为数组的元素 (2)数组中的各元素的数据类型要求相同,用数组名和下标确定,数组可以是一维的&#…

无经验小白开发一个 JavaWeb项目,需要注意哪些要点?

大家好我是咕噜铁蛋 ,我收集了许多来自互联网的宝贵资源,这些资源帮助我学习和理解如何从零开始开发JavaWeb项目。今天,我将与大家分享一些关键的要点,包括项目规划、技术选型、数据库设计、代码编写和测试部署等。如果你有任何问…

大数据存储技术(3)—— HBase分布式数据库

目录 一、HBase简介 (一)概念 (二)特点 (三)HBase架构 二、HBase原理 (一)读流程 (二)写流程 (三)数据 flush 过程 &#xf…

Mysql数据库 19.Mysql 锁

MySQL锁 锁:锁是计算机用以协调多个进程间并发访问同一共享资源的一种机制,在数据库中,除传统的计算资源(CPU、RAM、I/O)的争用以外,数据也是一种供许多用户共享的资源,如何保证数据并发访问的一…

【MySQL备份】MySQL备份工具-MyDumper

目录 什么是MyDumper MyDumper优势有哪些 如何安装MyDumper 参数解释 1 mydumper参数解释 备份流程 一致性快照如何工作? 如何排除(或包含)数据库? 输出文件 Metadata文件 ​编辑 表数据 文件 表结构 文件 建库文件…

关于uview-ui的u-tabs标签滑块不居中的问题

在uniapp中,打开文件 uni_modules/uview-ui/components/u-tabs/u-tabs.vue 然后在style中添加以下代码即可 /deep/ .u-tabs__wrapper__nav__line {left: 18rpx; } 之前效果图: 之后效果图: 注意,代码中的18rpx需要自行调整

半导体:Gem/Secs基本协议库的开发(5)

此篇是1-4 《半导体》的会和处啦,我们有了协议库,也有了通讯库,这不得快乐的玩一把~ 一、先创建一个从站,也就是我们的Equipment端 QT - guiCONFIG c11 console CONFIG - app_bundle CONFIG no_debug_release # 不会生…

深入理解JVM设计的精髓与独特之处

这是Java代码的执行过程 从软件工程的视角去深入拆解,无疑极具吸引力:首个阶段仅依赖于源高级语言的细微之处,而第二阶段则仅仅专注于目标机器语言的特质。 不可否认,在这两个编译阶段之间的衔接(具体指明中间处理步…

C语言----文件操作(二)

在上一篇文章中我们简单介绍了在C语言中文件是什么以及文件的打开和关闭操作,在实际工作中,我们不仅仅是要打开和关闭文件,二是需要对文件进行增删改写。本文将详细介绍如果对文件进行安全读写。 一,以字符形式读写文件&#xff…

一文搞懂OSI参考模型与TCP/IP

OSI参考模型与TCP/IP 1. OSI参考模型1.1 概念1.2 数据传输过程 2. TCP/IP2.1 概念2.2 数据传输过程 3. 对应关系4. 例子4.1 发送数据包4.2 传输数据包4.3 接收数据包 1. OSI参考模型 1.1 概念 OSI模型(Open System Interconnection Reference Model)&a…

MLX:苹果 专为统一内存架构(UMA) 设计的机器学习框架

“晨兴理荒秽,带月荷锄归” 夜深闻讯,有点兴奋~ 苹果为 UMA 设计的深度学习框架真的来了 统一内存架构 得益于 CPU 与 GPU 内存的共享,同时与 MacOS 和 M 芯片 交相辉映,在效率上,实现对其他框架的降维打…

【后端卷前端3】

侦听器 监听的数据是 data()中的动态数据~响应式数据 <template><div><p>{{showHello}}</p><button click"updateHello">修改数据</button></div> </template><script>export default {name: "goodsTe…

cesium 自定义贴图,shadertoy移植教程。

1.前言 cesium中提供了一些高级的api&#xff0c;可以自己写一些shader来制作炫酷的效果。 ShaderToy 是一个可以在线编写、测试和分享图形渲染着色器的网站。它提供了一个图形化的编辑器&#xff0c;可以让用户编写基于 WebGL 的 GLSL 着色器代码&#xff0c;并实时预览渲染结…

人工智能与大数据的紧密联系

随着科技的飞速发展&#xff0c;人工智能&#xff08;Artificial Intelligence&#xff0c;AI&#xff09;和大数据&#xff08;Big Data&#xff09;已成为当今社会的热门话题。人工智能在许多领域的应用越来越广泛&#xff0c;而大数据则提供了支持和驱动AI技术的巨大资源。本…

Android13适配所有文件管理权限

Android13适配所有文件管理权限 前言&#xff1a; 很早之前在Android11上面就适配过所有文件管理权限&#xff0c;这次是海外版升级到Android13&#xff0c;由于选择相册用的是第三方库&#xff0c;组内的同事没有上架Google的经验直接就提交代码&#xff0c;虽然功能没有问题…

14. JDBC

1. JDBC基础 • JDBC的全称是 Java Database Connectivity&#xff0c;即Java数据库连接&#xff0c;它是一种可以执行SQL语句的Java API。 • Java API是接口&#xff0c;其实现类由各数据库厂商提供实现&#xff0c;这些实现类就是“驱动程序”。 2.JDBC编程步骤 导入驱动…

[GXYCTF2019]Ping Ping Ping (文件执行漏洞)

本题考点&#xff1a; 1、命令联合执行 2、命令绕过空格方法 3、变量拼接 1、命令联合执行 ; 前面的执行完执行后面的| 管道符&#xff0c;上一条命令的输出&#xff0c;作为下一条命令的参数&#xff08;显示后面的执行结果&#xff09;|| 当前面的执行出错时&#xff08;为…

day04-报表技术PDF

1 EasyPOI导出word 需求&#xff1a;使用easyPOI方式导出合同word文档 Word模板和Excel模板用法基本一致&#xff0c;支持的标签也是一致的&#xff0c;仅仅支持07版本的word也是只能生成后缀是docx的文档&#xff0c;poi对doc支持不好所以easyPOI中就没有支持doc&#xff0c…

字节与位在物联网传输协议中的使用

1个字节(byte) 8个位(bit) 如下例子&#xff0c;是一个上报数据类型的表格&#xff0c;总有48位(6个字节) 假如报文给的数据类型数据是&#xff1a; 0x06 时&#xff0c;06十六进制转为二进制&#xff0c;结果是00000110 那么在图下就是 (bit1 和 bit2 都为 1) &#xff…

Python中的程序逻辑经典案例详解

我的博客 文章首发于公众号&#xff1a;小肖学数据分析 Python作为一种强大的编程语言&#xff0c;以其简洁明了的语法和强大的标准库&#xff0c;成为了理想的工具来构建这些解决方案。 本文将通过Python解析几个经典的编程问题。 经典案例 水仙花数 问题描述&#xff1a…