1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Тип данных WORD

Ответить

Автор темы
egjar
новенький
новенький
Сообщения: 1
Зарегистрирован: 22 мар 2021, 22:21
Имя: Георгий
Страна: Россия
город/регион: Москва

Тип данных WORD

Сообщение egjar »

Здравствуйте.
Хотелось бы использовать тип данных WORD для управления множеством выходов, поскольку для массового изменения очень подходит битовые операции. Но не могу понять как грамотно привязвыать выходы к такой переменной. Получаются совсем уж нелепые конструкции.
Для чего этот тип данных используется на практике, в реальной работе?

stesl
эксперт
эксперт
Сообщения: 1008
Зарегистрирован: 31 мар 2018, 12:05
Имя: Вячеслав
Благодарил (а): 94 раза
Поблагодарили: 136 раз

Тип данных WORD

Сообщение stesl »

egjar писал(а): 22 мар 2021, 22:39 Для чего этот тип данных используется на практике, в реальной работе?
Тип Word - это целочисленный беззнаковый тип данных, в два байта. Диапазон 0-65535. Используется везде, где оказывается нужным.
Где конкретно, в какой среде, с каким ПЛК, по какому протоколу Вы работете с выходами?

Sergy6661
read only
read only
Сообщения: 577
Зарегистрирован: 19 фев 2019, 22:38
Имя: Сергей
Страна: Россия
город/регион: Краснодар
Благодарил (а): 17 раз
Поблагодарили: 77 раз

Тип данных WORD

Сообщение Sergy6661 »

egjar писал(а): 22 мар 2021, 22:39 Для чего этот тип данных используется на практике, в реальной работе?
Вот для упаковки-распаковки битовых переменных и используется в основном.
И, например, в Step7 тип Word интерпретируется как массив бит.
А как использовать...по разному в различных системах например Var_Bool0:=Var_Word.0, где-то операторы есть Pack- UnPack, а в софте для программирования есть кнопка "HELP", если что не понятно жмем и ищем-читаем там.

Михайло
почётный участник форума
почётный участник форума
Сообщения: 3575
Зарегистрирован: 10 ноя 2009, 04:58
Имя: Толмачев Михаил Алексеевич
город/регион: г. Чехов, МО
Благодарил (а): 6 раз
Поблагодарили: 271 раз

Тип данных WORD

Сообщение Михайло »

stesl писал(а): 23 мар 2021, 10:37 Тип Word - это целочисленный беззнаковый тип данных, в два байта. Диапазон 0-65535. Используется везде, где оказывается нужным.
Не путайте Word с UInt (unsigned integer16), он не относится к целочисленным, так как не кодирует числовые значения и не совместим с математическими операциями.
Потому что:
Sergy6661 писал(а): 23 мар 2021, 12:54 Вот для упаковки-распаковки битовых переменных и используется в основном.
Но не в основном, а только для этого. Если конечно в конкретном ПЛК не срабатывает неявное преобразование, из-за которого кажется, что Word - это целое число.

Отправлено спустя 21 минуту 7 секунд:
Не, иначе объясню:
Word - это когда ты в 16 бит записал 16 булевых значений, каждый из которых что-то значит в смысле true/false. Например, при управлении сервоприводом или частотником.
Int16, UInt16 - это числа, отдельные биты не представляют интереса (хотя бывают редкие исключения).
Математические операции умеют работать с числами, то есть Add(), Sub(), Mul(), Div() работают с Int16/UInt16, а с Word работает подозрительно, подсвечивает типа "глянь, что за дрянь ты задумал?", но воспринимает как число 0-65535. Извините, правда, зачем вы складываете слово управления частотника с числом -85?
Зато сдвиговые операции и операции со словами типа ANDW(), ORW(), NOT(W), XORW() работают именно со словами и подозрительно с целыми числами.

Это разные типы данных, хотя все они 16 бит.

Sergy6661
read only
read only
Сообщения: 577
Зарегистрирован: 19 фев 2019, 22:38
Имя: Сергей
Страна: Россия
город/регион: Краснодар
Благодарил (а): 17 раз
Поблагодарили: 77 раз

Тип данных WORD

Сообщение Sergy6661 »

Михайло писал(а): 23 мар 2021, 21:52 Не путайте Word с UInt (unsigned integer16), он не относится к целочисленным, так как не кодирует числовые значения и не совместим с математическими операциями.
Ну, допустим, в CoDeSys WORD по большему счету как UINT16, но в CoDeSys можно по биту к любому целочисленному обращаться.
В общем все от системы разработки зависит и опять же кнопка "HELP" рулит.

stesl
эксперт
эксперт
Сообщения: 1008
Зарегистрирован: 31 мар 2018, 12:05
Имя: Вячеслав
Благодарил (а): 94 раза
Поблагодарили: 136 раз

Тип данных WORD

Сообщение stesl »

Михайло писал(а): 23 мар 2021, 21:52 Не путайте Word с UInt (unsigned integer16), он не относится к целочисленным, так как не кодирует числовые значения и не совместим с математическими операциями.
Я ничего не путаю
http://www.delphibasics.ru/Word.php просто первая ссылка по запросу
То что в ИС АСУ Word действительно не используется для математических операций (имея ввиду классику - умножение, разность и пр.) - это частность. Защита от переполнения. В обычном программировании такого ограничения нет.
Я поэтому и спрашиваю топикстартера, чего и на чем он вообще то делает ;)
Аватара пользователя

Jackson
администратор
администратор
Сообщения: 17561
Зарегистрирован: 17 июн 2008, 16:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 819 раз
Поблагодарили: 1648 раз

