240 likes | 397 Views
第十一章 诊断 & 调试功能. 调试程序. 为缩短调试和执行时间 , Unity Pro 提供以下服务 : 程序动态仿真 在程序元素中插入断点 在单步模式下执行程序,包括 Step into,Step out 和 Step over 调用堆栈获得完整的程序路径 通过使用动态数据表或集成操作屏进行输入和输出. 动态仿真. 布尔和模拟变量直接在 程序编辑器中 ( 绿色 , 红色或黄色 ) 进行 仿真 变量窗口 在当前激活的编辑器窗口中显示变量. 显示框.
E N D
调试程序 • 为缩短调试和执行时间, Unity Pro提供以下服务 : • 程序动态仿真 • 在程序元素中插入断点 • 在单步模式下执行程序,包括Step into,Step out和Step over • 调用堆栈获得完整的程序路径 • 通过使用动态数据表或集成操作屏进行输入和输出
动态仿真 • 布尔和模拟变量直接在程序编辑器中 (绿色, 红色或黄色)进行仿真 • 变量窗口在当前激活的编辑器窗口中显示变量
显示框 • 监视窗口 (1) : 与一个变量关联,显示其数值. 窗口颜色根据由数值与最小值和最大值比较的结果来决定(黄色, 蓝色或紫红色) • 工具提示 (2) : 当光标移动到模拟变量上时显示其数值
动态数据表 • 修改变量数值 • 修改模拟量的显示格式 (二进制, 十六进制,...) • 强置布尔变量 • 把动态数据表与程序选定部分相关联, 可以使用菜单 Services/ Initialize Animation Table.
断点 插入 / 删除 断点 断点 • 停止任务执行,监测代码特性和变量数值 • 断点不能用于事件任务中 • 断点可以在所有程序中设定 (新断点或观察点的创建会删除以前的断点或观察点)
观察点 插入 / 删除 观察点 观察点 • 观察点可以在程序执行到观察点所在的程序行时监测变量的值,而不是在扫描周期的末尾 • 观察点不能设置在事件任务中 • 整个程序中只能设置一个观察点 (新观察点的创建就删除了前面的断点或观察点)
观察点 (续) 指示观察点同步 仿真表同步 • 动态数据表可以与观察点相同步 • 计数器给出刷新次数
单步执行命令 到达断点 单步执行 (LD/ST/IL/FBD) • 单步执行是一步一步地执行程序元素 • 单步模式由预先设定的断点触发 • 单步模式下可以使用3 个命令操作: Step Over, Step Into 和 Step Out • 单步模式停止相应任务
Go Step Over Step Into Step Out 单步命令 Show Current Step • Go执行代码直到断点 (一个周期一个周期地) • Step over将当前元素当作一个整体执行 • Step into进入当前元素代码 • Step out跳出当前元素代码 • Show Current Step显示当前步
单步执行 (SFC) • SFC 段的步执行中包括单步执行方式 • 单步模式首先要设定断点 • 使用 SFC Animation Panel工具调试 SFC 段 (图形) 并在单步模式下运行 • Step Into命令不能用 • 单步模式不能停止任务但能冻结相应的图形 • SFC 仿真屏不能用于宏步调试 单步命令
Call stack 调用堆栈 • 从当前步显示所调用堆栈. 在多个Step Into命令例子中, 这个选项可以看到从第一个断点到当前步的整个路径
交叉引用 • 使用交叉引用工具可以知道变量在应用程序中的使用情况
PLC 调试屏幕 • 查看程序任务的状态,执行与任务相关的命令 • 调整实时时钟 • 项目和 PLC 处理器的信息
模块故障报告 通过以下方式报告故障: • 在机架的配置屏幕中显示故障(红色方框) • 在故障模块或通道的相关屏幕中显示故障 (红色方框和故障列表) • 使用特定语言对象 (故障位和状态字)
集成诊断选项 • 使用Project Settings窗口, 选择 Application / System diagnostics,以便在诊断观察器中显示错误信息 • 选择错误信息显示的语言 • 选择是否显示引起错误的原因 (Application level)
诊断结构 集成 诊断 检测 记忆到 诊断缓冲区 在诊断 观测器中查看
系统诊断 • 系统自动诊断 (无须编程) • 所有系统错误由PLC识别并保存 • 由 Unity Pro 软件发布错误信息 • 系统诊断缺省使用系统位和字的报警信息
用于系统诊断的语言对象 • 高级诊断特性,由Unity Pro软件提供,PLC的状态了然于心! • 公共系统位、系统字,同时适用于Quantum 和Premium/Atrium平台 - %s0(冷启), %s1(热启), %s10(I/O错), %s11(看门狗溢出), %s18(算术运算溢出), %s68(电池故障), %s120(DIO总线故障)…… - %sw0(主任务扫描周期), %sw17(浮点运算错误原因), %sw30(主任务执行时间), %sw54~%sw58(上次停机的原因和日期), %sw90(每个扫描周期处理的TCP/IP请求的数量) %sw125(最新检测到的错误代码) …… • Quantum 平台特有的系统字(从此无需调用功能块!) - %sw60~%sw63(热备命令字、状态字、传输字) - %sw180~%sw339(本地机架及远程机架上每个模块的运行状态) - %sw341~%sw404(第一路DIO总线每个站每个模块的运行状态) -…… • Premium/Atrium 平台特有的系统字 - %sw128~%sw143(故障的fipio连接点), - %sw160~%sw167(8个Premium机架上每个模块的运行状态) - ……
过程诊断 • 过程诊断使用诊断 EFB / DFB • 直接集成SFC 诊断 • 步时间错误 • 转换条件错误 • Diagnostic EFB (Premium 和 Quantum 平台) • D_ACT : 扩展的锁定和动作诊断 • D_DYN : 扩展的动态诊断 • D_GRP : 扩展的信号组监视 • D_LOCK : 扩展的锁定诊断,带反射输入 • D_PRE : 扩展的对过程需求的监控 • D_REA : 扩展的反射诊断
过程诊断 (续) • Diagnostic DFB (只用于 Premium 平台) • ALRM_DIA : 与诊断缓冲区的接口 • A2SI_DIA : 监控 AS-i V2 总线 • ASI_DIA : 监控AS-i 总线 • EV_DIA : 事件监控 • MV_DIA : 运动监控 • NEPO_DIA : 运转部分的命令和诊断 • TEPO_DIA :运转部分的命令和诊断 • 用户诊断 DFB • 可以创建自己的具有诊断功能的 DFB
诊断观察器 1 2 • (1) 错误信息列表 (列可以配置) • 检测到故障的系统位或诊断DFB 类型 • 错误信息 • 与故障相关的变量名 • 故障出现/消失的日期和时间 • 故障确认日期和时间 • (2) 选定信息的辅助信息 • 双击消息行显示故障程序
故障案例诊断 %SW58 -- 770 %SW124 -- 0 %SW125 -- -8528 %SW126 -- 4 %SW127 -- 250 %SW128 -- 3072 %S15 -- 0 %S18 -- 1 %S20 -- 0 %S78 -- 0 %SW17 -- 5