提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|使用教程|编辑:黄竹雯|2018-08-09 10:52:37.000|阅读 674 次
概述:你是否遇到需要根据某些预定义的变量或条件将特定过程数据记录到数据库或文本文件中却无从下手的情况?本文将告诉你如何解决这个问题。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
你是否需要根据某些预定义的变量或条件将特定过程数据记录到数据库或文本文件中?我们通常将此概念称为“条件”或“基于条件”的日志记录。这听起来很简单,但如果没有计划,那么实施起来可能是一项棘手的任务。
在这篇文章中,我将向你介绍条件数据记录所涉及的注意事项,并介绍如何轻松设置 OPC DataLogger 以根据各种条件记录数据,而不会带来太多麻烦。
现在请考虑以下情形:你的任务是从生产线中创建区块来收集重量信息。
当这些区块中的每一个通过传送带移动时,它将通过检重秤,该检重秤将当前重量发送到正在运行该线的PLC,并且当块穿过秤的前缘时,视觉系统读取区块的条形码允许权重与正确的区块相关联。
你现在的任务是为每个区块记录一个权重,将其与正确的序列号相关联,并将其作为一行记录到SQL数据库中。听起来不是那么难吧?
那你怎么来设置这个呢?
当然,有可能在PLC中对此进行编码。但是,这是一个OEM线路安装,我们无法访问PLC代码。
那么,我们可以在OPC服务器中设置扫描速率,以便不经常轮询PLC,使得我们可能不能获得单个块的多个权重值。但是当线路停止时会发生什么?你是否需要在重新启动后将服务器扫描速率与线路重新同步?如果线速度改变怎么办?
听起来这对于需要长期维持的人而言会是一个巨大的麻烦,对于我们这些已经有长串责任清单的人来说,绝对是不太理想的。
实际上,我使用过的大多数系统都只是连续地记录值,并且使用一些“Macgyvered”解决方案,然后从数据库中选择正确的值。虽然这种方法没有任何内在错误,但它不仅使用了更多的数据库空间,而且还需要进行大量修剪才能将数据降低到你实际感兴趣的值。
那么什么是更好的替代方案呢?接下来,我将逐步介绍使用 OPC DataLogger 的条件记录来处理这种情况是多么容易。
尽管我非常熟悉 OPC Data Logger,但我仍然使用项目向导来配置我的日志项目,直到今天,为了使这篇文章完全只是对向导的逐步解释,我的例子将假定存在使用默认设置的基本项目。
在单步向导并保持默认值后,查看关键组件的存在:
1.我配置了一个指向我的OPC服务器的数据收集器:
2.我有一个配置了单个组的日志记录任务,已经添加了我感兴趣的两个OPC标记。当前的 BlockWeight(区块重量)和相应的 SerialNumber(序列号)如下:
现在,我们将把 Group 的 Read 类型保留为 Subscription - 这是默认的 - 但我们稍后会再回过头来看看。
3.日志记录被任务配置为将数据记录到我的SQL数据库:
此时,我们有一个工作的OPC Data Logger项目,如果我们进入运行时,将每隔250ms检查一次权重和序列号标记,并在任何一个值更改时记录这两个值。
然而,这将捕捉到我们不感兴趣的各种数据,包括区块在部分检查秤上的重量信息 - 重量数据对我们来说几乎无用。因此,这是我们得到等式的条件部分,并在你需要时仅记录你需要的部分。
1.让我们首先添加我们将用于驱动实际日志记录的触发器。这将是一个受监控的项目触发器:
2.此触发器将配置为监视我们的OPC服务器中的 Boolean tag(布尔标记) - weighReady - 当区块完全位于检重秤上时,预计会变高:
这可以是传感器或类似的外围设备,用于测量区块完全越过检重秤的前沿时的数据。关键是Monitored Trigger配置为在此Boolean tag(布尔标记)变为高(1 / True)时触发。
3.回到我承诺将要重新访问的 Group Properties 中的 Read 选项卡,让我们将 Read 类型从 Subscription 更改为 Asynchronous Triggered Reads:
类似地,在Triggers选项卡上,我们现在想要添加我们配置的Monitored Trigger,并指定Effect是“One-shot Read Now”,即当触发器变高时,我们应该读取并记录组中的每个标记一次:
此时,我们的配置已完成了。在运行时,这个OPC Data Logger项目将处于空闲状态,直到 WeighReady 位变为高为止,此时我们将从OPC服务器(从PLC读取数据)中检索当前的序列号和重量,我们将记录一个我们的SQL数据库。
随着它越来越容易获取数据,你可以更轻松地访问你在流程中,甚至是企业级别可能会需要的任何数据。我们注意到应用程序实际需要的数据变得越来越重要。整理成千上万的标签只是为了找到一个或两个具有统计意义的标签通常比手动记录的更低效。
对于毫秒通常意味着节省或损失数万,数十万甚至数百万元之间的差异的行业,在正确的时间获得正确的数据至关重要。你已经看到了如何以最小的努力,使用条件日志与 OPC Data Logger配置起来非常容易,以确保你只需在需要时收集所需的数据。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@capbkgr.cn
本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@capbkgr.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