S7-300 - 400常见问题 下载本文

第一章 S7-300常见问题 1.1 CPU

1.1.1

为什么在硬件配置中添加CP或者FM模块后SIMATIC S7-300 CPU不能再进入RUN模式?

故障描述:

在下面的过程将导致SIMATIC S7-300 CPU 无法正常运行。 操作步骤:

1、 通过添加CP或者FM模块扩展了实际的SIMATIC站。

2、在STEP 7 中根据新添加的模块对硬件配置进行相应的更改。 3、在CPU的STOP状态下将改变的配置信息下载到CPU。 4、将CPU切换到RUN模式。

5、然而,CPU仍保持在STOP状态并且产生如下的状态和诊断信号:

红色的LED SF点亮(校验代码错误)

诊断缓冲区内容如下:

Event ID 16# 49A0

STOP because of parameter error or impermissible difference between setpoint and actual configuration: start blocked.

Event ID 16# 5962

Parameter error with start inhibition in party line/K bus parameters, error type: I/O bus not OK, i.e. a module does not enter a type ID within the module monitoring time.

下列标准CPU受此行为影响:

Standard CPU 订货号(MLFB) CPU 315-2 PN/DP CPU 317-2 DP CPU 317-2 PN/DP 6ES7 315-2EG10-0AB0 6ES7 317-2AJ10-0AB0 6ES7 317-2EJ10-0AB0 所有带 K总线的模块都会发生此问题,例如带有Ethernet、PROFIBUS通讯口的CP和FM353,FM354,FM357功能模块。

原因:

K总线组态只有在系统上电和完全复位时进行检测。当仅把系统数据下载到SIMATIC站时并不进行此项检测,因此这种情况下使用K总线的组态模块不能被CPU访问。

补救措施:

? ? ?

重新启动电源

整机复位(系统数据从MMC载入到RAM)

离线下载组态(例如通过PG)到MMC并将其插入到CPU

注意事项:

上述情况也会影响SIMATIC S7-300F CPU和SIMATIC S7-300 T-CPU 。

下列F 和Technology 的CPU也受此情况影响:

F CPU CPU 315F-2 PN/DP CPU 317F-2 DP CPU 317F-2 PN/DP 订货号(MLFB) 6ES7315-2FH10-0AB0 6ES7 317-6FF00-0AB0 6ES7317-2FJ10-0AB0

Technology CPU 订货号(MLFB) CPU 315T-2 DP CPU 317T-2 DP 6ES7315-6TG10-0AB0 6ES7317-6TJ10-0AB0

1.1.2 为什么即使没有检测到总线故障时支持PROFINET的 CPU S7-315/317-2PN/DP V2.3的LED BF2也亮?

描述:

LED BF2不仅在发生明显的总线故障时(没有到子网/交换机的物理连接)时亮起(持续的),而且在已组态的PROFINET IO系统中连接了不支持100M全双工模式的IO或CBA节点,或者该IO或CBA节点并没有在系统中被组态时LED BF2也会亮起。(持续的)。

很多情况下PROFINET连接专门用作CBA接口(例如到HMI或主机系统的通信)或用作编程接口。如果是这种情况,应在硬件配置中删除(图1)或至少断开(图2)已存在的PROFINET IO系统。这样可避免BF2 LED灯亮。

图1

图2

在按照上述描述更改时,确保接口保持在“Networked:yes”状态。(图3)

图3

1.1.3 为什么即使在无DP组态下载到CPU中,CPU 315-2 DP (6ES7 315-2AF0x-0AB0;x = 0,1,2)上的“SF DP”LED灯也点亮?

描述:

在CPU整机复位后“SF DP”LED灯点亮。

只要没有PROFIBUS DP组态被下载到CPU中,CPU的DP部分就不启动。 启动时CPU的操作系统会初始化“SF DP”LED灯。CPU的诊断缓冲区没有这一操作的记录条目。

补救措施:

在硬件配置中为CPU组态一个DP主站系统,并将此组态下载到CPU中。 只要DP组态在CPU中存在,“SF DP”LED灯就不再点亮。

1.1.4 为什么SIMATIC S7-300 CPU在出现错误16#4548“Stop by I/O administration”时进入STOP状态

描述:

错误状态16#4548“Stop by I/O administration”发生在下列情况:

? 扩展机架无法被识别。

? 因CP断开(丢失负载电源),系统总线不再起作用。

大多数偶发错误是由扩展设备的接口模块IM361或CP的电源中的电压波动引起的。原因可能是输出模块的切换操作,输出模块的负载由IM模块或CP的同一电压供给 。当CPU本身未受电压波动影响时就会看到此错误,并因此无法诊断出此错误。 补救措施:

输出模块的负载电源单独供电。

1.1.5 怎样格式化或复位SIMATIC S7-300 CPU的MMC卡(微存储卡)

说明:

用户不能格式化MMC卡。只能是“复位”MMC卡,这会删除所有用户数据。按以下步骤进行:

1. MMC卡插在CPU的插槽中。CPU要求整机复位(STOP LED灯慢闪烁)。

2. 将模式转换开关扳到MRES位置,并在此位置保持(大约9秒)直到STOP LED灯持续亮。

3. 在接下来的3秒钟内必须将转换开关松开回到STOP模式位置,并再次扳到MRES位置。STOP LED灯在删除过程中闪烁。

如果MMC卡在以上描述的步骤完成后仍继续请求整机复位,则该卡有故障。

注意事项:

如果MMC卡包含的数据对CPU无效,就只可能对它进行复位。另外MMC卡只能由上述步骤初始化。 警告:

不要将MMC卡用于非SIMATIC产品并不要使用第三方设备格式化它。这可能覆写MMC卡的内部结构且无法恢复。这样会导致此MMC卡不能被SIMATIC CPU 识别/接受并无法再在SIMATIC设备中使用。

1.1.6 哪些设备不通过CPU 可以对SIMATIC S7-300 MMC卡进行读写操作

设备注意事项:

S7-300的MMC卡在CPU外只能由以下设备读或写:

? ? ?

Field PG Power PG

用于PG 720或PG 740的MMC编程适配器(MLFB 6ES7798-0BA00-0XA0)

?

USB编程器(MLFB 6ES7792-0AA00-0XA0)。

警告:

不要将MMC卡用于非SIMATIC产品并不要使用第三方设备格式化它。这可能覆写MMC卡的内部结构且无法恢复。这样会导致此MMC卡不能被SIMATIC CPU 识别/接受并无法再在SIMATIC设备中使用。

1.1.7 不使用PG的情况下将用户程序从装载存储区复制到主存储区中 说明:

当装载有用户程序的存储器卡插入到CPU中时,CPU将运行系统相关的程序部分复制到主存储区中:

? ? ?

插入存储卡。 进行完全复位。

CPU将程序的运行系统相关部分从装载内存复制到主存储区中,并初始化主存储区中的数据块(它们的初始值被复位)。

这一过程不需要PG。当同一CPU 在不同的时间段运行储存在不同的存储卡上的用户程序时可以采用这种操作。 注意事项:

? 只要CPU在操作状态,特别是在RUN状态,存储卡必须保持插入。

即使在没有缓冲的“掉电”之后,CPU也可将程序从装载内存传送到工作存储区(同样,即使在“掉电”过程中电池电压低时也可以)。

1.1.8 能否将属于项目或系统的其它文件存储到内存卡/MMC上 说明:

可在MC/MMC上存储任何与系统相关的文件。 按以下步骤进行:

? ? ? ?

将内存卡或MMC卡插入PG。 打开SIMATIC管理器。

进入“File > S7 Memory Card > Open”。 然后进入“PLC > Save to Memory Card...”。

图 1:SIMATIC管理器-S7内存卡

在左侧的文件浏览器中选择所需文件并通过“-->”按钮指定保存。

图 2:文件选择

? ? ? ?

如果想从选择中删除文件,请使用“<--”按钮。

以“OK”按钮确认,保存所选择的数据到内存卡或MMC卡。 一旦数据成功保存会收到确认信息。

然后就可在“S7 memory card”窗口中看到被传送的数据。

图 3:内存卡数据视图

注意事项:

只能对S7-300 MMC卡和S7-400的Flash EPROM卡执行此功能,这些卡的订货号可见目录ST 70,CA 01和下表。

MMC/S7-300 64 K字节 128 K字节 512 K字节 2 M字节 4 M字节 8 M字节 内存卡FEPROM/S7-400 64 K字节 256 K字节 1 M字节 2 M字节 4 M字节 8 M字节 16 M字节 32 M字节 64 M字节 订货号 6ES7 953-8LF11-0AA0 6ES7 953-8LG11-0AA0 6ES7 953-8LJ11-0AA0 6ES7 953-8LL11-0AA0 6ES7 953-8LM11-0AA0 6ES7 953-8LP11-0AA0 订货号 6ES7 952-0KF00-0AA0 6ES7 952-0KH00-0AA0 6ES7 952-1KK00-0AA0 6ES7 952-1KL00-0AA0 6ES7 952-1KM00-0AA0 6ES7 952-1KP00-0AA0 6ES7 952-1KS00-0AA0 6ES7 952-1KT00-0AA0 6ES7 952-1KY00-0AA0

1.1.9 S7-400:当Flash EPROM插入到CPU时,如何将用户程序保存到Flash EPROM

说明:

按以下步骤可以实现把用户程序下载到Flash卡:

? ? ? ?

将CPU的模式选择器切换到STOP位置。 将Flash卡插入到CPU中(或存储卡已插入)。 进行CPU的整机复位。 在STEP 7中下载用户程序:

o 在项目中点击 “Blocks”。

o 通过“PLC” -> “Load user program to memory card”可将程序保存到存储卡中。

使用Flash 卡只能重新装载整个用户程序。

或者:

在编程设备/编程适配器离线模式下将用户程序下载到Flash卡中,然后将Flash卡插入到 CPU中。

1.1.10 如何从装载内存中备份程序 说明:

对带有集成EPROM的CPU,可以将装载内存的内容复制到集成EPROM中,以确保在没有后备电池的情况下发生电源故障或存储器复位时数据不丢失。 按以下步骤进行:

1. 将CPU设置为STOP模式。

2. 通过“View > Online”来打开已打开的项目的在线窗口。

或通过点击工具条上的“Accessible Nodes”按钮,或选择菜单命令“PLC > Display accessible nodes”来调用“Accessible Nodes窗口。

3. 在项目窗口的在线视图中,选择S7或M7程序或在“Contactable stations”窗口中选择站。 4. 选择菜单命令“PLC > Copy RAM to ROM”。 5. RAM内存中的内容就被复制到集成EPROM中。

对以下CPU有效

CPU类型 CPU 312 IFM CPU 314 IFM C7-621 C7-621 ASI C7-623/P C7-624/P C7-624 C7-626/P C7-626/P DP 订货号 6ES7 312-5ACxx-0AB0 6ES7 314-5AExx-0AB0 6ES7 621-1AD0x-0AE3 6ES7 621-6BD0x-0AE3 6ES7 623-1DE0x-0AE3 6ES7 624-1DE0x-0AE3 6ES7 624-1AE0x-0AE3 6ES7 626-1DG0x-0AE3 6ES7 626-2DG0x-0AE3 表1:带集成EPROM的CPU模块

对带有存储卡的CPU模块,可以复制装载内存的内容到存储卡以确保在电源故障或内存复位时不丢失数据。

复制内容到MC的步骤与复制到集成EPROM的步骤相同。 对以下CPU有效:

CPU类型 CPU 313 订货号 6ES7 313-1AD01-0AB0 CPU 314 CPU 314 IFM CPU 315 CPU 315-2DP CPU 316-2DP C7-633/P C7-633 DP C7-634/P C7-634 DP 6ES7 314-1AE02-0AB0 6ES7 314-5AE10-0AB0 6ES7 315-1AF01-0AB0 6ES7 315-2AF01-0AB0 6ES7 316-2AG00-0AB0 6ES7 633-1DF0x-0AE3 6ES7 633-2BF0x-0AE3 6ES7 634-1DF0x-0AE3 6ES7 634-2BF0x-0AE3 表2:带内存卡的CPU模块

对需要MMC卡的CPU,装载内存包含在MMC卡上 ,它的大小正好与MMC卡的大小相同。当程序存储到MMC卡上时就不会受电源故障和存储器复位的影响。 程序是一直保留在装载内存(MMC)中的! 对以下CPU有效:

CPU类型 CPU 312 CPU 312C CPU 313C CPU 313C-2PtP CPU 313C-2DP CPU 314 订货号 6ES7 312-1AD10-0AB0 6ES7 312-5BD0x-0AB0 6ES7 313-5BE0x-0AB0 6ES7 313-6BE0x-0AB0 6ES7 313-6CE0x-0AB0 6ES7 314-1AF1x-0AB0 CPU 314C-2PtP CPU 314C-2DP CPU 315-2DP CPU 315-2 PN/DP CPU 315F-2DP CPU 315T-2 DP CPU 317-2DP CPU 317-2 PN/DP CPU 317F-2DP CPU 317T-2 DP C7-613 C7-635 Keys C7-635 Touch 6ES7 314-6BF0x-0AB0 6ES7 314-6CF0x-0AB0 6ES7 315-2AG10-0AB0 6ES7315-2EG10-0AB0 6ES7 315-6FF0x-0AB0 6ES7315-6TG10-0AB0 6ES7317-2AJ10-0AB0 6ES7317-2EJ10-0AB0 6ES7317-6TJ10-0AB0 6ES7317-6TJ10-0AB0 6ES7 613-1CA0x-0AE3 6ES7 635-2EC0x-0AE3 6ES7 635-2EB0x-0AE3 表3:需要MMC卡的CPU模块

注意事项:

所有CPU的“RAM到ROM”功能只允许在“STOP”模式下执行。

1.1.11 当执行“RAM to ROM”功能时,数据块的内容会发生什么变化 描述:

当执行“Copy RAM to ROM”功能时,在带MMC卡的CPU中,数据块的实际值会作为DB的新初始值传送到装载内存(MMC)中。

如果做完全复位,与运行时间相关的块再一次从装载内存传送到主内存,可以通过这种方式备份用户数据为初始值。此时,数据块重新初始化,也就是数据块重新接收它们的初始值。

对带 有MC卡或集成的FEPROM装载内存的CPU(CPU 312 IFM,314 IFM),当执行“RAM to ROM”功能时,数据块的实际值会从工作存储区载入到FEPROM装载内存或FEPROM内存卡。

1.1.12 S7-400:当插入/拔出存储卡(RAM)时应注意些什么 描述:

如果要将存储卡(RAM)插入已经运行的系统,例如扩展装载内存,要注意几个后果:

每次插拔存储卡都会要求完全复位:

o 将存储卡插入CPU。 o 必须将CPU完全复位。

o 必须将用户程序传送到CPU内存。

? ?

1.1.13 在SIMATIC S7连网的情况下,为什么使用PG调用诊断功能或传送块时,到OP的连接会掉线

描述:

每一个连接都需要给所连接的终端站点或其上的CP提供连接资源。连接资源的数量与CPU/CP的型号相关。由上述现象可知,存在资源瓶颈。甚至可能根本无法用PG进行在线。请检查实际的通信连接数量,CPU是否有足够的连接资源?

? 由于缺少连接资源而出现的OP通信问题,通常发生在老版本的SIMATIC S7-300 CPU上,一方面这些SIMATIC S7-300中的连接资源少,另一方面连接资源还不能预留给PG、OP和S7基本通信使用。此问题可能通过保留资源得到很好的解决。否则就要对CPU进行硬件升级。

1.1.14 PROFIBUS DP通信是否占用连接资源 组态注意事项:

只要数据是通过专用的装载(L)和传送(T)指令进行交换的,主站-从站系统中的PROFIBUS DP通信就不占用连接资源。DP从站的数量与连接资源无关。在保留资源时,在硬件配置

中的CPU属性对话框的“Communication”栏(在许多SIMATIC S7-300 CPU中可见)中也不需要考虑DP通信。

在所有的其它情况中,例如S7 BASIC通信,S7通信,S5-compatible通信等,它们通过通信功能块进行数据交换,就必须有可用的连接资源。

1.1.15 哪些分布式IO的故障安全信号模块可与哪些故障安全控制器结合使用

组态注意事项:

根据所用的系统,会有不同的分布式I/O信号模块可用。

SIMATIC S7-400F/FH

高可靠性的故障安全S7-400F/FH系统可通过使用ET 200M的故障安全模块和ET 200S的单通道模块进行扩展。

SIMATIC S7-400F

故障安全型的S7-400F系统可使用ET 200M,ET 200S,ET 200PRO,ET 200eco的故障安全模块以及符合PROFIsafe配置文件的故障安全标准从站进行扩展。

