是什么原因 "CAdsWatchServerR0::AdsParseSymbol invalid array index"

What causes "CAdsWatchServerR0::AdsParseSymbol invalid array index"

大约一周后,我们的生产机器上出现了以下错误:

CAdsWatchServerR0::AdsParseSymbol invalid array index!

每个 plc 周期都会产生错误,填满 windows 事件记录器,因为我们转发了事件:

重新启动 PLC 后错误消失,但一段时间后它们再次出现。

这个错误的原因是什么?以及如何定位它的来源?

来自 Beckhoff 支持的回答:

In the new ADS *.dll the accesses via ADS are better monitored. This message means that you try to access an array index in the controller from a C# or other high level language via ADS, which is not available.

Example: In the PLC project a test :ARRAY[0..2] OF INT; was defined. However, in the high-level language program you want to access e.g. Test[3], which is not defined in the PLC.

在我们的案例中,它原来是 HMI (TF2000)。 HMI 中有一个用户控件,它有一个符号 link 指向一个不再存在的数组索引。