问题:s7-200smart采集模拟量,每次扫描到数据,就记录下来,读到的数据存到最后一单元,数据依次往前拱,把最老的一个单元拱出去,求程序段。我用FIFO似乎实现不了
解:前几天看到网友用smart 间接寻址 冒泡法程序,今天下午不忙,做了一个冒泡法排序,抛砖引玉。 相互学习优化优化程序。
主程序:
Network 1 
LD     M0.0
=      L60.0
LD     M0.0
EU
=      L63.7
LD     L60.0
CALL   SBR0, L63.7, &VB0, 60, M0.5, M0.6
子程序:
TITLE=程序注释
Network 1 
// 外循环次数计算
LD     SM0.0
MOVW   LW5, LW12
-I     1, LW12
Network 2 
// 外循环   开始  
LD     L0.0
FOR    LW10, 1, LW12
Network 3 
// 指针传递
LD     SM0.0
MOVD   LD1, LD16
AENO
MOVW   LW10, VW3002
Network 4 
//  内循环次数计算
LD     SM0.0
MOVW   LW5, LW14
-I     LW10, LW14
Network 5 
// 内循环    
LD     SM0.0
FOR    LW8, 1, LW14
AENO
MOVW   LW8, VW3004
Network 6 
//    
LD     SM0.0
MOVD   LD16, LD20
+D     +2, LD20
Network 7 
// 比较大小,条件满足后互换。互换完成后指针地址加2
LDW>   *LD16, *LD20
LPS
MOVW   *LD16, LW24
AENO
MOVW   *LD20, *LD16
AENO
MOVW   LW24, *LD20
AENO
+D     2, LD16
LPP
NOT
+D     2, LD16
Network 8 
LDW>=  LW8, 200
WDR
Network 9 
// 内循环结束
NEXT
Network 10 
LDW>=  LW10, 400
WDR
Network 11 
// 外循环结束
NEXT


 会员中心
 会员中心 会员注册
 会员注册 
  
  返回顶部
返回顶部 刷新页面
刷新页面 下到页底
下到页底