SIMATIC S7-300F

故障安全型CPU可主要使用ET 200M的故障安全模块进行扩展。ET 200M,ET 200S,ET 200PRO和ET 200eco模块用来进行分布式安装。同样,所有符合PROFIsafe配置文件的故障安全标准从站可通过PROFIBUS连接。

1.1.16 安装和运行使用SIMATIC S7-300F的F系统需要哪些硬件和软件组件? 组态注意事项:

建立和运行使用SIMATIC S7-300F的F系统需要下列组件:

硬件组件

硬件组件 故障安全S7 CPU 样例 CPU 315F-2DP或CPU 317F-2DP ET 200M的故障安全模块(可在中央机架或分布式从站使用) 故障安全输入/输出模块 ET 200S(包括分布式I/O的接口模块),ET 200PRO的故障安全模块。

软件组件

软件组件 STEP 7基本软件包 分布式安全选项软件包 版本 V 5.3 + SP 3 V 5.4

1.1.17 CPU 317-2 PN DP、CPU 315-2 PN DP (集成以太网接口)和CP343-1 在分配MAC地址时有什么不同

组态注意事项:

CPU 317 PN/DP和CPU 315-2 PN/DP的MAC地址是预设的,并不能在STEP 7的硬件配置中改变。

可通过“PLC > Assign Ethernet address...”确认MAC地址。

CP 343-1的MAC地址是预设的,但对有些CP而言,可根据系统需要在STEP 7的硬件配置中进行更改。 警告:

这不能应用于版本6GK7343-1CX00-0EX0 (CP343-1 Lean),6GK7343-1EX20-0XE0和6GK7343-1GX20-0XE0 (CP343-1 IT)。

1.1.18 CPU 317-2 PN DP、CPU 315-2 PN DP (集成以太网接口) 和CP343-1分别从哪个库中选取通信FB

组态注意事项:

1. 通过CPU的集成IE接口通信:

? CPU 317-2 PN/DP和CPU 315-2 PN/DP上用于S7通信的功能块由STEP 7 V5.3的标准库提供。

? 从固件版本2.x.y(例如6ES7315-2AG10-...)起,来自标准库的S7的通信块

USEND/URCV (FB8/FB9),BSEND/BRCV (FB12/FB13),GET/PUT (FB14/FB15)可在所有的SIMATIC S7-300 CPU上运行。通信功能块也适用于CP343-1。

图C2-01

2. 通过CP343-1通信

? ?

用于CP 343-1 通信的功能块位于SIMATIC_NET_CP库中。

从固件版本1.x.y(例如6ES7315-2AF03-...)起,来自SIMATIC_NET_CP的通信块USEND/URCV (FB8/FB9),BSEND/BRCV (FB12/FB13),GET/PUT (FB14/FB15)可在所有的SIMATIC S7-300 CPU上使用。这些块只适用于通过SIMATIC NET 工业以太网CP通信。

图C2-02

1.1.19 CPU 317-2 PN DP、CPU 315-2 PN DP (集成以太网接口) 和CP343-1以太网通信服务之间有什么区别 注意事项:

下表说明了CP 343-1和CPU 317-2 PN/DP及CPU 315-2 PN/DP之间以太网通信服务的区别。

CPU 317-2 CPU 315-2 以太网接口通信的范围 CP 343-1 PN/DP PN/DP 从V2.3起 PG/OP通信 S7路由 ISO传输协议 ISO-on-TCP传输协议 TCP/IP传输协议 UDP传输协议 S7通信和可装载S7通信 x x x1) x x x x6) x x - - x - x x x - - x - x PROFINET I/O通信 PROFINET非循环CBA 通信 HMI非循环CBA通信 PROFINET循环CBA通信 FTP客户端/服务器通信 E-mail客户端 HTTP通信 x5) x2)x5) x2)x5) x5) x3) x3) x3) x x4) x4) x4) - - - x x4) x4) x4) - - - 1)

只有CP343-1 (6GK7 343-1EX11-0XE0)支持ISO传输协议。

2) CP 343-1PN支持PROFINET CBA通信服务V1.2。

3) 只有CP 343-1 IT (6GK7 343-1GX20-0XE0)支持IT通信服务。

4) CPU 317-2 PN/DP从固件版本V2.2起, 及CPU 315-2 PN/DP从V2.3版本起支持V2.0版

本的PROFINET CBA通信服务。

5) 版本6GK7 343-1EX21-0XE0从V1.0起含PROFINET I/O以及从V1.1起含CBA。版本6GK7

343-1GX21-0XE0从V1.0开始含PROFINET I/O和PROFINET CBA。

6) CP 343-1 Lean (6GK7 343-1CX00-0XE0)只支持服务器功能。

1.1.20 为什么在整个系统完全掉电后恢复供电之后CPU仍然在STOP状态

描述:

包括DP主站S7-300和从站的整个系统通过主开关切断电源。通过CPU的内部电压缓冲,CPU

一般可继续运行大概50到100毫秒并且在这段时间中检测到所连接从站的故障。依赖于所用的电源单元,电压缓冲可以更长(最长500毫秒)。如果OB86或OB122没有被编程 ,CPU就由于从站丢失而进入STOP状态。

补救措施:

