plc高速计数器的最大值与最小值的读取方法

作者:老电工时间:2015-11-12 15:42:53

如何读出plc高速计数器的最大值和最小值

利用冒泡法:

西门子300/400程序:

假定十个数据,放在DB1中,安放顺序:
DBD0
DBD4

DBD36
下面程序:
 

复制代码 代码示例:
OPN   DB    1   /////打开DB1这个数据块
      L     10  ////装载10到MB0中,因为有十个数据,要进行十次排序,9次也可以的
LL0:  T     MB    0
      L     P#0.0   ////装载地址指针,这是关键,不要搞错了
      LAR1 
      L     9
LL1:  T     MB    2   ////内部循环,进行9次,直到把最大值排到最后
      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

比如西门子S7-300/400中,MW20,MW22,MW24,MW26,MW28从中找出最大值和最小值,可以利用SCL,A:= MAX (IN1:=a, IN2:=b, IN3:=c, IN4:=d);
A:= MIN (IN1:=a, IN1:=b, IN1:=c, IN1:=d);来取最大值和最小值。

三菱plc 可用SER指令如:SER D100 D0 D10 K10,其中D100 K10是指以D100为首的10个寄存器,而D0是要查找的数据 D10则是目标的个数注意不是目标的数据 而D11则是第一个符合目标的值D12是最后一个符合的目标值 D13是最小值的位置 D14就是最大值的位置。

本站仅提供信息发布平台,文章仅代表作者个人观点。

猜你喜欢

首页 > plc > 三菱plc