第08章DFB和诊断 DFB_第1页
第08章DFB和诊断 DFB_第2页
第08章DFB和诊断 DFB_第3页
第08章DFB和诊断 DFB_第4页
第08章DFB和诊断 DFB_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Unity traininc course V2.0 - Module 3.D : DFB & Diagnostic DFB1第八章第八章DFB & 诊断诊断 DFBUnity traininc course V2.0 - Module 3.D : DFB & Diagnostic DFB2导出功能块导出功能块n DFB : 用户逻辑被封装在一个功能块当中,能够多次重用(满足应用的特殊要求) n 使用使用o设计人员编写 DFB 功能块模型,称为 DFB 类型o最终用户创建这个模块类型的数据映象,称为 “实例”, 并输入各个功能块实例的参数o设计人员和用户之间可将DFB导出 / 导入oDFB 编

2、码在CPU 中只装载一次oDFB 可以被保护 oDFB 可被创建它的应用程序使用,也可以放在功能块库当中,被所有的应用程序使用Unity traininc course V2.0 - Module 3.D : DFB & Diagnostic DFB3原理原理n DFB 包括包括 :o输入/输出参数o公共或私有内部变量 (声明)o由LD, IL, ST, FBD语言编写的一个或多个段注 : 一个 DFB 可以在程序段内嵌套调用其它DFB.n DFB 用于用于 o结构化应用程序o简化程序设计和输入o提高程序的可读性o简化调试o保护技术秘密Unity traininc course V2.0 -

3、Module 3.D : DFB & Diagnostic DFB4结构结构n 创建创建DFB类型类型o名称名称 : 最多32 个字符.o参数参数 : 输入, 输出, 输入/输出 o内部变量内部变量 : 公共 : 可被应用程序访问 私有 : 不能被应用程序访问o编码段编码段 : 可以用 LD, IL, ST 或 FBD语言编写 遵循 IEC 标准, 一个DFB只包含一个程序段 不遵循 IEC 标准 , 一个DFB可包含几个程序段 (推荐) o注释注释 : 最多1024 个字符,不允许使用格式字符o描述文件和保护等级描述文件和保护等级DFB 类型名称类型名称输入输入变量复制变量复制I/O公共变量

4、公共变量私有变量私有变量DFB 代码代码输出输出Unity traininc course V2.0 - Module 3.D : DFB & Diagnostic DFB5创建创建 原理原理n 打开 Unity Pro 应用n 创建新的 DFB 类型n 编辑新创建的 DFB 类型的属性n 编辑 DFB 的参数n 在一个或多个段中输入 DFB 代码n 分析 DFB 类型并使它有效n 调试 DFB 类型n 导出 DFB (如果需要) 用于其它应用程序n 使用 DFB项目浏览器项目浏览器创建创建 DFB 类型类型编辑编辑 DFB 类型类型编辑编辑 DFB 参数参数编辑编辑 DFB 代码代码分析分析

5、 DBF 类型类型调试调试 DFB 类型类型Unity traininc course V2.0 - Module 3.D : DFB & Diagnostic DFB6属性属性n “DFB 类型类型” 在数据编辑器中键入, 选择 DFB 并右击 = propertiesn 给出关于 DFB 类型类型的信息n 在写模式下可以有一些属性 :o名称名称o注释注释o保护保护 : 选择保护等级和密码 (选择后自动询问)注 : 独立于应用保护oDiag :定义该 DFB 是否可被用户用作诊断 DFBUnity traininc course V2.0 - Module 3.D : DFB & Diagn

6、ostic DFB7I/O 接口接口n 输入输入 : 最多最多 32 个个o对于 DFB 为只读模式o从应用程序中传输数值给 DFBo类型和名称 (最多32 个字符) n 输出输出 : 最多 32 个个o对于 DFB 为可写模式o从 DFB中传输数值给应用程序o类型和名称 (最多32 个字符)n 输入输入/输出输出 : 最多 32 个个o对于 DFB 为可读/可写模式o传输数值给 DFB, 经过运算、修改后返回给应用程序o类型和名称 (最多32 个字符)DFB 类型名称类型名称输入输入I/O公共变量公共变量私有变量私有变量DFB 代码代码输出输出Unity traininc course V2

