如果记录出单位时间内一个寄存器 D 的最大值与最小值 点击:2199 | 回复:15



ylnuqqkg

    
  • 精华:0帖
  • 求助:3帖
  • 帖子:5帖 | 176回
  • 年度积分:0
  • 历史总积分:488
  • 注册:2011年1月15日
发表于:2012-11-30 00:53:41
楼主
求助帖20分-已结帖
与模拟量模组相连,读出的数据需要用到最大值与最小值的差,比如说要D100在10秒内最大的值与最小的值。翻遍了手册也没有找到相关指令,望会的大侠指导一下。



miy_gongkong

  • 精华:0帖
  • 求助:2帖
  • 帖子:23帖 | 3065回
  • 年度积分:0
  • 历史总积分:12421
  • 注册:2008年9月18日
发表于:2012-11-30 09:14:35
1楼

你用的仕么PLC 啊? 有些PLC 有MAX, MIN  指令。

也可以自己写程序 用 FOR 循环实现。。。。

wenwan90

  • 精华:0帖
  • 求助:12帖
  • 帖子:28帖 | 575回
  • 年度积分:12
  • 历史总积分:2497
  • 注册:2011年11月03日
发表于:2012-11-30 09:53:06
2楼

用SORT或者用SER就可以了,很方便。

 

wenwan90

  • 精华:0帖
  • 求助:12帖
  • 帖子:28帖 | 575回
  • 年度积分:12
  • 历史总积分:2497
  • 注册:2011年11月03日
发表于:2012-11-30 09:54:19
3楼
我一般用来做滤波,去掉一个最大值加一个最小值,然后再取平均值。

秦君_1

  • 精华:8帖
  • 求助:22帖
  • 帖子:148帖 | 4867回
  • 年度积分:1651
  • 历史总积分:39896
  • 注册:2005年6月28日
发表于:2012-11-30 10:23:38
4楼

1.上电第一个周期将采样值的D100 MOV到D0(大值)和D10(小值)中。

2.第二个周期将采样值D100与D0和D10比较,如果采样值大于D0(大值)就将采样值MOV到D0(大值)中,如果采样值小于D10(小值)就将采样值MOV到D10(小值)中。

3.重复2.

4.做一个10S计时周期,计时时间到将D0与D10相减就是10s内最大值与最小值的差。然后计时器、D0、D10清零从头开始计算第二个10s周期内的最大差值。

hale128

  • 精华:0帖
  • 求助:13帖
  • 帖子:16帖 | 100回
  • 年度积分:0
  • 历史总积分:268
  • 注册:2012年7月30日
发表于:2012-11-30 11:04:25
5楼

我的想法和4楼师傅的差不多,只是将他第一步细化,因为信号采集不能在同个周期进行两次采集;上电第一个周期将采样值存入D5,第二个周期将采集到的数值与D5比较,大的放在D0,小的放在D10。。。接下来的就按4楼的师傅那么做就行。

simonwu675

  • 精华:0帖
  • 求助:3帖
  • 帖子:11帖 | 794回
  • 年度积分:0
  • 历史总积分:2856
  • 注册:2009年11月23日
发表于:2012-11-30 11:06:24
6楼
引用 秦君_1 的回复内容:1.上电第一个周期将采样值的D100 MOV到D0(大值)和D10(小值)中。2.第二个周期将采样值D100与D0和D10比较,如果采样值大于D0(大值)就将采样值MOV到D0(大值)中,如果采样值小于D10(小值)就将采样值MOV到D10(小值)中。3.重复2.4.做一个10S计时周期,计时时间到将D0与D10相减就是10s内最大值与最小值的差。然后计时器、D0、D10清零从头开始计算第二个10s周期内的最大差值。

如果有脚本或功能块的话就更方便了,思路跟秦君的一样

wenwan90

  • 精华:0帖
  • 求助:12帖
  • 帖子:28帖 | 575回
  • 年度积分:12
  • 历史总积分:2497
  • 注册:2011年11月03日
发表于:2012-11-30 11:29:26
7楼

D24为模拟量现在值,E1为最小值编号,E2为最大值编号。

ylnuqqkg

  • 精华:0帖
  • 求助:3帖
  • 帖子:5帖 | 176回
  • 年度积分:0
  • 历史总积分:488
  • 注册:2011年1月15日
发表于:2012-11-30 12:08:46
8楼
回复内容:
对:miy_gongkong关于你用的仕么PLC 啊? 有些PLC 有MAX, MIN  指令。也可以自己写程序 用 FOR 循环实现。。。。内容的回复:


DVP EH2

ylnuqqkg

  • 精华:0帖
  • 求助:3帖
  • 帖子:5帖 | 176回
  • 年度积分:0
  • 历史总积分:488
  • 注册:2011年1月15日
发表于:2012-11-30 12:10:07
9楼
回复内容:
对:wenwan90关于D24为模拟量现在值,E1为最小值编号,E2为最大值编号。内容的回复:


谢谢有这么多热心的师傅,晚上我试一下

winter938

  • 精华:1帖
  • 求助:0帖
  • 帖子:55帖 | 945回
  • 年度积分:0
  • 历史总积分:3418
  • 注册:2005年6月12日
发表于:2012-11-30 13:12:50
10楼
在这里采样的频率是多少?4楼的做法实际上把时间轴以10秒为单位进行分段,这样在每段找出来的最大或最小值是对应某一时间段的。

xdjizhou

  • 精华:0帖
  • 求助:3帖
  • 帖子:3帖 | 37回
  • 年度积分:0
  • 历史总积分:89
  • 注册:2012年8月20日
发表于:2012-11-30 13:46:48
11楼
请问用三菱PLC怎么实现,我是菜鸟,向各位高手请教

伍琪生

  • 精华:2帖
  • 求助:0帖
  • 帖子:1200帖 | 11283回
  • 年度积分:2326
  • 历史总积分:62523
  • 注册:2006年8月05日
发表于:2012-11-30 13:57:48
12楼
直接编程如下:读出输入到D400,然后程序开始扫描一次将D400移到D401,当D400>D401,将D400移到D450,每到指定时间清除一次D450、D401数据,D450就是需要的值

云锋-王者之师

  • 精华:1帖
  • 求助:4帖
  • 帖子:252帖 | 5541回
  • 年度积分:0
  • 历史总积分:30376
  • 注册:2005年6月24日
发表于:2012-11-30 17:50:14
13楼
秒脉冲和比较指令的综合应用。

彩云之滇东北

  • 精华:21帖
  • 求助:5帖
  • 帖子:108帖 | 2725回
  • 年度积分:0
  • 历史总积分:21121
  • 注册:2005年6月14日
发表于:2012-12-01 19:57:30
14楼
学习了,还没用过三菱的做过

ylnuqqkg

  • 精华:0帖
  • 求助:3帖
  • 帖子:5帖 | 176回
  • 年度积分:0
  • 历史总积分:488
  • 注册:2011年1月15日
发表于:2012-12-05 21:59:46
15楼
我是要用在打车轮的端径跳上,车轮直径600,一周有1800多毫米,我试过以10毫秒为周期,但程序的扫描周期超过了10毫秒,执行起来的时候变成了很长时间。试用用100毫秒的,如果以每分钟12圈的转速,即5秒种一圈,那一秒钟通过的距离有300多毫米,那每100毫秒也有走30多毫米,精度不是很理想

热门招聘
相关主题

官方公众号

智造工程师