西门子PLC中如何解决流量累积问题

2023-11-17

现在上位机系统中很多要求具备流量计的流量累计功能,由此引出的几个问题,期望与大家分享。


问题1:自行编写流量累计程序

自行编写流量累计程序的原理,其实就是积分的最原始算法概念,把单位小间隔时间内的瞬时流量乘以单位间隔时间,得到单位小间隔时间内的流量,再把这些小流量累加起来,就的到了累计流量。


在流量累计编程中经常会遇到实数加法问题,实数加法运算的注意事项也应当引起编程人员的重视,请看下例程序(假设其在OB35中被调用,目的为每隔一定时间间隔就累计一次流量)
                        L MD0 //累计流量存储值
                        L MD4 //流量瞬时值
                        +R
                        T MD 0 
以上的程序是否存在问题?很多人会认为没有问题,但实际情况是此程序在运行一段时间后就将出现错误。此程序在运行之初是正常的,因为累计流量初始值及流量瞬时值都为一个很小的浮点数,两数相加后,结果正确。但是当一段时间后,累计流量的数值逐渐增大,当它与瞬时流量的数值相差很远的时候,两者执行加法操作后,瞬时流量的数值将被忽略掉(如9999990.0与0.2做加法操作)。其实具备计算机常识的人都应当清楚这一点,这是由于浮点数的存储机制造成的,是所有计算机方面编程都需要考虑的问题。这个问题可以通过使用二次累加或多次累加的方法来解决。所以在编程时应避免数量级相差太多的浮点数之间进行运算。很多人反映“加法指令不好用了”,很有可能就是数量级相差很多的实数进行了加法运算。


问题2:累计流量误差问题

对于积分算法,取小的矩形对流量进行累计,肯定是矩形划分越细,误差越小,不存在误差是不可能的。


问题3:流量计与plc构成的系统的误差

流量计有多种多样,下面举些例子:
1、流量计本身没有累计流量功能,但可以把瞬时流量以模拟量的方式(例如4-20mA)输出。
      此时累计流量的最大误差可以估算为:
流量计本身误差 * 流量计D/A误差 * 模拟量模块A/D误差 * PLC流量累计算法误差
假设上面所有误差都是1%,则最后的误差约为:4.06%
1.01*1.01*1.01*1.01=1.0406
对于某些流量计,本身的瞬时流量误差可能就是3%,所以这样的系统累计流量的误差可能还要大些。
2、流量计本身没有累计流量功能,但可以把瞬时流量以数字量的方式输出。
      有些流量计提供数字量接口,可以连接PLC的数字量输入模板,流量计每流过一定流量后(例如0.1吨),此输入点就导通一次,PLC就把累计流量累加0.1吨即可。
此类系统避免了A/D,D/A转化的误差,以及PLC累计算法误差。但是会出现一定时间内累计流量不变化的情况,实时性不好(每0.1吨累积的时间)。
3、流量计本身有累计流量功能,同时可以把瞬时流量以模拟量的方式(例如4-20mA)输出,但无法将累计流量数值送出。
     流量计本身累积流量的数值,最后很有可能与PLC的累计流量数值相差很大,原因可能是多方面造成的,除去系统累计流量误差的因素,如果PLC系统检修时,流量计还计量,则PLC无法累积这部分流量。
4、流量计本身有累计流量功能,同时可以通过通信的方式,把瞬时流量及累计流量数值送给PLC。这种情况最理想,但系统的成本也最高。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

