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

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

3天内不再提示

西门子PLC中函数FC的使用方法

工控论坛 来源:电气控制与PLC应用 2025-12-19 11:26 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

来源:电气控制PLC应用

函数和函数块作为模块化编程的重要组成部分,在PLC 用户程序中有着相当频繁的应用。两者在生成与使用的过程中都有一定的相似,且都不能单独使用。而需要赋予特定的功能,由组织块(OB)直接或者间接进行调用。

函数(FC)是用户程序中不带存储器的代码块,可以视为具有一定功能的独立子程序,可以在OB 中进行调用。其内的程序编写与在 OB 主程序中相同,用户在函数中编写程序,在其他代码块中调用该函数时将执行此程序。函数FC有两个作用:

1)作为子程序使用,即将相互独立的控制设备分成不同的FC编写,统一由OB块调用,这样就实现了对整个程序进行结构化划分,便于程序调试及修改,使整个程序的条理性和易读性增强。

2)可以在程序的不同位置多次调用同一个函数,即函数中通常带有形参,通过多次调用,并对形参赋值不同的实参,可实现对功能类似的设备统一编程和控制。

函数接口区:

每个函数都带有形参接口区,在接口区可以自定义函数的局部变量。FC 接口区的参数表中包括 Input(输入参数)、Output(输出参数)、InOut(输入/输出参数)、Temp(临时变量)、Constant(常数)、Return(返回值),每种形参类型可以定义多个变量,形参接口用于进行数据传递。本地数据包括临时数据及本地常量。函数接口区如图1所示。

•Input(输入参数):只读参数,调用函数时将用户程序的数据传递到函数中,调用的实参可以为常数或 I0.0、IB1 此类具体输入地址。

•Output(输出参数):只写参数,调用函数时将函数执行结果传递到用户程序中,调用的实参只能为 Q0.0、QB1 此类具体输出地址。

•InOut(输入/输出参数):读/写参数,接收数据后进行运算,然后将结果返回。调用的实参不能为常数,可用于函数、函数块。

•Temp(临时变量):用于存储临时中间结果的变量,不参与数据的传递,临时变量在函数调用时生效。应遵循先赋值后使用的原则。

•Constant(常数):在块中使用,且带有声明符号的常量。可用于函数、函数块和组织块。注:局部常量不显示在背景数据块中。

•Return(返回值):返回到调用块的值。

7ccc4f18-d69a-11f0-8c8f-92fbcf53809c.png

图1 函数接口区

1.无形参函数(子程序功能)

在函数的接口数据区中可以不定义形参变量,即调用程序与函数之间没有数据交换,只是运行函数中的程序,这样的函数可作为子程序调用。使用子程序可将整个控制程序进行结构化划分,清晰明了,便于设备的调试及维护。例如控制三个相互独立的控制设备,可将程序分别编写在三个子程序中,然后在主程序中分别调用各个子程序,实现对设备的控制,程序结构如图2所示。

注意:子程序中也可以带有形参,是否带有形参应根据实际应用而定。

7d46c6ee-d69a-11f0-8c8f-92fbcf53809c.png

图2 无形参函数FC调用

2.带有形参的函数

在应用中常常遇到对许多相似功能的设备进行编程。例如控制三组电机,每个电机的运行参数相同,如果分别对每一个电机编程,则除输入输出地址不同外,每个电机控制程序基本相同,重复编程的工作量比较大。使用函数可以将一个电机的控制程序作为模板,在程序中多次调用该函数,并赋值不同的参数,即可实现对多个电机的控制。注意:函数的形参只能用符号名寻址,不能用绝对地址。下面以创建的一个例子进行说明。

函数的创建

打开博途软件的项目视图,创建一个新项目。用鼠标双击项目树下的“添加新设备”,添加CPU 1215C,如图3 所示。

7dc30060-d69a-11f0-8c8f-92fbcf53809c.png

图3 添加PLC

单击项目视图下的“PLC_1”,继续单击“程序块”,用鼠标双击下边的“添加新块”,打开“添加新块”对话框后,单击其中的“函数”标志,FC 的默认编号为 1,默认的语言为 LAD(梯形图),单击“确定”按钮。此时返回项目树文件夹,在其“程序块”下可以看到新生成的FC1。FC1 的创建过程如图 4 所示。

7e3d3e98-d69a-11f0-8c8f-92fbcf53809c.png

图4 函数生成

在接口区可以自定义函数的参数,如图5,6所示。

7eb5de66-d69a-11f0-8c8f-92fbcf53809c.png

图5接口参数区

7f2f56e2-d69a-11f0-8c8f-92fbcf53809c.png

图6 接口参数的定义

双击新建立的 FC,进行程序编写,如图 7 所示,此时的“输出”不是单纯意义上的输出,同时对该变量赋予了一个常开触点,因此需要在 InOut下定义该变量。(Inout既做输入又做输出,在FC中做自锁时,要把这个“输出”放在inout中。因为做自锁时,有需要读入“输出”这个参数的原因,然后形成自锁)

7f9010ea-d69a-11f0-8c8f-92fbcf53809c.png

图7 程序编写

在定义变量后,函数(FC)中所使用的参数只以“名称”的形式出现,这些由“名称”给出的参数被称为形参。在调用块中对“名称”所赋予的具体数值或具体地址,如100、I0.0、MB1等,被称为实参。如图8所示。

