数值比较

现在手头上有一个20缸的发电机组,20个气缸温度通过opc已经读到,业主想在上位画面上显示缸温的最大值及最小值,请问如何通过上位程序的编写实现比较20个气缸温度的最大值,最小值,谢谢!!!

最佳答案

一般,这样的排序在PLC中进行最为简便,排序后传给上位机。例如采用冒泡法:
转帖:
假定20个数据,放在DB1中,安放顺序如下:
DBD0
DBD4

DBD36
下面是西门子的程序
OPN   DB    1                 /////打开DB1这个数据块
      L     20  ////装载20到MB0中,因为有20个数据,要进行20次排序,
LL0:  T     MB    0
      L     P#0.0   ////装载地址指针,这是关键,不要搞错了
      LAR1  
      L     19
LL1:  T     MB    2   ////内部循环,进行19次,直到把最大值排到最后
      L     DBD [AR1,P#0.0]
      L     DBD [AR1,P#4.0]
      <R    
      JC    LL2          ////比较前后两个值,如果前面大于后面的,则前后数据交换
      L     DBD [AR1,P#0.0]
      T     #m_temp
      L     DBD [AR1,P#4.0]
      T     DBD [AR1,P#0.0]
      L     #m_temp
      T     DBD [AR1,P#4.0]
LL2:  +AR1  P#4.0     ////指针自动进行加4,因为是浮点数,所以要跳过4个字节
      L     MB    2
      LOOP  LL1       ///这个指令自动的将A寄存器里的值减1
      L     MB    0
LOOP  LL0

提问者对于答案的评价:
谢谢了~~~~~~

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日
下一篇 2019年6月11日

相关推荐