我有一个 Siemens S7-1212 AC/DC/Rly PLC,我想使用 Snap7 与 C# 应用程序通信。我已在 UI 中成功连接到 PLC,我什至可以成功地将值写入 PLC。然而,有时(3 次中的 1 次)写入函数不会将值写入 PLC 并给出一个非常高的整数作为结果。
C# 代码: 与 PLC 的连接已通过以下代码建立:
private S7Client Client = new S7Client();
Client.ConnectTo("192.186.0.1", 0, 0);
写函数:
byte[] writeBuffer = new byte[1];
S7.SetBitAt(ref writeBuffer, 0, 0, true);
int result = Client.DbWrite(1,0,writeBuffer.Length, writeBuffer);
if (result == 0)
// connection successfull
else
// Connection unsuccessfull
现在有时当我执行上面的函数时结果为0,所以写操作已经成功执行。我可以看到 PLC 程序中的值变为 true。但有时(大约三分之一)结果是一个非常高的值,大多数时候是 3145728(有时是另一个数字,但主要是这个)。在这种情况下,函数会运行(没有给出异常或错误),但值不会改变。
我的问题:
为什么我会得到这么高的价值,这是什么意思?
提前致谢, 西奥