大家好,前面我们了解了FZHOP硬件版的动作步操作方法(不熟悉的同学可以先回去看看第三课),现在我们可以来继续我们的曲线图学习了

在工业应用控制中,我们经常需要对曲线的波峰或者波谷的峰值进行计算,用于和产品参数进行比对,以判断产品是否合格。

今天我们就来看看FZHOP硬件版如何实现这个操作吧。

首先我们启动应用程序 如图所示:

这里需要说明一下,我们的曲线操作都是针对XY曲线图对象进行的,所以我们以XY曲线图《测试曲线图2》进行操作说明,这里我调整下界面,以方便展示。

由于目前大家练习的都是非授权版本,所以不能直接从PLC获取数据并画图,所以这里我们也给大家准备了练习使用的曲线数据。下面我们就来导入这些数据进行练习

首先我们鼠标指向曲线图内,然后点击鼠标右键,触发右键菜单

我们点击导入曲线数据菜单按钮。

找到 测试用曲线数据 文件夹,然后选择 波峰波谷测试曲线.xlsx

点击打开按钮我们就能看到导入的曲线了

下面看看我完整的操作

现在我们有了测试数据了,接下来我们去获取曲线的波峰值,现在我们把界面切换到动作步编辑界面,在主动作步内进行编程操作

现在我们新增根节点,并添加一个子节点

更新根节点名称为 波峰波谷功能测试 ,更新子节点名称为 曲线波峰获取1

       然后选中节点曲线波峰获取1,点击鼠标右键,在弹出的右键菜单中选择 编辑动作步 按钮,在弹出的页面中选择 功能-曲线

在动作步编辑页面的功能指令下拉菜单中选择 曲线波峰取值 ,这时我们可以看到这个功能指令的参数列表。

这个指令有7个参数,分别是 曲线图对象曲线对象分割线值分割线公差取值的起始波峰取值数量通用寄存器首地址。

这些参数什么意思呢?起始我们在选择这些参数的时候,在动作步编辑窗口的 功能及参数说明 里面就会提示大家,不过这里我也给大家讲讲

曲线图对象:我们在获取数据波峰值时,我们得先知道曲线在哪个曲线图中是吧,那么这里就是告诉我们的程序在哪个曲线图里面去找要操作的曲线的。这里我们输入曲线图对象的编号,编号具体在配置工具->曲线图配置->曲线图窗口名称中,曲线图对象按顺序(0,1,2……)的方式编号。这个例子中我们使用的是测试曲线图2这个曲线图对象,那么它的编号是多少呢?下面我们用图片来展示。不难发现,这个编号就是曲线图创建时的顺序号。测试曲线图2在这里编号就是2,我们直接填入到参数值里面。

曲线对象:上面我们找到了我们要操作的曲线图,接下来我们就需要对我们曲线图内的曲线进行操作了。这里输入曲线对象编号,曲线对象编号是按照曲线新增顺序(0,1,2……)的方式编号的。这么说有点抽象,下面我还是用图片来说明下。这里我们可以看到曲线的编号也是曲线创建时的顺序号。我们对 测试曲线1 进行操作,则要填入的曲线编号为 0。注意:这里曲线名称和曲线编号没有任何关系,曲线编号只和曲线的创建顺序有关。

分割线值:现在我们已经找到了要操作的曲线对象了,接下来就是如何去找我们曲线的波峰了,分割线值这个参数就是用来帮助我们在曲线中找波峰波谷用的。

我先假设把分割线值设置为0,如下图

值为0的水平线会把我们的曲线分为上下两部分,与我们的目标曲线围成了7个区域。这个就是我们的曲线分割方法。我们可以通过调整分割线的值(分割线的上下位置),来对我们的目标曲线进行操作,从而得到我们需要的波峰和波谷。

