S7400CPU41x操作和维护诊断错误.docx
《S7400CPU41x操作和维护诊断错误.docx》由会员分享,可在线阅读,更多相关《S7400CPU41x操作和维护诊断错误.docx(26页珍藏版)》请在冰点文库上搜索。
S7400CPU41x操作和维护诊断错误
S7-400CPU41x--操作和维护--诊断错误
当分布式I/O出现故障时,CPU应调用哪些组织块来保证CPU不进入“停止”状态?
?
00系列CPU中的OB122中的出错评估已经改变
处理错误时需要哪些组织块?
如何查看一个DP主站系统或者PROFINETIO系统的站点状态?
从自动化系统中获得模块信息和诊断数据
当PG/PC通过PROFIBUS进入在线状态时,CPU切换为“停止”
为什么在电源关闭/打开或在DP标准从站返回后CPU300/400上的EXTFLED灯保持亮而不熄灭?
在CPU启动时如何识别上次停机的事件并在程序中处理它(即使在完全复位之后)?
当诊断缓冲区出现事件号530D时,为何CPUS7-400的IM和/或CP没有进入RUN模式?
CPU伴随出错代码16#4578“STOPbecauseofunknownopcode”停止
为什么在整个系统完全断电再恢复电源后CPU保持STOP状态?
使用块SFC17“ALARM_SQ”,SFC18“ALARM_S”,SFC107“ALARM_DQ”和SFC108“ALARM_D”时应注意些什么?
当使用SFC20“BLKMOV”,SFC81“UBLKMOV”或SFC21“FILL”块时应注意些什么?
当分布式I/O出现故障时,CPU应调用哪些组织块来保证CPU不进入“停止”状态?
隐藏订货号显示订货号订货号:
组态说明:
当CPU在其运行周期内识别到同步或异步错误(例如:
DP从站或者PROFINETI/O设备的诊断报警,站故障等),将会调用相应的组织块(OB),用户因此可以对该事件作出响应。
下表列出了出现同步或异步错误时,必须下载到CPU中的OB块,从而CPU能调用它们,确保CPU不进入“停止”状态。
OB块号.
说明
调用条件
错误分类
事件进入进调用
事件离开时调用
82
诊断报警
具有诊断功能的模块,使能了诊断报警,当检测到错误或错误消失时
(如:
输入模板的短路故障).
异步错误
是
是
83
插/拔报警1)
中央机架或扩展设备上的模块移走和插回时(如:
移走一个输入模板)
异步错误
是
是
85
程序循环错误
-出现尚未加载到CPU中的报警OB块的调用事件
-访问系统功能块SFB的背景数据块时出现错误
-更新过程印象区时出现错误(模板不存在或失效)
异步错误
组态指定
组态指定
86
模块机架错误
DP主站系统中的DP从站或PROFINETIO系统中的IO设备出现故障
异步错误
是
是
121
程序错误
发生程序错误时(如:
调用的块没有下载)
同步错误
是
否
122
IO访问错误
访问不存在的信号模板
同步错误
是
否
1)对于S7-300CPU(除了:
CPU318-2),插入移除PROFIBUSDP从站上的模块并不会产生插/拔报警。
取决于所用的DP从站,整个DP从站失效将导致调用OB86"Subrackfailure子机架错误",执行标准诊断,从而调用OB82"Diagnosticsalarm诊断报警"。
在S7-300CPU中,插/拔报警仅当插/拔发生在PROFINETIO(如移走IO设备)上时发生。
如果这些组织块没有装载到CPU,则CPU将因无法调用这些块而进入“停止”状态。
警告:
当使用故障OB时,应当编程进行故障处理或者至少应当在出错时产生一条提示信息,以便安全和正确地操作设备。
需要注意的是,此时CPU可能不再进入到“STOP”状态,因此这些危险状态可能会被忽视。
关于编程处理出错的OB的详细消息,可参阅STEP7在线帮助,或者参考手册“SystemSoftwareforS7-300/400SystemandStandardFunctions”——ID号1214574。
注意事项:
CPU的诊断缓冲区保留着CPU曾经调用过的组织块的信息。
更多详情请按照下列关键字参阅STEP7的在线帮助:
∙"Diagnostics>Measuresintheprogramforerrorhandling"
∙"Callingreferencedata(LAD/FBD/STL,blocks...)>Languagedescription,blockhelp,systemattributes>HelponOBs"
∙"ErrorOBs"
∙"Settingsforreportingsystemerrors"
以下ID介绍了在CPU的S7程序中需要调用哪个组织块来进行错误处理:
11499205。
?
00系列CPU中的OB122中的出错评估已经改变
隐藏订货号显示订货号订货号:
问题:
从OB122的错误代码中能否识别出I/O的访问错误是否已经出了好几次错?
解答:
有关I/O访问错误的评估在400系列的CPU中已经改变。
现在对于内存区(I/O区域/过程映像)没有差别。
也就是说现在再也不会有发生多次的I/O访问错误(错误代码B#16#44和B#16#45)的消息。
所有I/O访问错误都映射在错误代码B#16#42和B#16#43。
因此,再也不能根据OB122的错误代码来计数I/O访问错误发生的次数。
以下版本及更高的版本中有这样的改变:
CPU412
-1XF03
-2XG00
CPU414
-2XG03
-3XJ00
CPU416
-2XK02
-3XL00
CPU417
-4XL00
-4HL00
处理错误时需要哪些组织块?
隐藏订货号显示订货号订货号:
描述:
S7-CPU可以识别下列类型的错误:
1.同步错误:
这些错误在处理过程中由特定操作触发,并且可以指定给用户程序的特定部分。
2.异步错误:
这些错误不能直接指定给运行中的程序。
这些错误包括优先级类别错误,自动化系统错误(模块故障)或冗余错误。
下面的表格是关于组织块(OBs)当出现异步或同步错误时被调用情况的概览。
如果相关的错误OB没有被下载,CPU会进入STOP状态(不包括:
OBs70,72,73 和81)。
Übersicht_Organisationsbausteine.pdf(8KB)
您可以在CPU属性中的“Interrupts”标签中看到哪些OBs可以在您的CPU中使能以及插入到STEP7项目中。
图.01
通过硬件组态中的菜单“Options>ReportSystemError...”,也可轻松添加错误处理OB。
使用错误 OBs的注意事项:
当错误产生时,若要实现可靠、无故障运转,需要编写故障处理程序,至少要编程在错误发生时会产生报警信息,因为要考虑 CPU 不会进入停机模式,因此可能造成生产危险不易被察觉。
注意
∙只有H-CPU支持OB70和OB72。
∙OB73仅适用于CPU417-4HV2.0.X。
∙关于错误OB更多信息,可以在STEP7在线帮助中找到:
o"ChangeintheerrorevaluationintheOB122withseries400CPUs"-条目号:
5708202.
o关键词 "GeneratederrorOBs".
o关键词 "Settingsforreportingsystemerrors".
∙后面的条目是关于哪些OB 需要下载到CPU来保证当远程 I/O出现错误时CPU不会进入到停机状态:
19350076
电源供电故障的例子
电源供应故障(只针对S7-400)或者缓冲故障触发相应的事件发生,CPU操作系统调用OB81 。
清除错误后OB81再次被调用。
如果S7-400有电池故障,OB81只有在BATT.INDIC开关激活电池检查后才被调用。
如果不对OB81 编程,CPU不会进入停止模式。
如果OB81 不可用,CPU会在电源供应故障时持续运行。
在例子程序中来自OB81的临时变量"OB81_FLT_ID"被评估来决定电池故障。
在本例中变量有错误代码"22hex”。
如果在比较查询(电池故障)中条件满足,标志位M81.1被寻址。
两个事件等级能够通过变量"OB81_EV_CLASS"来识别:
∙B#16#39:
到来事件,电池故障。
∙B#16#38:
离开事件,电池故障清除。
评估这些变量的设定,复位标志位M81.0。
图.02
如果标志位M81.1 和M81.2的状态是"TRUE"(在电源故障和到来事件的情况),标志位 M81.0 被置位。
当事件ID是离开事件时标志位M81.0被复位。
上面描述的例子是对于CPU运行而电池故障发生的情况。
如果电池故障在停止模式下发生,则到来事件(调用OB81)只在CPU再次进入运行模式才被触发。
如果电源供应关断,则到来事件(电池故障) 不会被触发。
更多信息:
关于错误OBs的详细信息,可参见STEP7在线帮助或参考手册“SystemSoftwareforS7-300/400SystemandStandardFunctions” ,条目号为:
1214574。
关键字:
OB80,OB81,OB82,OB83,OB84,OB85,OB86,OB87,OB121,OB122
如何查看一个DP主站系统或者PROFINETIO系统的站点状态?
隐藏订货号显示订货号订货号:
描述:
可以使用SFC51"RDSYSST"读出SSL部件列表或选用SSL部件列表。
下面的配置在文中所附的例程中创建:
图.01
在用户程序(OB1)中,使用SFC51"RDSYSST"读出CPU的系统状态列表。
调用SFC51"RDSYSST"时,通过参数SZL_ID指定准备读出的系统列表。
使用此方法可读出下列数据,例如:
∙模板标识。
∙模板LED指示灯状态。
∙DP主站系统或PROFINETI/O系统中,已经连接上CPU集成的DP或PN口的站点状态。
所有有关SZL_ID的可用信息在手册"SystemSoftwareforS7-300/400SystemandStandardFunctions"中,见条目EntryID1214574。
SFC51"RDSYSST"的参数分配根据使用不同的CPU而不同:
1.CPU有集成的DP和以太网接口
2.CPU有集成的DP接口但是没有集成的以太网接口
在PN/DPCPU中调用SFC51"RDSYSST"的例子参数
图.02
输入SZL_ID=694(HEX)以确定DP主站系统或者PROFINETIO系统的站点状态。
指定所读出的系统状态列表数据(诊断数据) 的存储区域,诊断数据长度258字节
表01为258字节长的诊断数据结构:
内容
长度
解释
index
1word
0:
中央机架
1-31:
在PROFIBUSDP主站系统中的远程模块
100-115:
在PROFINETIO系统中的远程模块
status_0
BOOL
组信息
1:
下面状态位最少有一个值为1
0:
下面所有状态位值为0
status_1
BOOL
站1状态
1:
站1故障(仅对694有效)
status_2
BOOL
站 2状态
1:
站 2故障(仅对694有效)
...
status_2047
BOOL
站 2047状态
1:
站 2047故障(仅对694有效)
表01
最大可以确定2047个站的状态。
在诊断数据存储区域中每个站需要1bit。
此外,需要另外1bit作为组信息,即,诊断数据存储区域中,256字节分配给每个站点的状态,2字节为索引(关于DP主站系统或者PROFINETIO系统的信息)。
下面的例程中包含一个完整的S7站硬件组态,用户程序中有SFC51"RDSYSST"的调用。
SZL_Status_PNDP.zip(813KB)
在没有集成以太网口的CPU中调用SFC51"RDSYSST"的例子参数
图.03
输入SZL_ID=692(HEX)以确定连接到只有集成DP接口的CPU 所带的DP主站系统中的站点状态。
指定所读出的系统状态列表数据(诊断数据) 的存储区域,诊断数据长度 16字节。
表02为 16字节长的诊断数据结构:
内容
长度
解释
status_0
1byte
Bit0:
基本单元(INDEX=0)或站1
Bit1:
扩展设备或站2
...
Bit7:
扩展设备或站8...
status_1
1byte
Bit0:
扩展设备或站9
Bit1:
扩展设备或站10
...
Bit7:
扩展设备或站16...
status_2
1byte
Bit0:
扩展设备或站17
Bit1:
扩展设备或站18
...
Bit7:
扩展设备或站24
status_3
1byte
Bit0:
扩展设备或站25
Bit1:
扩展设备或站26
...
Bit6:
S5区域中的扩展设备或站31
Bit7:
S5区域中的扩展设备或站32
...
status_15
1byte
Bit0:
S5区域中的扩展设备或站121
Bit1:
S5区域中的扩展设备或站122
...
Bit7:
S5区域中的扩展设备或站128
表02
最大可以确定 128个站的状态。
在诊断数据存储区域中每个站需要1bit。
此外,诊断数据存储区域中,每个站点需要16字节来表示状态信息。
下面的例程中包含一个完整的S7站硬件组态,用户程序中有SFC51"RDSYSST"的调用。
SZL_Status_DP.zip(256KB)
例子项目是使用STEP7V5.4SP4创建的。
复制SZL_Status_PNDP.zip 或SZL_Status_DP.zip文件到单独的文件夹内然后使用STEP7解压缩,这时STEP7项目会被解包为所有子目录,您可以使用SIMATICManager 来处理这些已经解包的STEP7项目。
从自动化系统中获得模块信息和诊断数据
隐藏订货号显示订货号订货号:
内容:
当PLC运行时, 常常需要一些在运行期间相关的事件和导致事件发生的原因的信息。
以下文档显示了如何从SIMATICS7-300 和S7-400控制器中读出完整的诊断数据。
Anleitung.pdf(1795KB)
关键字:
设备状态,诊断缓冲区,诊断消息,诊断数据,事件条目,事件,模块数据,发布
当PG/PC通过PROFIBUS进入在线状态时,CPU切换为“停止”
隐藏订货号显示订货号订货号:
-->-->-->
问题:
为什么当我用PG或PC经过PROFIBUS来运行在线功能时,CPU会进入“停止”状态?
解答:
可能由于下列原因,使得CPU进入“停止”状态:
∙你试图通过PG或PC进入在线状态。
然而你还没有在你的项目中组态你的PG或PC。
因此只要PG或PC一被激活(例如,被包含在令牌环网中),总线循环就会增加,这将导致“停止”。
∙另一个可能的原因是通过“在线”调用大量的诊断信息,使CPU的循环时间增加到超过参数设置的限制值。
这种情形下的一种补救措施就是将CPU的参数从“测试模式”改变为“处理模式”。
然而,在此情况下并不是所有的诊断选项都可用的。
∙你也应该确保你的PC/PG的总线参数与PROFIBUS网络的总线参数是相同的。
为了能够比较这些内容,你必须首先决定哪些总线参数是为PROFIBUS网络而设置的。
请按照以下步骤进行:
1.打开此项目及其硬件组态;
2.双击PROFIBUS主机系统;
3.然后点击“属性……”;
4.在打开的窗口中选择“网络设置”标签;
5.点击“总线参数……”;
现在你可以看到PROFIBUS网络的总线参数设置
总线参数也可以在你的PG中设置。
请按照下列步骤继续进行来查看和改变你的PG参数:
1.通过“开始>设置”打开控制面板;
2.双击“设置PG/PC接口”;
3.在打开的窗口中点击“属性……;
4.在“网络参考”下将轮廓设置为“用户定义”;
5.点击“总线参数……”;
6.把总线参数设置为与PROFIBUS网络的相同。
关键字:
“停止”状态
为什么在电源关闭/打开或在DP标准从站返回后CPU300/400上的EXTFLED灯保持亮而不熄灭?
隐藏订货号显示订货号订货号:
描述:
当标准从站的站返回时CPU会收到来自标准从站的诊断信息。
CPU为诊断信息生成一个诊断缓冲条目并再次将EXTFLED灯关闭。
如果信息只包含6个字节(与标准一致),CPU不能接受返回从站的诊断信息。
这种情况下CPU只生成诊断缓冲条目,但不能再次关闭EXTFLED灯。
但与从站的通信如常进行。
所述问题发生在以下模块:
∙S7-300,CPU318-2DP,操作系统V3.0.0
∙S7-400,所有带操作系统V3.0.0的CPU(因此包括除了CPU413外的所有CPU)
∙S7-400H,CPU417-4HL00V2.1.3版本和CPU417-4HL01V3.0.0版本
补救措施:
从固件V3.0.1.(对CPU417-4HL00为V2.1.4)起这一问题已清除。
请进行固件更新。
在以下条目号中可找到相应的固件及关于如何更新的描述。
∙S7-400,CPU412,条目号2792880
∙S7-400,CPU414,条目号2850229
∙S7-400,CPU416,条目号2858911
∙S7-400,CPU417,EntryID2855123
∙S7-400H,CPU414-4HJ00,条目号6741018
∙S7-400H,CPU417-4HL00,条目号6741018
∙S7-400H,CPU417-4HL01,条目号6741018
∙S7-300,CPU318-2,条目号7286150
关键字:
FESTO,阀门群,诊断
在CPU启动时如何识别上次停机的事件并在程序中处理它(即使在完全复位之后)?
隐藏订货号显示订货号订货号:
描述
在启动OB块OB100,OB101和OB102的启动数据(本地数据)中有一个变量OB10x_STOP(x=0,1,2).它包含从诊断缓冲区中读出的导致上次停机的事件ID。
对于SIMATICS7-400CPU,即使在完全复位后,也可以读取该变量.
对于SIMATICS7-300CPU,OB100_STOP变量在完全复位后将不再存在。
说明
可能的事件ID列表参见手册"SystemSoftwareforS7-300/400SystemandStandardFunctions",章节34.5"EventClass4-StopEventsandOtherModeChanges"条目号1214574.
当诊断缓冲区出现事件号530D时,为何CPUS7-400的IM和/或CP没有进入RUN模式?
隐藏订货号显示订货号订货号:
说明:
如果SDB的长度恰好为10,000字节,诊断缓冲区中就会出现事件号为530D的出错消息。
补救措施:
如果SDB的长度恰好为10,000字节,请按照下列步骤处理:
在Tools>Settings中切换到HWConfig并激活SaveobjectnamesinthePLC。
这样将使得SDB的长度增加500个字节。
图01
检查连接SDB的长度,您将发现上述的情况,即长度恰好为10,000个字节。
如果SDB少于或者大于10,000,则上述情况就不会发生。
在STEP7中编译硬件配置后选择SDB容器并检查是否有SDB的长度是10,000个字节。
对下列CPU有效:
CPU
订货号
固件版本
CPU412
CPU412-1
6ES7412-1XF03-0AB0
V3.x.y
CPU412-1
6ES7412-1XF04-0AB0
V4.x.y
CPU412-2
6ES7412-2XG04-0AB0
V4.x.y
CPU414
CPU414-2
6ES7414-2XG03-0AB0
V3.x.y
CPU414-2
6ES7414-2XG04-0AB0
V4.x.y
CPU414-3
6ES7414-3XJ03-0AB0
V3.x.y
CPU414-3
6ES7414-3XJ04-0AB0
V4.x.y
CPU414-4H
6ES7414-4HJ00-0AB0
V3.x.y
CPU414-4H
6ES7414-4HJ04-0AB0
V4.0.6及以下版本
CPU416
CPU416-2
6ES7416-2