270 likes | 394 Views
第六章 应用程序结构. 概述. 应用管理 单站多实例软件 完整的应用程序保存在单一文件中 (*. STU) 版本号管理 软件结构 任务 (单任务或多任务, ....) 程序段和子程序 功能组件 导入 / 导出程序源文件 部分或全部 (一个或更多程序段, 整个应用, ...) 保护 部分或全部 (一个或更多程序段, 整个应用, ...) 程序分析. 软件结构. 不同任务 单个任务 : 主任务 ( MAST) 多任务 : MAST + 快速任务 ( FAST) + 辅助任务 ( AUX) 事件任务 : EVT 或 TIMER 执行模式
E N D
第六章 应用程序结构
概述 • 应用管理 • 单站多实例软件 • 完整的应用程序保存在单一文件中 (*.STU) • 版本号管理 • 软件结构 • 任务 (单任务或多任务, ....) • 程序段和子程序 • 功能组件 • 导入 / 导出程序源文件 • 部分或全部 (一个或更多程序段, 整个应用, ...) • 保护 • 部分或全部 (一个或更多程序段, 整个应用, ...) • 程序分析
软件结构 • 不同任务 • 单个任务 : 主任务 (MAST) • 多任务 : MAST + 快速任务 (FAST) + 辅助任务 (AUX) • 事件任务 : EVT 或 TIMER • 执行模式 • 循环执行 • 周期执行 • 程序段 • 任务被组织为多个程序段 • 子程序 - SR • 在 MAST, FAST 和 AUX 任务当中 , 程序段可以调用子程序
任务 • MAST : 主任务 • 由程序段 & 子程序组成 • 使用 LD, FBD, IL, ST 或 SFC编程 • 循环或周期扫描(0..255 ms, 0 = 循环操作) • 由看门狗,系统位或字控制 • FAST : 快速任务 • 由程序段 & 子程序组成 • 使用 LD, FBD, IL, ST编程 • 周期执行 (1..255 ms) • 由看门狗,系统位或字控制
任务 (续) • EVT 或 TIMER : 事件任务 • 减少应用程序对输入/输出模块,时间定时器事件的响应时间 • 单个程序段,可使用 LD, FBD, IL, ST语言编程 • EVTi : 事件来自输入/输出模块 • TIMERi : 事件来自定时器 (ITCNTRL 功能) • AUX : 辅助任务 • 用于较慢的任务处理 • 可以编写最多4个辅助任务程序 (AUX0 至 AUX3) ,在 Premium TSX P57 5•• 和 Quantum 140 CPU 6•••• 上 • 由程序段 & 子程序组成 • 使用 LD, FBD, IL, ST编程 • 周期执行 (从10 ms 至 2.55 s)
程序处理 程序处理 读输入 写输出 写输出 读输入 循环 n 循环 n+1 程序处理 程序处理 读输入 写输出 写输出 读输入 S.P. S.P. 周期 周期 执行模式 • 循环 S.P. = 系统处理 ( 保持) • 周期
事件任务 辅助任务 快速任务 主任务 多任务 • 多任务 = MAST 和 (FAST 或 EVT 或 AUX) • 任务的优先级
多任务 (续) • 执行 • 举例:循环主任务, 周期快速任务 (周期 = 20 ms)
操作模式 • 新建任务 • 选择 “Task” 文件夹 • 右击 => New Task • 选择类型 (快速或辅助任务) • 选择周期和看门狗 • 点击OK确认所有输入 注 : 如果使用 AUX 任务, MAST 任务 必须是周期的
程序段 • 每个任务可以由许多程序段组成 • 无限制 • 与程序段相关联的属性 • 名称 : 最多 32 个字符 • 语言 : LD, FBD, IL, ST 或 SFC • 相关任务 : Mast, Fast, Event, Aux, SR • 条件 (可选) : 有效位执行, 直接配置 • 注释 : 最多 256 个字符 • 保护 : 写保护, 读/写保护 • 程序段的执行顺序 : • 按在浏览器中显示的顺序执行
操作模式 • 新建程序段 • 选择 “section” 文件夹 • 右击 => New Section • 输入参数 • 点击OK确认所有输入 • 应用 • 导入一个程序段 • 导出一个程序段 (选择要导出的程序段) • 删除一个程序段 (选择要删除的程序段)
子程序 • 单独编程, 可以使用LD, IL, ST, FBD编程 • 可以被程序程序段或另一个子程序调用 • 嵌套层数限制为 8. 子程序不能调用自己 (不能递归). • 程序段不能调用属于其它任务的子程序
功能视图 • PLC 项目的结构按照实际过程的结构进行组织: • 功能组件的树状结构 • 多任务管理简化编程环境 • 创建模块化应用 • 提高程序重用性 • 组件导入/导出服务, 变量的重新分配
功能组件 程序段 EFBs & DFBs 基本指令 原则 • 对功能分析的“直接翻译” • 可重复使用和嵌套不同的组件 • 使用程序段构建 • PLC 程序的基本组件 • LD, IL, ST, FBD 或带宏步的 SFC • 使用指令, EFB, DFB的功能库 • 用户功能块-封装程序 • I/O 接口可以参数化 • 使用非定位变量: 公共和私有 • 使用 LD, ST, IL, FBD 编写代码 • 基本和标准指令
功能视图 • Station Functional文件夹允许 : • 访问, 创建或删除功能组件 • 导出或导入整个项目 • 访问项目属性 • 保护项目 • 功能组件文件夹包括 : • 程序文件夹由一个或几个程序段组成 • 仿真表文件夹由一个或几个仿真表组成 • 操作屏文件夹由一个或几个操作屏组成 • 更低层次的功能组件
创建功能模块 • 创建 • 直接 • 通过导入 • 创建新的功能组件 • 添加/创建程序段, 事件, 流程图, 表格或屏幕 • 例 1 : 程序段, 事件或流程图已经存在结构视图中 简单拖拽,在功能组件上放置程序段 • 例 2 : 程序段, 事件或流程图在结构视图中不存在 当从功能视图中创建程序段时 : 相关任务必须在创建程序段的时候指定
管理 • 移动功能组件 (简单拖拽移动功能组件) • 分离功能组件 (断开功能模块与相关对象 (程序, 表格, 屏幕)之间的联系) • 删除一个或多个功能组件 • 不删除关联的代码段和仿真表 • 删除关联的代码段和仿真表 • 导入 / 导出功能组件 • 不重新分配 • 使用导入向导重新分配 • 保护功能组件中的程序段 • 激活功能组件中的程序段条件 (强置 0, 强置 1, 强置取消)
导入/导出功能 • 导出功能 • 复制文件, 项目程序的部分或全部 • 生成的文件包括未受保护数据和受保护数据的引用 • 由扩展文件决定的导出类型 (举例 : *.XDB 导出 DFB 类型, 等.) • 导入功能 • 获取已有项目程序的部分或全部 • 应用前自动存储 • 冲突管理 (如果在导入时,元素已经存在) • 导入之后必须进行代码分析
导出操作 • 通过对话框 • 选择导出单元 • 右击 => Export • 选择文件夹和文件名 • 如果有选择, 选择同时导出 • 点击 Export 确认 • 注 : • 有读/写保护的程序段不能导出. • 受保护的 DFB 可以导出,但导出文件 *.XDF 被加密.
导入操作 • 通过对话框 • 选择导入单元的位置 • 右击 => Import • 保存应用 • 选择文件夹和要导入的文件 • 选择是否使用导入向导 • 点击Import确认 • 注 : • 导入整个应用程序, 打开并选择 *.XEF 文件 • 选择使用导入向导
冲突管理 • 导入错误报告对话框 (如果元素已经存在) • 变量管理 : • 保持全部 • 替换全部 • 重命名 : 双击一个单元的Rename 列
向导 • 在导入期间, 可以使用助手以方便元素进行重新指定 • 选中导入选项 “with wizard" • 每种元素类型有一个选项卡 (DDT, DFB, 变量, 程序段, 子程序, 事件) • 通用命令 • 查找和替换 (可以替换字符串) • 调用和保存
1 – 右击并选择属性 2 – 使保护有效 3 – 输入密码 全局保护 • 激活程序段的全局保护
2 – 选择保护 : 只读读/写 1 – 右击并选择程序段的属性 程序段保护 • 保护程序段 (在全局保护已激活的前提下)
分析应用项目 • 允许检测每个应用程序修改后产生的错误 • 在输出窗口自动显示在分析时检测到的所有类型的错误 • 在输出窗口出现消息,允许你通过双击直接访问出现错误的程序部分
创建 • 下拉菜单 “Build” 可以用于生成项目 • Rebuild All Project • 创建可以下载至PLC或PLC仿真器的文件 • Build Project • 对现有项目的改变进行生成 输出窗口