FC先赋值后使用!此例是否推翻?

已锁定

☆夏花之绚☆

  • 帖子

    7
  • 精华

    0
  • 被关注

    0

论坛等级:新手

注册时间:2015-11-05

普通 普通 如何晋级?

FC先赋值后使用!此例是否推翻?

2900

15

2015-11-05 15:49:00

在FC使用过程中大家都提出“先赋值后使用”,上网查询了一些对于此问题的看法,觉得理解程度真心不一样啊,觉得比较靠谱的那就要说工控老鬼的解答了,但是对于此问题我编写了一个例子,好像违背了这个观点,求解!!!

工控老鬼观点:

熟练使用临时变量或者说局部变量,可以给我们编程带来方便。在论坛里也经常看到有些朋友提了一些关于临时变量的问题,大家在回答的同时会提示“要先赋值后使用”。这样确实可以保证我们的编程不会出现错误,但是我们也需要了解为什么。
局部变量可以定义为:IN、IN/OUT、OUT和TEMP四类,再加上无符号裸奔的L**,可以有5种存在形式。
其 中,IN和IN/OUT在子程序调用之初需要从外部获得输入,数据流向是向内,其实就相当于一个初始赋值的过程;OUT虽然连接外部变量,但是数据流向是 向外,因此没有初始化。TEMP和裸奔的L**其实可以算作一类,它们通常在子程序中起到在IN和OUT间传递数据的作用。
可能会有人觉得临时变量在子程序调用完毕后会自动清零,这种印象是错误的。
子程序中的OUT和TEMP类型临时变量会继承与其同级的前一个子程序中最后的值。这听起来有些拗口,简单可以理解为临时变量的数据都是可传递的,但是由于IN和IN/OUT天然的具备初始化,而其他类型没有,这种差异会造成使用中的错误。

自己的例子:

对于TEMP这个变量我并没有对其先赋值,但是在运行过程中,FC之间不受到影响,为什么?

FC先赋值后使用!此例是否推翻? 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54616条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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