使用DBWrite将位写入PLC的结果不正确(结果= 3145782)

时间:2019-04-04 11:08:56

标签: c# plc snap7 sharp7

我有一个Siemens S7-1212 AC / DC / Rly PLC,我想使用Snap7与C#应用程序通信。我已经在用户界面中成功建立了到PLC的连接,甚至可以成功地将值写入PLC。 但是有时写函数(三分之一)不会将值写到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(有时是另一个数字,但大部分是这个)。在这种情况下,该函数确实可以运行(未给出异常或错误),但该值不会更改。

我的问题:

为什么我得到如此高的价值,这是什么意思?

预先感谢, 西奥

0 个答案:

没有答案