Advertisement
当前位置:
S71200沿指令为什么没有输出呢?
回复 | 人气 | 打印
王阿喵 个人主页 给TA发消息 加TA为好友 悬赏70分-已结帖 发表于:2018-06-04 09:30:32 楼主

我刚开始学1200,在FB块中做了一个下降沿触发MOV的指令,m2和m20都是用的TEMP类型,后来发现下限位1从1转到0时,m2没有输出,

28.jpg

以为是指令用的不对,但把指令转到main当中,用m作为存储都正常

我想到三种可能:1.沿触发不能在FB中使用

                     2.沿指令存储位不能用 FB块中的TEMP来存储

                     3.沿指令只能用M来存储

请问如果用一个地址,比如m0.0来存储沿,那多次调用FB块,下限位1采用不同的输入,但是存储沿是一个存储器,会不会导致下降沿一起触发,相互干涉呢?


分享到: 关注收藏 邀请回答 回复 举报
yuanle 个人主页 给TA发消息 加TA为好友 发表于:2018-06-04 14:01:04 1楼
 

因为边沿检测需要存储标志位。


TEMP变量随着FB调用结束而成为未分配地址变量,因此会被其他TEMP占用而导致数据混乱。

如果使用M区域,那么在FB中使用全局变量,FB将变得毫无意义。


你应该使用静态变量或者将存储位作为IN_OUT变量。


一般来说,由于FB调用完成后将返回主程序,所以在FB中使用边沿检测没有太大的实际意义。





  回复 引用 举报
网监会 个人主页 给TA发消息 加TA为好友 发表于:2018-06-06 09:23:15 2楼
 

我来补充几句,需要多次调用的FB中,编程不要用M点,定时器(T1-Tn)、计数器(C1-Cn),这样执行时会发生无法预料的错误。

  回复 引用 举报
琉璃河 个人主页 给TA发消息 加TA为好友 发表于:2018-06-08 08:53:17 3楼
 

m2临时变量不行的

  回复 引用 举报
愤怒的番茄 个人主页 给TA发消息 加TA为好友 发表于:2018-06-11 22:23:02 4楼
 

这属于DB块没有调用,生成DB块后下载进PLC就好了

  回复 引用 举报
yanglei27 个人主页 给TA发消息 加TA为好友 发表于:2018-06-12 02:06:51 5楼
 

个人建议,m2的输出直接就用正常的线圈,在m2的常开点处,用下降沿,可以试一下

  回复 引用 举报
ww2222w2008 个人主页 给TA发消息 加TA为好友 发表于:2018-06-12 11:56:16 6楼
 

调用一下试试


  回复 引用 举报
希之蓝 个人主页 给TA发消息 加TA为好友 发表于:2018-06-12 19:06:06 7楼
 

在块里面定义TEMP改成全局变量百分之百稳定

  回复 引用 举报
Smile-lyc 个人主页 给TA发消息 加TA为好友 发表于:2018-08-06 21:02:12 8楼
 

感谢每一位热心答疑解惑的盆友,同时也希望在您得到满意答案以后,能够及时反馈分享一下解决问题经验。更不要忘记对悬赏积分及时结贴处理!

  回复 引用 举报
哲一 个人主页 给TA发消息 加TA为好友 发表于:2018-10-13 18:06:00 9楼
 

使用静态变量或者将存储位作为IN_OUT变量

  回复 引用 举报
WY112233 个人主页 给TA发消息 加TA为好友 发表于:2018-10-19 18:20:10 10楼
 

学习了,好多不错的经验

  回复 引用 举报
635715193 个人主页 给TA发消息 加TA为好友 发表于:2018-10-24 14:54:07 11楼
 


引用 WY112233 的回复内容: 学习了,好多不错的经验

-------------------------


  回复 引用 举报
你握不住的沙 个人主页 给TA发消息 加TA为好友 发表于:2018-10-24 16:13:23 12楼
 

M2干嘛要同临时变量啊,用静态变量啊就可以了

  回复 引用 举报
喜羊羊的邻居 个人主页 给TA发消息 加TA为好友 发表于:2018-10-29 17:21:31 13楼
 

谢谢楼主的分享啊,一直都在找这个

  回复 引用 举报

周点击排行
周回复排行
    最新求助
      Advertisement