首页 上一页 1 2 下一页 尾页

在FX系列上怎样查找出D10-D49中的最大数和最小数 点击:3448 | 回复:40



wanggq

    
  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2012-04-26 16:22:34
楼主

 

  在FX系列的PLC上怎样查找出D10-D49中的最大数和最小数?  这个类似的问题前面已有网友在PLC每周一题栏目贴出过,而且也有答案出来。但是,我认为答案不够简洁,而且不够正确。现在将我以FX系列PLC为平台做的实验结果贴出来谨供网友们参考。

 

  答案1:

 

 

  这个答案适合FX1S / FX1N / FX2N



楼主最近还看过



wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:33帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2012-05-06 13:34:42
21楼

 

  说过了答案1和答案2,现在来说答案3 。

 

  如果题目要求查找的数据个数不多于32个,那么,我们还可以很简单的运用“数据排序”指令来实现查找指定范围内的最大值和最小值。

 

  下面是一个在 FX2n 及以上档次的 PLC 上实现“查找 D10-D41 这32个数据中的最大值与最小值”功能的片断:

 

 

  这个片断中 D10-D41 这32个数据在<数据排序>指令中是作为“源数据块”来运用的。而D60-D91是作为“目标数据块”来运用的。查找出的“最小值”寄存于D60;“最大值”寄存于D91 。当我们需要运用其“最大值”或“最小值”时,就把其对应的D91或D60的内容调出来。

 

         

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:33帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2012-05-06 13:59:57
22楼

 

  №21楼的片断当然也只是“原理性”的表达。当我们遇到需要查找的数据范围大于32个数据时,就需要我们动一动脑筋才能仍然用<数据排序>这个指令来实现题目要求的“目标功能”了!

 

  譬如说,要查找60个数据寄存器范围内寄存的“最大值”和“最小值”这一题目,先留给网友们思考,若是明天有空呢,就明天把实现这个“目标功能”的片断贴出来!

        

zwm00306

  • 精华:0帖
  • 求助:0帖
  • 帖子:26帖 | 1541回
  • 年度积分:0
  • 历史总积分:5963
  • 注册:2001年10月22日
发表于:2012-05-06 14:19:33
23楼
比例程里分析得好。。。。。。

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:33帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2012-05-07 20:52:57
24楼

 

   FX2n 的 D512-D799 是电池后备固定区。对于 №22楼提出的新的“目标功能”:在指定的60个寄存器范围内查找其内容的最大值和最小值,我们在设计这个“目标功能”的实验时准备 60 个源数据并把它们写到 D520-D579 这段区间(目的就是为了能够多次重复的验证),当“查找操作键” X3 被摁下之初即把 60 个源数据整体传送给 D10-D69 这60 个寄存器。

 

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:33帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2012-05-07 21:06:28
25楼

                        

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:33帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2012-05-07 21:29:45
26楼

 

  保存在电池后备区的60个数据如红线框里的内容。其中前40个数据是和 №10 楼的《数据表1》一样的内容;后20个数据都是“0”。请网友们明白:这“0”也是数据呀!而且我这样安排是有自己的用意的。什么用意?等以后再说。

 

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:33帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2012-05-08 14:11:14
27楼

 

  我在№24楼(№25楼)贴出的实验片断中故意摆了个貌似的“破绽”,不知有没有人注意到!

   

  请网友们留心这个貌似的“破绽”是什么?!

 

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:33帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2012-05-08 17:05:06
28楼

 

  №24楼(№25楼)的片断还可以这样用37步程序来表达:

 

                                         

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:33帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2012-05-08 22:05:10
29楼

 

   在目录上怎么看不这个帖子的新回帖呢?又是在升级吗?!怎么老是“升级”呢!!!!

        

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:33帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2012-05-08 22:05:49
30楼

 

   在目录上怎么看不见这个帖子的新回帖呢?又是在升级吗?!怎么老是“升级”呢!!!!

        

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:33帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2012-05-09 13:37:57
31楼

 

  我今天开始讲答案4

 

  从指定范围内查找一批数据的最大值及最小值,除了以上的答案1、答案2、答案3 之外,还有一种答案是最简单、运行最快的(只需 1 个扫描周期即可完成,并且在 1 个扫描周期里也不需采用循环方法)。

 

  下面就答案4:用<数据检索>指令来做的查找指定60个数据的最大值及最小值之目标功能的片断。

 

 

  

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:33帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2012-05-09 13:47:35
32楼

 

  当然,这楼上的片断同样也只是“原理性”的表达!要实用或要演示还要添加一些辅助的指令:

 

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:33帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2012-05-09 13:55:53
33楼

 

  下面是摁下“查找操作键”后该片断的监视图片:

 

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:33帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2012-05-09 14:27:57
34楼

 

  下面是 PLC  上电之初时,从 PLC 上读取的寄存器数据,D10-D69 范围如红线框内的部分:

 

 

  下面是经操作 X1 ,但还没有操作 X3 之前 从 PLC 上读取的寄存器数据,D10-D69 范围如红线框内的部分:

 

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:33帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2012-05-09 14:41:35
35楼

 

  下面是经操作 X3 之后, 从 PLC 上读取的寄存器数据,D10-D69 范围如较大的红线框内的部分;D5-D9 的内容是执行了<数据检索>指令所产生的“目标操作数”的内容如较小的红线框内的部分;D3 的内容是我们在指定的60个数据中检索出来的“最小值”;D4的内容是其“最大值”:

 

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:33帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2012-05-10 13:56:16
36楼

 

  我们分别把答案1 所用的方法叫作“变址比较法” /  答案2 所用的方法叫作“移位比较法” / 答案3 所用的方法叫作“排序查找法” / 答案4 所用的方法叫作“检索查找法” 。        

 

  解决同类问题还有其它的方法吗?

    

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:33帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2012-05-10 14:02:24
37楼

 

  查找“最大数”或“最小数”最基本的原理就是通过比较来得到“大”或“小”的概念!以上4种答案都是建立在“比较”的原理之上的。 

  

大器晚成

  • 精华:0帖
  • 求助:5帖
  • 帖子:90帖 | 435回
  • 年度积分:0
  • 历史总积分:1636
  • 注册:2002年9月19日
发表于:2012-06-29 14:58:30
38楼
对指令研究得比较透策啊

七十年代

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 235回
  • 年度积分:0
  • 历史总积分:150
  • 注册:2005年7月17日
发表于:2012-07-16 06:21:41
39楼

高,实在是高啊,学习了

gwer789

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 362回
  • 年度积分:599
  • 历史总积分:768
  • 注册:2011年6月22日
发表于:2015-06-24 18:11:15
40楼

高,实在是高啊,学习了


热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 下一页 尾页