ПЛК S7-1500 SQL-соединение - полученные данные сдвинуты на 1 байт --почему?

Я уже некоторое время успешно использую ПЛК S7 1500 в сочетании с SQL-сервером. Я настроил все, как указано здесь: S7SQL-Guide-Stackoverflow Сегодня я попытался добавить второй параметр в свой SQL-запрос. Итак, я сделал что-то вроде этого:

      select Number1,Number2 from MYTABLE WHERE Apple = red and Sky = blue

S7 отправляет телеграмму, а SQL-сервер отвечает. Все идет нормально.

Я установил размер TokenColumnMetaData в соответствии с моей записью wireshark, скомпилировал и отправил обновления на свой ПЛК. Теперь часть, которую я не понимаю:

Я ожидаю получить значение «12345», поэтому я снова использовал wirehark, чтобы увидеть, чего ожидать:

Итак, что я получил: 39 30 00 00, что составляет 12345, просто байты перевернуты - пока проблем нет, но когда я проверяю на стороне S7, я вижу это:

Мой ввод сдвинут на 1 байт. Как я могу это решить? К сожалению, у меня нет более глубоких знаний о коде, предоставленном Siemens для этого приложения.

1 ответ

Иногда происходят странные вещи с памятью, когда тип данных содержит нечетное количество байтов.

Siemens запускает каждый элемент по четному адресу памяти. Так что если Lengthнаходится по адресу 0 и Dataнаходится в 2-5, то адрес 1 может получать первый байт, предназначенный для данных

      
Другие вопросы по тегам