ПЛК 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 может получать первый байт, предназначенный для данных