0

TwinCAT 时不时地崩溃,并在事件日志调试中显示以下消息: CSysService::SysUnhandledExceptionFilter(); 地址:770A2092 代码:C0000005

在 Google 上搜索并没有揭示为什么会发生这种情况、如何​​解决这个问题,甚至 CSysService 是什么或 SysUnhandledExceptionFilter 方法正在做什么。我的猜测是发生了未处理的访问冲突。

我希望这里有人可以帮助我确定这是由我们自己的代码引起的还是TwinCAT本身的问题。并希望得到一些关于如何解决这个问题的指示。

我尝试通过在代码中创建访问冲突来重现这一点。但是,这显示了不同的日志消息。

4

3 回答 3

0

您提供的信息太少。

您使用的是哪个 Twincat 版本?是否在执行某些特定操作时崩溃(例如在可视化中按下按钮或在进行在线更改时)?它多久崩溃一次?从什么时候开始?

于 2019-07-17T17:00:23.047 回答
0

我们使用的是 TwinCAT 3.1.4022.28。崩溃似乎与用例无关。有一次,它在夜间坠毁,当时没有人操作它。它以随机的时间间隔崩溃,通常相隔数天。到目前为止,我们已经看到了大约 4 到 5 次崩溃。

于 2019-07-22T09:10:27.387 回答
0

在 codeguru.com 上有一篇关于 CSysService 类的文章,它指出:

CSysService 是一个 C++ 类,它包装了几个 Win32 的方法。API 服务函数,为这些函数提供面向对象的接口,将公共变量和结构分组到单个类对象中。结果是能够在服务控制管理器中安装、枚举、修改、控制和删除服务应用程序的可扩展基类。

这意味着它是由 Win32 API 引发的异常。在 Beckhoff infosys 网站上,您可以找到 Win32 错误代码及其含义:

https://infosys.beckhoff.com/index.php?content=../content/1031/TcDiagnostics/HTML/TcDiagnostics_WIN32_ErrorCodes.htm&id=

0x00000005 错误意味着访问被拒绝。如果您在 microsoft 支持页面上查看此错误:

https://support.microsoft.com/en-us/help/842792/an-error-access-denied-error-occurs-when-you-try-to-write-to-a-file-th

您会发现在以下情况下会发生此错误:

您尝试写入网络共享文件夹中的文件

您的 plc 可能正在尝试写入位于网络共享文件夹中的日志文件,它可能无法始终访问该文件夹,从而导致运行时意外崩溃。

(夜间网络维护可以解释您的机器上的访问被拒绝和随之而来的异常)。

如果这是问题的原因,请通知 Beckhoff 支持,以便他们可以进一步调查,并可能在未来的版本中修复它。

于 2019-08-21T15:08:31.617 回答