Тип данных WORD

Сообщение Jackson »

stesl писал(а): 23 мар 2021, 10:37 Тип Word - это целочисленный беззнаковый тип данных
Почему именно беззнаковое? Значения в диапазоне -32767....32767 в какие-то другие типы укладывается?
[+]
В начале было слово.
И слово было - два байта......

Источник: https://www.anekdot.ru/id/76230/
По вопросам работы Форума можно обратиться по этим контактам.
Аватара пользователя

aranea
знаток Eplan
знаток Eplan
Сообщения: 1136
Зарегистрирован: 21 сен 2012, 22:45
Имя: aranea
Благодарил (а): 30 раз
Поблагодарили: 165 раз

Тип данных WORD

Сообщение aranea »

Jackson писал(а): 01 апр 2021, 16:17 Значения в диапазоне -32767....32767 в какие-то другие типы укладывается?
может быть в INT? где есть знаковый 15ый бит... и диапазон: -32 768 to +32 767
а WORD это набор бит, каждый значащий, а не знаковый
Изображение
Аватара пользователя

Jackson
администратор
администратор
Сообщения: 17561
Зарегистрирован: 17 июн 2008, 16:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 819 раз
Поблагодарили: 1648 раз

Тип данных WORD

Сообщение Jackson »

aranea писал(а): 01 апр 2021, 16:32 может быть в INT?
А это уже от реализации зависит. ЕМНИП (поправьте, если неправ), интерпретация может быть по-разному реализована. Область данных одна - 2 байта - а читать её можно как INT, как UINT (тот же самое беззнаковое WORD), как два SHORT или как половину DWORDа. Не говоря о том, что в ряде устройств и компиляторов типы данных могут быть другими с теми же названиями. Например:
EBPro data type.png
Как видите, word вообще отсутствует, и что short что int - знаковые. word здесь - только данные длиной 2 байта, а не тип данных.
А про тип компилятора никто ни разу ещё не упомянул. :-Р

И я такое делал: в одной части программы пишу два байта как два SHORT, в другой - читаю из того же адреса как одно INT.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
По вопросам работы Форума можно обратиться по этим контактам.
Аватара пользователя

aranea
знаток Eplan
знаток Eplan
Сообщения: 1136
Зарегистрирован: 21 сен 2012, 22:45
Имя: aranea
Благодарил (а): 30 раз
Поблагодарили: 165 раз

Тип данных WORD

Сообщение aranea »

Вопрос
Jackson писал(а): 01 апр 2021, 16:17 Почему именно беззнаковое? Значения в диапазоне -32767....32767 в какие-то другие типы укладывается?
ответ
aranea писал(а): 01 апр 2021, 16:32 жет быть в INT? где есть знаковый 15ый бит... и диапазон: -32 768 to +32 767
разницу между WORD и INT очень хорошо описал Михайло тут
egjar писал(а): 22 мар 2021, 22:39 Хотелось бы использовать тип данных WORD для управления множеством выходов
вот вам как понятнее состояние входов дискретного модуля: 0xFFAB или состояние входов дискретного модуля: -85 ?
Изображение

stesl
эксперт
эксперт
Сообщения: 1008
Зарегистрирован: 31 мар 2018, 12:05
Имя: Вячеслав
Благодарил (а): 94 раза
Поблагодарили: 136 раз

Тип данных WORD

Сообщение stesl »

Jackson писал(а): 01 апр 2021, 16:17 Почему именно беззнаковое? Значения в диапазоне -32767....32767 в какие-то другие типы укладывается?
Вы говорите о типе integer. word тем и отличается. Отсутствием знака, и соответственно диапазон другой

Отправлено спустя 3 минуты 17 секунд:
Short, long, float - как раз таки понятия общие. Signed, Unsigned.... Word это уже конкретика ))
Но спорить тут не стоит. Тут кого как учили. В программировании - так.
Аватара пользователя

Jackson
администратор
администратор
Сообщения: 17561
Зарегистрирован: 17 июн 2008, 16:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 819 раз
Поблагодарили: 1648 раз

Тип данных WORD

Сообщение Jackson »

stesl писал(а): 02 апр 2021, 01:12 Вы говорите о типе integer. word тем и отличается.
Я говорю о реализации. Вы про какой компилятор сейчас? Я Выше показал, что от продукта продукту применяется разная терминология и понятия, в показанном примере word - это вообще не тип данных.
Поэтому о типах данных я точно не говорю - это бессмысленно.

Отправлено спустя 1 минуту 42 секунды:
stesl писал(а): 02 апр 2021, 01:12 Тут кого как учили
Да без разницы кого как учили. В каждом компиляторе своя терминология и понятия. Научиться можно под любой. Под несколько.
stesl писал(а): 02 апр 2021, 01:12 Но спорить тут не стоит.
Вот именно. Потому что даже предмет спора не определён и у каждого он свой. :)
По вопросам работы Форума можно обратиться по этим контактам.

stesl
эксперт
эксперт
Сообщения: 1008
Зарегистрирован: 31 мар 2018, 12:05
Имя: Вячеслав
Благодарил (а): 94 раза
Поблагодарили: 136 раз

Тип данных WORD

Сообщение stesl »

Jackson писал(а): 02 апр 2021, 11:41 в показанном примере word - это вообще не тип данных.
А я все таки о типе данных, ибо
egjar писал(а): 22 мар 2021, 22:39 Хотелось бы использовать тип данных WORD
Говоря же абстрактно, можно сказать, что WORD это просто область данных. 2 байта
Ответить

Вернуться в «Вопросы от студентов»