0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

函数部分定义的形式输入

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 作者:机器人及PLC自动化 2022-08-02 14:40 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

调用函数(FC)

通过说明函数名(FC, SFC标识符)和参数表来调用函数。能够用绝对或符号形式指定标识返回值的函数名称:

FC31 (X1:=5, Q1:=Checksum) ; // 绝对形式

DISTANCE (X1:=5, Q1=:Checksum) ; // 符号形式

调用之后,函数的结果可用作为返回值或作为输出和输入/输出参数(实际参数)。

60a0a7e8-1141-11ed-ba43-dac502259ad0.png

对比功能块,函数提供一个结果当作返回值。基于这个原因,函数能够被子当作地址来对待(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

审核编辑:彭静
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    7363

    浏览量

    95158
  • 参数
    +关注

    关注

    11

    文章

    1870

    浏览量

    34067
  • 函数
    +关注

    关注

    3

    文章

    4423

    浏览量

    68038

原文标题:函数的参数

文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    函数printf格式介绍

    输出字符串 *修饰符在printf()中的用法: 假如您不想事先指定字段宽度,而是希望由程序来制定该值,那么您可以在字段宽度部分使用*代替数字来达到目的,但是您也必须使用一个参数来告诉函数宽度的值
    发表于 04-29 06:06

    使用LTspice定义电压源和电流源的分段线性函数

    分段线性(PWL)函数是一系列直线段,可用于在LTspice中创建电压或电流波形。PWL段通过时间/数值对进行定义,是瞬态仿真中用于描述电压或电流波形的众多方式之一。
    的头像 发表于 04-14 10:21 235次阅读
    使用LTspice<b class='flag-5'>定义</b>电压源和电流源的分段线性<b class='flag-5'>函数</b>

    keil定义fputc函数

    函数 fputc 是输出字符的底层函数,只需要实现这个函数,类似 printf、puts 等函数也可以正常使用了。 由于存在3种文件类型,这里分别
    发表于 01-22 08:25

    嵌入式开发常用函数速查表

    、定时器、串口、ADC/DAC、PWM等核心模块,让你查得快、用得顺。一、GPIO函数GPIO(通用输入输出)是嵌入式系统最基础的外设接口。常用函数包括:函数功能示例
    的头像 发表于 01-19 09:06 535次阅读
    嵌入式开发常用<b class='flag-5'>函数</b>速查表

    请问CW32W031针对无线部分的固件库以什么形式提供?

    CW32W031针对无线部分的固件库以什么形式提供?是lib么?还是直接是C库函数形式啊?
    发表于 01-19 07:42

    函数指针与回调函数解读

    ) (void) 的吗,显然不对,其含义是: 上面的例子定义func_ptr是一个函数指针, 函数类型是不带形参, 返回参数是uint8_t。 要定义的类型是uint8_t (*)(v
    发表于 01-19 07:34

    使用信号处理函数

    0; } 运行结果: ^CReceived signal 2 ^CReceived signal 2 q 可以看到,当用户按下Ctrl-C键时,程序不会终止,而是调用了自定义的信号处理函数,并打印了收到的信号编号(2表示SIGINT)。当用户
    发表于 12-11 06:40

    如何用函数指针调用函数

    给大家举一个例子: int Func(int x);/*声明一个函数*/ int (*p) (int x);/*定义一个函数指针*/ p = Func; /*将Func函数的首地
    发表于 12-11 06:26

    scanf函数介绍

    用scanf函数向字符型数组输入数据char a[20]; scanf(\"%s\", a); 错误 scanf(%s\",a); 正确 用scanf函数向数值型
    发表于 12-02 06:07

    三角函数的查表法

    关系式编写代码 由以上各个象限之间的关系式,编写一个查询函数,如下: 返回值的定义: 三、验证 编写代码将查表的函数值与使用三角函数计算出来的值作对比,一致则建表成功。 验证代码如
    发表于 11-19 08:06

    单片机启动&amp;库函数的构成

    会正常跳转到main函数开始执行,就像启动文件里面写的那样。 至此,启动文件主要部分及系统默认的上电时钟已讲解完。 如果你看不懂C语言,那就去补习C语言。 如果你看不懂为什么这是在操作寄存器,下一部分
    发表于 11-18 08:15

    rtthread线程出现异常了,有没有什么钩子函数能够定义用户操作?

    线程出现异常了,有没有什么钩子函数能够定义用户操作????
    发表于 09-18 06:36

    C语言中的内联函数与宏

    在C编程中,内联函数和宏都用于避免函数调用的开销并编写可复用的逻辑部分,但它们在工作方式和安全性方面存在显著差异。
    的头像 发表于 07-25 15:10 2149次阅读
    C语言中的内联<b class='flag-5'>函数</b>与宏

    大彩讲堂:VisualHMI-LUA教程-on_press回调函数使用指南

    一、适合范围本文档适用于VisualHMI平台,Lua脚本语言为V5.3版本,配合工程可以完成大部分的内部逻辑处理。二、概述on_press(state,x,y)触摸回调函数,当带触摸的串口屏,点击
    的头像 发表于 07-23 16:32 1511次阅读
    大彩讲堂:VisualHMI-LUA教程-on_press回调<b class='flag-5'>函数</b>使用指南

    HarmonyOS应用自定义键盘解决方案

    定义键盘是一种替换系统默认键盘的解决方案,可实现键盘个性化交互。允许用户结合业务需求与操作习惯,对按键布局进行可视化重构、设置多功能组合键位,使输入更加便捷和舒适。在安全防护层面,自定义键盘可以
    的头像 发表于 06-05 14:19 2743次阅读