S7-200编程——出错处理 点击:483 | 回复:1



robingsion

    
  • [版主]
  • 精华:20帖
  • 求助:71帖
  • 帖子:1937帖 | 3671回
  • 年度积分:1068
  • 历史总积分:55076
  • 注册:2011年4月11日
发表于:2020-03-19 08:02:33
楼主

S7--200将错误分为致命错误和非致命错误。您可以通过选择PLC > Information菜单命令,来查看因错误而产生的错误代码。
给出了PLC信息对话框,其中包括错误代码和错误描述。
Last Fatal 区显示S7--200发生的前一致命错误代码。如果RAM区是掉电保持的,这个数据也会保持。当S7--200全清或者RAM区掉电保持失败时,该区也被清除。
Total Fatal区是前一次CPU清除所有存储区后产生致命错误的次数。如果RAM区是掉电保持的,这个次数也会保持。当S7--200全清或者RAM区掉电保持失败时,该区也被清除。


【非致命错误】
非致命错误是指用户程序结构问题、用户程序指令执行问题和扩展I/O模块问题。您可以用STEP7--Micro/WIN来得到所产生错误的错误代码。非致命错误有三个基本的分类。
程序编译错误
当下载程序时,S7--200会编译程序。如果S7--200发现程序违反了编译规则,会停止下载并产生一个错误代码。(已经下载到S7--200中的程序将仍然在永久存储区中存在,并不会丢失。)可以在修正错误后再次下载程序。
I/O错误
启动时,S7--200从每个模块读取I/O配置。正常运行过程中,S7--200周期性的检测每个模块的状态与启动时得到的配置相比较。如果S7--200检测到差别,它会将模块错误寄存器中的配置错误标志位置位。除非此模块的组态再次和启动时获得的组态相匹配,否则S7--200不会从此模块中读输入数据
或者写输出数据到此模块。

模块的启动信息存储在特殊存储器(SM)标志位中。应用程序可以监视这些标志位。SM5.0是全局I/O错误位,当扩展模块上存在一个错误条件时,它将保持置位。
程序执行错误
在程序执行过程中有可能产生错误。这类错误有可能来自使用了不正确的指令或者在过程中产生了非法数据。例如:一个编译正确的间接寻址指针,在程序执行过程中,可能会改为指向一个非法地址。这是一个实时程序问题的例子。当实时程序问题发生时,SM4.3会在CPU处于RUN模式期间置位。程序执行错误信息存储在特殊寄存器(SM)标志位中。应用程序可以监视这些标志位。
当S7--200发生非致命错误时,S7--200并不切换到STOP模式。它仅仅是把事件记录到SM存储器中并继续执行应用程序。但是如果用户希望在发生非致命错误时,将CPU切换到STOP模式,可以通过编程实现。下列例子程序用于监视两个非致命错误标志位。当两个标志中任意一个置位,S7--200将切换到STOP模式。


【致命错误】
致命错误会导致S7--200停止程序执行。按照致命错误的严重程度,S7--200使其部分或全部功能无法执行。处理致命错误的目的是把CPU引向安全状态,CPU可以对存在的错误条件作出响应。当检测到一个致命错误时,S7--200将切换到STOP模式,打开SF/DIAG(Red) 和STOP LED,忽略输出
表,并关闭输出。除非致命错误条件被修正,否则S7--200将保持这种状态不变。
一旦消除了致命错误条件,必须重新启动CPU。可以用以下方法重新启动CPU:

  • 重新启动电源

  • 将模式开关由RUN或者TERM变为STOP

  • 在STEP 7--Micro/WIN命令菜单中选择PLC > Power--Up Reset,可以强制CPU启动并清除所有致命错误。

重启CPU会清除致命错误,并执行上电诊断测试来确认已改正错误。如果发现其它致命错误,CPU会重新点亮错误LED指示灯,表示仍存在错误。否则CPU会开始正常工作。
有些错误可能会使CPU无法进行通讯。这种情况下您无法看到来自CPU的错误代码。这种错误表示硬件故障,CPU模块需要修理,而修改程序或清除CPU内存是无法清除这些错误的。


1分不嫌少!


楼主最近还看过



robingsion

  • [版主]
  • 精华:20帖
  • 求助:71帖
  • 帖子:1937帖 | 3671回
  • 年度积分:1068
  • 历史总积分:55076
  • 注册:2011年4月11日
发表于:2020-03-20 08:12:35
1楼

这么好的资料居然没有顶


热门招聘
相关主题

官方公众号

智造工程师