分割线公差:分割线公差是一个为了提高曲线分割效果的参数,有了这个参数实际上分割目标曲线的并不是一条直线,而是两条直线。为什么要这么做呢??实际上这是由于我们的曲线是离散点,而且有波动,如果仅仅用一条直线去进行分割,那么很容易会将曲线纹波也给分割出来。。。影响我们的数据判断。所以我们添加了这么个参数,以后就可以在我们需要的尺度下将曲线分割成我们想要的线段了。

下图就是我们实际的曲线分割结果。分割线公差设置要大于曲线纹波尺度,小于曲线本身的尺度,这样才能有效的对曲线进行分割。

取值的起始波峰:上面我们完成了对曲线的分割,接下来我们就需要获取我们的波峰值了。如下图,我们一次性分割出了3个波峰,这时我们就可以通过这参数选择从第几个波峰进行取值。同样,这里需要输入波峰的编号,波峰编号也是从0开始的,我们图中的第一个波峰编号为0,第二个波峰编号为1,第三个波峰编号为2。这里我们从第一个波峰开始取值,所以我们参数值设置为0。

取值数量:这个参数是告诉指令我们要从起始波峰开始取几个波峰的值。这个例子里最多可以取3个波峰的值,那么我们给参数值设置为3。表示一次将3个波峰值全部取出。

通用寄存器首地址:好了现在到了关键时刻了,我们可以计算出我们想要的波峰值了,但是这些值存储在哪里呢?这里就会用到我们程序内置的65535个通用寄存器了。我们可以在这个参数里指定我们的存储位置。从功能及参数说明栏里我们可以看到通用寄存器用法:取值数据会按顺序存入通用寄存器首地址,写数值和用@+数值是相同的,@@是指针引用

什么意思呢?就是说直接写65535以内的地址和写@65535的意思是相同的都是直接对地址进行操作。而@@则是把指定寄存器当指针使用,实际上就是间接寻址的意思。

好了,参数我们说完了,看看我的参数值吧

然后我们点击确定按钮,可以看到参数自动填入了我们的动作步中。

接下来我们点击 启动(主动作步) 按钮,执行下程序看看效果。可以看到通用寄存器地址100、101、102里面都有数据,103里面就没有了。

可以看到查找到的波峰值都是很准确的,其实也就是把曲线分割后找最大值。。能不准确嘛O(∩_∩)O哈哈~

取波谷值和取波峰值的方法是一样的,我就快速演示一遍大家看看

前面讲了这么多,熟悉以后也就几秒钟。。。。

好了今天就到这里啦,大家有时间可以多练习,有问题可以在QQ群209783211里告诉我,我会详细为大家解答的,我们下期再见啦。

硬件版下载链接:https://pan.baidu.com/s/1BJAwhylmey7NgqqkJv9FIQ 
     提取码:FZHP

