Страница 349 из 363 ПерваяПервая ... 249299339347348349350351359 ... ПоследняяПоследняя
Показано с 3,481 по 3,490 из 3623

Тема: разные вопросы новичка

  1. #3481
    Пользователь
    Регистрация
    09.12.2013
    Адрес
    Ставрополь
    Сообщений
    1,157

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    На ПР у вас ничего не выйдет, он не умеет работать с 64 битными переменными, всё что вы можете прочитать 4 регистра, Вложение 74282
    и их передать куда то, где можно пересчитать.
    Вот тема https://owen.ru/forum/showthread.php...light=WB-MAP3e
    Так человек читает регистр 0х1300, а он 32 бит со знаком. У вас регистр 0х2200 (64 бит без знака). Или он не то что нужно читает?
    Последний раз редактировалось Dimensy; 12.03.2024 в 20:39.

  2. #3482

    По умолчанию

    Цитата Сообщение от FPavel Посмотреть сообщение
    И ещё один тестовый вывод - число с фиксированной десятичной точкой (15+5).
    Просто добавил ещё одно деление на 10 и потом собрал 5-разрядное число для показа десятичной дроби

    Если нужно сложение-вычитание-умножение длинных чисел - могу сделать, только алгоритм Карацубы реализовывать не буду (не умею).

    Я прочитал тему по ссылке, но не уяснил проблемы. Там перемещают какие-то байты для получения правильной последовательности байт в принятом 64 разрядном слове. Но это не проблема.

    Если сложность в чём-то другом - лучше прямо напишите, не отсылайте к водянистой многостраничной теме.
    Если сделаете умножение и сложение 20 разрядных чисел, будет здорово, переставить байты не проблема в целочисленном. Останется только приём 4 регистров, но это ТС должен проверить (сделать).
    Последний раз редактировалось kondor3000; 12.03.2024 в 21:52.

  3. #3483

    По умолчанию

    Цитата Сообщение от Dimensy Посмотреть сообщение
    Так человек читает регистр 0х1300, а он 32 бит со знаком. У вас регистр 0х2200 (64 бит без знака). Или он не то что нужно читает?
    Весь и вопрос в том, что часть работает и читается (16 и 32 разрядные), а часть проблема с чтением (64 разрядные) с 0х2200 по 0х2203,
    не считая остального, умножение, сложение 20 разрядных чисел и деление 20 разрядного на 10^5, а потом и вывод на экран,
    которое возможно решить, как оказалось.
    Последний раз редактировалось kondor3000; 12.03.2024 в 21:35.

  4. #3484

    По умолчанию

    Дополнил сложением длинных чисел.

    Искренне сомневаюсь в необходимости умножения длинных чисел - физический смысл величины [куб.м*куб.м] не понятен.

    Довольно просто сделать вычитание длинных чисел, умножение длинного на короткое, деление длинного на короткое, чуть сложнее сделать умножение длинных чисел. Деление длинных чисел - сложновато, но возможно.

    Всё требует времени - и отладка длинных вычислений. Мне не хочется реализовывать ради реализации.

    Думаю, что лучшим вариантом будет, если Nsft сможет принять эти 4 регистра и пояснит, какие вычисления требуются. И попробует их реализовать. Если не сможет - завтра вечером после работы попробую.

    Идея вычислений - имеем массив, в котором каждый элемент использует половину разрядов. При операциях проверяется старшая половина и, если она не нулевая, то делается перенос в следующий элемент. Все операции (сложение, вычитание, умножение, деление) выполняются по алгоритму "на бумаге в столбик". Единственно, при делении приходится следить, чтобы перенос не вызвал переполнения разрядной сетки (так не получилось сразу делить на 10^5).
    Вложения Вложения

  5. #3485

    По умолчанию

    Цитата Сообщение от FPavel Посмотреть сообщение
    Дополнил сложением длинных чисел.

    Искренне сомневаюсь в необходимости умножения длинных чисел - физический смысл величины [куб.м*куб.м] не понятен.
    .
    Еще раз, что надо посчитать, вот скрин 1 Счётчик WB-MAP3E.png

    0x2200
    младшая часть — значение оставляем «как есть» : 0хb4df hex = 46303 dec (может быть до 65535)
    0x2201
    значение умножаем на 2^16 : 0x0dff hex = 3583 dec, 3583 * 65536 = 234815488 (может быть до 4294901760)
    0x2202
    значение умножаем на 2^32 : 0 * 4294967296 = 0 (сейчас 0, а будет число до 5 знаков, например 65535 * 4294967296=281470681743360 )
    0x2203
    значение умножаем на 2^48 : 0 * 281474976710656 = 0 (сейчас 0, а будет число до 5 знаков, например 65535 * 281474976710656=18446462598732840960 )
    Суммируем результаты : 46303 + 234815488 + 0 + 0 = 234861791. Сумму умножаем на 0.00001 (переносим запятую на 5 знаков влево).
    В итоге получаем 2348.61791 КВт /час

    65535+4294901760+281470681743360+18446462598732840 960=18446744073709551615 - максимально возможное 20-значное число
    умноженное на 0.00001=184467440737095.51615
    Последний раз редактировалось kondor3000; 17.03.2024 в 16:53.

  6. #3486
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,256

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Еще раз, что надо посчитать, вот скрин 1 Счётчик WB-MAP3E.png

    0x2200
    младшая часть — значение оставляем «как есть» : 0хb4df hex = 46303 dec
    0x2201
    значение умножаем на 2^16 : 0x0dff hex = 3583 dec, 3583 * 65536 = 234815488
    0x2202
    значение умножаем на 2^32 : 0 * 4294967296 = 0 (сейчас 0, а будет число до 5 знаков)
    0x2203
    значение умножаем на 2^48 : 0 * 281474976710656 = 0 (сейчас 0, а будет число до 5 знаков)
    Суммируем результаты : 46303 + 234815488 + 0 + 0 = 234861791. Сумму умножаем на 0.00001 (переносим запятую на 5 знаков влево).
    В итоге получаем 2348.61791 КВт /час
    ну, каждый регистр по отдельности перевести во флоат и умножить на 0.00001, 0.65536, 42949.67296 и 2814749767.10656 соответственно, далее всё сложить
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  7. #3487

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    ну, каждый регистр по отдельности перевести во флоат и умножить на 0.00001, 0.65536, 42949.67296 и 2814749767.10656 соответственно, далее всё сложить
    Как вы в Лоджике с такими числами работать будете? Работать надо с LREAL и LWORD иначе вы просто потеряете часть знаков.
    С целочисленными ещё можно как предложил FPavel , с обычным REAL вообще не получится с 3 и 4 регистром пересчитать.
    Последний раз редактировалось kondor3000; 13.03.2024 в 09:03.

  8. #3488
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,256

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Как вы в Лоджике с такими числами работать будете? Работать надо с LREAL и LWORD иначе вы просто потеряете часть знаков.
    т.е. Вас беспокоит сколько знаков после запятой когда целая часть числа перевалит за 2814749767?
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  9. #3489

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    т.е. Вас беспокоит сколько знаков после запятой когда целая часть числа перевалит за 2814749767?
    Во первых считать надо точно, это счётчик расхода, во вторых потерять вы можете не только посля запятой, но и перед запятой.
    Обычный REAL больше 5 знаков до запятой, тоже может потерять.

  10. #3490

    По умолчанию

    Добрый день.
    Подскажите, макросы работают в общем цикле (как вызов Fb в обычном ПЛК) или как-то отдельно?

Страница 349 из 363 ПерваяПервая ... 249299339347348349350351359 ... ПоследняяПоследняя

Похожие темы

  1. Вопросы новичка!!!
    от sau в разделе ПЛК1хх
    Ответов: 42
    Последнее сообщение: 02.05.2022, 19:57
  2. Вопросы новичка по MasterScada
    от MrNobody в разделе Master SCADA 3
    Ответов: 4
    Последнее сообщение: 04.09.2014, 15:39
  3. ПЛК 110 - Вопросы новичка?
    от di-s в разделе ПЛК1хх
    Ответов: 10
    Последнее сообщение: 06.09.2011, 15:12
  4. Вопросы полного новичка
    от Korion в разделе ПЛК1хх
    Ответов: 11
    Последнее сообщение: 09.02.2010, 10:08
  5. Вопросы новичка по ПЛК
    от Ollegator в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 07.07.2009, 10:29

Ваши права

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