西门子PLC中如何解决流量累积问题 的相关文章

  • 网络层

    网络层 从它的名字可以看出 它解决的是网络与网络之间 即网际的通信问题 而不是同一网段内部的事 用于网络互联的设备都处于网络层 如 路由器 网络交互机等 一个底层网络内部只存在两层 即数据链接层 与 物理层 没有其它层
  • 考研C++/C数据结构之单链表两种查找方法

    继上篇文章我们探讨了单链表的两种创建方法 头插法和尾插法 今天我们来学习一下单链表的两种查找方法 按序查找和按值查找 按序查找的代码实现如下 按位查找 LinkList GetElem LinkList L int i int j 1 Li
  • python是真刑啊!爬虫这样用,离好日子越铐越近了~

    一个程序员写了个爬虫程序 整个公司200多人被端了 不可能吧 刚从朋友听到这个消息的时候 我有点不太相信 做为一名程序员来讲 谁还没有写过几段爬虫呢 只因写爬虫程序就被端有点夸张了吧 朋友说 消息很确认并且已经进入审判阶段了 01 对消息进
  • 求解视觉里程计(基于特征点法)

    目录 1 视觉里程计 VO 2 基于特征点法的视觉里程计算法 2 1 特征点 2 2 ORB特征点的提取与匹配 2 2 1 关键点与描述子 灰度质心法 特征描述子计算 2 2 2 特征点匹配 2 3 特征点法估计相机位姿 2 3 1 对极几
  • MySQL事务简介

    一 事务的起源 原子性 Atomicity 要么全做 要么全不做 一致性 Consistency 数据库中的数据全部符合现实中的约束 隔离型 Isolation 操作以原子性执行 且不同事务操作互不干扰 多种隔离级别 持久性 Durabil
  • Ubuntu18.04配置Seetaface6

    目录 一 下载安装Qt软件 1 安装包下载 2 安装Qt 3 配置 二 下载源码 三 编译工具 四 编译 1 编译OpenRoleZoo 2 编译SeetaAuthorize 3 编译TenniS 五 运行 1 修改lib路径 2 buil
  • 360n6pro刷鸿蒙系统,360N6和N6Pro通用刷机包MIUI9开发版V8.6.9紫火定制版

    本帖最后由 360fans 80867761 于 2018 8 7 19 44 编辑 360N6和N6Pro通用MIUI9开发版V8 6 9紫火定制版刷机包更新指纹解 除了有个小BUG 相机有时候加载有点慢 其他都很正常 无任何推广软件 刷
  • Vue实例选项之【methods】

    methods div h1 site site h1 h1 url url h1 h1 alexa alexa h1 p 通过调用方法返回数据 p div
  • 0欧电阻和磁珠的区别

    来源 B站https www bilibili com video BV1Yi4y1x7JL 0欧姆电阻实际上并不能达到真正的0欧姆 它是一个阻性的阻值极小的电阻 磁珠浅显的可以看成是一个电感 故很多原理图中磁珠的符号是电感的符号 磁珠的直
  • less命令详解-最好用的文档查看命令

    less命令详解 最好用的文档查看命令 其他文件查看命令 less使用场景 less的日常使用 less快捷键 less参数 其他文件查看命令 小文本查看命令 cat 将文件所有内容打印打控制台 tac 将文件所有内容反向打印打控制台 vi
  • C#线程中使用委托实现textbox显示

    delegate void SetTextCallback string text 后加的 好好想一想 参数是SetText带的参数 From www uzhanbao com private void SetText string tex

随机推荐

  • 《Spring源码深度分析》第3章 默认标签的解析

    目录标题 前言 一 Spring默认的四个标签 二 bean标签的解析及注册 1 BeanDefinition下的三个实现类 2 解析BeanDefinition 1 processBeanDefinition 2 parseBeanDef
  • C/C++预定义宏

    MSVC文档 https learn microsoft com en us cpp preprocessor predefined macros view msvc 170 GCC文档 https gcc gnu org onlinedo
  • APS高级计划排程系统:什么是按库存生产(MTS)计划?

    文章目录 前言 什么是按库存生产 MTS 按库存交货的缺点 MTS MTS的替代产品 按订单生产 MTO 按库存计划 MTS 计划示例 前言 制造企业寻求提高设备利用率 缩短制造周期 寻求降低成本和利润最大化 可以使用许多生产策略 在理想的
  • 蒙特卡洛方法生成随机数_随机股票生成器—财务方面的蒙特卡洛模拟

    蒙特卡洛方法生成随机数 金融 机器学习 Finance Machine Learning In this article I will focus on how to create a procedural stock from nowhe
  • day03 756 蛇形矩阵(偏移量技巧)

    756 蛇形矩阵 输入两个整数n和m 输出一个n行m列的矩阵 将数字 1到 n m按照回字蛇形填充至矩阵中 具体矩阵形式可参考样例 输入格式 输入共一行 包含两个整数n和m 输出格式 输出满足要求的矩阵 矩阵占n行 每行包含m个空格隔开的整
  • Python lxml库的安装和使用

    lxml 是 Python 的第三方解析库 完全使用 Python 语言编写 它对 Xpath 表达式提供了良好的支持 因此能够了高效地解析 HTML XML 文档 本节讲解如何通过 lxml 库解析 HTML 文档 安装lxml库 lxm
  • spring mvc中post、get方法获取参数的几种方式

    get与post两种方式的区别 对于本次主题而言 最显著的区别就是get请求方式参数是在url后 而post请求方式的参数是在request body中 因此两者获取参数的方式也大不一样 Getter Setter AllArgsConst
  • Cocos2d-x学习笔记(二) 永远的HelloWorld

    HelloCpp是Cocos2d x自带的一个工程 它演示了Cocos2d x最基本的使用方法和流程 先看一下它的基本构成 win32目录中包含了对应平台的代码 而Classes目录中包含了我们自己的实现代码 编译运行的结果如下图 main
  • mybatis中操作json类型数据

    mysql使用json类型字段保存数据 使用mybatis进行新增 查询操作 实现字段映射转换 自定义TypeHandler package com xxx xxx handler import java io IOException im
  • 七、IDEA的maven项目的netty包的导入(其他jar同)

    在这之前要有搭建好maven的环境 可以参考上一篇 1 2 选择Modules 3 4 等待一会选择 Download to可以不用勾选 下载的jar会放在本地的jar仓库里 如果勾选了则会在该项目下创建一个lib文件 并且将包放里面 5
  • 生成对抗网络(GANs)系列:KL散度和JS散度

    1 香农信息量 信息熵和交叉熵 只考虑连续型随机变量的情况 设p为随机变量X的概率分布 即p x 为随机变量X在X x处的概率密度函数值 随机变量X在x处的香农信息量定义为 其中对数以2为底 这时香农信息量的单位为比特 香农信息量用于刻画消
  • 【数据结构】栈的知识点总结--关于栈的定义和基本操作;C语言实现栈;顺序栈;链栈;共享栈;栈的易错点的总结

    欢迎各位看官 目录 1 栈的定义 2 栈的基本操作 2 1创建 2 2销毁 2 3插入Push 2 4删除Pop 2 5获得栈顶元素GetTop 2 6判空 2 7清空栈 3 C语言实现栈 4 顺序栈 4 1数组实现顺序栈 4 2链表实现顺
  • 【毕业设计】单片机 图像分类 智能识别机器人 - 物联网 深度学习 AI

    文章目录 0 前言 1 项目背景 2 在 Arduino IDE 上安装 ESP32 Cam 3 用 BLINK 测试电路板 4 测试 WiFi 5 测试相机 6 运行你的网络服务器 7 水果与蔬菜 图像分类 8 结论 9 最后 0 前言
  • Element Ruoyi 若依跳转后没有滚动条

    Vue Element Ruoyi 若依跳转后页面没有滚动条的解决办法 页面 路由跳转后 body 的内联样式变成 overflow hidden 在src main js中增加一下代码 解决bug 页面 路由跳转后 滚动条消失 页面无法滚
  • DI/IOC

    控制反转 依赖注入 主要说的是通过java的反射机制将xml文件解析 主动解释依赖关系 并实例化相关bean package com bjsxt spring import java lang reflect Method import j
  • 智能合约转java_第四章 自定义sol合约转化java代码,并实现调用

    鉴于笔者以前各大博客教程都有很多人提问 早期建立一个技术交流群 里面技术体系可能比较杂 想了解相关区块链开发 技术提问 请加QQ群 538327407 准备工作 1 官方参考说明文档 2 已经在ubuntu 上搭建好FISCO BCOS 底
  • 快慢指针之练习【2】

    学习安排根据 代码随想录 leetcode 283 移动零 思路 1 直接从大到小排序 不可 需保持原来的相对顺序 2 快慢指针 如何将0移位 gt 快慢指针 赋值 代码 class Solution public void moveZer
  • Java设计模式

    一 采用设计模式的目的 二 设计模式的七大设计原则 三 常见的设计模式
  • 通过命令行开启和关闭oracle

    1 启动oracle10g 建一个以bat结尾的文件 内容为 net start OracleServiceORCL net start OracleORADB10gTNSListener 2 关闭oracle10g 建一个以bat结尾的文
  • 西门子PLC中如何解决流量累积问题

    现在上位机系统中很多要求具备流量计的流量累计功能 由此引出的几个问题 期望与大家分享 问题1 自行编写流量累计程序 自行编写流量累计程序的原理 其实就是积分的最原始算法概念 把单位小间隔时间内的瞬时流量乘以单位间隔时间 得到单位小间隔时间内