调用函数(fc) 通过说明函数名(fc, sfc标识符)和参数表来调用函数。能够用绝对或符号形式指定标识返回值的函数名称:
fc31 (x1:=5, q1:=checksum) ; // 绝对形式
distance (x1:=5, q1=:checksum) ; // 符号形式
调用之后,函数的结果可用作为返回值或作为输出和输入/输出参数(实际参数)。
对比功能块,函数提供一个结果当作返回值。基于这个原因,函数能够被子当作地址来对待(void类型的函数除外)。
函数计算与函数有同样名称的返回值,且将其返回给调用它的块。在那里,值代替函数调用。
例如,在下面的赋值中,distance函数被调用,且结果赋值给length变量。
length:= distance (x1:=-3, y1:=2);
返回值能够用在下面的函数或功能块元素:
在一个赋值语句中,
在一个逻辑、算术或比较表达式或
作为更进一步的功能块或函数调用的参数。
函数的参数 对比功能块,函数没有任何他们保存参数值的内存。在函数激活时,本地数据只中临时地贮存。由于这个原因,当调用函数时,所有在函数声明部分定义的形式输入、输入/输出和输出参数必须赋予实际参数。
例子(example)
带为输入、输出和输入/输出参数赋值的调用如下:
fc32 (e_param1:=5,d_param1:=length,
a_param1:=checksum)
函数调用举例: 函数被调用(function to be called)
计算在使用笛卡尔坐标系统的同一平面中两点(x1,y1)和(x2,y2)之间距离的函数distance可以是下面的形式(此例假设符号distance在符号表中为fc37已经声明)。
function distance: real // 符号
var_input
x1 : real;
x2 : real;
y1 : real;
y2 : real;
end_var
var_output
q2 : real;
end_var
begin 开始
distance := sqrt( (x2-x1)**2 + (y2-y1)**2 );
q2 := x1+x2+y1+y2;
end_function
调用块(calling block)
下例显示更多函数值的使用的可选择的形式:
function_block call
var
length : real ;
checksum : real ;
radius : real;
y : real;
end_var
begin
. . .
// 在赋值语句中调用:
length := distance (x1:=3, y1:=2, x2:=8.9, y2:= 7.4, q2:=checksum) ;
// 在算术或逻辑表达式中调用,如:
y := radius + distance (x1:=-3, y1:=2, x2:=8.9, y2:=7.4, q2:=checksum)
// 用来为进一步的被调用的块提供参数
fb32.db32 (dist:= distance (x1:=-3, y1:=2, x2:=8.9, y2:=7.4), q2:=checksum)
. . .
end_function_block
如何从Linux内核角度探秘Java NIO文件并读写本质呢?
高通宣布推出其开创性的网状网络平台的全新产品
Fitbit Charge 3运动手环曝光,设计更精简,并加入更多全新元素
特斯拉在美国正式将全自动驾驶软件包价格调至1万美元
华为P40 Pro的拍照配置曝光采用了后置五摄设计可以实现10倍光学变焦
函数的参数
得捷电子与矽递科技合作推出用于Seeeduino Lotus的Grove入门套件
细数动力电池焊接的工艺难点
三星q9f评测 重新思考电视存在的方式和价值
超过1亿台物联网设备容易受到“Z-Wave降级攻击”的影响
浅析以机器视觉技术为基础的药片包装缺损检测系统
无人机飞控系统半实物仿真平台设计方案解析
eSIM卡可实现远程向车辆提供无线网联服务
2017年Wi-Fi芯片出货量将达37.1亿
鹿客智能指纹锁Classic2上架 售价1899元
手电筒IC AP9232输入0.9-6V输出2.0-4V
mt6573处理器
在rfid基础上的温度检测是怎样设计的
智能家居全屋配齐 成新房装修的流行趋势
服务型机器人抗击疫情,黑科技迎来高光期