必须对OB86和OB122(必要时OB82)编程,必须启动定时器。定时器的值必须大于CPU的电压缓冲持续时间(也就是大于指导值100毫秒),可以通过适当的测试来确定这个值。在系统运行时出现从站故障,若定时器时间到,而且从站故障依然存在,CPU就按已编程的方式作出响应。例如由于STOP命令CPU进入STOP状态。 当系统掉电时,会启动定时器。如果选择了正确的定时器时间,那么定时器就不会超时,因为CPU在从站掉电后也会很快没有操作电压。因此CPU在RUN模式中掉电后 ,一旦电压恢复就会重新运行。 请注意在长时间电压缓冲(500ms)的情况下,可能会发生其它错误如站故障、I/O故障、时间错误、周期时间超时、缓冲溢出等 ,就会导致CPU进入STOP状态。

1.1.21 SIMATIC S7-300 400 可以在相同的时间间隔下调用循环中断吗 说明:

可以在相同的时间间隔下调用中断(OB30...OB38)。但是必须考虑下列事宜:

不同的循环中断OB若使用相同的调用周期,则应该分配不同的优先级,因为在每一个优先级下只有一个未执行的循环中断被执行。如果具有相同调用周期的循环中断OB没有相位偏移,则处理顺序只能通过设置不同的优先级来确定。但是,无法控制低优先级循环中断OB的启动时间。在高优先级OB执行完毕后立即进行低优先级程序处理,也就是说,低优先级的处理基于高优先级的处理时间。为了保证相同的调用周期,可以设置循环中断OB的相位偏移。请参考下图:

在HW Config中CPU的属性对话框内,对调用周期、相位偏移和优先级(根据CPU类型而定)进行

参数化。

1.1.22 SIMATIC S7-300 400 组态相位偏移有何作用以及何时起作用 说明:

使用相位偏移可以实现在偏移时间后继续执行带时间间隔公倍数(例如:OB35[100ms]以及OB36 [50ms])的循环中断程序。于是可以获得更为精确的时间间隔。时间间隔和相位偏移的起始点为系统从STARTUP向RUN切换的那一时刻。相应地,循环中断OB的调用时间为时间间隔加上相位偏移。下图给出两个示例:

在上面的例子中编写了两个没有相位偏移的循环中断程序(调用间隔为两倍关系)。因为低优先级的OB3y程序必须等待OB3x处理程序完成,而OB3x程序处理时间也不固定,所以OB3y组态的时间间隔就有差异(不精确)。在下面的例子中,对OB3y的相位偏移tph进行了参数化处理,时间值大于OB3x的最长处理时间。也就是说,对OB3x和OB3y的时间值进行时序分散处理,于是可以精确地保持OB3y的时间间隔。 通常情况下请遵守下列注意事项:

如果希望处理两个优先级(=两个循环中断OB)调用间隔成公倍数关系的程序,那么请遵守下列事宜:

? ?

低优先级OB3y的相位偏移应该大于高优先级OB3x的最大可能执行时间;

最大可能执行时间加上低优先级OB3y的执行时间应该小于高优先级OB3x的调用间隔。

上述两个优先级的情况也适用于多个优先级的场合。在HW Config下CPU的属性对话框中设置调用间隔、相位偏移和优先级(基于CPU情况而定)。 1.1.23 SIMATIC S7-300 400 为什么循环中断被跳过

说明: 中断程序的长度

如果在处理某个循环中断时,又来了一个相同的循环中断,此时操作系统会调用OB80,存储这个没有执行的循环中断并且在下一个合适的时候执行此循环中断(如果没有下载时间错误处理组

织块(OB80),则CPU会切换到停机STOP状态)。所以如果中断程序持续的时间与调用间隔一样长-由于中断程序不断变化-偶尔情况下循环中断OB执行的时间会大于调用间隔时间。当中断程序(由随后应该执行的循环中断触发)由于处理时间过长而覆盖了随后的两个循环中断时,就存在丢失一个循环中断的危险。由于操作系统只存储一个循环中断,所以在这种情况下就会丢失一个中断。

优先级和相位偏移参数设置不当

由于当前正在处理另外的循环中断,而这时又调用一个循环中断,该循环中断就会被跳过。使用优先级以及相位偏移可以调整程序处理时间。

? ? ?

避免在一个优先级内分配多个循环中断处理;

不要将优先级0分配给要使用的循环中断OB。如果存在其它OB,则不会执行这个循环中断;

在调用间隔内设置循环中断的相位偏移(互为公倍数关系)

禁止循环中断

检查是否在循环程序中使用SFC 39“DIS_IRT”禁止了不希望出现的循环中断。在这种情况下,操作系统既不会调用循环中断OB,也不会触发非编程循环中断OB定义的响应过程。即使使用SFC 40“EN_IRT”解除了对循环中断的禁止,也不会立即执行此循环中断。禁止循环中断的事件会影响所有的优先级。此处可以参见这两个SFC的在线帮助。 延迟循环中断

检查是否在循环程序中使用SFC 41“DIS_AIRT”延迟了不希望出现的循环中断或者中断驱动的程序,结果造成这些中断或者程序丢失。使用SFC 41“DIS_AIRT”,可以延迟处理优先级高于当前OB的循环中断OB。可以在OB中多次调用SFC 41。操作系统会计算调用SFC 41的次数,处理延迟一直有效,除非使用SFC 42“EN_AIRT”取消使用SFC 41设置的中断延迟,或者直到处理完当前OB为止。此处可以参见这两个SFC的在线帮助。

1.1.24 如果F-CPU进入STOP模式,并且在诊断缓冲区中出现“Data falsification in the safety program ...”消息时,应该怎么办 描述:

F-CPU进入STOP模式,在诊断缓冲区出现“Data corruption in the safety program before output to F I/O”消息或者“Data corruption in the safety program before output to partner F CPU”消息。

如果在安全程序中出现数据损坏或者希望避免此类问题,请按以下所述操作:

? 当对本地数据区操作时,在一个F-PB/F-FB/F-FC中,第一个对本地数据的访问必须一直是写访问。Flip-flop(SR, RS),Set output (S) 或者Reset output (R)操作不能初始化本地数据位。为了初始化,本地数据需要转换为静态变量。

请注意在F-FB/F-FC中,它的输入参数只有读访问权限,输出参数只有写访问权限。使用in/out参数进行读写访问。

? 数学运算的结果使得数值范围发生上溢或者下溢。因此应该确保在创建程序时,整数(16位)在允许的范围之内。这样可以对溢出错误位(状态字的OV位)进行评估。

? 对于故障安全接收块F_RCVDP的输出参数,不要使用在同一个F_RCVDP或者不同的F_RCVDP调用输入参数中已经使用过的参数。否则由于识别出数据有冲突,F CPU将进入STOP模式,或者会得到错误消息:“F_Receive Block xxx can only be called at the beginning of the F program block”。

? 可以通过过程映像区(PII)使用来自标准用户程序的M区或者来自标准I/O的信号实现标准程序和F程序间的通信。禁止从标准程序到故障安全程序的数据块的写访问。此规则的唯一例外是当使用块F_ACK_OP进行故障安全用户确认时。

? 在安全程序中,如果希望从标准用户程序(M区或者标准I/O的PII)中读取数据,而该数据可以通过标准用户程序或者运行着的F系统中的HMI所改变,例如由于标准用户程序要被更高优先级的时间中断处理,这就需要使用单独的M区地址。在进入F程序运行时间之前,必须立即将数据从标准用户程序写入到这些M区中。然后在安全程序中仅访问这些M区地址就可以了。

还要注意,在组态F CPU时(在硬件配置中的F CPU的对象属性对话框中),所定义的时钟标记可以在F程序运行时间内改变,因为时钟标记与F CPU周期运行不同步。

? 自动产生的程序部分不可以被更改或者删除。在硬件配置中,不能更改或者删除在“F parameters”的“CPU Properties”对话框中为F CPU保留的块。

?

不要通过“监测/控制变量”对安全程序的数据进行不合法的改变。

? 删除所有从块容器中自动生成的F-FB,F-DB和所有的背景数据库,并重新生成安全程序。

1.1.25 S7-300F S7-400F在标准程序中,如果一个或者多个故障安全输入信号跳变,该如何处理

解答:

如果输入是在标准程序和安全程序中都进行了扫描,那么你可能看到故障安全输入信号在标准程序中跳变的情况。

发生跳变是因为不仅仅在OB1的开始更新输入的过程映象表,而且当F-CALL (安全程序)被调用时也会更新过程映象表。因而输入值是在安全程序被调用之前被采集还是调用之后进行采集,将得到不同的结果。

举例:

? 自动防故障装置的输入是在标准程序的OB1中进行查询的。安全程序是在OB35中调用的。故障安全输入模块已被钝化。

? 步骤:

1. 当调用OB1时,读到的输入值为“1”。

2. 这时OB35中断OB1。F-CALL (安全程序)被调用。F I/O的过程映象表得以更

新。由于输入模块被钝化,输入值为“0”被读入安全程序中。

3. 当OB35完全处理完成后,OB1才完成——读入的输入值仍旧是“0”。输入的过

程映象表已经在F-CALL的调用时进行了更新,并且继续在OB1中被使用。 4. 下一次通过OB1调用标准程序时, 该位再次以“1”值被读入。

?

根据OB35中断OB1的不同时刻,输入可能有不同的状态。

补救措施:

为了避免该情况的发生,可以将标准程序中用到的输入传送到一个标志位,举个例子, 在F程序中或者随后直接在标准程序中访问这个标志位。 1.1.26 关于OB86(机架故障)使用时应注意的事项

问题:

当考虑到机架故障,使用OB86进行编程时应注意什么? 简答:

当检测到机架故障时,操作系统会调用OB86中断功能块。例如:

? ? ?

报告机架故障(例如: IM丢失或IM故障已及连接电缆中断), 分布式机架上的电源故障,

对于PROFIBUS-DP主从系统中,DP从站发生故障。

在S7-300和S7-400中处理故障不同:

? 在S7-300中,当中央机架出现故障时,不调用OB 86;只有分布式机架发生故障才调用它。

?

在S7-400中,非分布式或分布式机架出现故障的情况下,均调用OB 86。

1.1.27 CPU315-2DP(带集成DP口CPU)访问分布式IO数据的规则

问题:当使用CPU315-2 DP(集成的DP口)访问分步式的I/O的数据时应当注意什么? 回答:取决于CPU315-2DP的型号(6ES7 315-2AFxx-0AB0 or 6ES7 315-2AG10-0AB0),型号不一样在可获得的地址区域大小是有差别的。

Address area - user 6ES7 315-2AFxx-0AB0 data Address area / CPU In the PII/ PIQ 0 to 1023字节 0 to 127字节 0 to 2047字节 0 to 127字节 6ES7 315-2AG10-0AB0 Consistent data User data of a station

表1: CPU I/O范围

32字节 244输入字节/ 244输出字节 128字节 244输入字节/ 244输出字节 1、被访问的地址超出CPU的地址区域时,不管是用 装载(L)-传送(T)命令还是用系统功能块(SFC) 都不能够访问。

2、如果访问的地址是不连续的,在CPU315-2DP(6ES7 2AFXX-0AB0)就必须使用装载(L)-传送(T)命令, 在这种情况下不能用 SFC14 和 SFC15。

3、当被访问的数据长度小于4个字节时,可以不调用SFC14/SFC15来读写数据。

