有段小程序不知怎么做,要求需要判断出几个变量中,哪个变量值最小,哪个变量值最大;因为这几个变量都是动态变化的,所以要及时判断计算出来这几个变量的平均值。请教各位!谢谢
最佳答案
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循环长度,太长有可能超时。
平均值程序很好写,就是累加之后再除一下。
这类程序都是逻辑非常简单的,建议楼主如果有时间的话还是自己写。
提问者对于答案的评价:
谢谢各位的回复!此问题已解决!!!
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc304563.html