[西门子] S7-300的n个常见问题解答之二

[复制链接]
查看2269 | 回复6 | 2006-3-27 01:15:00 | 显示全部楼层 |阅读模式

21:CPU全面复位后哪些设置会保留下来?

复位CPU时,内存没有被完全删除。整个主内存被完全删除了,但加载内存中数据,以及保存在Flash-EPROM存储卡(MC)或微存储卡(MMC)上的数据,则会全部保留下来。除了加载内存以外,计时器(CPU 312 IFM除外)和诊断缓冲也被保留。具有MPI接口或一个组合MPI/DP接口的CPU只在全部复位之前保留接口所采用的当前地址和波特率。另一方面,另一个PROFIBUS地址也被完全删除,不能再访问。

重要事项:重新设置PG/PC之后,与CPU之间的通讯只能通过MPI或MPI/DP接口来建立。

22:为什么不能通过MPI在线访问CPU?

如果在CPU上已经更改了MPI参数,请检查硬件配置。可以将这些值与在"Set PG/PC interface"下的参数进行比较,看是否有不一致。

或者可以这样做:打开一个新的项目,创建一个新的硬件组态。在CPU的MPI接口的属性中为地址和传送速度设置各自的值。将"空"项目写入存储卡中。把该存储卡插入到CPU 然后重新打开CPU的电压,将位于存储卡上的设置传送到CPU。现在已经传送了MPI接口的当前设置,并且像这样的话,只要接口没有故障就可以建立连接。 这个方法适用于所有具有存储卡接口的S7-CPU。

23:错误OB的用途是什么?

如果发生一个所描述的错误(见文件1),则将调用并处理相应OB。如果没有加载该OB,则CPU进入STOP(例外:OB70、72、7 3和81)

S7-CPU可以识别两类错误:

1)同步错误: 这些错误在处理特定操作的过程中被触发,并且可以归因于用户程序的特定部分。

2)异步错误: 这些错误不能直接归因于运行中的程序。这些错误包括优先级类的错误,自动化系统中的错误(故障模块)或者冗余的错误。

24:在DP从站或CPU315-2DP型主站里应该编程哪些“故障 OBs”?

在组态一个作为从站的CPU315-2DP站时,必须在STEP7程序中编程下列OB以便评估分布式I/O类型的错误信息:

OB 82 诊断中断 OB 、OB 86 子机架故障 OB 、OB 122 I/O 访问出错

1)诊断OB82:如果一个支持诊断,并且已经对其释放了诊断中断的模块识别出一个错误,它既对进入事件也对外出的事件向 CPU 发出一个诊断中断的请求。操作系统然后调用 OB82。在 OB82 自己的局部变量里包含有有缺陷模块的逻辑基地址和 4 个字节的诊断数据。如果你还没有编程 OB82, 则 CPU 进入“停止”模式。你可以阻断或延迟诊断中断 OB ,并通过 SFC 39 - 42 重新释放它。

2)子机架故障OB86:如果识别出一个 DP 主站系统或一个分布式 I/O 站有故障(既对进入事件也对外出的事件),该 CPU 的操作系统就调用 OB 86 。如果没有编程 OB 86 但出现了这样一个错误, CPU 就进入“停止”模式。你可以阻断或延迟 OB86 并通过 SFC 39 - 42 重新释放它。

3)I/O 访问出错OB122:当访问一个模块的数据时出错,该CPU的操作系统就调用OB 122。比方说,CPU在存取一个单个模块的数据时识别出一个读错误,那么操作系统就调用OB 122。该OB 122以与中断块有相同的优先级类别运行。如果没有编程OB 122,那么CPU由“运行”模式改为“停止”模式。

25:为什么在某些情况下,保留区会被重写?

在STEP 7的硬件组态中,可以把几个操作数区定义为“保留区”。这样可以在掉电以后,即使没有备份电池的话,仍能保持这些区域中的内容。如果定义一个块为 “保留块”,而它在 CPU 中不存在或只是临时安装过,那么这些区域的部分内容会被重写。在电源接通/断开之后,其他内容会在相关区里找到。

