PDA

Просмотр полной версии : Чертовщина с байтами



user32767
06.07.2023, 09:24
Здравствуйте.
Насколько я знаю, слово (Word) состоит из двух байтов. Например, слово %MW108 состоит из байтов %MB108 и %MB109. Записываем в %MW108 число, например, 128. Получаем парадокс: в %MW108 хранится 128, но при этом в %MB108 хранится 0 и в %MB109 хранится 0. Магия. Снимок прилагаю.
Объясните, пожалуйста, как комбинация двух нулевых байт даёт ненулевое слово, и как сделать так, чтоб значения битов не терялись.

Евгений Кислов
06.07.2023, 09:27
Здравствуйте.
Насколько я знаю, слово (Word) состоит из двух байтов. Например, слово %MW108 состоит из байтов %MB108 и %MB109. Записываем в %MW108 число, например, 128. Получаем парадокс: в %MW108 хранится 128, но при этом в %MB108 хранится 0 и в %MB109 хранится 0. Магия. Снимок прилагаю.
Объясните, пожалуйста, как комбинация двух нулевых байт даёт ненулевое слово, и как сделать так, чтоб значения битов не терялись.

Добрый день.
Какой контроллер вы используете?


Например, слово %MW108 состоит из байтов %MB108 и %MB109.

Это не так, адресация у каждой области своя.
108-е слово состоит из байтов 214-215 (%MB214-215), потому что слово = 2 байта.

user32767
06.07.2023, 09:31
Я использую ПЛК210. Про различную адресацию для слов и байтов не знал, спасибо! А где-то можно посмотреть таблицу сопоставления этих адресов?

Евгений Кислов
06.07.2023, 09:33
Я использую ПЛК210. Про различную адресацию для слов и байтов не знал, спасибо! А где-то можно посмотреть таблицу сопоставления этих адресов?

Если вы используете ПЛК210 - то вам в принципе не нужно работать с адресами.
Используйте переменные.

user32767
06.07.2023, 09:50
Большое Вам спасибо, разобрался. Просто не знал про адресацию IEC. %MW108 - это не %MB214-215, а %MB216-217. Благодарю за совет по использованию переменных вместо адресов, но с моими нынешними знаниями проще всего достать отдельные биты из слова именно через адрес. Прилагаю таблицу, которая помогла понять разницу в адресации.68666