Показано с 1 по 10 из 14

Тема: Отображение числа float

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

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    Цитата Сообщение от jtx Посмотреть сообщение
    А не подскажете, как это реализовать?
    Если есть ПЛК, то пишется программа преобразования в STRING, сразу предупреждаю, там будет куча нюансов, в зависимости от степени. Например преобразование, только положительных чисел, до 9999,9 заняло строк 20 на ST.
    Последний раз редактировалось kondor3000; 25.07.2023 в 17:35.

  2. #2
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,854

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Если есть ПЛК, то пишется программа преобразования в STRING, сразу предупреждаю, там будет куча нюансов, в зависимости от степени. Например преобразование, только положительных чисел, до 9999,9 заняло строк 20 на ST.
    Можно макрос на Си в панели написать, который будет "печатать" в символьный дисплей число в виде +/-1.23 e-23.
    Нюансов никаких, и не больше 3.. 5 строк кода, думаю
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  3. #3
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,854

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    Можно макрос на Си в панели написать, который будет "печатать" в символьный дисплей число в виде +/-1.23 e-23.
    Нюансов никаких, и не больше 3.. 5 строк кода, думаю
    Если тупо в лоб, без универсальности, то всего одна строчка кода.

    1. Добавим в проект символьный дисплей с 10 символами ( нам надо 9 для формата -1.23е-45)
    Захват-02.png

    2."печатать" в символьный дисплей будем то, что вводим в тот же цифровой ввод, что использует ГМ
    Захват-03.png

    3."печатью" будет управлять ф.область с вызовом макроса Си
    Захват-04.png

    4. осталось показать код макроса
    Захват-01.png
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  4. #4
    Пользователь
    Регистрация
    03.01.2019
    Адрес
    Солнечногорск МО
    Сообщений
    49

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    Если тупо в лоб, без универсальности, то всего одна строчка кода.
    А вот у меня задача отобразить значения в диапазоне 1000... 1Е-10
    Эти значения СП3** считывает с ячеек ПЛК по адресам 6 и 7 в WORD...

    Как сделать текущее значение на индикаторе в формате *.* Е-** ?
    Последний раз редактировалось Ворон226; 01.09.2023 в 13:39.

  5. #5

    По умолчанию

    Цитата Сообщение от Ворон226 Посмотреть сообщение
    А вот у меня задача отобразить значения в диапазоне 1000... 1Е-10
    Эти значения СП3** считывает с ячеек ПЛК по адресам 6 и 7 в WORD...

    Как сделать текущее значение на индикаторе в формате *.* Е-** ?
    Не понял, как вы значения WORD собираетесь представлять диапазоне 1000... 1Е-10
    Если это Float с адресом 6, то как отобразить его, уже выложили на предыдущей странице.
    Последний раз редактировалось kondor3000; 01.09.2023 в 14:17.

  6. #6
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,854

    По умолчанию

    Цитата Сообщение от Ворон226 Посмотреть сообщение
    А вот у меня задача отобразить значения в диапазоне 1000... 1Е-10
    Эти значения СП3** считывает с ячеек ПЛК по адресам 6 и 7 в WORD...

    Как сделать текущее значение на индикаторе в формате *.* Е-** ?
    Смотреть пример с макросом на Си в #10

    "печатать" будем с символьный дисплей с 10 символами,например PSW1000
    Захват-04.png

    нужна ф.область, непрерывная
    Захват-02.png

    функция - вызов макроса
    Захват-05.png

    Захват-01.png

    текст макроса

    Код:
    // (c) PeterA
    
    DWORD Val;
    Read(PLC, 1, MODBUS_RTU_REG_4X, 6, 0, TYPE_DWORD, &Val);	// прочитать из ПЛК с адр.1 регистр 4x06, DWord (два регистра 6 и 7)
    sprintf((char*)&PSW[1000], "%3.2E", DWord_2_Float(Val));	// напечатать полученное значение в формате "*.** E-**" в символьный дисплей с рег. PSW1000
    Последний раз редактировалось petera; 01.09.2023 в 14:36.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

Похожие темы

  1. ПР200, как с экрана убрать отображение величины int/float
    от sergei0818 в разделе Программируемые реле
    Ответов: 1
    Последнее сообщение: 03.03.2023, 05:53
  2. Ответов: 4
    Последнее сообщение: 13.04.2022, 19:00
  3. Отображение float/int на дисплее ПР200
    от flicker581 в разделе Среда программирования OWEN Logic
    Ответов: 0
    Последнее сообщение: 17.02.2016, 19:12
  4. Переход от float (Nullable) к просто float
    от ASo в разделе Master SCADA 3
    Ответов: 1
    Последнее сообщение: 12.11.2014, 14:21
  5. Отображение 4-х значного числа на ТРМ200
    от alex2k3 в разделе Эксплуатация
    Ответов: 6
    Последнее сообщение: 27.07.2011, 12:56

Ваши права

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