800a1340-d69a-11f0-8c8f-92fbcf53809c.png

图8 给形参赋值

在主程序中调用在FC 内部定义的变量时,为各个形参指定对应的实参。然后双击主程序“Main[OB1]”,将项目树下的“块_2”拖到右侧的程序区的水平“导线”上,在程序中可以对函数进行多次调用,并赋予不同的实参,由此对多个变量重复 相同操作,实现模块化编程,极大程度上简化了程序结构。如图9所示。

80928b1c-d69a-11f0-8c8f-92fbcf53809c.png

图9 函数子程序调用

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

    关注

    5053

    文章

    14960

    浏览量

    489552
  • 西门子
    +关注

    关注

    98

    文章

    3424

    浏览量

    120940
  • 函数
    +关注

    关注

    3

    文章

    4423

    浏览量

    68079

原文标题:西门子PLC子程序-函数FC建立及使用方法

文章出处:【微信号:gkongbbs,微信公众号:工控论坛】欢迎添加关注!文章转载请注明出处。

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    西门子PLC在板坯连铸系统的应用

    西门子PLC在板坯连铸系统的应用 本文主要介绍了板坯连铸的生产工艺及其系统概况,以及西门子PLC在柳钢4#坯连铸机系统
    发表于 06-17 14:36 1710次阅读
    <b class='flag-5'>西门子</b><b class='flag-5'>PLC</b>在板坯连铸系统<b class='flag-5'>中</b>的应用

    西门子PLC编程FB和FC的区别

    西门子PLC编程时,可以用到功能块FB和功能FC(FB、FC都是组织块)资料上说FB与FC都可以作为用户编写的子程序,但是我不明白这两个组
    发表于 06-20 10:54 1.7w次阅读

    西门子PLC实例电子教程

    本书为西门子PLC实例电子教程,第一章就对PLC进行了概述,通过实例对 西门子 PLC进行了深度阐述,适合广大
    发表于 07-19 16:09 0次下载
    <b class='flag-5'>西门子</b><b class='flag-5'>PLC</b>实例电子教程

    西门子PLC案例

    西门子PLC案例,感兴趣的小伙伴们可以看看。
    发表于 07-29 18:42 199次下载

    西门子plc资料数码显示

    西门子plc资料
    发表于 04-05 10:10 3次下载

    西门子plc数据类型_西门子plc通讯方式

    西门子PLC的品质非常好,其网络稳定性、开放性深受工控人员的喜爱,而且编程软件分类多,使用方便。在国内工控界具有显著地位。虽然大家对西门子PLC都有一定的了解,但要你说出
    发表于 07-25 10:57 1.7w次阅读
    <b class='flag-5'>西门子</b><b class='flag-5'>plc</b>数据类型_<b class='flag-5'>西门子</b><b class='flag-5'>plc</b>通讯方式

    西门子PLC FB41PID功能块说明和调整方法

    西门子PLC FB41PID功能块说明和调整方法说明。
    发表于 04-22 11:48 13次下载

    西门子300PLC加密与解密方法汇总

    西门子300PLC加密与解密方法汇总说明。
    发表于 04-23 09:26 39次下载

    西门子PLC指令和程序设计

    西门子PLC指令和程序设计方法免费下载。
    发表于 05-07 09:42 129次下载

    读写西门子PLC

    读写西门子PLC资料。
    发表于 05-10 09:33 40次下载

    MODBUS转PROFINE网关接入西门子PLC1500 PROFINET网络的使用方法

    微硬创新MODBUS转PROFINET(PROFINET转MODBUS)网关PNMD485-K20将电磁流量计接入西门子PLC1500 PROFINET网络的使用方法
    的头像 发表于 10-10 16:22 2988次阅读
    MODBUS转PROFINE网关接入<b class='flag-5'>西门子</b><b class='flag-5'>PLC</b>1500 PROFINET网络的<b class='flag-5'>使用方法</b>

    西门子PLC编程软件功能及安装

    西门子PLC编程软件官方版是一款专为西门子产品打造的PLC编程工具。西门子PLC编程软件最新版支
    发表于 04-17 14:31 8次下载
    <b class='flag-5'>西门子</b><b class='flag-5'>PLC</b>编程软件功能及安装

    西门子PLCOB块的功能详解

    西门子PLC(Programmable Logic Controller)作为工业自动化领域的核心设备,其内部功能强大、应用广泛。在西门子PLC
    的头像 发表于 06-15 11:27 1w次阅读

    西门子TIA Portal函数FC函数块FB的相互转换

    描述 本文将介绍在西门子 TIA Portal 中使用 Add-In 插件实现函数 FC函数块 FB 的相互转换的方法和步骤。 第1步:
    的头像 发表于 01-15 10:07 3824次阅读
    <b class='flag-5'>西门子</b>TIA Portal<b class='flag-5'>中</b><b class='flag-5'>函数</b><b class='flag-5'>FC</b>和<b class='flag-5'>函数</b>块FB的相互转换

    西门子PLC-模拟量采集计算使用方法

    西门子PLC-模拟量采集计算使用方法,很实用
    发表于 04-09 15:29 1次下载