回复:应用探讨——STL 是不是真的就会被淘汰?

西门子Auto

官方工程师

  • 帖子

    126
  • 精华

    16
  • 被关注

    235

论坛等级:侠圣

注册时间:2007-08-03

普通 普通 如何晋级?

发布于 2015-07-07 11:10:07

15楼

找了一段STL的例子,老外编写指针都是这样了,当初学习STL不是为了用的,而是能看懂别人的程序。

L 0 //初始化临时变量#ADD_TEMP。
T #ADD_TEMP
L P##In_Data //指向存储地址指针P#M100.0的首地
址,并装载到地址寄存器AR1中。
LAR1
L 0 //判断OB1中赋值的地址指针是否为数
据块(参考POINTER的数据格式)。
L W [AR1,P#0.0]
==I
JC M1
T #BLOCK_NO
OPN DB [#BLOCK_NO] //如果是DB块,打开指定的DB块。
M1: L D [AR1,P#2.0] //找出需要计算数据区的开始地址,
POINTER数据中,后4个字节包含内部
交叉指针,将
LAR1 P#M100.0装载到AR1中。
L 0
L #NO //如果输入变量个数为0,结束FC3的
执行。如果不等于0作为循环执
==I 行的次数(NO_TEMP)。
JC END
NO: T #NO_TEMP //循环执行加运算,本例中循环执行的次
数为4。
L D [AR1,P#0.0] //装载MD100到累加器1中。
L #ADD_TEMP //与临时变量#ADD_TEMP相加后将计算结
+R 果再存储于#ADD_TEMP中。
T #ADD_TEMP
+AR1 P#4.0 //地址寄存器加4,下一次于MD104相加。
L #NO_TEMP //LOOP 指令固定格式。
LOOP NO //跳回“NO”循环执行,执行完定义在变
量#NO_TEMP的次数后自动跳出循环程序。
L #ADD_TEMP //求平均值,装载运算结果到累加器1中。
L #NO
DTR //将变量个数转变为浮点值便于运算。
/R
T #OUT_VAL //输出运算结果。
END: NOP 0
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1500系列

共有11076条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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