回复:同一种编程思维,在TIA中300和1500表现出不同的结果

pkh2006

西门子1847工业学习平台

  • 帖子

    872
  • 精华

    11
  • 被关注

    130

论坛等级:奇侠

注册时间:2013-08-25

黄金 黄金 如何晋级?

发布于 2016-12-01 09:05:11

4楼

展开查看
以下是引用godkonws在2016-11-30 22:33:37的发言 >3楼

bell为什么要用in_out类型呢?只是赋值啊?out类型为什么不行?

以下是引用shine在2016-11-28 11:20:48的发言 >1楼:bell和alarm改为in_o...

引用1楼详细内容:

bell和alarm改为in_out

不是赋值就一定是OUT!


如果是OUT的话,FC要求每一周期都有一个固定的输出,否则可能某一周期会出现随机值。


就像源程序那里:IF ... THEN BELL=TRUE;

那么IF后面的值如果是FALSE,那BELL=??

如果BELL是INOUT就没有问题了,就算某一周期不赋值,也会有固定的实参的值。


通常编程一定要注意这两点:


TEMP和OUT一定要先赋值后使用


OUT保证每周期都要有赋值,不然的话建议换成INOUT


如果看过西门子的程序的话,会发现,程序开始都会有给所有输出清0的程序,这样保证每个周期至少有一个确定的0值。当然这也带来了其他问题,就是各种异步程序,如果想看到DONE/ERROR/STATUS,需要写程序捕捉,否则下一周期就清0了。

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1500系列

共有10698条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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