S7-300的FC为什么有一个局部变量RET_VAL 点击:724 | 回复:1



领域

    
  • 精华:8帖
  • 求助:80帖
  • 帖子:481帖 | 3926回
  • 年度积分:915
  • 历史总积分:140763
  • 注册:2008年2月29日
发表于:2015-04-03 20:38:03
楼主

    与FB相比,FC的局部变量多了一个RET_VAL(返回值)。它实际上是输出参数。默认的情况它是没有数据类型的,在调用FC时也看不到这个输出参数。只要在局部变量表中设置RET_VAL的数据类型,在调用时就能看到它在方框的右边出现,所以它是一个输出参数。

    我很长时间一直不理解为什么要设置这样一个局部变量,而不是将它纳入输出参数。后来偶然在一个资料上看到,这是为了和PLC编程语言的国际标准IEC 61131-3一致而设置的。

功能FC的英语为Function,也可以像博途那样,将Function翻译为函数。IEC的函数和C语言的函数一样,执行后会产生一个返回值。IEC 61131-3的FC也只有一个返回值,不用设置它的名称,返回值的名称和FC的名称相同。因此IEC 61131-3的FC只有返回值这样一个输出参数。

西门子的FC对输出参数的个数没有限制,比IEC 61131-3的FC更好用一些。





diaonima

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 617回
  • 年度积分:0
  • 历史总积分:866
  • 注册:2008年5月30日
发表于:2015-04-03 22:24:33
1楼

 类似于C语言的return 的意思!


热门招聘
相关主题

官方公众号

智造工程师