西门子PLC的程序组成有哪些?
操作系统包含在每个 CPU 中,管理所有与特定控制任务无关的 CPU 功能和序列。
例如,操作系统任务包括下列各项:
处理暖启动
更新输入和输出过程映像
调用用户程序
检测中断和调用中断 OB
检测和处理错误
管理存储区
操作系统是 CPU 的组件,交付时已安装在其中。
2 、 用户程序
用户程序包含处理特定自动化任务所需的全部功能。
用户程序任务包括:
使用启动 OB 检查(暖)启动的要求,例如,限位开关是否处在正确位置或安全继电器是否激活。
处理过程数据,例如,链接二进制信号,读入并评估模拟值,定义输出的二进制信号以及输出模拟值。
响应中断,例如,模拟扩展模块的限值过冲时的诊断错误中断。
正常程序执行中的错误处理用户编写用户程序,并将其装载到 CPU 中。
3、程序数据
数据类型组中定义有数据的属性,例如:内容及有效存储区的表示。
在用户程序中,可使用预定义的数据类型,并将这些数据类型添加到用户自定义数据类型中。此时,可使用以下类别:
基本数据类型(二进制数、整数、浮点数、定时器、DATE、TOD、LTOD、CHAR、WCHAR)
复杂数据类型(DT、LDT、DTL、STRING、WSTRING、ARRAY、STRUCT)
用户自定义数据类型(PLC 数据类型 (UDT))
指针
参数类型
系统数据类型
硬件数据类型
4、变量表
PLC 变量表包含在整个 CPU 范围有效的变量和符号常量的定义。系统会为项目中使用的每个 CPU 自动创建一个 PLC 变量表。可以创建其它变量表用于对变量和常量进行归类与分组。
在项目树中,项目的每个 CPU 都有“PLC 变量”文件夹。包含有下列表格:
“所有变量”表,包含有全部的 PLC 变量、用户常量和 CPU 系统常量。该表不能删除或移动。
“标准变量”表,项目的每个 CPU 均有一个标准变量表。该表不能删除、重命名或移动。
默认变量表包含PLC 变量、用户常量和系统常量。可以在默认变量表中声明所有的 PLC变量,或根据需要创建其它的用户定义变量表。
“其它用户定义变量”表(可选),可以根据要求为每个 CPU 创建多个用户自定义变量表以分组变量。可以对用户定义的变量表重命名、整理合并为组或删除。用户定义变量表包含 PLC 变量和用户常量。
博图中提供了不同的块类型来执行自动化系统中的任务。
a. 组织块(OB)
组织块 (OB) 构成了操作系统和用户程序之间的接口。 组织块由操作系统调用,可以控制(例如)下列操作:
自动化系统的启动特性
循环程序处理
中断驱动的程序执行
错误处理
可以对组织块进行编程并同时确定 CPU 的特性。 根据使用的CPU ,提供有各种不同的组织块。
b. 函数(FC)
函数 (FC) 是不带存储器的代码块。 由于没有可以存储块参数值的数据存储器。 因此,调用函数时,必须给所有形参分配实参。函数可以使用全局数据块永久性存储数据。
函数包含一个程序,在其它代码块调用该函数时将执行此程序。 例如,可以将函数用于下列目的:
将函数值返回给调用块,例如,数学函数
执行工艺功能,例如,通过位逻辑运算进行单个的控制可以在程序中的不同位置多次调用同一个函数。 因此,函数块简化了对重复发生的函数的编程。
5、 功能块
c. 函数块(FB)
函数块是一种代码块,它将输入、输出和输入/输出参数永久地存储在背景数据块中,从而在执行块之后,这些值依然有效。所以函数块也称为“有存储器”的块。函数块也可以使用临时变量。
临时变量并不存储在背景数据块中,而用于一个循环。函数块包含总是在其它代码块调用该函数块时执行的子例程。可以在程序中的不同位置多次调用同一个函数块。 因此,函数块简化了对重复发生的函数的编程。
d. 背景数据块
函数块的调用称为实例。实例使用的数据存储在背景数据块中。背景数据块的最大大小因 CPU 的不同而各异。函数块中声明的变量决定背景数据块的结构。
e. 全局数据块
数据块用于存储程序数据。 因此,数据块包含由用户程序使用的变量数据。 全局数据块存储所有其它块都可使用的数据。数据块的最大大小因 CPU 的不同而各异。 可以以自己喜欢的方式定义全局数据块的结构。还可以选择使用 PLC 数据类型 (UDT) 作为创建全局数据块的模板。