S7-200 出现编译错误,如需要更多信息,请查看非致命错误。遇到这种情况怎么办,通讯没有问题,求高人解答!
5个回答
展开全部
编译错误是程序编错误,编译后在编译窗口找到错误的地址,双击系统会引导到程序错误的段落,修正即可
追问
我编译过,没有错误,没有警告。会不会是编程软件版本的问题?我用的是S7-200 CPU222CN,对Step7 MicroWin v4.0 sp3。
追答
确定你编译程序里对应的PLC型号版本 和实物是否吻合。包括实际为222,编程里却选了226
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
S7--200将错误分为致命错误和非致命错误。可以通过选择PLC > 信息菜单命令,来查看因错误而产生的错误代码。如图给出了PLC信息对话框,其中包括错误代码和错误描述。“上个致命错误”域显示S7--200发生的前一致命错误代码。如果RAM区具有保持性,则在整个电源周期内也将保持该数值。当S7--200全清或者RAM区掉电保护失败时,该区也被清除。“致命错误总计”域是前一次CPU清除所有存储区后产生致命错误的次数。如果RAM区具有保持性,则在整个电源周期内也会保持该数值。当S7--200全清或者RAM区掉电保护失败时,该区也被清除。
PLC信息对话框
非致命错误
非致命错误是指用户程序结构问题、用户程序指令执行问题和扩展I/O模块问题。您可以用STEP7--Micro/WIN来得到所产生错误的错误代码。非致命错误有三个基本的分类。程序编译错误当下载程序时,S7--200会编译程序。如果S7--200发现程序违反了编译规则,会停止下载并产生一个错误代码。(已经下载到S7-200中的程序将仍然在永久存储区中存在,并不会丢失。) 可以在修正错误后再次下载程序。I/O错误启动时,S7--200从每个模块读取I/O组态。正常运行过程中,S7--200周期性的检测每个模块状态与启动时得到的组态相比较。如果S7--200检测到差别,它会将模块错误寄存器中的组态错误标志位置位。除非此模块的组态再次和启动时获得的组态相匹配,否则S7-200不会从此模块中读取输入数据或者写输出数据到此模块。
程序执行错误
在程序执行过程中有可能产生错误。这类错误有可能来自使用了不正确的指令或者在过程中产生了非法数据。例如:一个编译正确的间接寻址指针,在程序执行过程中,可能会改为指向一个非法地址。这是一个实时程序问题的例子。当实时程序问题发生时,SM4.3会在CPU处于RUN模式期间置位。程序执行错误信息存储在特殊寄存器(SM)标志位中。应用程序可以监视这些标志位。当S7--200发生非致命错误时,S7--200并不切换到STOP模式。它仅仅是把事件记录到SM存储器中并继续执行应用程序。但是如果用户希望在发生非致命错误时,将CPU切换到STOP模式,可以通过编程实现。下图示例程序用于监视两个非致命错误标志位。当两个标志中任意一个置位,S7--200将切换到STOP模式。
当有I/O错误或实时运行程序错误发生时,将CPU切换到STOP模式
致命错误
致命错误会导致S7-200停止执行程序。按照致命错误的严重程度,S7--200使其部分或全部功能无法执行。处理致命错误的目的是使S7-200恢复到安全状态,S7-200可据此对关于现有错误条件的询问作出反应。当检测到一个致命错误时,S7-200将切换到STOP模式,打开SF/DIAG (红色) 和STOP LED,忽略输出表,并关闭输出。除非致命错误条件被修正,否则S7-200将保持这种状态不变。一旦消除了致命错误条件,必须重新启动CPU。可以用以下方法重新启动CPU:
重新启动电源
将模式开关由RUN或者TERM变为STOP
在STEP7--Micro/WIN命令菜单中选择PLC >上电复位以启动S7--200。这可以强制S7--200启动并清除所有致命错误。
重启CPU会清除致命错误,并执行上电诊断测试来确认已改正错误。如果发现其他致命错误,CPU会重新点亮错误LED指示灯,表示仍存在错误。否则CPU会开始正常工作。有些错误可能会使CPU无法进行通讯。这种情况下无法看到来自CPU的错误代码。这些错误类型指出需要对S7--200进行维修的硬件故障;无法通过更改程序或清除S7--200的存储器对这些故障进行修正。
PLC信息对话框
非致命错误
非致命错误是指用户程序结构问题、用户程序指令执行问题和扩展I/O模块问题。您可以用STEP7--Micro/WIN来得到所产生错误的错误代码。非致命错误有三个基本的分类。程序编译错误当下载程序时,S7--200会编译程序。如果S7--200发现程序违反了编译规则,会停止下载并产生一个错误代码。(已经下载到S7-200中的程序将仍然在永久存储区中存在,并不会丢失。) 可以在修正错误后再次下载程序。I/O错误启动时,S7--200从每个模块读取I/O组态。正常运行过程中,S7--200周期性的检测每个模块状态与启动时得到的组态相比较。如果S7--200检测到差别,它会将模块错误寄存器中的组态错误标志位置位。除非此模块的组态再次和启动时获得的组态相匹配,否则S7-200不会从此模块中读取输入数据或者写输出数据到此模块。
程序执行错误
在程序执行过程中有可能产生错误。这类错误有可能来自使用了不正确的指令或者在过程中产生了非法数据。例如:一个编译正确的间接寻址指针,在程序执行过程中,可能会改为指向一个非法地址。这是一个实时程序问题的例子。当实时程序问题发生时,SM4.3会在CPU处于RUN模式期间置位。程序执行错误信息存储在特殊寄存器(SM)标志位中。应用程序可以监视这些标志位。当S7--200发生非致命错误时,S7--200并不切换到STOP模式。它仅仅是把事件记录到SM存储器中并继续执行应用程序。但是如果用户希望在发生非致命错误时,将CPU切换到STOP模式,可以通过编程实现。下图示例程序用于监视两个非致命错误标志位。当两个标志中任意一个置位,S7--200将切换到STOP模式。
当有I/O错误或实时运行程序错误发生时,将CPU切换到STOP模式
致命错误
致命错误会导致S7-200停止执行程序。按照致命错误的严重程度,S7--200使其部分或全部功能无法执行。处理致命错误的目的是使S7-200恢复到安全状态,S7-200可据此对关于现有错误条件的询问作出反应。当检测到一个致命错误时,S7-200将切换到STOP模式,打开SF/DIAG (红色) 和STOP LED,忽略输出表,并关闭输出。除非致命错误条件被修正,否则S7-200将保持这种状态不变。一旦消除了致命错误条件,必须重新启动CPU。可以用以下方法重新启动CPU:
重新启动电源
将模式开关由RUN或者TERM变为STOP
在STEP7--Micro/WIN命令菜单中选择PLC >上电复位以启动S7--200。这可以强制S7--200启动并清除所有致命错误。
重启CPU会清除致命错误,并执行上电诊断测试来确认已改正错误。如果发现其他致命错误,CPU会重新点亮错误LED指示灯,表示仍存在错误。否则CPU会开始正常工作。有些错误可能会使CPU无法进行通讯。这种情况下无法看到来自CPU的错误代码。这些错误类型指出需要对S7--200进行维修的硬件故障;无法通过更改程序或清除S7--200的存储器对这些故障进行修正。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
检查非致命错误。可能是指令或语法的支持问题。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
检查非致命错误。可能是指令或语法的支持问题。
追问
我查看了非致命错误,说我的主程序网络1有问题,可我的网络1的程序就一句程序,根本不可能错,同样的程序我用ORMON CP1H编完一点问题都没有,用S7-200编完很多问题。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询