跳到主要内容

5.4 添加程序单元

5.4.1 概述

信息
  • 本节可结合编程指南-->程序结构-->程序单元一起使用

跳转链接--> 程序单元

  • PU,程序单元(ProgramUnit,缩写“PU”):包括程序(PRG)、功能块(FB)和函数(FC)

    • PRG,程序(Program,缩写“PRG”)
    • FB,功能块(Function Block, 缩写“FB”)
    • FC,功能函数,简称“函数”(Function,缩写“FC”)
  • 编程语言

    • 1.ST:用文本编程方式写程序(PRG、FB、FC)

      • 优势:
        1. 程序内可以编写ST语言代码
        2. 文本编辑器具有自检查,快捷代码自动填写功能
        3. 即使ST代码没有写完也可以被保存
        4. 代码图标被保存为ST样式
    • 2.LD:用梯形图写代码(PRG、FB、FC)

      • 优势:
        1. 程序段可以添加资源内的LD语言代码
        2. 即使LD代码没有写完也可以被保存
        3. 代码的图标被保存为LD样式
    • 3.SFC:提供了一种手段,通过有向连线相互连接一组步(steps)和转换(transitions),实现按照顺控程序的格式编写程序。每个步与一组操作(Actions)相关,而每个转换与转换条件相关

5.4.1.1 程序单元(PU)结构

一个完整的 PU 由如下三大部分组成

  1. PU 类型及命名
  2. 变量声明部分
  3. 代码指令部分(PU Body)

5.4.1.2 在程序单元下添加子目录

  • 为了更加便利地管理程序单元,可以在程序单元下添加目录,便于程序单元的管理

操作步骤:
项目-->程序单元-->鼠标右键-->添加目录

  • 之后就可以在子目录下添加程序单元

5.4.2 添加程序单元

操作步骤:

  • 用户在项目树“PLC软件”,右键“程序单元”下可以选择“添加程序单元”,然后弹出窗可以选择程序(PRG),功能块(FB)或函数(FC),以及对应的编程语言,添加后,可以在左边的项目设备树中查看程序单元括号内对应的属性
此图为添加全局变量接收方图片

5.4.3 程序PRG

程序(PRG)定义

  • 在设计编程规范中,PRG只能在任务中唯一调用。PRG不能被PU(PRG,FB,FC)调用。FB,FC可被FB,FC或PRG多次调用

5.4.3.1 PRG_ST(结构化文本)

(a). 声明区

  1. VAR(变量)

  2. TEMP:用于函数内部临时存储中间结果的临时变量,不占用背景数据块存储空间,临时变量在函数块调用时生效,函数执行结束后,临时变量区被释放

  3. LOCAL CONSTANT:声明常量的符号名后,在程序中可以使用符号代替常量,这使得程序可读性增强易于维护。符号常量由名称,数据类型和常量值三个元素组成。局部常量仅在块内适用

  • 填写“数据名称”、“数据类型”、“定义初始值”(如果可以定义的话)、勾选是否“保持

(b). 二级工具栏

按钮具体功能,可参考使用手册--概述--工具栏区界面按钮介绍

跳转链接--> 按钮功能

此图为导出图片

5.4.3.2 PRG_LD(梯形逻辑图)

(a). 声明区

信息
  • 数据定义可参考程序-->ST-->编程页面

跳转链接--> ST_编程页面

(b). 二级工具栏

按钮具体功能,可参考使用手册--概述--工具栏区界面按钮介绍 跳转链接--> 按钮功能

此图为导出图片

5.4.4 功能块FB

功能块(FB)定义

  • 功能块(Function Block)是把反复使用的部分程序块转换成一种通用部件,它可以在程序中被任何一种编程语言所调用

5.4.4.1 FB_ST(结构化文本)

