Бит записи в ПЛК с использованием DBWrite не дает правильного результата (результат = 3145782) - PullRequest
1 голос
/ 04 апреля 2019

У меня есть ПЛК 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 (иногда другое число, но в основном это).В этом случае функция работает (исключений и ошибок не дано), но значение не меняется.

Мой вопрос:

Почему я получаю это высокое значение как результат ичто это значит?

Заранее спасибо, Тео

...