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

    文章

    7314

    浏览量

    93963
  • 参数
    +关注

    关注

    11

    文章

    1868

    浏览量

    33755
  • 函数
    +关注

    关注

    3

    文章

    4406

    浏览量

    66829

原文标题:函数的参数

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    scanf函数介绍

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

    三角函数的查表法

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

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

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

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

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

    C语言中的内联函数与宏

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

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

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

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

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

    如何使用自定义设置回调函数

    你好,我正在尝试编写自己的自定义设置回调函数,并使用 fastEnum=false。 是否有任何代码示例或资料可供我参考? void CyU3PUsbRegisterSetupCallback
    发表于 05-21 06:11

    LTC6563输入端采用AC耦合时,信号的一部分有效值会因饱和而截断怎么解决?

    手册中的电路,其中RB选用3K欧姆电阻、CAC选用100nf电容: 在实际测试中遇到了这样的情况: 此时的OFFSET为0V.我的输入光电流是正弦形式,但输出的正弦波有一部分被截掉了,若为了显示完整
    发表于 04-24 08:03

    电能表有功/无功功率定义,电表如何计量?

    形式能量(如热能、机械能等)的功率。它是交流电路中电压和电流同相位分量的乘积,展现了电能的有效利用率。 ◆计量方式:通过测量电压、电流的有效值及其同相位部分的乘积(即瞬时功率的有功分量),可对时间进行积分计算得出。
    的头像 发表于 04-12 16:18 3175次阅读
    电能表有功/无功功率<b class='flag-5'>定义</b>,电表如何计量?

    详解RTOS中的Hook函数

    Hook函数是RTOS中的一个关键特性,通过该函数,用户可以增强对任务管理的控制,定义系统行为。
    的头像 发表于 03-24 16:14 832次阅读

    VirtualLab Fusion应用:使用自定义的评价函数优化高NA分束器

    严格的后优化,至少建议进行严格的分析。在这个用例中,使用奇数衍射级对典型的二元1:6分束器执行这样严格的评估。为此,对初始系统的结构进行了参数化,并通过可编程光栅分析器定义了一组自定义的评价函数。对于
    发表于 03-07 08:54

    马达的基本定义

    ‌: 马达(俗称“电机”)是指依据电磁感应定律实现电能转换或传递的一种电磁装置‌24。 ‌ 能量转换装置定义 ‌: 从广义上来说,马达是将任何形式的能量转化为机械能的装置。但一般把能够将燃料能量转化为机械能量的装置称为发动机,而将电能
    的头像 发表于 02-24 11:16 8537次阅读

    ads1294输入正弦,只能采到正电压部分不能采到负电压部分,怎么解决呢?

    我用ads1294,输入正弦,只能采到正电压部分不能采到负电压部分,怎么解决呢??非常感谢
    发表于 02-14 07:26

    如何把两个数据返回给调用函数

    已经知道函数会返回两个数据,提前申请两个元素的内存,并且把数组作为参数传递过去,把返回值放在数组中就行。 第三种,定义一个全局的结构体变量,这样可以不用传参也不用返回,直接操作全局数据。 比较典型的错误写法有两种
    的头像 发表于 01-08 10:15 677次阅读