(a). 声明区

  1. INPUT:输入参数,函数块调用时将用户程序数据传递到函数块中。实参可以为实数
  2. INOUT:输入/输出参数,函数块调用时由函数块读取其值后进行运算,执行后将结果返回,实参不能为常数
  3. OUTPUT:输出参数,函数块调用时将函数块的执行结果传递到用户程序中,实参不能为常数
  4. STATIC:静态变量,不参与参数传递,用于存储中间过程值
  5. TEMP:用于函数内部临时存储中间结果的临时变量,不占用背景数据块存储空间,临时变量在函数块调用时生效,函数执行结束后,临时变量区被释放
  6. LOCAL CONSTANT:声明常量的符号名后,在程序中可以使用符号代替常量,这使得程序可读性增强易于维护。符号常量由名称,数据类型和常量值三个元素组成。局部常量仅在块内适用
  • 填写“数据名称”、“数据类型”、“定义初始值”(如果可以定义的话)、勾选是否“保持

(b). 二级工具栏

按钮具体功能,可参考使用手册--概述--工具栏区界面按钮介绍 跳转链接--> 按钮功能

5.4.4.2 FB_LD(梯形逻辑图)

(a). 声明区

信息
  • 数据定义可参考功能块-->ST-->编程页面

跳转链接--> FB_编程页面

(b). 二级工具栏

按钮具体功能,可参考使用手册--概述--工具栏区界面按钮介绍

跳转链接--> 按钮功能

5.4.4.3 FB_SFC(顺序功能图)

具体说明可参考编程指南-编程语言-SFC语言

5.4.4.3.1 声明区

  1. INPUT:输入参数,函数块调用时将用户程序数据传递到函数块中。实参可以为实数
  2. INOUT:输入/输出参数,函数块调用时由函数块读取其值后进行运算,执行后将结果返回,实参不能为常数
  3. OUTPUT:输出参数,函数块调用时将函数块的执行结果传递到用户程序中,实参不能为常数
  4. STATIC:静态变量,不参与参数传递,用于存储中间过程值
  5. TEMP:用于函数内部临时存储中间结果的临时变量,不占用背景数据块存储空间,临时变量在函数块调用时生效,函数执行结束后,临时变量区被释放
  6. LOCAL CONSTANT:用于函数内部临时存储中间结果的临时变量,不占用背景数据块存储空间,临时变量在函数块调用时生效,函数执行结束后,临时变量区被释放
  • 填写“数据名称”、“数据类型”、“定义初始值”(如果可以定义的话)、勾选是否“保持

5.4.5 函数FC

函数(FC)定义

  • 函数(FC)是不带存储器的代码块。由于没有可以存储块参数值的数据存储器。因此,调用函数时,必须给所有形参分配实参
提示
  • 功能函数(functions)有关规范
  1. 一般提供一个的临时结果、它可能是一个单数据元素或多值数组或结构。
  2. 可以提供的输出变量,它可以是多值的。
  3. 可以改变输入输出变量和全局变量(Global Variable)的值。
  4. 可以在一个表达式或语句中调用带结果的函数。
  5. 在表达式内不应该调用不带结果的函数。
  6. 函数FC可以被函数FC、功能块FB、程序PRG所调用

5.4.5.1 FC_ST(结构化文本)

(a). 声明区

  1. WITH RETURN
  2. INPUT:输入参数,函数块调用时将用户程序数据传递到函数块中。实参可以为实数
  3. INOUT:输入/输出参数,函数块调用时由函数块读取其值后进行运算,执行后将结果返回,实参不能为常数
  4. OUTPUT:输出参数,函数块调用时将函数块的执行结果传递到用户程序中,实参不能为常数
  5. TEMP:用于函数内部临时存储中间结果的临时变量,不占用背景数据块存储空间,临时变量在函数块调用时生效,函数执行结束后,临时变量区被释放
  6. LOCAL CONSTANT:用于函数内部临时存储中间结果的临时变量,不占用背景数据块存储空间,临时变量在函数块调用时生效,函数执行结束后,临时变量区被释放
  • 填写“数据名称”、“数据类型”、“定义初始值”(如果可以定义的话)

(b). 二级工具栏

按钮具体功能,可参考使用手册--概述--工具栏区界面按钮介绍 跳转链接--> 按钮功能

5.4.5.2 FC_LD(梯形逻辑图)

(a). 声明区

信息
  • 数据定义可参考函数-->ST-->编程页面
    跳转链接--FC编程页面

(b). 二级工具栏

按钮具体功能,可参考使用手册--概述--工具栏区界面按钮介绍

跳转链接--> 按钮功能

5.4.6 添加程序单元操作视频

  • 以程序PRG为例

alt text