实数比较块,输出最小值

有没有现成的实数比较模块,输出最小值?或者怎么编一个这样的块?

问题补充:
只需要比较两个值,把最小的值输出。值为REAL格式

最佳答案

不知道你比较数目多吗?如果不多最简单的办法就是预先定义一个值作为最小值,保存在一个存储区,用其他数值和这个值比较,如果比这个预定义最小值小,就替换最小值,否则还保持最小值不变。举个例子:有5个实数要比较,分别保存在数据块DB1中,地址为DBD0、DBD4、DBD8、DBD12、DBD16。比较最小值结果保存在DBD20中。参考程序如下:

      L     DB1.DBD    0
      T     DB1.DBD   20
      A(    
      L     DB1.DBD    4
      L     DB1.DBD    0
      <R    
      )     
      JNB   M001
      L     DB1.DBD    4
      T     DB1.DBD   20
M001: NOP   0
      A(    
      L     DB1.DBD    8
      L     DB1.DBD    0
      <R    
      )     
      JNB   M002
      L     DB1.DBD    8
      T     DB1.DBD   20
M002: NOP   0
      A(    
      L     DB1.DBD   12
      L     DB1.DBD    0
      <R    
      )     
      JNB   M003
      L     DB1.DBD   12
      T     DB1.DBD   20
M003: NOP   0
      A(    
      L     DB1.DBD   16
      L     DB1.DBD    0
      <R    
      )     
      JNB   M004
      L     DB1.DBD   16
      T     DB1.DBD   20
M004: NOP   0
如果比较数值 比较多,建议使用循环指令加间接寻址来完成比较容易。
如果比较2个数值更简单。假设2个数值保存在DB1.DBD0 和DB1.DBD4中,比较最小值结果保存在DB1.DBD8中。在定义DB1数据块时候定义DB1.DD0、DB1.DBD4、DB1.DBD8为浮点数REAL类型即可。程序见附件图片。

图片说明:

实数比较块,输出最小值  

提问者对于答案的评价:
对zhanglio的回答一并表示感谢!

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc203038.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年11月1日 上午1:05
下一篇 2017年11月1日 上午1:05

相关推荐