这个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