Бит записи в ПЛК с использованием DBWrite не дает правильного результата (результат = 3145782)
У меня есть ПЛК Siemens S7-1212 AC/DC/Rly, и я хочу общаться с приложением C# с помощью Snap7. Я успешно установил соединение с ПЛК в пользовательском интерфейсе и даже могу успешно записывать значения в ПЛК. Однако иногда (1 в 3 раза) функция записи не записывает значения в ПЛК и выдает в результате очень большое целое число.
Код C#: Соединение с ПЛК установлено с помощью следующего кода:
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, поэтому действие записи было выполнено успешно. Я вижу изменение значения на истинное в программе ПЛК. Но иногда (примерно 1 в 3 раза) результат является очень высоким значением, в большинстве случаев 3145728 (иногда другое число, но в основном это). В этом случае функция работает (исключений и ошибок нет), но значение не меняется.
Мой вопрос:
Почему я получаю это высокое значение как результат и что это значит?
Заранее спасибо Тео