回复:求一个300的标准程序

看雪001

  • 帖子

    2416
  • 精华

    87
  • 被关注

    232

论坛等级:至圣

注册时间:2012-04-25

钻石 钻石 如何晋级?

发布于 2017-06-17 22:02:44

7楼

展开查看
以下是引用zzql在2017-06-17 16:26:40的发言 >

谢网友提供的方法,我需从把24个数据中找到最大和最小的值,且知道它们原来所在的位置,不需要按大小重新排列。再次谢谢您。

明白了,你要返回的是最大值的地址指针。

随便写了一个,没有仿真测试,你拿去测试一下:

  OPN   DB     1                    /////打开DB1这个数据块
      L     -32768                      //初始化容器
      L     LW     2                    //找一个绝对的空容器
      L     P#0.0                       //初始化地址指针
      LAR1 
      L     24                          //假如有24个连续数据
LL1:  T     LB     0
      L     LW     2                    //保证第一次比较不会跳转
      L     DBW [AR1,P#0.0]
      >I   
      JC    LL2                         ////比较前后两个值,如果前面小于后面的,则使用后面的数值
      T     LW     2
      TAR1  MD   100                    //并将大值指针返回给md100,它是指针数据类型,也是最大值的索引地址
LL2:  +AR1  P#2.0                       ////指针自动进行加2,因为是整数,所以要跳过2个字节
      L     LB     0
      LOOP  LL1                         ///这个指令自动的将A寄存器里的值减1

MD100就是返回的最大值地址指针,它是个32位数据类型,比如dbw[ar1,p#0.0],如果ar1=P#2.0,则md100以十进制表示就是2.0*8=16

这似乎是个峰谷值图像的测量,谷值就不帮你完成了,大致思路就是这样。

大道至简,知易行难
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54617条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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