第六章 结构化编程
第六章 结构化编程
二. 功能块编程及举例
• FB块带有一个存储区,即背景数据块,那么背景数据块 是如何生成的,有2中方法。
• 1)在调用FB并为它指定一个背景数据块后,如果该数据 块并不存在,则弹出一下提示信息:”Instance data block DBx does not exist. Do you want to generate it ?” 单击”Yes” 按钮可自动生成一个新的背景数据块。
正转,反转,停止,输出信号是电机正转,电机反转。
• 案例2:设计故障I1.3出现时,在操作面板上用一个指 示灯(Q4.3)来指示,指示灯以2HZ的频率闪烁,系 统复位输入是I1.2,用来检测故障是否存在,如果故障 存在,指示灯停止闪烁,转为常亮,故障消除,指示 灯熄灭。
故障信号 复位信号 存储器 指示灯
• 2)创建一个新的数据块时,选择其属性为“Data block referencing a function block”。
• 功能块FB的优点:当编写FC的程序时,用户必须寻找空 的标志区或数据区来存储需要保持的数据,并且要自己编 写程序来保存他们;而FB的静态变量可由STEP7的软件 自动保存。
• 一个功能块可以有多个背景数据块,使功能块可以被不同的对 象使用。
• 数据块包含共享数据块和背景数据块两种类型,共享数据块存 储的是全局变量,所有的逻辑块都可以从共享数据块中读取数 据,背景数据块则从属于某个功能块,用于传递参数。
• 块的调用即为子程序调用,块可以嵌套调用,嵌套的层数与 CPU的型号有关。
配料A
流量传感器 进料阀 进料泵 入口阀 M
流量传感器 进料阀 进料泵 入口阀
混合罐
配料B
排料阀
搅拌区功能为:
1.搅拌电动机 当液面指示“液面高 度低于最低限位”时,或者排料阀
第6章结构化程序设计基础教学课件VF
语句格式: Do While <循环条件> <语句序列> Enddo 说明: Do While 与 Enddo 必须成对使用。
33/65
循环体后的语句 结束
6.5.1 Do While(当型)循环语句
例6.14,求前100个自然数的和: S=0 N=1 Do While N<=100 循环条件 S=S+N 循环体 N=N+1 Enddo
16/65
6.3.2 等待语句
Timeout <数值表达式>:用于设定等待的秒 数。在等待时间内按任意键或等待超时,程序 将继续向下执行。 例:Wait "显示时间:" Timeout 3 ?? Time()
17/65
6.3.3 输入表达式语句
语句格式: Input [<字符表达式>] To <内存变量> 说明:允许输入任何类型的表达式。Input输 入字符串时必须加上定界符。 例6.5: N=2 Input "请输入数据: " To M ? M
程序文件的类型
在 VFP 中,可以执行源程序、编译程序、 应用程序和可执行程序4种程序文件。 (1)源程序(PRG):源程序是文本文件,可 以对其内容进行修改。只要有源程序文件, 就可以生成其他3种程序文件。
8/65
6.2.3 程序的编译与执行
(2)编译程序(FXP):每个源程序文件都有 对应的编译程序文件,执行编译程序比执行 源程序的速度快。
说明2:若所有条件都不成立,而有Otherwise 项,则执行语句序列n+1,然后执行Endcase后 面的语句;若所有条件都不成立,且无 Otherwise项,则直接执行Endcase后面的语句。
第6章 STEP7结构化程序设计(1)
图6-1 CPU314为优先级分配L堆栈
(四)中断控制
用户程序能够对一个中断发生后是否真正产生中断调用来进行
控制,即在程序运行中适时地屏蔽或允许中断调用,对中断的控制功 能用STEP7 提供的SFC 完成。 SFC39 ( DIS _ IRT ) 可禁止处理所有优先级的中断和异步错误, 也可有选择地禁止某个优先级的中断或使优先级范围的中断和异步错 误得到处理。被SFC39 禁止的中断需用SFC40 允许,在CPU 完全再 启动后,SFC39 的作用自动失效。
(3)用数组作参数传递。数组可以在逻辑块变量声明表中或数据块 中定义。如果在逻辑块变量声明表中把其形参定义为数组类型时,可 将实际参数数组作为参数传送,但必须将整个数组而不是数组的某些 元素作为参数传递。当然,在调用快时。也可以将某个数组的元素赋 值给同一类型的参数。 将数组作为参数传递时,并不要求作为形参和实参的二个数组有相 同的名称,但它们必须有同样的组织结构、相同的数据类型并按相同 的顺序排列。例如都是由整数组成的2×3格式的数组。 2.结构(STRUCT)的生成与访问 结构(STRUCT)可以将不同数据类型的元素组合成一个整体, 或者说结构是不同类型的数据组合。如图6-4所示。可以用基本数据类 型、复合数据类型(包括数组、结构和用户定义的数据类型UDT)。 但由数组或结构组成的结构最多只能嵌套8层。用户可以将过程控制 中有关的数据统一组织在一个结构中,作为一个数据单元来使用,而 不是使用大量的单个的元素,这为统一处理不同类型的数据或参数提 供了方便。
(三)中断工作过程
1.中断工作过程
中断处理用来实现对特殊内部事件或外部事件的快速响应。如果没 有中断,CPU 循环执行组织块 OBl。在循环执行用户程序的过程中, 如果CPU 检测到有中断请求,因为OB1 的优级最低(背景组织块 OB90除外),所以操作系统在现有程序的当前指令执行结束后(称 断点)立即响应中断,调用申请中断的组织块OB ,执行该OB 中的 程序。当该OB 中程序执行完毕后,返回原程序断点处继续原程序的 执行。
汇编语言程序设计-结构化程序设计方法
.386
_DATA SEGMENT'DATA' USE16
Chr DB
?
_DATA ENDS
将首地址为B1、长度为n的数据块内容传到首地 址为B2数据块中
分析:
– 用串处理指令实现数据块传送。 – 假设传送"abcdef"六个字节数据,针对源、目的数据块
重叠与否分三种情况:两数据块地址不重叠,正向传 送和反向传送均正确;若两数据块有部分地址重叠, 且B1<B2,如分别为100和102,则只能反向传送,若 正向传送,则目的块内容为"ababab",原因是在传送过 程中覆盖了源块的重叠部分;若两数据块有部分地址 重叠,且B1>B2,如分别为102和100,则只能正向传 送,若反向传送,则目的块内容为"defdef",原因也是 源块的重叠部分被覆盖。所以,若B1>B2时,采用正 向传送方式;若B1<B2时,采用反向传送方式。
形如P1P2…Pn的组合条件中,若Pi为
Q1Q2…Qn,则可按顺序测试Qj,只要有
一个Qj为假,则转去测试下一个Pi+1,当所 有的Qj为真时,则直接转至Then_loc
例6.9 把下列C语言的语句改写成等价的汇 编语言指令序列。
– if(x1+x2>0&&(x3%2==0||x4<'a')&&(x5+x6<0||x7 >100)&&x8<'z') a=65;else a=97;
结构化编程教案
结构化编程教案教案标题:结构化编程教案教学目标:1. 了解结构化编程的概念和原则;2. 掌握结构化编程的基本概念和技巧;3. 能够运用结构化编程的思维方式设计和编写简单的程序;4. 培养学生的逻辑思维和问题解决能力。
教学准备:1. 计算机和投影仪;2. 结构化编程相关的教材和参考资料;3. 编程软件(如Python、C等);4. 练习题和实例。
教学过程:一、导入(5分钟)1. 向学生介绍结构化编程的概念,解释其重要性和应用领域;2. 引导学生思考结构化编程与其他编程方法的区别和优势。
二、理论讲解(15分钟)1. 解释结构化编程的基本原则,如顺序、选择和循环结构;2. 介绍结构化编程的基本概念,如顺序结构、分支结构和循环结构;3. 给出实例,解释如何使用结构化编程思维解决问题。
三、示范演示(20分钟)1. 通过编程软件展示结构化编程的实际应用;2. 按照结构化编程的原则,演示如何设计和编写简单的程序;3. 解释每个步骤的目的和意义,引导学生理解结构化编程的思维方式。
四、练习与实践(30分钟)1. 分发练习题,让学生独立或小组完成编程任务;2. 引导学生运用结构化编程的思维方式解决问题;3. 鼓励学生在实践中发现问题并尝试解决,培养问题解决能力。
五、讨论与总结(10分钟)1. 让学生分享他们的编程经验和遇到的问题;2. 引导学生总结结构化编程的优势和局限性;3. 结合实例,再次强调结构化编程的重要性和应用价值。
六、作业布置(5分钟)1. 布置结构化编程的相关作业,要求学生进一步巩固所学知识;2. 提供参考资料和练习题,鼓励学生主动学习和探索。
教学评估:1. 在练习与实践环节观察学生的编程过程和结果;2. 针对学生的作业和讨论表现进行评价;3. 分析学生对结构化编程概念和技巧的掌握程度。
教学延伸:1. 鼓励学生参与编程竞赛或项目实践,进一步提升结构化编程能力;2. 推荐相关的编程书籍和网上资源,供学生深入学习和研究。
结构化编程名词解释
结构化编程名词解释
结构化编程是一种编程方法,它强调程序代码的清晰性、可读性和可维护性。
结构化编程遵循一系列准则和规范,以确保代码的易读性和可维护性,使程序更易于理解和修改。
结构化编程的主要特点包括:
1.模块化:将程序划分为若干个模块,每个模块负责特定的功
能,以提高代码的可读性和可维护性。
2.顺序性:按照一定的顺序执行程序,以确保程序的正确性和可
读性。
3.简洁性:避免使用复杂的语法结构和嵌套,尽量使用简单的语
句和表达式。
4.注释:添加注释以解释代码的功能和意图,使代码更易于理解
和维护。
5.命名规范:使用清晰、有意义的变量名和函数名,以便其他人
阅读和理解代码。
结构化编程的优点包括:
1.提高代码的可读性和可维护性:结构化编程使得代码更易于理
解和修改,减少了代码维护的难度和成本。
2.降低错误率:结构化编程遵循一定的规范和准则,可以减少程
序错误的发生率,提高了程序的可靠性和稳定性。
3.提高代码的重用性:结构化编程鼓励将代码划分为若干个模
块,每个模块可以独立开发和测试,提高了代码的可重用性。
4.提高团队合作效率:结构化编程使得代码更易于共享和协作,
提高了团队合作的效率。
总之,结构化编程是一种重要的编程方法,它可以帮助程序员编写高质量、易于维护的程序代码。
结构化程序设计基础
第6章构造化程序设计根底在VFP交互方式下,除了通过命令窗口、系统菜单和工具对VFP进展操作外,还可以通过程序方式执行较复杂的数据处理任务。
VFP程序设计包括构造化程序设计和面向对象程序设计。
构造化程序设计是传统的程序设计方法,是面向对象程序设计的根底。
6.1 构造化程序样例分析程序是指可以完成一定任务的一组有序命令的集合。
程序中的命令也称为语句。
程序以文件形式保存在外部存储器中。
与命令方式相比,程序方式有如下优点:便于保存、编辑和运行:以程序文件形式保存一组语句;每次启动VFP后,不需要重复输入程序中的语句,只要翻开程序文件就可以对其进展修改;运行相应的程序文件就是执行程序中的相关语句,并且可以屡次执行一个程序。
层次明晰、功能模块化:允许在一个程序中调用其他子程序,构成程序系统,以便完成更复杂的处理任务。
【例 6.1 】编写求数N的阶乘程序,存于文件E6_1.PRG中。
操作步骤为:首先,在命令窗口中输入:Modify Command E6_1命令翻开程序编辑器。
然后,输入以下语句〔不输入行号〕,如图6.1。
1〕 * 求数N的阶乘,即 S=1×2×……×(N-1)×N2〕 Input 〞输入整数:〞To N && 执行程序时,用户输入的数保存在变量N中3〕 If N<1 && 假设N小于1,那么执行第4和 5行语句;否那么,转到第7行继续执行4〕? '输入的数:',N,'不能小于1'5〕Cancel6〕 EndIf7〕 Store 1 To M,S8〕 Do While M<=N && 当M小于或等于N时,执行第9和第10行语句&& 直到M大于N时,转到第12行继续执行9〕 S=S*M10〕 M=M+111〕 EndDo12〕 ? N,〞的阶乘是:〞,S图6.1 程序编辑器最后,单击“运行〞常用工具。
软件设计师中级第六章结构化开发方法
软件设计师中级第六章结构化开发方法
软件设计师中级第六章结构化开发方法介绍了在软件开发过程中应用结构化方法的重要性和具体实践方法。
结构化开发方法是一种将程序设计任务分解为独立、可重用的模块的方法,以提高开发效率、代码可读性和可维护性。
结构化开发方法包括几个关键步骤。
首先,需要从需求分析和规格说明中抽取模块,确定程序的整体结构。
这可以通过流程图、数据流图或状态转换图等方式进行可视化表示。
接下来,模块可以按照功能进行分组,形成层次化的结构。
每个模块都应该具有明确的输入输出接口,以便于模块之间的数据交换和通信。
在模块内部,我们可以使用结构化编程语言,如C语言或Pascal语言,来实现模块的具体功能。
这些语言提供了控制结构,如顺序结构、选择结构和循环结构,以帮助开发人员编写结构良好的代码。
此外,模块内部的局部变量和全局变量应该明确定义,并且应该避免使用过多的全局变量,以免引发混乱和不可预料的结果。
结构化开发方法还强调模块的独立性和共享性。
每个模块应该具有清晰的接口定义,以便于其他开发人员在需要时可以重用该模块。
这样可以提高代码的可重用性和可维护性,并且可以降低开发过程中的冗余和重复工作。
总而言之,软件设计师中级第六章结构化开发方法是一种重要的开发方法,可以帮助开发人员在软件开发过程中提高效率、降低复杂性,并且提高代码的可读性和可维护性。
通过合理地划分模块、使用结构化编程语言和明确的接口定义,我们可以更好地组织和管理软件开发过程,从而提供高质量的软件产品。
计算机软件工程第六章 详细设计
PAD图的基本符号
SOFTWARE ENGINEERING
PAD图的基本符号
输入框 输出框 处理框 选择框
重复框(先判 定,再重复) 或 子程序框
重复框(先执行, 后判定,再重复)
定义框
使用PAD图提供的定义功能来逐步求精的例子
• 作业:判定一个数是不是素数的PAD图
SOFTWARE ENGINEERING
SOFTWARE ENGINEERING
盒图的基本符号
SOFTWARE ENGINEERING
§6.2 详细设计的工具
6.2.4 PAD图(Problem Analysis Diagram) 用二维树形结构的图来表示程序的控制流。 优点: ①设计出的程序是结构化程序; ②描绘程序结构清晰; ③表示程序逻辑,易读、易懂、易记;(自上而下, 从左向右顺序执行,遍历所有结点); ④易转换成 语言源程序,可用软件工具自动完成; ⑤也可用于描绘数据结构; ⑥支持自顶向下、逐步求精方法的使用。
例题 根据伪码画出程序流程图、盒图、 PAD图
Start If p1 then while q2 do x end do Else block y z end block End if stop
SOFTWARE ENGINEERING
作业:根据伪码画出程序流程图、盒图、PAD图
Begin Input(a,b,c) i=0 While i<=6 do Begin If a>6 or b>=0 Then c=c+a Else b=c+a End if i=i+1 End End do Print(a,b,c) End
PAD图(问题分析图)
(4)PAD是二维树形结构的图形,程序从图中 最左竖线上端的结点开始执行,自上而下,从 左向右按顺序执行,遍历所有结点; (5)容易将PAD转换成高级语言源程序,该转 换可由软件自动完成,有利于提高软件可靠性 和软件生产; (6)既可用于表示程序逻辑,也可用于描绘数 据结构; (7)PAD的元素支持自顶向下、逐步求精方法 的使用。
6+学习编写结构化的程序—过程
◦ 3 End Function
下面的代码调用Multi函数计算两个数 的乘积。
◦ 1 Dim Result As Integer ◦ 2 Result=Multi(10,20)
下面的代码调用Multi函数计算三个数 的乘积。
◦ 1 Dim Result As Integer ◦ 2 Result=Multi(10,20,30)
6.4 为过程传递参数
Sub子过程和Function函数都可以有零 到多个形参,在实际调用的时候需要由 实参与之一一对应,这个过程就称为参 数传递。
6.4.1 按值传递和按引用传递
通常,可以通过两种方式把实参传递给 过程,即按值传递(也称为传值)和按 引用传递(也称为传地址),因此参数 可以分为值类型参数(以ByVal关键字 标识)和引用类型参数(以ByRef关键 字标识)两种。
btn_Calculate_Click
2
tb_result.Text = Fac(Val(tb_num.Text))
3 End Sub
运行结果
小结
函数定义包含函数头、函数体和End Function关键字。
函数头由Function关键字开始,后跟函 数名,之后是一对圆括号括起来的形参 列表。
6.3 Function函数过程
Function函数过程简称函数,由关键字 Function开头,End Function结尾,其 基本结构如下。
◦ Function 函数名([参数列表]) As 返回值 类型
◦ 函数体 ◦ End Function
Function与Sub的不同
二者唯一不同的地方在于,Function函 数的参数列表之后比Sub子过程多了一 项As 返回值类型。
PLC模块化编程和结构化编程讲解
PLC模块化编程和结构化编程讲解模块化编程中OB1起着主程序的作用,FC或FB控制着不同的过程任务,相当于主循环程序的子程序。
模块化编程中被调用块不向调用块返回数据。
模块化编程中OB1起着主程序的作用,FC或FB控制着不同的过程任务,相当于主循环程序的子程序。
模块化编程中被调用块不向调用块返回数据。
▲模块化编程实例1.模块化编程实例1 - 液位监视·监视一个慢变得过程不需要每次扫描都进行。
如果过程每隔一定时间或根据需要进行处理,程序将更有效。
· 在OB1循环扫描处理时,可以按照一定的周期对液位进行监视。
设计方法:· 确定液位监视的组成部分和它们的关系;· 设计完成所要求控制任务的功能;· 规划从OB中调用块完成功能的程序执行过程;· 对程序块的每个段加上文字注释和标题。
解决方案:· 建立一个功能FC,可以监视和控制任务;· 建立一个OB,其中每隔一定时间调用块(功能)。
2.模块化编程实例2有两台电动机,控制模式是相同的,按下启动按钮(电动机1为I0.0,电动机2为I1.0),电动机起动运行(电动机1为Q4.0,电动机2为Q4.1);按下停止按钮(电动机1为I0.1,电动机2为I1.1),电动机停止运行。
分析:这是典型的起保停电路,采用模块化编程的思想,分别在FC1和FC2中编写电机的控制程序,在主程序OB1中进行FC1和FC2的调用。
Ø 将复杂的任务分解成一些能够反映过程的工艺、功能或可以反复使用的单独解决的小任务,这些任务由相应的程序块来表示;Ø 某些程序块可以用来实现相同或相似的功能;Ø 调用者可以是各种逻辑块,包括用户编写的OB、FB、FC和系统提供的SFB与SFC;Ø 被调用的块是OB之外的逻辑块;Ø 通用的数据和代码可以共享。
▲结构化编程结构化编程的优点:1各单个任务块的创建和测试可以相互独立地进行;2通过使用参数,可将块设计得十分灵活;3块可以根据需要在不同的地方以不同的参数数据记录进行调用;4在预先设计的库中,能够提供用于特殊任务的“可重用”块。
结构化程序设计
上页
(它已预先赋值)或表中当前记录的字段名变量进
行编辑修改。
下页 【说明】 @…GET语句必须与编辑修改语句READ一起使用
才有意义。当执行READ语句时,系统将光标移到
退出
@…GET的变量位置,这时如果从键盘上键入新的
数据,则变量中原来的数据被取代
22
【例6-7】建立程序文件,要求通过程序方式在“读者”表中
第六章 结构化程序设计
1
本章目录
目录
第一页
第三节 程序的模块化
退出
第四节 程序调试
2
Visual FoxPro的工作方式
Visual FoxPro系统提供有三种工作方式:即单 命令方式、菜单方式及程序文件方式。
目录
1.单命令方式
上页
Visual FoxPro单命令方式是利用Command 窗口
所谓单命令方式,即输入一条命令,完成一个操 作的工作方式。
3
2.菜单方式
在Visual FoxPro 环境下,也可以通过系统提
供的菜单选项,对数据库资源进行操作管理和对系
统环境进行设置;并通过菜单建立命令文件及运行
目录
命令文件。所谓菜单方式,即通过打开不同的菜单
选择并完成不同的操作。我们在以前各章所讲的内
@ 10,10 SAY "出生日期:" GET 出生日期
@ 12,10 SAY "少数民族否:" GET 少数民族否
退出
@ 14,10 SAY "籍贯" GET 籍贯
READ
USE
23
【例6-8】编写程序文件PROG8.PRG ,修改读者表中第三 条记录的姓名和籍贯两个字段。
《结构化程序设计》课件
VS
详细描述
通过简单的流程图,将程序中的各个步骤 和逻辑关系清晰地呈现出来,便于理解和 分析。例如,一个简单的计算器程序流程 图可以包括输入数值、选择运算、计算结 果和输出结果等步骤。
案例二:复杂程序流程图设计
总结词
详细完整、层次分明
详细描述
对于复杂的程序,需要设计更为详细的流程 图,将各个子功能和模块之间的关系清晰地 表达出来。同时,要注意层次分明,避免流 程过于复杂或混乱。例如,一个复杂的财务 管理系统流程图可以包括用户登录、数据输 入、数据处理、报表生成和数据存储等层次 。
PART 05
结构化程序设计的优缺点
优点
可读性强
结构化程序设计强调代码的 模块化,每个模块的功能明 确,有利于代码的阅读和维 护。
可维护性好
结构化程序设计鼓励将程序 分解为小块,降低了程序的 复杂性,使得代码更容易理 解和修改。
ห้องสมุดไป่ตู้
错误可控
结构化程序设计通过明确的 输入和输出、模块间的数据 传递等手段,降低了程序中 的错误传播。
低级语言
更接近计算机硬件,运行效率高,但 编写难度大。
结构化程序设计语言的特征
01
清晰的结构
语言具有清晰的控制结构,易于理 解和维护。
自顶向下设计
先设计整体结构,再逐步细化每个 模块。
03
02
模块化
将程序划分为独立的模块,每个模 块执行特定的功能。
主程序与子程序
主程序调用子程序,子程序完成特 定任务并返回结果。
定义
结构化程序设计是一种软件开发方法 论,旨在创建易于理解、维护和测试 的高质量程序。
特点
强调使用清晰的控制结构,将程序分 解为小块,以便管理和理解;注重开 发过程的阶段性和文档化;遵循特定 的设计原则和工具。
Visual FoxPro程序设计实例教程第6章 结构化程序设计基础
21
2)ACCEPT 格式:ACCEPT [<提示信息>] TO <内存 变量名> 功能:该命令与INPUT命令类似,不同的是它 把输入的内容作为字符串赋值给指定的<内存变量 > ①如果没有输入数据就按回车键,那么<内存 变量>的值则为空字符串。 ②
22
3)WAIT 格式:WAIT[<提示信息>][TO <内存变量 名>] [WINDOW] [TIMEOUT<数值表达式> 功能:该命令的作用是暂停正在运行的程序, 直到用户按任意键(如输入为一字符,则可将其存 入内存变量)或单击鼠标或指定时间内继续程序的
50
①DO WHILE和ENDDO、FOR和ENDFOR、 SCAN和ENDSCAN ②<语句序列>可以是任何VFP命令或语句,
③<循环变量>应是数值型的内存变量或数组
④EXIT和LO计过程中,可以把一段经常使用的程 序代码独立出来,创建子程序、过程或自定义函数, 在需要使用该代码时,只需直接调用,而不必重复
46
图6.11
47
5 多重循环即循环的嵌套,是在一个循环结构的 循环体中又包含另一个循环。嵌套层数一般没有限 制,但内层循环的循环体必须完全包含在外循环的 循环体中,不能相互交叉。正确的嵌套关系如图 6.12所示。
48
图6.12 循环层次关系
49
DO WHILE <条件表达式1> <语句序列11> DO WHILE <条件表达式2> <语句序列21> DO WHILE <条件表达式3> ENDDO <语句行序列22> ENDDO <语句行序列12> ENDDO
第六章 结构化程序设计
17
(2)格式化输出语句 (2)格式化输出语句 格式: 行号, <表达式 表达式> 格式:@行号,列号 SAY <表达式> 例: @3,10 say "我叫王小力 我叫王小力," 我叫王小力 @4,10 say “我是学会计 我是学会计." 我是学会计
2010-11-29
18
6.3程序的基本控制结构 6.3程序的基本控制结构
2010-11-29
9
6.2.5 程序设计常用命令 1.注释命令 1.注释命令 (1):note 注释内容 行首注释 (2):* (3)&&注释内容 (3)&&注释内容 行尾注释 2.文本显示命令 文本显示命令( 2.文本显示命令(略) 3.环境设置命令 3.环境设置命令
<参数 参数> <参数 参数> <参数值 参数值> set <参数> on/off 或set <参数> to <参数值> 作用: 作用:设置某种状态来满足程序处理或数据处理的需 。(书164页 要。(书164页)
2010-11-29
26
参考答案: 参考答案:
Input “请输入第1个数” to 请输入第1 请输入第 个数” x1 Input “请输入第2个数” to 请输入第2 请输入第 个数” x2 Input “请输入第3个数” to 请输入第3 请输入第 个数” x3 Input “请输入第4个数” to 请输入第4 请输入第 个数” x4 m=max(x1,x2,x3,x4) n=min(x1,x2,x3,x4) ?m,n 2010-11-29
程序设计语言: 程序设计语言:就是人与计算机之间进行交流的工 是由字、词和语法规则构成的指令系统。 具,是由字、词和语法规则构成的指令系统。 计算机语言:包括机器语言、汇编语言和高级语言。 计算机语言:包括机器语言、汇编语言和高级语言。 通常所说的程序设计语言就是指高级语言,例如, 通常所说的程序设计语言就是指高级语言,例如, 语言、C++、 Basic、 FoxPro、VC、 C语言、C++、Visual Basic、Visual FoxPro、VC、 Java等 Java等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二。块的含义及调用
• (一).功能(FC)
• 功能是用户所编写的无固定存储区的块。它为不带“记忆” 的逻辑块。所谓不带“记忆”表示没有背景数据块。当完 成操作后,数据不能保持。这些数据为临时变量,对于那 些需要保存的数据只能通过共享数据块(SB)来存储。 调用功能时,需要用实参来代替形参。
配料A
流量传感器 进料阀
M
进料泵 入口阀
流量传感器 进料阀 进料泵
混合罐
配料B
入口阀
排料阀
5.故障检测 进料泵启动7s之后, 流量传感器会报溢出。 6.故障检测 进料运行时,若流量 传感器没有流量信号,则进料泵关 闭。 7.维护 进料泵启动次数大于50 次,必须维护。
搅拌区的混合罐中装有3个传感 器:灌装满传感器(装满之后,触 点断开),罐不空传感器,罐液体 最低限位(达到最低限位,触点关 闭)。
• 模块化编程:将程序分成根据功能分成不同的逻辑块,没 一逻辑块的功能不同,然后在OB1中可以根据条件调用不 同的功能块,特点是易于分工合作,调试方便。
• 结构化编程:结构化编程是将过程要求中类似或相似的任 务归类,在功能或功能块中编程,形成通用的解决方案。
一。块的分类
用户程序 操作系统
系统程序
组织块(OB),直接有系统调用 功能块(FB),由其他逻辑块调用 功能(FC),由其他逻辑块调用。 数据块(DB),
临时变量
类型 IN OUT IN_OUT STAT
TEMP
说
明
为调用逻辑块提供数据,输入给逻辑块。
从逻辑块中输出数据结果
参数值可以输入,也可以输出
静态变量存储于背景数据块中,块调用结束后, 变量被保留
临时变量存储于L堆栈中,块执行结束后,变 量消失。
6.2 功能和功能块编程及调用举例
• 一。 功能和功能块的编程步骤: • 1. 定义局部变量,首先定义形参和临时变量。 • 2. 编写执行程序,在编程中使用变量名。 • 3. 在OB1中调用这个功能块。 • 案例1. 做一个具有控流量传感器 进料阀
M
进料泵 入口阀
流量传感器 进料阀 进料泵
混合罐
配料B
入口阀
排料阀
搅拌区功能为:
1.搅拌电动机 当液面指示“液面高 度低于最低限位”时,或者排料阀
打 开时,搅拌电动机必须停止。
2.故障检测 如果搅拌电动机在启动 后10s内没有达到电动机的额定转 速,则电动机必须断开。
二. 功能块编程及举例
• FB块带有一个存储区,即背景数据块,那么背景数据块 是如何生成的,有2中方法。
• 1)在调用FB并为它指定一个背景数据块后,如果该数据 块并不存在,则弹出一下提示信息:”Instance data block DBx does not exist. Do you want to generate it ?” 单击”Yes” 按钮可自动生成一个新的背景数据块。
配料A
流量传感器 进料阀 进料泵 入口阀
M
流量传感器 进料阀 进料泵
混合罐
配料B
入口阀
排料阀
各个区域的功能如下: 配料A和配料B的每个配料管都配 有一个入口阀和进料阀,还有一个 进料泵。配料管中还有流量传感 器,检查是否有配料流过。区域功 能为: 1.进料泵 当罐的液面传感器指示 2.混合罐装满后,进料泵必须关 闭。进料泵 当排料阀打开时,进 料泵同样也要关闭。 3.阀门 在启动进料泵1s后,必须 打开入口阀和进料阀。 4.阀门 在进料泵停止后,阀门必 须关闭,防止配料泄漏。
• 通过案例2说明FC和FB的区别
6.3 FC和FB程序设计实例
• 任务描述:工业搅拌过程如下:两种配料(A.B)在一个混合罐中由 搅拌器混合在一起,之后通过排料阀排出。工业搅拌示意图如下图所 示。系统分为4个区:配料A,配料B,搅拌区排料区。电动机和泵有3 台:配料A进料泵,配料B进料泵,搅拌电动机。阀门有5个:配料A 入口阀,配料A进料阀,配料B入口阀,配料B进料阀,排料阀。
正转,反转,停止,输出信号是电机正转,电机反转。
• 案例2:设计故障I1.3出现时,在操作面板上用一个指 示灯(Q4.3)来指示,指示灯以2HZ的频率闪烁,系 统复位输入是I1.2,用来检测故障是否存在,如果故障 存在,指示灯停止闪烁,转为常亮,故障消除,指示 灯熄灭。
故障信号
复位信号
存储器
指示灯
• 一个功能块可以有多个背景数据块,使功能块可以被不同的对 象使用。
• 数据块包含共享数据块和背景数据块两种类型,共享数据块存 储的是全局变量,所有的逻辑块都可以从共享数据块中读取数 据,背景数据块则从属于某个功能块,用于传递参数。
• 块的调用即为子程序调用,块可以嵌套调用,嵌套的层数与 CPU的型号有关。
三. 块的结构
• 块是有变量声明表和程序组成的。 • 变量声明表。每个逻辑块都有变量声明表,而变量声明表是用来说明
块的局部数据,局部数据包含参数和局部变量两大类型,在不同的的 逻辑块中可以重复声明和使用同一个局部数据,因为它们在每一个块 中有效一次。
局部数据声明类型
变量名 输入 输出 输入/输出 静态变量
第六章 结构化编程
主讲:程子华
6.1 程序设计方法
• 在STEP7中有三种编程方法:线性化编程、模块化编程、 结构化编程。
• 线性化编程:线性化编程是将整个程序都放在循环控制组 织块OB1中。在整个程序执行的过程中,每一步都被扫描, 适用与一些比较简单的程序。如果是编写大型程序,要避 免线性化编程。
• 2)创建一个新的数据块时,选择其属性为“Data block referencing a function block”。
• 功能块FB的优点:当编写FC的程序时,用户必须寻找空 的标志区或数据区来存储需要保持的数据,并且要自己编 写程序来保存他们;而FB的静态变量可由STEP7的软件 自动保存。
• (二)。功能块(FB)
• 功能块是用户所编写的有固定存储区的块。FB为带“记忆”的 逻辑块。它有一个数据结构与功能块参数表完全相同的数据块 (DB)。我们称该数据块为背景数据块,当数据块背执行时, 数据块背调用;功能块结束,调用随之结束。存放在背景数据 块中的数据在FB块结束以后,仍能继续保持,具有“记忆”功 能。