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

Тема: CODESYS V3.5. Визуализация

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

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,286

    По умолчанию

    Я думаю, у вас отклоение появляется при конвертации в строку (потому что %s) - не уверен, что его вообще можно избежать, это особенности типа с плавающей точкой.

  2. #2
    Пользователь Аватар для DenisV
    Регистрация
    20.11.2020
    Адрес
    Санкт-Петербург
    Сообщений
    96

    По умолчанию

    А из кода программы возможно менять спецификатор? Что-нибудь в духе %.iF, где i - переменная int

  3. #3
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,286

    По умолчанию

    Цитата Сообщение от DenisV Посмотреть сообщение
    А из кода программы возможно менять спецификатор? Что-нибудь в духе %.iF, где i - переменная int
    Нет, но можно в коде строку сформировать по нужным вам правилам и отдавать на визуализацию уже её.

  4. #4
    Пользователь Аватар для DenisV
    Регистрация
    20.11.2020
    Адрес
    Санкт-Петербург
    Сообщений
    96

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Нет, но можно в коде строку сформировать по нужным вам правилам и отдавать на визуализацию уже её.
    Хорошо, спасибо!

  5. #5

    По умолчанию

    что касается чисто отображения можно сделать немного по-другому, используя динамические тексты для текстового поля:
    создать динамический лист для переменной вида:
    id текст
    0 - %d //отображение без цифр после запятой
    1 - %.1f // с одним знаком после запятой
    2 - %.2f // 2
    3 - %.3f // 3
    и т.д.

    Только потребуется присвоить для каждого текстового поля переменную с типом отображения и добавить некоторый обработчик в код программы - условия выбора того или иного отображения.

    Что касается появления некоторого 'приращения' у значения, это связано с кодированием типа REAL, также сталкивался с подобным.
    Собс-но с этим же связаны трудности сравнения переменных REAL на равенство, рекомендуется (кажется это было у OSCAT) сравнивать через некотрую дельту, а не в лоб.
    Т.е. код ниже не корректен, т.к. возможны отличия в последних значащих знаках и условие никогда не выполнится (при этом при отладке может казаться что все ок, будет отображаться как будто два одинаковых числа)
    rTmp1 :REAL;
    rTmp2 :REAL;

    IF rTmp1 = rTmp2 <...>

    Соот-но рекомендуется в этом случае сравнивать таким образом

    IF ABS(rTmp1 - rTmp2) < 0000.1 <...> // дельта в зависимости от требуемой точности
    Последний раз редактировалось IgnatTali; 08.07.2021 в 15:54.

Похожие темы

  1. Визуализация CoDeSys
    от Newcomer в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 24.04.2018, 15:26
  2. Визуализация в CoDeSys
    от Newcomer в разделе ПЛК1хх
    Ответов: 15
    Последнее сообщение: 10.05.2017, 21:11
  3. Визуализация CodeSys
    от DanJer в разделе ПЛК1хх
    Ответов: 2
    Последнее сообщение: 30.08.2012, 04:53
  4. Визуализация Codesys
    от Slipknot в разделе ПЛК1хх
    Ответов: 9
    Последнее сообщение: 31.10.2008, 11:36
  5. Визуализация в CoDeSys 2.3
    от Slawa в разделе ПЛК1хх
    Ответов: 10
    Последнее сообщение: 29.08.2008, 18:30

Ваши права

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