s7-200PLC冒泡法排序,工控资讯 安徽信控电气


您所在的位置:首页 > 工控资讯> 工控资讯
工控资讯
工控资讯

s7-200PLC冒泡法排序

2013-11-14 浏览次数: 来源:

一、冒泡法---封装库(别人写的)

主程序:

请注意,这里的数据操作均为字整型,不支持浮点数,要支持浮点数,需要修改冒泡排序程序.

Network 1 

// 假设原始数据放在VW50,那么通过不同的时间片,将这个原始数据放在VW100------VW108

LD     SM0.1

MOVW   VW50, VW100

MOVW   VW52, VW102

MOVW   VW54, VW104

MOVW   VW56, VW106

MOVW   VW58, VW108

Network 2 // 网络标题

// VW100----VW108的数据进行排序,去掉最大值和最小值,只取中间三个样本

LD     M0.0

EU

CALL   SBR1, &VB100, 5

Network 3 

// 这里对排序后的三个值取平均值

LD     SM0.0

LPS

MOVW   VW102, VW200

AENO

+I     VW104, VW200

AENO

MOVW   VW200, VW202

+I     VW106, VW202

LPP

MOVW   VW202, VW204

/I     +3, VW204

冒泡法--------------A[0],A[1]......A[J]从小到大进行排序

// 

// 注:排序数为字整数,即VW##,如:VW100VW102VW104

// 

// LD20---------------------------变量I

// LD30---------------------------变量J

// LD8------------------------------N-1

Network 1 // 初始化I=0J=0

LD     SM0.0

MOVD   0, LD20

MOVD   0, LD30

MOVD   LD4, LD8

-D     1, LD8

Network 2 

LBL    0

Network 3 // J=I+1

LD     SM0.0

MOVD   LD20, LD30

+D     1, LD30

Network 4 

LBL    1

Network 5 // A[I] > A[J] ?

LD     SM0.0

MOVD   LD20, LD12

*D     +2, LD12

MOVD   LD30, LD16

*D     +2, LD16

MOVD   LD12, AC1

+D     LD0, AC1

MOVD   LD16, AC2

+D     LD0, AC2

Network 6 

LDW>=  *AC1, *AC2

NOT

JMP    2

Network 7 // A[I]A[J]进行交换

LD     SM0.0

MOVW   *AC1, LW24

MOVW   *AC2, *AC1

MOVW   LW24, *AC2

Network 8 

LBL    2

Network 9 // J++

LD     SM0.0

INCD   LD30

Network 10 // J=N?

LDD=   LD30, LD4

NOT

JMP    1

Network 11 // I++

LD     SM0.0

INCD   LD20

Network 12 // I=N-1?

LDD=   LD20, LD8

NOT

JMP    0

二、冒泡法----普通语句(自己写的)

主程序:Network 1 

LD     I0.1

AN     Q0.0

CALL   SBR0, &VB100, 10, I0.0, Q0.0

子程序:

TITLE=程序注释

Network 1 

LD     SM0.0

LDW>   LW4, 255

OW<    LW4, 0

ALD

LPS

S      L6.1, 1

NOT

R      L6.1, 1

LPP

JMP    0

Network 2 

LD     SM0.0

MOVW   LW4, LW8

-I     1, LW8

Network 3 

LD     SM0.0

MOVD   LD0, AC1

FOR    LW10, +1, LW8

AENO

MOVD   +1, AC2

+D     AC1, AC2

MOVW   +1, LW14

+I     LW8, LW14

Network 4 

LD     SM0.0

FOR    LW12, LW14, LW4

Network 5 

LD     SM0.0

A      L6.0

JMP    1

Network 6 

LD     SM0.0

AB>    *AC1, *AC2

MOVB   *AC1, AC0

AENO

MOVB   *AC2, *AC1

AENO

MOVB   AC0, *AC2

Network 7 

LD     SM0.0

JMP    2

Network 8 

LBL    1

Network 9 

LD     SM0.0

AB<    *AC1, *AC2

MOVB   *AC1, AC0

AENO

MOVB   *AC2, *AC1

AENO

MOVB   AC0, *AC2

Network 10 

LBL    2

Network 11 

LD     SM0.0

+D     +1, AC2

Network 12 

NEXT

Network 13 

LD     SM0.0

+D     +1, AC1

Network 14 

NEXT

Network 15 

LBL    0

永宏PLC 四方变频器 维控触摸屏 威纶触摸屏 西门子产品 信控科技

分享到: 8

版权所有  安徽信控电气技术有限公司  皖ICP备17021212号

友情链接 :  PLC编程电气工程项目
QQ客服热线