这是个 FC 块,为什么可以像 FB块一样多次调用啊?

这个FC块如下:
    SET   
      SAVE  
      =     L      4.1
      L     #IN1
      L     0
      ==I   
      JCN   M001
      T     #RET_VAL
      A     L      4.1
      SAVE  
      BEU   
M001: L     #IN0
      L     1.638400e+004
      *R    
      L     #IN1
      ITD   
      DTR   
      /R    
      T     #TEMP2
      L     -3.276800e+004
      <R    
      JCN   M002
      L     -32768
      T     #RET_VAL
      A     L      4.1
      SAVE  
      BEU   
      JU    M003
M002: L     #TEMP2
      L     3.276700e+004
      >R    
      JCN   M004
      L     32767
      T     #RET_VAL
      A     L      4.1
      SAVE  
      BEU   
      JU    M003
M004: L     #TEMP2
      RND   
      T     #RET_VAL
M003: CLR   
      A     L      4.1
      SAVE  
      BE    
这个FC块为何可以多次调用啊,谢谢。

最佳答案

回答这个问题,必须先说下FB和FC的区别。
1:FB有自己的存储区,称之为背景数据块。
FC没有自己的存储区,但是有一个返回值,RET_VAL。
2:由于FC没有自己的存储区,所以在调用的时候,必须给FC所有的接口赋值,也就是必须赋实参。
3:FB有自己的存储区,所以在调用时,可以不必给FB接口赋值,没有赋值的接口,将使用背景DB的默认值,对于赋值(有实参的接口),值从实参处得到。
3:FC编程时,每个周期 在FC内部必须给OUT类型的接口赋值,不然可能会出现未知错误。

共同点就是 它们都可以被其它程序块和OB块多次调用。
对于更高级的 实参到形参,是按值调用还是按引用调用,亲参见STEP7编程手册。

提问者对于答案的评价:
谢谢

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc230059.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月1日 上午4:16
下一篇 2018年12月1日 上午4:16

相关推荐