可编程序控制器的原理与应用教案详解.ppt

  1. 1、本文档共119页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3. 用户数据类型 STEP 7允许将基本数据类型或复式数据类型组合成用户自己定义的数据类型,这种类型称为用户数据类型或UDT。用户数据类型必须首先单独建立,并存放在称为UDT的特殊数据块中,见图5.8。 图5.8是用“程序编辑器”建立的一个UDT,其数据组织结构与图5.7相同,该用户数据类型被定义为UDT200,并单独存储在被称为UDT200的特殊块中。也可以为UDT200建立符号名(如process_data),但是,命名只能在符号表中进行。图5.9给出了一个使用UDT定义数据块(如DBl0)的例子,数据块DBl0中定义两个变量,一个为整型,另一个为用户数据类型(UDT200)。从图中可以看出,数据块中UDT的用法与基本数据类型的用法类似。 图5.8 建立用户数据类型(UDT200) 图5.9 使用UDT 用符号地址或物理地址两种方式可以访问UDT中的变量。例如,在DB10中定义了图5.9格式的数据,DB10的符号名为Process,访问Amount变量可分别写为DB10.DBW 2或Process.Stack_2.Amount。 建立用户数据类型的目的是为了将UDT作为一种数据类型使用,以方便定义多个结构相同的构造变量。图5.9建立的Stack_2与图5.7建立的Stack_1相比,不仅大小结构完全相同,而且对Stack_1和Stack_2中元素的访问方法也完全相同。在建立DB10时,由于使用了UDT而使得数据块建立过程方便快捷。在多处使用同样的UDT时,这一优点将更加突出。 5.3 S7系列PLC程序设计 5.3.1 程序结构设计 STEP 7不仅从不同层次充分支持合理的程序结构设计,而且也简化了结构设计的复杂程度。 一个复杂的自动化过程可以被分解并定义为一个或多个项目(PROJECT);而对于每个项目,又可以进一步分解并定义给一个或多个CPU,每个CPU都有一个控制程序(CPU_PROGRAM)。图5.10显示了一个样本过程,它分成4个不同的项目:项目1和项目2只有一个CPU,而项目3和项目4有多个CPU。这样,一个很复杂的控制任务的结构设计,就被简化为各个CPU程序的结构设计。项目间或项目中的各CPU程序之间,能以某种方式联网,实现信息共享。如在S7协议支持下,用MPI网以全局数据通信的方式可方便地建立起联系,实现一个项目中各CPU共享信息。 图5.10 样本过程的项目划分 典型的情况是一个过程控制任务只有一个项目,该项目下也仅有一个CPU程序,每一个CPU程序又可依据时间特性或事件触发特性的差异分类编入不同的组织块(OB)中。例如,需要以固定时间间隔循环执行的那部分程序编入组织块OB35中,为PLC正常运行而需进行初始化的程序编入组织块OBl00中。又如,由硬件触发的中断服务程序编入组织块OB40中,对程序执行中产生的同步错误的响应处理程序编入组织块OB121或OB122中。 对于各组织块中的程序,可以根据其复杂程度分别选用线性、分部或结构化等三种形式中的一种程序结构。由于组织块OB1(主程序循环)中的程序是应用程序中主要的也是最复杂的部分,因此,对OB1中的程序设计合理的结构是十分重要的。下面分别说明三种典型结构的特点及选用原则。 1. 线性程序结构 用“线性”结构设计的程序连续放置在一个块内(通常为OB1),块中的程序按顺序执行。这一结构是最初的PLC模拟的继电器梯形逻辑的模型。线性程序具有简单、直接的特点。编程时,不必考虑功能块如何编程及如何调用,也不必考虑如何定义局部变量及如何使用背景数据块。由于所有的指令在一个块内,因此它适用于只需一个人编写的、相对简单的控制程序。 2. 分部程序结构 这是一种部分模块化的程序结构,也称为部分结构化。程序被分成各部分放在若干功能块中,每个功能块含有用于一种设备的一系列控制逻辑。放置在组织块OB1中的指令决定控制程序的各功能块的执行。比如说,一个分部程序可能包含以下内容: (1) 用于控制设备每一部分的FC; (2) 用于控制设备每一工作状态的FC; (3) 用于控制操作员接口的FC; (4) 用于进行PLC自诊断的FC。 在分部程序中,既无数据交换也没有重复利用的程序代码。各功能块收集并使用自己的数据,功能块不传递也不接收参数,功能块的编程与调用比较简单。由于每个功能区分为不同的块,因而使得多个程序员能够同时编程而不发生冲突。分部程序结构的编程效率比线性程序有所提高,程序测试也较方便,对程序员的要求也不太高。对不太复杂的控制程序可考虑采用这种程序结构。

文档评论(0)

南非的朋友 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档