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

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

3天内不再提示

为了结构化程序设计,STEP 7将用户程序分类归并为不同的块

aIpM_gongkongwo 来源:lp 2019-04-18 10:06 次阅读

为了结构化程序设计,STEP 7将用户程序分类归并为不同的块,根据程序要求,可选用组织块(OB)、功能块(FB)、或功能(FC)三种类型的逻辑块,而数据块(DB)或(DI)则用来存储执行用户程序时所需的数据。

三种编程方法:

(1)线性编程:将整个用户程序写在一个指令连续的块中,处理器线性地或顺序地扫描程序的每条指令。

(2)分部编程:将用户程序分成相对独立的指令块、每个块包含给定的部件组或作业组的控制逻辑。

(3)结构化编程:要求用户程序提供一些通用的指令块,以便控制一类相似或相同的部件,给通用指令提供的参数进一步说明各部件的控制差异。

一、数据块及其数据结构

用户程序运行所需的大量数据或变量存储在数据块中,数据块也是实现各逻辑块之间交换、传递和共享数据的重要途径。 对于CPU 314,用作数据块的存储器最多8KB,用户定义的数据总量不能超过这个限制。对于数据块必须遵循先定义后使用的原则。

1、定义数据块

定义内容包括数据块号及块中的变量(包括:变量符号名,数据类型以及初始值等)。数据块在使用前,必须作为用户程序的一部分下载到CPU 中。

2、访问数据块

访问时需要明确数据块号和数据块中的数据类型与位置。根据明确数据块号的不同方法,可以用以多种方法访问数据块中的数据。

由于有两个数据块寄存器(DB和DI寄存器),所以,最多可以同时打开两个数据块。一个作为背景数据块,数据块的起始地址存储在DI寄存 器中;另一个作为共享数据块,数据块的起始地址存储在DB寄存器中。

打开背景数据块,在调用FB时可以自动实现,由于调用FB时使用DI 寄存器,所以,一般不在FB程序中用OPN DI n指令打开数据块。

3、背景数据块和共享数据块

任何FB、FC或OB均可读写存放在共享数据块中的数据。背景数据块是FB运行时的工作存储区,它存放FB的部分运行变量。调用FB时, 必须指定一个相关的背景数据块。

作为规则,只有FB块才能访问存放 在背景数据块中的数据。一般情况下,每个FB都有一个对应的背景数 据块,一个FB也可以使用不同的背景数据块。如果几个FB需要的背景数据完全相同,为节省存储器,则可以定义成一个背景数据块,供它们分别使用。

二、数据结构

1、用户数据类型

STEP 7允许将基本或复式组合成“用户”自已定义的数据类型,这种类型称为用户数据类型(UDT)。用户数据类型必须首先单独建立,并存放 在称为UDT的特殊数据块中。

建立用户数据类型的目的,是为了将UDT作为一种数据类型使用,以方便定义多个结构相同的构造变量。

2、功能块编程及调用

一个程序由许多部分(子程序)组成,STEP 7将这些部分称为逻辑块,并允许块间相互调用。

功能块由两个主要部分组成:一部分是每个功能块的变量声明表,变量声表声明此块的局部数据;另一部分是逻辑指令组成的程序,程序要用到变量声明表中给出的局部数据。

当调用功能块时,需要提供块执行时要用到的数据或变量,也就是将外部数据传递给功能块,这称为参数传递。

3、变量声明表(局部数据)

局部数据分为参数和局部变量两大类,局部变量又包括静态变量和临时变量(暂态变量)两种。参数是在调用块和被调用块间传递的数据。静态变量和临时变量是仅供逻辑块本身使用的数据。

4、逻辑块局部数据的数据类型

在变量声明表中,要明确局部数据的数据类型,这样操作系统才能给变量分配确定的存储空间。局部数据可以是基本数据类型或是复式数据类型, 也可以是专门用于参数传递的所谓“参数类型”。

STEP 7对分配给块局部数据(在变量声明表中)的数据类型(基本、复式、参数)是有一定限制的。

STEP 7允许用物理地址(绝对地址)或符号地址或常数等形式作为实参给形参赋值,但对于不同的形参类型,STEP 7限制了赋值形式。

5、功能块编程与调用举例

对功能块编程分两步进行:第一步工作是定义局部变量(填写局部变量表);第二步是编写要执行的程序。写功能块程序时,可以两种方式使用局部变量:

①使用变量名,此时变量名前缀“#”,以区别于在符号表中定义的符号地址,增量方式下,前缀 会自动产生;

②直接使用局部变量的地址,这种方式只对背景数据块和L堆栈有效。

例一:二分频器

二分频器是一种具有一个输入端和一个输出端的功能单元,输出频率为输入频率的一半。

(1)FC1的变量声明表

(2)FC1梯形图程序

(3)OB1调用梯形图程序

例二:时钟脉冲发生器

使用定时器实现自由设定时钟脉冲发生器功能脉冲占空系数1:1。

(1)FC1变量声明表

(2)FC1梯形图程序

(3)OB1调用梯形图程序

三、可编程序控制器应用设计