7、.0 - Module 3.D : DFB & Diagnostic DFB8变量变量n 私有私有 : 不限制 oDFB 的内部变量o只用于 DFB 编程 (例如 : 中间计算)o名称 (最多 8 个字符)n 公共公共 : 不限制oDFB 的内部变量 o在调整模式下可以由应用程序或用户在功能块外读取 (有读写权限)o名称 (最多 8 个字符)n 公共变量的数值公共变量的数值, 经由应用程序调整修改, 可以通过设定%S94为 1去替换初始值DFB 类型名称类型名称输入输入变量复制变量复制I/O公共变量公共变量私有变量私有变量DFB 代码代码输出输出Unity traininc course V2

8、.0 - Module 3.D : DFB & Diagnostic DFB9代码代码n 组织成代码段组织成代码段 :o遵循 IEC标准 , 一个DFB 包含单个代码段 o不遵循 IEC 标准, 一个 DFB包含几个代码段n 代码段代码段o通过IL,ST, LD, FBD编写o名称 (最多 32 个字符)o有效条件 o保护属性 (无保护, 写保护, 读/写保护)o注释 (最多 256 个字符)n 只使用为功能块定义的参数或系统字和位进行编程DFB 类型名称类型名称输入输入变量复制变量复制I/O公共变量公共变量私有变量私有变量DFB 代码代码输出输出Unity traininc course V

9、2.0 - Module 3.D : DFB & Diagnostic DFB10举例举例 : 创建创建n 名称名称 : Parts_countern 输入输入 :oRst : 计数器复位oPreset : 计数器预置值oCount : 计数器输入n 输出输出 :oDone : 达到预置值信号n 公共变量公共变量 : oCur_val : 通过计数输入累加得到的当前值n 代码代码n 描述表描述表Unity traininc course V2.0 - Module 3.D : DFB & Diagnostic DFB11使用使用 原理原理n 打开 Unity Pro 应用n 导入 DFB 类型

10、 (如果需要带版本控制)n 创建 DFB 实例n 打开程序段n 在程序段中使用 DFB 实例n 修改参数 (初始值)n 下载并测试程序项目浏览器项目浏览器创建创建 DFB 实例实例打开一个程序段打开一个程序段编辑程序编辑程序修改参数修改参数传输传输 & 测试程序测试程序Unity traininc course V2.0 - Module 3.D : DFB & Diagnostic DFB12使用使用 举例举例n 创建创建 DFB 实例实例:o除去事件任务和 SFC 转换,可在应用程序的所有任务中创建 DFB 实例n DFB 实例用作实例用作 :oLD 或或 FDB 语言语言中的标准功能块o

11、ST 或或 IL 语言语言中的基本功能Unity traininc course V2.0 - Module 3.D : DFB & Diagnostic DFB13概览概览n 用于应用程序诊断的工具用于应用程序诊断的工具 oPLC 程序中的过程控制n 内置诊断内置诊断o追溯错误的起源 (直接在 PLC 层次)n 可以创建用户自己的诊断 DFB (Quantum & Premium)n Schneider 预定义的诊断 DFB 列表oALRM_DIA : 简单的事件监测 (Quantum & Premium)oEV_DIA : 事件监测 (Quantum & Premium)oMV_DIA :

12、 运动监测 (Quantum & Premium)oASI_DIA & A2SI_DIA : AS-i 总线上的设备监测(只用于 Premium)Unity traininc course V2.0 - Module 3.D : DFB & Diagnostic DFB14原理原理检测检测诊断诊断DFB记忆记忆诊断缓冲区诊断缓冲区查看查看 观察器观察器应用应用消息消息观察器观察器 1确认确认确认确认登记登记诊断缓冲诊断缓冲区区日期日期观察器观察器 2PLC消息消息Unity traininc course V2.0 - Module 3.D : DFB & Diagnostic DFB15登记

