回复:来自西门子技术支持热线的故事:关于在FC块中使用--(P )RLO上升沿检测指令的一个小故事

四书五经

  • 帖子

    762
  • 精华

    58
  • 被关注

    30

论坛等级:侠圣

注册时间:2005-12-23

普通 普通 如何晋级?

发布于 2011-04-14 13:45:13

7楼

几年以前也遇到过这个情况,当时编了一个电机通用块,为了少填一些参数,用到了间接寻址。一个电机占一个字节,字节的地址由"aalm"定义。毕竟一个项目这样的功能块有上百个。
“aalm"定义为输入BOOL类型。
源程序如下:

L P##aalm
AD DW#16#FFFFFFF8//取字节地址
LAR1

A(
A #DRV //开机失败,撤除驱动并报警
L S5T#3S
SD #DELAY_TIMER
NOP 0
NOP 0
NOP 0
A #DELAY_TIMER
)
AN #RUN
R #DRV
S [AR1,P#0.1]//置报警位

A #DOWN //联锁跳
FN [AR1,P#0.3]//下跳沿暂存位
AN #UNLOCK
A #RUN
S [AR1,P#0.1]//置报警位
R #DRV
当时在OB1中用LAD去调用这个功能块时,也出现楼主描述的问题,把LAD转成STL发现实际上传送到功能块的输入参数都是L地址,当时没想到把aalm参数放到IN/OUT参数中,最后的解决方案是全部使用STL编程。
呵呵,想问一下为什么LAD编程时会把所有的输入放到L区,然后再做为参数传送呢?。
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54616条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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