在S7-200PLC编程时,如何判断几个变量中哪个变量值最小?
刘玉蓉
发布于2014-09-18 17:19
9
0
标签:
有段小程序不知怎么做,要求需要判断出几个变量中,哪个变量值小,哪个变量值大;因为这几个变量都是动态变化的,所以要及时判断计算出来这几个变量的平均值。
佳答案
network1
LD SM0.0
MOVW 0, #MAX:LW6
AENO
MOVW 0, #MIN:LW8
network2
LD SM0.0
MOVD #Startadd:LD0, AC1
+D +2, AC1
network3
LD SM0.0
LPS
AW>= *AC1, *#Startadd:*LD0
MOVW *AC1, #MAX:LW6
AENO
MOVW *#Startadd:*LD0, #MIN:LW8
LPP
AW< *AC1, *#Startadd:*LD0
MOVW *#Startadd:*LD0, #MAX:LW6
AENO
MOVW *AC1, #MIN:LW8
network4
LD SM0.0
MOVW #Datalen:LW4, LW12
-I 1, LW12
network5
LD SM0.0
FOR #temp_i:LW10, 1, LW12
network6
LD SM0.0
LPS
AW>= *AC1, #MAX:LW6
MOVW *AC1, #MAX:LW6
LPP
AW< *AC1, #MIN:LW8
MOVW *AC1, #MIN:LW8
network7
LD SM0.0
+D 2, AC1
network8
NEXT
以上是我以前项目中写子程序,可以直接转换为LAD查看。功能就是求出一段连续地址中的大值和小值。注意for循环长度,太长有可能超时。
平均值程序很好写,就是累加之后再除一下。
这类程序都是逻辑非常简单的,建议如果有时间的话还是自己写。