4、如果要求数据一致性,并且数据长度为 3 或大于4个字节(数据长度最大为 128个字节!决定于不同的CPU), 对于CPU315-2DP(6ES7 2AFxx-0AB0)必须用SFC14和SFC15,但不能用装载-传送命令;对于CPU315-2DP(6ES7 2AG10-0AB0),通常也用SFC14和SFC15, 也可以用装载-传送命令来读写部份连续数据。

5、如果是过程映象区的连续数据,那么对于CPU315-2DP(6ES7 2AG10-0AB0)这个连续的数据区是由过程映象传输来更新,在这种情况下没必要用SFC14/15。

连续数据 不连续 6ES7 315-2AFxx-0AB0 装载-传送命令 6ES7 315-2AG10-0AB0 装载-传送命令 也可用SFC14/15于 1、 2、4字节或1、2字或1个双字。 1字节 装载-传送命令 装载-传送命令 也可用SFC14/15 2字节 装载-传送命令 装载-传送命令 也可用SFC14/15 3字节 SFC14/15 装载-传送命令 也可用SFC14/15 4字节 装载-传送命令 装载-传送命令 也可用SFC14/15 4-128字节 SFC14/15(1) 装载-传送命令 也可用SFC14/15

(1) 对于CPU 6ES7 315-2AFxx-0AB0可以读写最多32字节的连续数据。

1.1.28 当从站无法访问时,S7-300 CPU 的启动情况 问题:

当DP从站无法访问时,PROFIBUS上S7-300 CPU的监控时间是多长?

解答:

使用CPU的PROFIBUS接口连接DP从站时,在启动期间检查配置的组态与实际的组态是否匹配。在 CPU属性对话框中的Startup选项卡上给出了两个不同的时间。

图1:CPU启动属性

S7-300 CPU等待检查所组态配置与实际配置是否有区别之后,才将参数传送到模块。此时如果有一个DP从站访问不到的情况,则CPU认为所配置的组态与实际的组态不同,则 CPU进入STOP模式。在这种情况下,只有所有的DP从站都可以被访问时,CPU才可以进入RUN模式。 1.1.29 两个CPU模块之间的数据直接交换(节点间通迅) 问题:

如何在已配置为DP从站的两个CPU模块间组态直接数据交换(节点间通信)? 解答:

两个CPU站配置为DP从站,而且属于同一个DP主站系统,它们之间的通信称为直接数据交换。在下面的样例项目中,使用了以下组态。

图1: 样例项目的组态

首先,把三个CPU站插入到STEP 7项目中,把两个从站连接到主站,然后按照以下步骤组态直接数据交换:

1. 进入DP主站的硬件配置。

2. 在第一个从站组态中,把其中至少一行组态为主-从站通信模式的数据交换。

图2: DP地址为3的CPU 315-2DP的组态

3. 至少组态一行主站为输入、从站为输出的数据交换区。该数据将被第二个DP从站“监听”.

图3: 主站-从站组态

4. 在DP主站的硬件组态中,切换到第二个DP从站的组态。

5. 如果在此输入一个新行,则系统提供两个选项,用于选择数据交换模式。为直接数据交

换选择DX模式,并指定参数.

图4: DP地址为4的CPU 315-2DP组态

6. 这使得第二个DP从站能够“监听”第一个DP从站发送到DP主站的数据。

1.1.30 访问非中央数据时的时序 问题:

集中模式和分布式模式下,CPU对I/O更新时间是否有所不同? 解答:

CPU对I/O更新时间 有所不同。出现不同是由于I/O刷新的时间不同造成的。在集中模式中,CPU可以通过背板总线直接访问I/O;在分布式模式中,无论是PROFIBUS接口模块集成于CPU中,还是使用了CP,I/O模块与中央机架分离,I/O状态将由PROFIBUS接口模块提供。

在分布式模式中,I/O更新时间长度主要取决于下面三个因素:

1. PROFIBUS从站接口刷新本站I/O的时间 2. PROFIBUS主站读取所有从站I/O数据的时间 3. CPU刷新I/O区的时间

通常这些处理过程是并行的,所以CPU每次刷新I/O的时间会有差异。这样在闭环控制中(如定位控制)可能带来问题。

通过对三个过程进行同步,可以让CPU得到本循环周期内最真实的值。但是这样就意味着时间的损失,即同步期间必须等待的时间。因此,通常这些数据不是最新的。

为了同步时间,可使用时钟同步——直接将用户程序和PROFIBUS相连。在这里,时钟同步报警(OB61-64)接受同步并中断普通用户程序,以便处理需要同步访问从站的程序部分。用户程序和外设之间的同步只适用于分布式外设。 1.1.31 释放硬件限位开关 问题:

CPU 317T:当轴超越硬件限位开关后,怎样才能使它恢复到工作范围内? 解答:

硬件限位开关被超越之后,相关的技术数据块中显示故障ErrorID 804B或8013,ErrorStatus.LimitSwitchActive” 则置位为TRUE。此种情况下,则按如下进行:

? 调用MC_Reset 且Restart = FALSE,保留所有错误消息。

? ?

将轴退离硬件限位开关位置;即使轴已经离开限位开关,所有错误信息仍将保留。 重新调用MC_Reset 且Restart = FALSE,在技术数据块中错误信息被确认并且“ ErrorStatus.LimitSwitchActive”复位。

1.1.32 技术CPU--在使用SINUMERIK ADI4模块时如何释放驱动设备 说明:

因为要技术CPU通过FB401(MC_Power)启动,驱动设备就必须发送信号显示其已准备好(ADI4输入DRVx_RDY=TRUE)。

因此驱动设备“已准备好”的信息应该连线到ADI4(DRVx_RDY)。即使在驱动设备已启动的情况下 ,此信号必须继续存在。如果信号消失,驱动设备将停止。

