打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
从零开始学PLC之程序结构与设计

首先讲解一下S7CPU中的程序

S7 CPU中的程序包括用户程序中的块结构、 用户程序结构、 I/O过程映像及程序循环执行。

1.用户程序中的块结构如图所示

用户程序中的块结构

2.用户程序结构

用户程序结构分为线性程序(线性编程)、分部式程序(分部编程、分块编程)和结构化程序(结构化编程或模块化编程)

线性程序(线性编程)

所谓线性程序结构,就是将整个用户程序连续放置在一个循环程序块(OB1)中,块中的程序按顺序执行,CPU通过反复执行OB1来实现自动化控制任务。这种结构和PLC所代替的硬接线继电器控制类似,CPU逐条地处理指令。事实上所有的程序都可以用线性结构实现,不过,线性结构一般适用于相对简单的程序编写。

分部式程序(分部编程、分块编程)

所谓分部程序,就是将整个程序按任务分成若干个部分,并分别放置在不同的功能(FC)、功能块(FB)及组织块中,在一个块中可以进一步分解成段。在组织块OB1中包含按顺序调用其他块的指令,并控制程序执行。

在分部程序中,既无数据交换,也不存在重复利用的程序代码。功能(FC)和功能块(FB)不传递也不接收参数,分部程序结构的编程效率比线性程序有所提高,程序测试也较方便,对程序员的要求也不太高。对不太复杂的控制程序可考虑采用这种程序结构。

结构化程序(结构化编程或模块化编程)

所谓结构化程序,就是处理复杂自动化控制任务的过程中,为了使任务更易于控制,常把过程要求类似或相关的功能进行分类,分割为可用于几个任务的通用解决方案的小任务,这些小任务以相应的程序段表示,称为块(FC或FB)。OB1通过调用这些程序块来完成整个自动化控制任务。

结构化程序的特点是每个块(FC或FB)在OB1中可能会被多次调用,以完成具有相同过程工艺要求的不同控制对象。这种结构可简化程序设计过程、减小代码长度、提高编程效率,比较适合于较复杂自动化控制任务的设计。

I/O过程映像

I/O过程印象

程序循环执行

程序循环执行

数据块中的数据存储

数据存储区

数据以用户程序变量的形式存储,且具有唯一性。数据可以存储在输入过程映像存储器(PII)、输出过程映像存储器(PIQ)、位存储器(M)、局部数据堆栈(L堆栈)及数据块(DB)中。可以采用基本数据类型、复杂数据类型或参数类型。 根据访问方式的不同,这些数据可以在全局符号表或共享数据块中声明,称为全局变量;也可以在OB、FC和FB的变量声明表中声明,称为局部变量。当块被执行时,变量将固定地存储在过程映像区(PII或PIQ)、位存储器区(M)、数据块(DB)或局部堆栈(L)中。

数据块

数据块定义在S7 CPU的存储器中,用户可在存储器中建立一个或多个数据块。每个数据块可大可小,但CPU对数据块数量及数据总量有限制。数据块(DB)可用来存储用户程序中逻辑块的变量数据(如:数值)。与临时数据不同,当逻辑块执行结束或数据块关闭时,数据块中的数据保持不变。 用户程序可以位、字节、字或双字操作访问数据块中的数据,可以使用符号或绝对地址。

数据块的分类

共享数据块又称全局数据块。用于存储全局数据,所有逻辑块(OB、FC、FB)都可以访问共享数据块存储的信。

背景数据块用作“私有存储器区”,即用作功能块(FB)的“存储器”。FB的参数和静态变量安排在它的背景数据块中。背景数据块不是由用户编辑的,而是由编辑器生成的。

用户定义数据块(DB of Type)是以UDT为模板所生成的数据块。创建用户定义数据块(DB of Type)之前,必须先创建一个用户定义数据类型,如UDT1,并在LAD/STL/FBD S7程序编辑器内定义。

数据块的数据结构

在STEP 7中数据块的数据类型可以采用基本数据类型、复杂数据类型或用户定义数据类型(UDT)。

基本数据类型

根据IEC1131-3定义,长度不超过32位,可利用STEP 7基本指令处理,能完全装入S7处理器的累加器中。基本数据类型包括:

位数据类型:BOOL、BYTE、WORD、DWORD、CHAR

数字数据类型:INT、DINT、REAL

定时器类型:S5TIME、TIME、DATE、TIME_OF_DAY

复杂数据类型

复杂数据类型只能结合共享数据块的变量声明使用。复杂数据类型可大于32位,用装入指令不能把复杂数据类型完全装入累加器,一般利用库中的标准块(“IEC”S7程序)处理复杂数据类型。复杂数据类型包括:

时间(DATE_AND_TIME)、类型矩阵(ARRAY)、类型结构(STRUCT)、类型字符串(STRING)类型

用户定义数据类型(UDT)

STEP 7允许利用数据块编辑器,将基本数据类型和复杂数据类型组合成长度大于32位用户定义数据类型(UDT:User-Defined dataType)。用户定义数据类型不能存储在PLC中,只能存放在硬盘上的UDT块中。可以用用户定义数据类型作“模板”建立数据块,以节省录入时间。可用于建立结构化数据块、建立包含几个相同单元的矩阵、在带有给定结构的FC和FB中建立局部变量。

创建用户定义数据类型:UDT1。

创建一个名称为UDT1的用户定义数据类型,数据结构如下,则可按以下几个步骤完成。

建立数据块

在STEP 7中,为了避免出现系统错误,在使用数据块之前,必须先建立数据块,并在块中定义变量(包括变量符号名、数据类型以及初始值等)。数据块中变量的顺序及类型决定了数据块的数据结构,变量的数量决定了数据块的大小。数据块建立后,还必须同程序块一起下载到CPU中,才能被程序块访问。

方法1:用SIMATIC Manager创建数据块。

新DB类型选择窗口

方法2:用LAD/STL/FBD S7程序编辑器创建数据块。

编辑数据块(变量定义)

变量定义完成后,应单击保存按钮保存并编译(测试)。如果没有错误则需要单击下载按钮,像逻辑块一样,将数据块下载到CPU。

今天先讲到这里吧,你又学会了多少呢?关注达达老师,每天进步一点点

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
STEP7 程序块的类型及区别(总结转)_天外小屋
西门子PLC的UDT是干什么的?如何使用?终于讲清楚了
什么是plc的数据类型?让我来直接了当告诉你
ONE学习笔记(6)
西门子博途(TIA Portal)数据结构UDT & 结构体(Struct) & 数组的使用
博图中的自定义数据类型(UDT),你必须要掌握!
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服