26:为何不能把闪存卡的内容加载入S7 300 CPU?

你的项目在闪存卡上。现在要用它加载 S7 300 。但加载结束后发现 CPU 的 RAM 中仍是空的。 出现此问题的原因是你的程序里有无法处理的,"错误的"组织块(比如说, OB86 没有 DP 接口)。 在重新设置和重新启动 CPU 后, RAM 仍是空的。 诊断缓冲区对这个"无法加载"的块会提示一些信息。

27:当把 CPU315-2DP 作为从站,把 CPU315-2DP 作为主站时的诊断地址

在组态一个 CPU315-2DP 站时,你使用 S7 工具 “H/W CONFIG” 来分配诊断地址。如果发生一个故障,这些诊断地址被加入诊断 OB 的变量 “OB82_MDL_ADDR” 里。 你可在 OB82 里分析此变量,确定有故障的站并作出相应的反应。

下面是如何分配诊断地址的例子:

第 1 步: 通过 CPU315-2DP 组态从站并赋予一个诊断地址,比如 422。

第 2 步: 通过 CPU315-2DP 组态主站

第 3 步: 把组态好的从站链接到主站并赋予一个诊断地址,比如 1022。

28:需要为S7-300 CPU的DP从站接口作何种设置,才可以使用它来进行路由选择?

如果使用CPU作为I-Slave,并且该CPU也起S7 路由器的作用,那么请注意如下事项:

用于路由选择的从站的DP接口必须设置为活动状态。这可以在HW Config中完成:在DP接口的属性对话框中,选项" Commissioning/Test operation"或"Programming, status/modify..."必须激活。关于这些设置的注意事项可以在下表中获得。

对于S7 路由连接,有 4 种可用的连接资源-与其它任何连接资源无关。没有使用PG/OP的连接资源或S7基本通信。

如果必须通过DP接口来建立一个与位于其机架上的通信伙伴连接时(如在 CP 343-1 中),也要使用一个路由连接。而对于通过MPI接口与一个位于其机架上的通信伙伴的连接,则不使用路由连接资源,因为在这种情况下,能够直接到达伙伴。注意事项:这不适用于CPU 318。

29:为什么当使用S7-300 CPU的内部运行时间表时,没有任何返回值?

当对CPU 312IFM到316-2DP参数化系统功能块 SFC2, SFC3 和 SFC4 时,为一个运行时间表规定了一个大于 "B#16#0"的标识符,那么将出错并且所需的功能也无法用。 此种情况下,将在块的" RETVAL"输出处输出标识符 "8080h" 。

说明:对于这些 CPU,只有一个计时器可用。因此你应该只用标识符 "B#16#0"。 在一个周期块(OB1, OB35)里一定不能调用系统功能 SFC2 "SET_RTM",而是应该在重启动OB(OB100)调用它。你也可以通过外部触发器来启动该块。不然的话,该块将老是复位运行计时表,永远完成不了计数。

30:变量是如何储存在临时局部数据中的?

L 堆栈永远以地址“0”开始。 在 L 堆栈中,会为每个数据块保留相同个数的字节,作为存放每个块所拥有的静态或局部数据。

当某个块终止时,那么它的空间随之也被重新释放出来。 指针总是指向当前打开块的第一个字节。
honghaibo | 2007-5-27 16:24:00 | 显示全部楼层

好帖啊

honghaibo | 2007-5-27 16:27:00 | 显示全部楼层

收益非浅

quiq2008 | 2007-6-13 13:25:00 | 显示全部楼层

学习一下

anney1201 | 2007-9-14 19:17:00 | 显示全部楼层

??:(docsky)S7-300?n?????????

x先拷下来,等下好好看,先谢谢了
swqa1549 | 2013-1-25 01:30:27 | 显示全部楼层
好东西啊,怎么从31直接跳到后面的41了,谢谢了
星空一点roy | 2013-3-12 19:01:31 | 显示全部楼层
谢谢楼主分享!
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则