Показано с 1 по 10 из 16

Тема: Упаковка переменных BOOL, INT, REAL в Modbus String

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    (*читаем из строки переменные разных типов*)
    ptr2 := ADR(str1); (*ставим указатель на нашу стоку*)
    j:=ptr2^; (*читаем переменную типа INT*)
    ptr3 := ptr2 + 2; (*смещаем указатель на 2 байта*)

    j := ptr2^;
    вот здесь "собака" - если str1 начинается с четного адреса - будет работать, если с нечетного - ватчдог! т.е. как фишка ляжет -50 на 50 ))) поработал код, добавили переменную и абзац! Егор правду глаголет! проверил сам.

  2. #2
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    3,065

    По умолчанию

    Цитата Сообщение от Дмитрий Артюховский Посмотреть сообщение
    т.е. как фишка ляжет -50 на 50 .
    Фишки всегда кладутся как нужно если понимать как их класть ))

  3. #3

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Фишки всегда кладутся как нужно если понимать как их класть ))
    Я для себя - объявил массив из DWORDов ( чтобы он "правильно" в память лег ) и лазаю в него уже любыми указателями, правильно разместив переменные ))) это если "разогнать" код нужно, а для понимания лучше через обычные переменные, сильно время на отладке экономится!

  4. #4
    Пользователь
    Регистрация
    19.11.2011
    Адрес
    г. Белгород
    Сообщений
    357

    По умолчанию

    Цитата Сообщение от Дмитрий Артюховский Посмотреть сообщение
    (*читаем из строки переменные разных типов*)
    ptr2 := ADR(str1); (*ставим указатель на нашу стоку*)
    j:=ptr2^; (*читаем переменную типа INT*)
    ptr3 := ptr2 + 2; (*смещаем указатель на 2 байта*)

    j := ptr2^;
    вот здесь "собака" - если str1 начинается с четного адреса - будет работать, если с нечетного - ватчдог! т.е. как фишка ляжет -50 на 50 ))) поработал код, добавили переменную и абзац! Егор правду глаголет! проверил сам.
    С Егором согласен, у меня были проблемы когда структуру через указатели юзал, в симуляторе работало, а вот в реальном железе были проблемы. После выравнивания проблемы закончились.

Похожие темы

  1. Ответов: 20
    Последнее сообщение: 03.05.2015, 16:01
  2. Упаковка переменных ПЛК
    от ramilgim в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 28.04.2013, 21:06
  3. Переменная REAL ведет себя как Int при вычислениях
    от lomtik в разделе Сетевые технологии
    Ответов: 9
    Последнее сообщение: 16.01.2013, 11:50
  4. преобразование Real>string кракозябры
    от K580BB55A в разделе ПЛК1хх
    Ответов: 1
    Последнее сообщение: 09.11.2010, 17:07

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •