登录
首页 PLC论坛 施耐德电气PLC
回帖 发帖
正文

主题:CFC中ADD累加如果In2和Out直接连接会得不到正确结果,请教为什么?

点击:1057 回复:9

刚学习CFC,CFC中可以把相关量用连线连接起来,这样减少中间变量,我无意中使用加法器ADD来做累加计数,Out = in1 + in2,其中in2和out是同一个变量,也即:iTemp := 1 + iTemp;
如果左右两边不是用连线直接连接而是分别用iTemp来做则正常,但是如果直接连接,如图所示,则得不到正确结果。
当EN为1时(一个周期),ADD会累加很多个1,不是只加一次。仿佛执行了很多次ADD一样。
请问这是什么原因?
附件 Snipaste_2020-03-06_15-41-57.jpg
最后修改:2020/3/6 15:50:33
20-03-06 15:49
工控网的图文编辑支持真的千年不变,还是不能支持混排。
20-03-06 15:52
你把优先级的顺序反过来呢?
20-03-06 23:17
临时变量?固定变量呢?或者说全局变量.
这样的指令应该不支持.因为没有数据来源.
20-03-07 08:42
iTemp是我临时调试加入的变量,不是Temp变量,而是本地变量。
如果换成其他类型的变量就没有意思了,因为我要解决的是直接连接怎么会出问题的问题。
初学CFC,遇到很多问题,本以为很简单,实际却是CFC自有自己的一套规则,还没有教材可看。大多数资料都是介绍CFC是什么的初级问题,没有具体的经验分享或者说没有介绍具体规则的资料。
20-03-07 09:18

引用 xiatianyun 在 2020/3/7 9:18:59 发言【内容省略】

你也是个纠结内部机制的人.
你要理解cfc,把它翻译为语句就行.
要理解语句,最好有计算机基础.
20-03-08 08:13
CFC不支持转换为语句表。
20-03-08 14:59
刚才又试了下,正常了。???
20-03-08 15:07
我知道怎么回事了。
20-03-10 14:04
测试一下工作原理,了解一下之执行顺序对结果的影响是可以的,在现场可别给自己出这种脑筋急转弯。。。。尽量把程序写的容易看懂,可以让自己和别人的生活顺利很多。。。
20-03-22 12:20

工控新闻

更多新闻资讯