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

       大家好,前面我们了解了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 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值