回复:跟我一起玩200 smart PLC 关于数据的排序

芳季

西门子1847工业学习平台

  • 帖子

    15507
  • 精华

    101
  • 被关注

    961

论坛等级:至圣

注册时间:2007-08-03

钻石 钻石 如何晋级?

发布于 2017-11-15 18:48:02

10楼

我也趁个热闹。库程序的。导入即可,即插即用。

SUBROUTINE_BLOCK I排序:SBR1

TITLE=密码:dddd

VAR_INPUT

表头:INT;

个数:INT;

END_VAR

VAR

外当前:INT;

外次数:INT;

内当前:INT;

内次数:INT;

指针1:DWORD;

指针2:DWORD;

save:INT;

END_VAR

BEGIN

Network 1 

LD     SM0.0

MOVW   16#0800, LW12

MOVW   LW2, LW6

DECW   LW6

MOVW   LW2, LW10

Network 2 

LD     SM0.0

FOR    LW4, +1, LW6

Network 3 

LD     SM0.0

DECW   LW10

Network 4 

// 确定比较区域的首个地址的偏移

LD     SM0.0

MOVW   LW0, LW14

Network 5 

LD     SM0.0

FOR    LW8, +1, LW10

Network 6 

// 确定另一个相邻的比较数据

LD     SM0.0

MOVD   +2, LD16

+D     LD12, LD16

Network 7 

// 第一个大于第二个就换位

// 内循环

// 第一轮执行

// 第一个与第二个比较

// 第二轮执行

// 第二个与第三个比较

// 。。。。。。

LDW>   *LD12, *LD16

MOVW   *LD12, LW20

MOVW   *LD16, *LD12

MOVW   LW20, *LD16

Network 8 

// 指向下一个数据

LD     SM0.0

INCD   LD12

INCD   LD12

Network 9 

// 内循环返回

// 

NEXT

Network 10 

// 第一次执行到这里内循环已经执行了LW2次。

// 最大值已经出现在最下面。

NEXT

END_SUBROUTINE_BLOCK


评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有8941条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。