Страница 5 из 5 ПерваяПервая ... 345
Показано с 41 по 50 из 58

Тема: Получение значений float32

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,575

    По умолчанию

    Второй вариант, должны понять что в этом плане вторая и третья версия ни чем не отличаются, в конфигурации держите не реал а два ворда вместо него, а дальше как здесь показано, если без ооп

  2. #2

    По умолчанию

    а как получить из массива байт собрать real?

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

    По умолчанию

    Так же через указатель на реал

  4. #4

    По умолчанию

    может есть у кого нибудь пример на CDS2.3 в котором полученное число типа real переделываетсья в другое число типа real с другим порядком байт?

  5. #5

    По умолчанию

    скажите хотябы как обратиться указателем pt:POINTER TO BYTE; ко второму байту переменной?

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

    По умолчанию

    Pt:=pt+1 я же написал

  7. #7

    По умолчанию

    Я был в гостях у компании 3S в германии. Рассказал им, что многие наши пользователи имеют проблемы со сбором переменных Real из пары переменных Word.
    Даже рассказал, что они имеют несколько разновидностей передачи и т.п.

    В общем компания 3S сейчас думает как лучше реализовать карту Modbus в нужные типы данных.
    Как только появятся данные я обязательно сообщу в данной ветке. И сообщу в какой версии CODESYS появится данная реализация.

  8. #8

    По умолчанию

    Здравствуйте. Столкнулся с той же проблемой конвертации 2-х WORD в REAL при работе с МВ110-2А в CodeSys 3.5. Нашел простенькое решение: В адресах регистров МВ110-2А есть отдельно адрес регистра целой части (мантиссы) и регистра положения десятичной точки. Организовал вывод температуры так:

    temp1:=WORD_TO_REAL(Mant1)/EXPT(10,WORD_TO_REAL(DP1));
    temp2:=WORD_TO_REAL(Mant2)/EXPT(10,WORD_TO_REAL(DP2));

    Вложение 12050
    Вложение 12051
    Последний раз редактировалось Medyv; 23.02.2014 в 10:16.

  9. #9

    По умолчанию

    Искал решение для DELPHI, в интернете особо не нашел, но помогли примеры выше,оказалось все просто. Возможно кому нибудь поможет:
    var
    a,b:Word; //Исходные данные, 2 ячейки по 2 байта
    c:Single; //Результирующая ячейка, действительное число 4 байта
    d:^Cardinal; //Указатель на целочисленную 4х байтовую переменную
    begin
    a:=64; //Для примера
    b:=16440;

    d:=@c; // Присваиваем целочисленной 4х байтовой переменной тот же адрес что и действительной

    d^:=MakeLong(a,b); // Объединяем 2 слова в одно 4х байтовое

    Caption:=FloatToStr(c); // Получаем результат 2.875015259
    end

Страница 5 из 5 ПерваяПервая ... 345

Похожие темы

  1. Как читать Float32 по Modbus-RTU
    от servo в разделе ПЛК1хх
    Ответов: 8
    Последнее сообщение: 13.03.2019, 09:30
  2. Получение данных с датчиков
    от qawaq в разделе Помощь Разработчикам
    Ответов: 8
    Последнее сообщение: 13.05.2013, 17:54
  3. Получение сертификата.
    от smk1635 в разделе Трёп (Курилка)
    Ответов: 8
    Последнее сообщение: 13.08.2011, 19:58
  4. ТРМ32+ПЛК110 (FLOAT32)
    от DiMKiN в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 26.05.2011, 14:58
  5. Получение данных от МВА8
    от КИПиА в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 03.03.2008, 14:10

Ваши права

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