回复:STL语句FN,FP疑问?

zgd211

  • 帖子

    497
  • 精华

    0
  • 被关注

    3

论坛等级:侠士

注册时间:2006-11-08

普通 普通 如何晋级?

发布于 2008-01-02 08:56:28

0楼

quote:以下是引用IF THEN ELSE在2007-12-29 12:58:25的发言:
我想S和=的区别不用多说,大家都知道
关键是用FP,FN指令时,操作数是什么样的,如果操作数是没有记忆功能,那么将不会产生和FP指令前A操作数同样的时序,也就是说,虽然你的程序里
A M10.2
FP L0.1
但是因为L0.1不存在记忆功能,所以,下个周期时,即使M10.2仍然为1,L0.1却为0,如果这里把L0.1换成具有记忆功能的M0.1,情况将不同,它的值将和M10.2的一模一样。
并且只要用了FP或着FN指令,多会对RLO位产生一个脉冲,我们一般常用这个脉冲来S一个位。
那么什么情况我们定义的局部变量具有记忆功能,什么情况下,我们定义的局部变量又不具有记忆功能呢,很简单,FC里的局部变量不具有,FB里的具有,
至于为什么,我想不说你也应该知道,因为我们多了一个背景数据块,所有程序中出现的变量都会被记录在背景数据块中,因此即使是局部变量,因为又了背景数据块的支持,它也具备了记忆功能。



谢谢!不过有点异议:对于这一句“那么什么情况我们定义的局部变量具有记忆功能,什么情况下,我们定义的局部变量又不具有记忆功能呢,很简单,FC里的局部变量不具有,FB里的具有”,FB其实对局部变量也没有记忆功能的,FB只对in、out、INT-OUT、STAT变量有记忆功能,而对于temp、L变量却没有记忆功能!
同时我也赞成临时变量没有记忆功能,可是下面的语句执行结果是一样的:(当M0.1变化一致时),我不知道是用仿真软件的原因,还是执行结果就应该一致:
1、A M10.1
FP M10.2
S M10.3

A M10.1
FP L10.2
S M10.3
以及:
2、A M10.1
FN M10.2
S M10.3

A M10.1
FN L10.2
S M10.3
以及
3、A M10.1
FP M10.2
= M10.3

A M10.1
FP L10.2
= M10.3
以及:
4、A M10.1
FN M10.2
= M10.3

A M10.1
FN L10.2
= M10.3
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54622条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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