当前位置: 主页 > PLC控制

300程序中,求最大值,该怎么弄?求高手指点

想请教下高手们,在程序中,怎么从多个数据中,寻找其数值最大那个数据,例如:MW0,MW2,MW4,MW6,MW8,MW10中,每个数值都不一样,但总有个最大值,最小值,该怎么寻找?如果数据少的话,可以相互比较,但如果数量多的话该怎么寻找?求高手指点?

ASs='html_titleimg_p' STyle='text-align:CEnter;'>1e1ec518BFaae86d5018ac00bde5f2c4

最佳答案

采用冒泡排序:
转帖:
冒泡排序(冒泡原理,学过语言的人都应该知道,如果不知道,请上网找一个吧,到处都是):
假定十个数据,放在DB1中,安放顺序如下:
DBD0
DBD4

DBD36
下面是西门子的程序
OPNDB1/////打开DB1这个数据块
L10////装载10到MB0中,因为有十个数据,要进行十次排序,9次也可以的
LL0:TMB0
LP#0.0////装载地址指针,这是关键,不要搞错了
LAR1
L9
LL1:TMB2////内部循环,进行9次,直到把最大值排到最后
LDBD[AR1,P#0.0]
LDBD[AR1,P#4.0]
<R
JCLL2////比较前后两个值,如果前面大于后面的,则前后数据交换
LDBD[AR1,P#0.0]
T#m_temp
LDBD[AR1,P#4.0]
TDBD[AR1,P#0.0]
L#m_temp
TDBD[AR1,P#4.0]
LL2:+AR1P#4.0////指针自动进行加4,因为是浮点数,所以要跳过4个字节
LMB2
LOOPLL1///这个指令自动的将A寄存器里的值减1
LMB0
LOOPLL0

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

  • 关注微信

猜你喜欢

微信公众号