Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 17

Тема: Чтение нескольких регистров DWORD из ПЛК, выравнивание адресов.

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

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

    По умолчанию Чтение нескольких регистров DWORD из ПЛК, выравнивание адресов.

    Про выравнивание многократно говорили, но про несколько регистров DWORD я не нашел. Решил спросить , правильно ли я понимаю. Хочу панелью опросить три регистра DWORD. По документации прочитал, что адреса будут кратны 4.
    1 регистр 0х00
    2 регистр 0х04
    3 регистр 0х08.
    Но ведь получаются дырки, незанятые в адресном пространстве с адресами 0х02, 0х03, 0х06, 0х07. Правильно ли я понимаю?

  2. #2
    Пользователь
    Регистрация
    11.01.2009
    Адрес
    Кострома
    Сообщений
    3,144

    По умолчанию

    нет
    DWORD занимает 2 регистра а не 4.
    1 регистр -2 байта(word)

  3. #3

    По умолчанию

    DWORD- четырехбайтная переменная.
    четырёхбайтным переменным присваиваются адреса, кратные 4; двухбайтным – кратные 2; - это так сказано в инструкции, получается инструкция лжёт?

  4. #4

    По умолчанию

    Я знаю , что два, я же упомянул про дырки. Вы не внимательно прочитали мой пост.

  5. #5
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,851

    По умолчанию

    Цитата Сообщение от ZPavel Посмотреть сообщение
    Про выравнивание многократно говорили, но про несколько регистров DWORD я не нашел. Решил спросить , правильно ли я понимаю. Хочу панелью опросить три регистра DWORD. По документации прочитал, что адреса будут кратны 4.
    1 регистр 0х00
    2 регистр 0х04
    3 регистр 0х08.
    Но ведь получаются дырки, незанятые в адресном пространстве с адресами 0х02, 0х03, 0х06, 0х07. Правильно ли я понимаю?
    Если регистры в конфигураторе расположены друг за другом, то их адреса будут
    1 регистр 0х00
    2 регистр 0х02
    3 регистр 0х04.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  6. #6

    По умолчанию

    Хорошо, если придираться к инструкции так как предлагает lara197a, тогда получаем адреса 0х04, 0х08, 0х0с, будь неладен тот, кто ее писал. Хотя, мы все понимаем, что они начинаются с 0х00. Но тогда почему тот человек написал кратным 4. Или он подразумевал адреса байтов. Там указываются адреса, адреса чего, мол догадывайтесь сами. В табличке 7.3 есть адреса битов, байтом, регистров, а в тексте, встречается несколько раз слово адрес, а вот адрес чего , не понятно.

  7. #7
    Пользователь
    Регистрация
    11.01.2009
    Адрес
    Кострома
    Сообщений
    3,144

    По умолчанию

    По твоей логике 0х00- адрес кратный 4-м?
    Включай мозг...

  8. #8

    По умолчанию

    Но если в модуле используются переменные разных типов (например, одно-временно восьмибитный, двухбайтный и четырёхбайтный), то при распределении адресов ПО CoDeSys производит «выравнивание» адресов переменных – упорядо-чение адресов переменных в памяти модуля. Такое упорядочение заключается в ор-ганизации памяти таким образом, что переменные размером 8 бит, 2 байта и 4 байта располагаются только по определенным адресам: четырёхбайтным переменным присваиваются адреса, кратные 4; двухбайтным – кратные 2; однобайтным (или восьмибитным) –кратные 1. То есть, независимо от порядка задания переменных, выравнивание назначает переменным адреса, кратные их длине.

  9. #9
    Пользователь
    Регистрация
    11.01.2009
    Адрес
    Кострома
    Сообщений
    3,144

    По умолчанию

    Цитата Сообщение от ZPavel Посмотреть сообщение
    Но если в модуле используются переменные разных типов (например, одно-временно восьмибитный, двухбайтный и четырёхбайтный), то при распределении адресов ПО CoDeSys производит «выравнивание» ....
    Это кто такое сказал?
    Драйвер распределяет переменные внутри и как он это делает- его личное дело.
    "Снаружи"-ручками, с выравниванием.

  10. #10
    Пользователь
    Регистрация
    11.01.2009
    Адрес
    Кострома
    Сообщений
    3,144

    По умолчанию

    А инструкция написана правильно.

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. 4байта dword из плк по модбус в lectus
    от alexval2006 в разделе ПЛК1хх
    Ответов: 5
    Последнее сообщение: 19.12.2011, 18:40
  2. Сеть из нескольких ПЛК через Ethernet
    от Boo the Hamster в разделе Сетевые технологии
    Ответов: 12
    Последнее сообщение: 03.11.2011, 11:10
  3. Проблема с записью нескольких регистров
    от Денис_NTS в разделе ПЛК1хх
    Ответов: 8
    Последнее сообщение: 11.05.2011, 10:55
  4. чтение из ПЛК
    от new_name в разделе ПЛК1хх
    Ответов: 2
    Последнее сообщение: 17.01.2009, 19:12
  5. Ответов: 23
    Последнее сообщение: 17.10.2007, 08:35

Ваши права

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