第四课 FZHOP硬件版上位机教程-曲线图-波峰波谷取值(CP1H版)相关推荐

  1. 昂达vi40精英版刷Linux,昂达vi40旗舰版刷机教程【图解】

    昂达品牌是在国内比较知名的电子品牌,成立的时间是在1989年,生产的产品主要有华硕主板,打印机,源兴光驱以及 显示器 等等,通过了整整十二年的努力,在市场上获得很好的用户口碑,今天小编要给大家介绍的也 ...

  2. 四种常见的 POST 提交数据方式对应的content-type取值

    做前后端分离一般都有第3中 , 第一种 基本上jquery那年代用的了 第2种在需要传文件时用的 https://www.cnblogs.com/wushifeng/p/6707248.html 四种 ...

  3. MIUI 欧版刷机教程(操作篇)

    文章目录 0 前置条件 1 下载ROM包 2 确定刷机方式 3 线刷教程 4 卡刷教程 使用系统更新 使用TWRP 问题汇总 0 前置条件 必须先解除手机的bootloader锁.详细教程参见官网:申 ...

  4. 四种常见的 POST 提交数据方式对应的 content-type 取值

    application/x-www-form-urlencoded 这应该是最常见的 POST 提交数据的方式了.浏览器的原生 form 表单,如果不设置 enctype 属性,那么最终就会以 app ...

  5. MT4/MQL4入门到精通EA教程第三课-MQL语言常用函数(三)-K线取值常用功能函数

    double iOpen(); double iOpen( string symbol, // 交易品种 int timeframe, // 周期 int shift // K线柱 ); iOpen( ...

  6. 计算机数据编码课件,《第四课 二进制数 信息编码课件》初中信息技术华中科大课标版七年级上册课件.ppt...

    文档介绍: <第四课 二进制数 信息编码课件>初中信息技术华中科大课标版七年级上册课件20276第四课二进制数信息编码 湖北省黄冈市蕲春县实验中学吴妙莹 激趣导学 一.数字有什么作用?哪些 ...

  7. 计算机教案精美图片我收集,人教版三年级信息技术《第十四课 美化图片我来做》教案(精品获奖)...

    教学设计 编写者 执教者 执教时间 6月14日星期五 版本 人教版 学科 信息技术 册数 三年级(下册) 单元 课题 第十四课 美化图片我来做 课时 教学目标 一课时 通过调整图片的明暗和色调以及处理 ...

  8. 编程计算机教小明加法,Python校本课程第四课——教案

    Python校本课程第四课 课题:一个简单的加法器 数据类型的转换 教学目标: 1.能区别三种数据类型的表示以及记住相互转换命令str(),int(),float() 2.通过完成一个简单加法器的程序 ...

  9. 七年级计算机第十四课编排表格,浙教版 信息技术七年级上 第十四课 编辑数据表 教案设计.doc...

    第十四课 编辑数据表 一.教学目标 知识与技能: 1.掌握单元格的插入的方法.单元格的合并和居中.调整单元格大小 ; 2.掌握单元格数据对齐方式的设置.单元格字体.字号.字体颜色的设置; 3.掌握单元 ...

最新文章

  1. (C++)1041 考试座位号
  2. “AI明星”第四范式C轮融资超10亿元,估值约12亿美元
  3. 百度研究院发布2021年十大科技趋势预测
  4. 算法练习day10——190328(二叉树的先序、 中序、 后序遍历, 包括递归方式和非递归方式、找到一个节点的后继节点、二叉树的序列化和反序列化)
  5. 云计算的认识和看法_云存储已经成为存储的未来,你的存储跟上节奏了吗?
  6. leetcode No.21 合并两个有序链表
  7. 测试智慧城市项目API接口
  8. 最长上升子序列模板 hdu 1087 Super Jumping! Jumping! Jumping!
  9. python基础篇 —— 类
  10. uiactionsheet 代理_iOS UIActionSheet (点击事件笔记)
  11. VM虚拟机下安装vulkan的踩坑
  12. 计算机电路电子技术试题答案,数字电子技术基础试题及答案
  13. Protobuf使用手册--中文版
  14. php与jpython-在python中复数怎么表示
  15. angular写的移动端模板《一》
  16. IPFS系列 - 体验 IPFS Docker
  17. 蓝牙语音芯片模块数传音频BLE选型 支持mp3播放外挂spiflash双模
  18. 华硕服务器怎么装win7系统教程视频,华硕电脑离线重装win7系统详细教程
  19. java GUL编程
  20. Web前端教程学习笔记1.2-2022.10.17始

热门文章

  1. 变量——整型变量 浮点型变量 字符型变量
  2. Python学习笔记(四)QT开发图形界面总结
  3. 不懂数学,照样做数据科学家
  4. selenium java截图_JAVA+selenium 截图操作
  5. 用 Swift 实现通知推送的新手指南
  6. mysql 利用时间查询_利用时间的艺术
  7. 使用json.dumps()处理中文时如何将内容存储为中文而不是unicode转义
  8. 用于多UxV管理的人机协作中智能体的透明度研究
  9. java练习 家庭收支管理小练习
  10. hotmail 发送邮件 的服务器地址如下