PLC系统设计步骤:

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

    关注

    38

    文章

    7455

    浏览量

    163624
  • 脉冲发生器
    +关注

    关注

    5

    文章

    175

    浏览量

    34143
  • 数据结构
    +关注

    关注

    3

    文章

    573

    浏览量

    40095

原文标题:西门子PLC|学会高效编程及定义程序结构

文章出处:【微信号:gongkongworld,微信公众号:工控资料窝】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    结构化程序设计和面向对象程序设计

    结构化程序设计和面向对象程序设计,在接下来很长的一段时间里,我将陆续分享项目实战经验。从电源、单片机、晶体管、驱动电路、显示电路、有线通讯、无线通信、传感器、原理图设计、PCB设计、软件设计、上位机等,给新手综合学习的平台,给老
    发表于 07-14 06:35

    结构化汇编语言的监控程序设计

    技术指标,微型计算机技术答案第5章 常用应用程序设计 本章以51单片机为基础,主要介绍结构化汇编语言的监控程序设计思想和实时测控系统中最常用的数字滤波技术、标度变换、插值算法以及报警程序设计
    发表于 09-01 06:27

    结构化汇编语言的监控程序设计思想

    微型计算机控制技术_第五章第5章 常用应用程序设计 本章以51单片机为基础,主要介绍结构化汇编语言的监控程序设计思想和实时测控系统中最常用的数字滤波技术、标度变换、插值算法以及报警程序设计
    发表于 09-10 06:50

    《C/ C++/ Java 程序设计经典教程》

    《C/ C++/ Java 程序设计经典教程》(Deitel 著) ●集作者几十年程序设计经验之精华,从软件工程的原理强调结构化程序设计方法,追求
    发表于 04-08 02:10 398次下载

    STEP7中对程序加密

    您能够通过STEP7软件的KNOW_HOW_PROTECT功能实现对您程序代码的加密保护。如果您双击鼠标打开经过加密的程序时,您只能看到该程序
    发表于 06-21 11:51 2401次阅读

    MCS-51系列单片机结构化程序设计实现方法

    1 MCS-51系列单片机结构化程序设计概述 结构化程序程序组成结构化、功能模块
    发表于 10-30 10:10 2次下载
    MCS-51系列单片机<b class='flag-5'>结构化</b><b class='flag-5'>程序设计</b>实现方法

    面向对象的程序设计总结与过程程序设计有什么区别?

    面向对象程序设计(简称OOP)技术最近几年在计算机领域得到了迅猛发展,它是程序设计方法的一场革命。与传统的结构化程序设计(面向过程程序设计
    发表于 09-19 14:12 0次下载
    面向对象的<b class='flag-5'>程序设计</b>总结与过程<b class='flag-5'>化</b><b class='flag-5'>程序设计</b>有什么区别?

    Visual FoxPro程序设计教程之结构化程序设计的详细资料说明

    本文档详细介绍的是Visual FoxPro程序设计教程之结构化程序设计的详细资料说明主要内容包括了:1 程序文件,2 程序控制
    发表于 03-04 16:20 8次下载
    Visual FoxPro<b class='flag-5'>程序设计</b>教程之<b class='flag-5'>结构化</b><b class='flag-5'>程序设计</b>的详细资料说明

    Visual FoxPro程序设计教程之结构化查询语言SQL的详细资料合集

    本文档的详细介绍的是Visual FoxPro程序设计教程之结构化查询语言SQL的详细资料合集主要内容包括了:1 SQL语言概述,2 SQL的定义功能,3 SQL的查询功能,4 SQL的操作功能
    发表于 03-04 16:21 3次下载
    Visual FoxPro<b class='flag-5'>程序设计</b>教程之<b class='flag-5'>结构化</b>查询语言SQL的详细资料合集

    汇编语言结构化设计程序教程

    汇编语言结构化设计程序教程说明。
    发表于 03-26 09:38 24次下载

    C语言程序设计第四讲结构化程序设计之选择

    C语言程序设计第四讲结构化程序设计之选择
    发表于 12-22 10:34 0次下载

    S7-SCL提供了哪些功能 结构化S7-SCL程序的设计

    在一个S7程序中S7-SCL(程序)也能够与其他STEP7编程语言所编写的
    发表于 01-31 10:10 993次阅读

    DSPASM FAA/GREEN_DSP 结构化汇编程序用户手册

    DSPASM FAA/GREEN_DSP 结构化汇编程序用户手册
    发表于 05-12 19:32 0次下载
    DSPASM FAA/GREEN_DSP <b class='flag-5'>结构化</b>汇编<b class='flag-5'>程序</b><b class='flag-5'>用户</b>手册

    DSPASM FAA/GREEN_DSP 结构化汇编程序用户手册

    DSPASM FAA/GREEN_DSP 结构化汇编程序用户手册
    发表于 06-29 19:25 0次下载
    DSPASM FAA/GREEN_DSP <b class='flag-5'>结构化</b>汇编<b class='flag-5'>程序</b><b class='flag-5'>用户</b>手册

    STEP7-5.5-F程序中FB修改后的变化

    STEP7-5.5-F程序中FB修改后的变化
    发表于 04-07 11:46 567次阅读
    <b class='flag-5'>STEP7</b>-5.5-F<b class='flag-5'>程序</b>中FB<b class='flag-5'>块</b>修改后的变化