Показано с 1 по 3 из 3

Тема: Вещественные числа

  1. #1

    По умолчанию Вещественные числа

    Добрый день!
    В ходе разработки очередной программы столкнулся с такой задачкой:
    Привязываю ПЛК100 к теплосчетчикам, делаю запросы, получаю ответы. Все ответы приходят в байтовом массиве. Я выделяю нужные мне байты и перевожу в приемлемый для расчетов формат. Но есть несколько переменных, которые записаны в формате REAL(4 байта). Как оказалось перевести их в нужный формат из байтового массива не такая простая задача. Вручную делать просто - переводим в двоичные коды, выделяем знак, степень и мантиссу и все ок. Но как это организовать на контроллере, не могу придумать. Вообщем задачу можно сформулировать так:
    Есть массив из четырех байт, например M[1]=66, M[2]=105, M[1]=22, M[2]=233 (байты записаны в десятичной форме). Этот массив надо перевести в вещественную переменную X типа REAL.
    Может кто сталкивался с такой проблемкой, или есть такая процедура(X:=procedure(M[1],M[2],M[3],M[4])) в кодесисе, а я не в курсе.

  2. #2
    Пользователь
    Регистрация
    03.03.2008
    Адрес
    Новосибирск
    Сообщений
    238

    По умолчанию

    dwtmp1: DWORD;
    param_adr: POINTER TO DWORD;
    param_adr2: POINTER TO REAL;
    Level_difference: REAL;
    Buffer: ARRAY[0..255] OF BYTE;


    dwtmp1 := Buffer[1] + Buffer[0]*256 + Buffer[3]*256*256 + Buffer[2]*256*256*256;
    param_adr := ADR(dwtmp1);
    param_adr2 := param_adr;
    Level_difference := param_adr2^;

    Проверьте порядок байт

  3. #3

    По умолчанию

    Валенок, kgsh82 спасибо огромное! Все работает!!!

Похожие темы

  1. Генерация случайного числа
    от Gans в разделе Трёп (Курилка)
    Ответов: 28
    Последнее сообщение: 26.07.2016, 14:21
  2. Отображение 4-х значного числа на ТРМ200
    от alex2k3 в разделе Эксплуатация
    Ответов: 6
    Последнее сообщение: 27.07.2011, 12:56

Ваши права

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