回复:指针

'Razor

西门子1847工业学习平台

  • 帖子

    3525
  • 精华

    44
  • 被关注

    229

论坛等级:至圣

注册时间:2008-03-31

钻石 钻石 如何晋级?

发布于 2017-04-13 16:07:34

2楼

展开查看
以下是引用yanzhiqiang在2017-04-13 12:40:13的发言 >楼主:A M1000.2 FP M1000.3 L P#M2000.0 T MD3000 LAR1 L L D[AR1,P#0.0] L L#1 +D T D[AR1,P#0.0] A I0.0 =M1000.4 后边这段不能正常工作。监控显示无论I10.0状态是0或1,RLO位始终是0.为什么? 由于是仿真,不考虑M1000合不合法的问题。

A M1000.2 //此指令执行完的结果存放在RLO,有两种结果:M1000.2为1则为1,为0则为0;
FP M1000.3
L P#M2000.0
T MD3000
LAR1 L
L D[AR1,P#0.0]
L L#1
+D
T D[AR1,P#0.0]
CLR
A I0.0 //此指令执行完的结果取决于I0.0的值”“上面RLO后的结果,如果上面的RLO为1,此时I0.0也为1,1*1=1,M1000.4输出为真;如果上面的结果为0,那么此时无论I0.0的状态为”1“还是为”0“,此时的结果RLO都是X*0=0;M1000.4也就一直保持0的输出。
=M1000.4

不看其它部分,M1000.4的控制逻辑等同于下:

A M1000.2

A I0.0

=M1000.4

如果想要达到楼主的预期目的,可以用以下方法进行改善:

1、添加CLR指令;//如上红字

2、将以下代码剪切插入到一新网络中

A I0.0 

M1000.4

使用STL编程时,在逻辑上没有关系的代码块还是不要放在一个网络中,以免因为RLO处理不当而达不到预期的控制目的。

少即是多
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54768条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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