О боже, а как сейчас ПР объясняют, что делать с ADD + ADD + SUB на схеме ? танцами с бубнами ?
UDINT четко обозначенная цифровая переменная, а в DWORD вы хоть попугая можете засунуть, если вам размерности хватит.
зачем искать, оно там есть, блоки плюс линии связи плюс расположение.
dword не четко обозначенный тип переменных, как хотите так и представляйте - знаковым, беззнаковым, с плавающей точкой и т.д. udint четко опредлелена.
непонятны такие вопросы от программиста ????
Запись 2+2*2 какому расположению соответствует?
Вы тут постоянно говорите, что "нужно только скобки проверить", "сделать вообще труда не представляет", "просто запретить ввод лишних символов".
А когда вам показывают пример, то вы, похоже, просто игнорируете. Неужели непонятно, что для формулы 2+2*2 придётся проводить парсинг, анализ правильности и т.п.? Неужели непонятно, что для этого потребуется работа программиста, тестировщика, и документатора?
Откуда вы это берёте?
Есть стандарт 61131, там всё описано. Зачем придумывать на ровном месте?
В стандарте русским по белому сказано, что DWORD имеет тип "bit string" и имеет размер 32 бита (4 байта): https://en.wikipedia.org/wiki/IEC_61131-3
То, что вы называете "как хотите так и представляйте" не имеет никакого отношения к стандарту.
Владимир Ситников вот правда, вы прикидываетесь идиотом ?
в математике 2+2*2 = 6, вы знаете другой способ вычисления этого выражения ? если вам нужен результат как в калькуляторе, так бл запишите его как (2+2)*2 как и положено в математике.
Если не верите, можете выполнить эти действия в языке программирования.
Или вы читать не умеете что я написал выше ? - ПРАВИЛЬНОСТЬ РАБОТЫ ВЫЧИСЛЕНИЯ НА СОВЕСТИ ПОЛЬЗОВАТЕЛЯ, не надо как-то иначе интепретировать то, что язык программирования выполнит САМ. проверить надо только что поставив одну (, человек не забыл поставить и вторую пару )
ВСЕ.
вот же ... а udint не состояит из битов и 4-х байт ? наверное там все 12, ога , а может это файл ?
и забавно, ссылаться на стандарты 61131-3, как будто dword только в нем существует. Как лодку обозвали, так она и поплыла....
Последний раз редактировалось melky; 29.07.2017 в 23:34.
Вопросы по 61131 легко сравнить по первоисточнику, и там написано, что и DWORD и UDINT занимают 4 байта.
Отличие в том, что UDINT это число, а DWORD это не число. Иными словами, складывать DWORD'ы нельзя, а UDINT'ы можно.
Это один из примеров, когда в 61131 "хотели как лучше" (сделали разные типы для битовых и для целочисленных значений), а получилось как получилось: никто из программистов не понимает чем DWORD отличается от соответствующего по размеру беззнакового целого UDINT. При этом производители софта пошли на поводу, и в КДС можно складывать DWORD'ы.
Но при этом, в стандарте нет ни строчки про то, что DWORD можно представлять "знаковым, беззнаковым, с плавающей точкой, попугаем". Ну нет там этого.
Если вы по открытым данным не можете делать логические выводы, то по вопросам "сложности доработок ОЛ" и подавно.
Раз вы в таких вопросах не можете себя серьёзно вести, то я признаю своё поражение.
Я не смогу объяснить вам в чём сложность реализации формул.
Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.
melky, потому и вопросы "такие", что программист, а не "говнокодер".
Dword вполне чётко обозначенный тип - Вам это уже рассказали. Не числовой - да, но вполне себе строгий тип. И операции числовой арифметики потому для него и не определены, что объект типа DWORD не является числом - это просто упорядоченный набор битов.
Так же, как строковая переменная - набор символов. Только, символов всего 2.
Ни один язык программирования сам не знает как посчитать 2+2*2 пока программист, создающий этот язык, не напишет чётких и однозначных правил арифметики.
Можно вообще насчитать 2222.
Столько постов и ругани о dword, а в ОЛ он есть? Не вам кажется что все споры не о том?