- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Тип данных WORD
Модератор: Глоб.модераторы
-
- новенький
- Сообщения: 1
- Зарегистрирован: 22 мар 2021, 22:21
- Имя: Георгий
- Страна: Россия
- город/регион: Москва
Тип данных WORD
Здравствуйте.
Хотелось бы использовать тип данных WORD для управления множеством выходов, поскольку для массового изменения очень подходит битовые операции. Но не могу понять как грамотно привязвыать выходы к такой переменной. Получаются совсем уж нелепые конструкции.
Для чего этот тип данных используется на практике, в реальной работе?
Хотелось бы использовать тип данных WORD для управления множеством выходов, поскольку для массового изменения очень подходит битовые операции. Но не могу понять как грамотно привязвыать выходы к такой переменной. Получаются совсем уж нелепые конструкции.
Для чего этот тип данных используется на практике, в реальной работе?
-
- эксперт
- Сообщения: 1035
- Зарегистрирован: 31 мар 2018, 12:05
- Имя: Вячеслав
- Благодарил (а): 100 раз
- Поблагодарили: 141 раз
Тип данных WORD
Тип Word - это целочисленный беззнаковый тип данных, в два байта. Диапазон 0-65535. Используется везде, где оказывается нужным.
Где конкретно, в какой среде, с каким ПЛК, по какому протоколу Вы работете с выходами?
-
- специалист
- Сообщения: 655
- Зарегистрирован: 19 фев 2019, 22:38
- Имя: Сергей
- Страна: Россия
- город/регион: Краснодар
- Благодарил (а): 20 раз
- Поблагодарили: 89 раз
Тип данных WORD
Вот для упаковки-распаковки битовых переменных и используется в основном.
И, например, в Step7 тип Word интерпретируется как массив бит.
А как использовать...по разному в различных системах например Var_Bool0:=Var_Word.0, где-то операторы есть Pack- UnPack, а в софте для программирования есть кнопка "HELP", если что не понятно жмем и ищем-читаем там.
-
- эксперт
- Сообщения: 3643
- Зарегистрирован: 10 ноя 2009, 04:58
- Имя: Толмачев Михаил Алексеевич
- город/регион: г. Чехов, МО
- Благодарил (а): 8 раз
- Поблагодарили: 286 раз
Тип данных WORD
Не путайте Word с UInt (unsigned integer16), он не относится к целочисленным, так как не кодирует числовые значения и не совместим с математическими операциями.
Потому что:
Но не в основном, а только для этого. Если конечно в конкретном ПЛК не срабатывает неявное преобразование, из-за которого кажется, что 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 бит.
-
- специалист
- Сообщения: 655
- Зарегистрирован: 19 фев 2019, 22:38
- Имя: Сергей
- Страна: Россия
- город/регион: Краснодар
- Благодарил (а): 20 раз
- Поблагодарили: 89 раз
Тип данных WORD
Ну, допустим, в CoDeSys WORD по большему счету как UINT16, но в CoDeSys можно по биту к любому целочисленному обращаться.
В общем все от системы разработки зависит и опять же кнопка "HELP" рулит.
-
- эксперт
- Сообщения: 1035
- Зарегистрирован: 31 мар 2018, 12:05
- Имя: Вячеслав
- Благодарил (а): 100 раз
- Поблагодарили: 141 раз
Тип данных WORD
Я ничего не путаю
http://www.delphibasics.ru/Word.php просто первая ссылка по запросу
То что в ИС АСУ Word действительно не используется для математических операций (имея ввиду классику - умножение, разность и пр.) - это частность. Защита от переполнения. В обычном программировании такого ограничения нет.
Я поэтому и спрашиваю топикстартера, чего и на чем он вообще то делает ;)
-
- администратор
- Сообщения: 18758
- Зарегистрирован: 17 июн 2008, 16:01
- Имя: Евгений свет Брониславович
- Страна: Россия
- город/регион: Санкт-Петербург
- Благодарил (а): 973 раза
- Поблагодарили: 1854 раза
Тип данных WORD
Почему именно беззнаковое? Значения в диапазоне -32767....32767 в какие-то другие типы укладывается?
По вопросам работы Форума можно обратиться по этим контактам.
-
- знаток Eplan
- Сообщения: 1136
- Зарегистрирован: 21 сен 2012, 22:45
- Имя: aranea
- Благодарил (а): 30 раз
- Поблагодарили: 165 раз
Тип данных WORD
может быть в INT? где есть знаковый 15ый бит... и диапазон: -32 768 to +32 767
а WORD это набор бит, каждый значащий, а не знаковый
-
- администратор
- Сообщения: 18758
- Зарегистрирован: 17 июн 2008, 16:01
- Имя: Евгений свет Брониславович
- Страна: Россия
- город/регион: Санкт-Петербург
- Благодарил (а): 973 раза
- Поблагодарили: 1854 раза
Тип данных WORD
А это уже от реализации зависит. ЕМНИП (поправьте, если неправ), интерпретация может быть по-разному реализована. Область данных одна - 2 байта - а читать её можно как INT, как UINT (тот же самое беззнаковое WORD), как два SHORT или как половину DWORDа. Не говоря о том, что в ряде устройств и компиляторов типы данных могут быть другими с теми же названиями. Например: Как видите, word вообще отсутствует, и что short что int - знаковые. word здесь - только данные длиной 2 байта, а не тип данных.
А про тип компилятора никто ни разу ещё не упомянул. :-Р
И я такое делал: в одной части программы пишу два байта как два SHORT, в другой - читаю из того же адреса как одно INT.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
По вопросам работы Форума можно обратиться по этим контактам.
-
- знаток Eplan
- Сообщения: 1136
- Зарегистрирован: 21 сен 2012, 22:45
- Имя: aranea
- Благодарил (а): 30 раз
- Поблагодарили: 165 раз
Тип данных WORD
Вопрос
ответ
разницу между WORD и INT очень хорошо описал Михайло тут
вот вам как понятнее состояние входов дискретного модуля: 0xFFAB или состояние входов дискретного модуля: -85 ?
-
- эксперт
- Сообщения: 1035
- Зарегистрирован: 31 мар 2018, 12:05
- Имя: Вячеслав
- Благодарил (а): 100 раз
- Поблагодарили: 141 раз
Тип данных WORD
Вы говорите о типе integer. word тем и отличается. Отсутствием знака, и соответственно диапазон другой
Отправлено спустя 3 минуты 17 секунд:
Short, long, float - как раз таки понятия общие. Signed, Unsigned.... Word это уже конкретика ))
Но спорить тут не стоит. Тут кого как учили. В программировании - так.
-
- администратор
- Сообщения: 18758
- Зарегистрирован: 17 июн 2008, 16:01
- Имя: Евгений свет Брониславович
- Страна: Россия
- город/регион: Санкт-Петербург
- Благодарил (а): 973 раза
- Поблагодарили: 1854 раза
Тип данных WORD
Я говорю о реализации. Вы про какой компилятор сейчас? Я Выше показал, что от продукта продукту применяется разная терминология и понятия, в показанном примере word - это вообще не тип данных.
Поэтому о типах данных я точно не говорю - это бессмысленно.
Отправлено спустя 1 минуту 42 секунды:
Да без разницы кого как учили. В каждом компиляторе своя терминология и понятия. Научиться можно под любой. Под несколько.
Вот именно. Потому что даже предмет спора не определён и у каждого он свой. :)
По вопросам работы Форума можно обратиться по этим контактам.
-
- эксперт
- Сообщения: 1035
- Зарегистрирован: 31 мар 2018, 12:05
- Имя: Вячеслав
- Благодарил (а): 100 раз
- Поблагодарили: 141 раз
Тип данных WORD
А я все таки о типе данных, ибо
Говоря же абстрактно, можно сказать, что WORD это просто область данных. 2 байта