13、登记n 报警登记o错误登记指令 REGDFB ( ) 当错误发生时,把带时间戳的记录写入到诊断缓存区中.o同一个DFB 可以登记多个记录 (最多 4 个) o只在只在 Diagnostic DFB 中使用n 语法oREGDFB (AREA, 16#0062, SLEN, CTRL, PIN, VALPIN, ESTS, ERID, STAT)Unity traininc course V2.0 - Module 3.D : DFB & Diagnostic DFB16记录注销记录注销n 报警记录注销报警记录注销o 注销记录 指令 DEREG ( ) 更新与错误有关的日期和时间缓冲区o当所有观察

14、器都得到确认信息时,消息从诊断缓冲区中被删除o只在只在 Diagnostic DFB 内部使用n 语法语法oOUT := DEREG(ERID); 注: 报警被保持在诊断缓冲区中,并可以被所有观察器读取,直到错误被确认为止 (对于需要确认的错误)。Unity traininc course V2.0 - Module 3.D : DFB & Diagnostic DFB17创建创建n 激活Application Diagnostics选项 (Tool = Project settings)n 在变量编辑器中创建 DFB 类型或如果需要,导入诊断 DFB 的 模板 的源代码n 在这个 DFB 类

15、型的属性中, 使得 Diag 选项有效n 声明 DFB 输入/输出和内部变量 注 : 所有需要监测的输入,其 Diag 属性必须被选中Unity traininc course V2.0 - Module 3.D : DFB & Diagnostic DFB18创建创建 (续续)n 键入描述信息n 键入代码o使用 REGDFB( ) 和 DEREG ( ) 指令注 : PIN 参数是被监测的输入管脚的顺序编号n 创建 DFB 实例o定制缺省消息n 调试 DFB n 导出 DFBUnity traininc course V2.0 - Module 3.D : DFB & Diagnostic

16、DFB19实实 验验Unity traininc course V2.0 - Module 3.D : DFB & Diagnostic DFB20实验实验步骤步骤动作动作1在 Project Browser 中双击 Derived FB Types,访问数据编辑器。2定义一个 DFB,名为 conveyor_DFB。3在 inputs 文件夹下面定义该 DFB 的输入变量: run,类型为 EBOOL box,类型为 EBOOL stop,类型为 EBOOL4在 outputs 文件夹下面定义该 DFB 的输出变量: running,类型为 EBOOL5在 public 文件夹下面定义该 D

17、FB 的公共变量: flash,类型为 EBOOL timer1,类型为 TIME counter1,类型为 UDINT reset1,类型为 BOOL6在 Sections 文件夹下面定义该 DFB 的代码段: 名称为 conveyor_control,使用 LD 语言进行编程。n DFB 的创建及调用Unity traininc course V2.0 - Module 3.D : DFB & Diagnostic DFB21步骤步骤动作动作7双击 Conveyor_control,进入 LD 编程界面。8在主任务的代码段中打开前面编写好的 Conveyor 代码段,选中(Edit - Select All)所有的控制代码进行复制(Edit - Copy),然后在 Conveyor_control 代码段中进行粘贴 (Edit - Paste)。9回到数据编辑器,右键 Conveyor_DFB,选择 Analyze Type 对先前定义的DFB作类型分析。如有错误或者警告,双击输出窗口中的信息行对相应的代码进行修改,之后重新进行 Analyze Type 的操作,直到代码正确无误为止。10在主任务当中新建一个代码段,名为 conveyor_fbd,选用 FBD 语言进行编程。11双击 conveyor_fbd,访问 FBD 语言编辑界面。12在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论