如果没有这一信号,也可连接24V到ADI4输入DRVx_RDY上;但是,这样做的缺点是即使驱动设备故障FB MC_Power也提供TRUE状态。

1.1.33 使用SIMATIC S7-CPU的诊断缓冲区 问题:

哪些信息被存储在SIMATIC S7-CPU的诊断缓冲区中?

解答:

系统诊断用于识别、评估和显示发生在自动化系统中的错误。为此,在每个有系统诊断能力的CPU 和模块中,都有一个包含所有诊断结果详细信息的诊断缓冲区。

? ?

作为整个系统内的唯一编号(起因) 包括错误发生的位置和时间

错误被模块的操作系统识别并用纯文本显示。历史错误也被记录,因为该错误消息将被自动存储在诊断缓冲区中。

系统诊断的基本功能包括操作系统的所有错误事件以及用户程序的程序顺序中的一些特性,它们存储在诊断缓冲区中,并带有时间,错误编号及附加的相关信息。

此外,用户可以在诊断缓冲区中输入用户自定义的诊断事件(如关于用户程序的信息),或发送用户定义的诊断结果到已连接的站中(监测设备如PG,OP,TD)。

诊断缓冲区 诊断缓冲区能够

? ?

更快地识别故障源,因而提高系统的实用性。

评估STOP之前的最近事件,并找到引起STOP的原因。

诊断缓冲区是一个带有单个诊断条目的循环缓冲区,这些诊断条目显示在事件发生序列中;第一个条目显示的是最近发生的事件。如果缓冲区已满, 最早发生的事件就会被新的条目所覆盖。根据不同的CPU,诊断缓冲区的大小或者固定,或者可以通过HW Config中通过参数进行设置。

诊断缓冲区中的条目包括:

? ? ?

故障事件

操作模式转变以及其它对用户重要的操作事件 用户定义的诊断事件(用SFC52 WR_USMSG)

在STOP模式下,在诊断缓冲区中尽量少的存储事件,以便用户能够很容易在缓冲器中找到引起STOP的原因。因此,只有当事件要求用户产生一个响应(如需要系统内存复位,电池需要充电)或必须注册重要信息(如固件更新,站故障)时,才将条目存储在诊断缓冲器中。

在STOP模式下,用户程序不被执行。因此,不存在因用户程序引发的诊断缓冲条目。

诊断缓冲区中的条目不包括:

? ? ? ?

临时性错误

统计信息或跟踪记录 关于数据或服务质量的信息 循环OB启动调用

循环发生的故障事件通常仅在第一次输入,在此之后,只有当引起错误的原因被识别后才输入。这确保溢出不会覆盖重要的条目。通过在线帮助,用户可以分析诊断缓冲条目,并找到可能的原因以及事件的补救措施。 诊断缓冲区的合理评估

诊断缓冲区的综合分析一般是通过诊断工具-如S7 系统诊断来完成。可以通过诊断缓冲区找到有问题的用户程序,但需要注意,仅凭此来推断控制器对用户程序的响应是不合适的。 1.1.34 CPU完全复位后保留下来的设置 问题:

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

当完全复位时,CPU内存没有被完全删除。而是整个系统内存被完全删除了,但装载内存如MC卡或微存储卡(MMC)中数据仍然会全部保留下来。除了装载内存以外,CPU的运行时钟和诊断缓冲器中的数据也被保留。

具有MPI接口或一个MPI/DP接口的CPU在全部复位之后, 其所设置的MPI地址及波特率仍然保留。但如果MPI/DP接口设置为一个PROFIBUS接口,其地址及波特率的设置被完全删除,不能再访问。

在全部复位之后,其前设置的保护等级也将保留。

1.1.35 带闭环控制模块SFB 41 - SFB43 的CPU 312C 问题:

系统功能块SFB 41- SFB 43 是否可以与CPU 312C一起使用? 解答:

09/2002 发布的CPU 31xC和31x指令列表中包含关于用于CPU 312C的SFB 41CONT_C\, SFB 42\和 SFB 43 \的运行系统信息。这些模块没有集成在CPU 312C中,因此在CPU312C中不能使用。但可以采用具有相同的功能的FB 41- FB 43功能块。 1.1.36 当一个分布式 IO 设备出故障时被处理的组织块 问题:

当CPU315-2DP做主站或从站时,应分别调用哪些“故障 OBs”? 解答:

当把CPU315-2DP配置为从站时,必须在STEP7程序中调用下列OB块以来识别分布式I/O出错的类型:

? ? ?

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

诊断块OB82

如果一个模块支持诊断功能并且选取了它的诊断中断,那么它就可以识别一个错误,当有错误事件进入或离去时,就会向CPU提出中断申请。操作系统就会调用OB82。在内部变量里OB82包含了错误模块的逻辑基本地址和四个字节的诊断数据,如果没有调用OB82,则CPU就会进入停止模式。

也可以通过系统功能块SFC39到SFC42来禁止或延迟诊断中断OB。

机架故障OB86

如果检测到一个 DP 主站系统或一个分布式 I/O 站有故障(对错误事件进入或离去),该 CPU 的操作系统就会调用 OB 86 。

如果没有调用 OB 86, CPU 就会进入到停止模式。也可以通过系统功能块SFC39到SFC42来禁止或延迟诊断中断OB。

I/O 访问出错OB122

当访问一个模块I/O出错时,该CPU的操作系统就调用OB 122。比方说,CPU在读取信号模块时发现一个读取错误,那么操作系统就会调用OB122

OB122的优先级与引起错误的OB块的优先级一样,如果OB122没编程,那么CPU就会从运行模式进入到停止模式。