检测偶发的错误
显示CPU信息
在诊断缓冲器中写入用户信息
SEND =
TRUE
1 2
发送缓冲器
诊断缓冲器
异步地
向用户程序发送
节点
如:PG, OP
CPU
SFC 52
配置用户自己的文本信息
调用SFC 52
Network 2: User message when limit value exceeded
ENO
RET_VAL #error_sfc52
SFC 52
EN
SEND
EVENTN
INFO 1
INFO 2
#analog value_ normalized
#dummy
W#16#A901
M
M
P
#analog value_ normalized
+003
CMP>R
IN1
IN2
>=1
M
SFC 52 中EVENTN 参数的结构
事件种类
15
14
13
12
EVENTN
1..9 针对不同事件的标准文本(见标准和系统功能手册)
A..B 利用信息配置功能定义的自由文本
C..F 保留以备将来扩展
事件种类
11
10
9
8
特征
定义事件的特征,例如:
Bit 8= “1” --> 到来的事件
Bit 8= “0” --> 离去的事件
Bit 10= “1” --> 内部错误
Bit 11= “1” --> 外部错误
特 征
7
6
5
4
3
2
1
0
事件号
在一个事件种类中,事件号可以连续从1 到 255
事件号
具有诊断功能的模块
具有诊断功能模块的参数配置:
... 当错误出现时,触发
一个诊断中断 OB 82
在SIMATIC管理器中显示硬件诊断信息
2x
练习: 显示诊断信息
练习: 输出用户信息
SFC 52
SEND
EVENTN
INFO1
INFO2
RET_VAL
TRUE
W#16#9101
MW 54
MD 56
MW 52
???
*
*
*
在LAD方式下在 EN 端必须连接一个触点
EN
练习: 使能诊断中断并仿真硬件错误
序号
步骤
结果
利用硬件组态工具在一个模拟量模块上
使能诊断中断
1
允许硬件诊断
2
将组态下装到CPU
3
拆除模拟量模块的前连接器
“SF”灯点亮指示硬件故障
4
显示在线的系统配置
打开硬件诊断工具
5
显示信息“Power supply failure”,
表明故障原因为电源故障。
确定故障原因
练习: 评价错误处理OB的启动信息
L OB122_SW_FLT //Identifier read-only or write-only access
L B#16#42 //Identifier for read-only access
==I //Compare for sameness
= M //Auxiliary memory marker
L OB122_MEM_ADDR //Address of module, that triggered the error
L 352 //Address of analog module (Version A)
==I //Evaluation, if error from analog module
= M //Auxiliary memory marker
•
•
•
•
OB 122 中评价启动信息的示例
练习: 评价一个电池错误
步骤
操作
结果
错误处理块 OB 81被调用
从CPU上取下后备电池
1
它可能不闪烁
检查输出Q 是否闪烁
2
只要电池失效输出就闪烁
发现并排除错误.
3
目录 页码 显示CPU信息 .......................................................................................................................................... 2
在诊断缓冲器中写入用户信息 ................................................................................................................ 3
配置用户自己的文本信息 ....................................................................................................................... 4
调用SFC 52 ........................................................................................................................................... 5
SFC 52中EVENTN 参数的结构 ........................................................................................................... 6
具有诊断功能的模块 .............................................................................................................................. 7
在SIMATIC管理器中显示硬件诊断信息 ........................................................................................... 8
练习: 显示诊断信息 .......................................................................................................................... 9
练习: 输出用户信息 ........................................................................................................................... 10
练习: 使能诊断中断并仿真硬件错误................................................................................................. 11
练习: 评价错误处理OB的启动信息...................................................................................................... 12
练习: 评价一个电池错误..................................................................................................................... 13
显示CPU信息 利用该功能可以在编程器或HMI设备上立即显示针对零星错误的错误信息。PG或OP所连接的CPU一进入由错误导致的停机状态时,一个信息窗口,“CPU Messages” 就会弹出来(如幻灯片左下部所示)。 在菜单PLC -> CPU Messages中可以设置该功能,具体参数如下:
Registered Modules 该选项下列出了所有连接在SIMATIC Manager 上的CPU,选项表分为4列:
1. 第一列中的图标用来表示该连接是否被外部设备中断。 2. 在“W”列中,可以激活或禁止系统诊断和用户诊断信息。 3. 在“A”列中,可以激活或禁止中断信息。 CPU信息功能将检查出现问题的模块是否支持诊断和中断功能。如果不支 持,则显示错误信息。 4. 在“Module”列中,模块的名字或S7程序的路径被输入。
Incoming Messages • Top: 只要收到一条信息,“CPU Messages”窗口就会出现在前台,在窗口中 显示该信息并同时存档。 • Background: 在后台接受信息并存档。即信息窗口出现在后台,也可以根据需 要显示在前台。 • Ignore: 信息既不显示又不存档。
Archive 可以修改存档的数目 (40 至 2000 条信息) 或清空存档信息。
概述 利用系统功能SFC 52 可以在诊断缓冲器中写入自己定义的信息,例如,超过水压的下限。同时,该信息还可以显示在PG或OP上。要实现此功能必须激活诊断信息。
程序 在用户程序中调用 SFC 52 并分配参数。一定的标准文本已存储在CPU中,SFC的通过一个参数来选择这些文本。详细信息请参见Standard and System Functions(标准和系统功能)手册或在线帮助。
示例 在本例中,如果PIW352的值超过2000,则调用SFC 52。 只有当检测到逻辑信号的边沿时,才发送信息。合理分配块的参数(SEND = TRUE) ,使得诊断信息可以显示在PG上。 EVENTN参数决定了发送文本的内容。 L PIW 304 // 读模拟值 L 2000 // 模拟值>2000 >I FP M // RLO 边沿检测 JCN none call SFC 52 // 诊断缓冲器的用户入口 SEND: TRUE EVENTN: W#16#9B83 // 外部的、到来的、超过限位值 INFO1 : MW 100 // 附加信息 1 INFO2: MD 102 // 附加信息 2 RETVAL: MW 31 // 错误信息的返回值 none: BE
操作步骤 用鼠标右键单击S7程序,然后选择Special Object Properties -> Message.
配置信息 单击“New Message”按钮,将出现下一个自由信息的号码,例如:A003。 在“Text”栏中,应输入incoming(到来)和outgoing(离去)事件的文本信息。在“Identification”栏中,可以改变事件号码(message number)。
通配符 最多两个通配符可以插入到信息文本中。它们是通过SFC 52 的参数“INFO1/INFO2”传递进来的。 在本例中,参数INFO 2是一个实数。插入通配符的方法是,以@字符开头,然后输入1或2,这取决于首先显示INFO1和 INFO2中哪一个参数。最后输入显示格式,例如,%e。 可使用的格式标识符如下: • %ix 16进制数,长度为 i • %iu 无符号十进制数,长度为 i • %id 带符号十进制数,长度为 i • %e 规格化的浮点数,指数前的符号为小写e • %E 规格化的浮点数,指数前的符号为大写E
概述 在幻灯片中给出了程序的示例,其功能是将用户信息送入缓冲器并通过CPU信息显示出来。
说明 如果模拟值超过5000,将通过输入端“EN”条件调用 SFC 52。 “SEND”输入端的信号为“1”,则信息将被发送到PG,并显示出来。 “EVENTN” 输入参数被定义为当事件到来时显示A组的第一条信息。 通过参数“INFO1/INFO2”在信息文本中添加通配符,以便把模拟值显示出来 “RET_VAL” 输出段在下述情况下将发出错误信息: • 因没有连接节点而无法发送信息或缓冲器已满 • 在调用SFC52时分配了非法参数或格式
概述 在幻灯片中给出了EVENTN参数的结构。它是 SFC 52 的输入参数,用来定义将哪一个信息发送到诊断缓冲器中。
概述 有些信号模块也具有诊断功能,它们能够识别模块的错误或外部错误(例如断线),并通过模块上的“SF”指示灯来显示。当错误出现时,模块将触发CPU中的一个诊断中断OB82。参考ST70目录中的技术数据或相关手册,可以知道哪些模块具有诊断功能。
参数设置 当设置参数和定义监视通道时,应首先单击“Diagnostic Interrupt”前的选项框,以激活模块的诊断中断。这样就可以监视现场的故障,例如断线。在幻灯片中给出了一个具有诊断功能的模拟量模块的例子。
诊断中断 如果CPU中没有 OB 82,当模块出现错误时,CPU将停机。 在OB82的启动信息中包含了关于错误原因的附加信息,可以用程序来访问它们(参见在线帮助)。
引言 使用该功能,可以快速浏览PLC系统的状态。例如,在一个具有诊断功能的模块上出现了一个硬件错误,利用该工具,我们可以识别出哪个模块出了故障及该模块的位置。双击有故障的模块,可以看到附加信息。
操作步骤 在SIMATIC管理器中选择菜单功能 PLC -> Diagnose Hardware ,或者在硬件组态工具中,用图标 打开一个在线的硬件站。
使用说明 打开系统诊断工具后,将从CPU中读出系统的硬件配置(见幻灯片左部)。在这里显示了所有的模块(包括扩展机架和远程I/O)。 如果CPU处于停机状态或某模块有故障,将用红色的标志来指示。 双击CPU或有故障的模块可以获得进一步的诊断信息(见幻灯片右侧)。在本例中, 在模拟量模块上出现了电源故障。
注意 如果在SIMATIC管理器中选择菜单功能 Options -> Customize -> View 并激活“Display Quick View when Diagnosing Hardware”选项框,那么在“Diagnosing Hardware”窗口中将只显示有故障的模块。
目的 当CPU因零星故障停机时,马上在PG上显示诊断信息,便于立即分析故障。
步骤 • 在SIMATIC管理器中“My Project”项目下选择S7程序“My Program”,然 后选择菜单功能PLC => CPU Messages。 • 在窗口“Customize - CPU Messages”中激活项目前的“W”选项。 • 用钥匙开关将CPU切换为停机状态,然后观察PG的反应。
结果 停机时弹出信息窗口。
目的 监视一个系统是否转换为手动方式,当转换为手动方式时将一条诊断信息存入诊断缓冲器。
步骤 • 利用S7程序“FILL”的参考信息来确定哪一个输出为手动方式标志位。 • 在FC15(S7程序“FILL”)程序的最后插入一个新段。 • 编写程序,当切换为手动方式时(检测信号边沿)将一条诊断信息存入诊断 缓冲器。 SFC 52的参数分配如幻灯片中所示(除了调用条件)。 • 下装FC 15到CPU中并调试程序。
结果 当转换为手动方式时,一条信息被存入诊断缓冲器。如果显示CPU信息功能被激活,将在PG上显示用户信息。
目的 使能模拟量模块的诊断功能,以便检测硬件故障,例如电源故障。
步骤 按照幻灯片上给出的步骤完成练习。
结果 利用硬件诊断工具可以获得关于硬件错误的附加信息。
目的 了解评价错误处理OB中附加信息的方法。
要求 访问错误是由一个特定模块产生的偶发性错误(本练习中错误来自模拟量模块的地址304)。在允许更换模块前,当由该模块触发访问错误时,应防止CPU进入停机状态。 对于来自其它模块的访问错误,CPU仍可进入停机状态。
步骤 • 在S7程序“ERROR”的OB122中,在第一段前插入一个新段。
• 在这段中写入幻灯片上给出的程序。
• 下装 OB 122 到CPU。
• 模拟一个故障来测试程序,方法是松开模拟量模块的紧固螺钉并取下模块。
结果 当模拟量模块失效后,CPU 不进入停机状态。
目的 当电池失效时,输出Q 就闪烁直到电池恢复正常。 用错误处理块来OB81来评价电池错误。
OB 81 操作系统将调用两次错误组织块OB81,错误发生时调用一次,当故障排除后,OB81将再次被调用。 操作系统根据错误出现或是排除在变量“OB81_EV_CLASS ”中写如不同的标识符: • 标识符 B#16#38 -> 电池失效 • 标识符 B#16#39 -> 电池又恢复正常 还可利用另一个变量“OB81_FLT_ID ”中的错误标识符,对于S7-300,当电池失效时,22H被置入该变量。对于S7-400,还有其它的标识符。 输出的闪烁不能由OB81实现,因为该块不是循环调用的。因此,在该块中只能置位或复位一个辅助标志位。 再OB1中,与闪烁频率标志位结合起来分配给某个输出位用于指示故障。该输出位在电池失效或无电池时将一直闪烁。
步骤 见幻灯片。
结果 电池故障可以被告知。