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

Тема: ПЛК - переменные в Codesys

  1. #1

    По умолчанию ПЛК - переменные в Codesys

    Сталкнулись с проблемой - Codesys не поддерживает переменные типа LREAL ?
    Каким образом в программе для ПЛК возможно обойти данную проблему.
    Требуется подсчет показаний счетчика со значениями до 999 999,99 .
    Процедура перехода через "0" - буду признателен за подсказку.

  2. #2

    По умолчанию

    вещественные типы ниразу не подходят для счетчиков, при больших значениях разрядность матиссы убъет приращения... используйте целочисленные переменные, запятую ставьте в процедуре индикации величины

  3. #3

    По умолчанию

    так ведь
    Диапазон значений REAL от: 1.175494351e-38 до 3.402823466e+38
    и
    999 999,99
    вроде входит в этот диапазон с приличным запасом. или я не прав?

  4. #4

    По умолчанию

    Все верно. DWORD вполне для данной задачи подойдет. Делаете условное смещение на 2 разряда с панели или при выводе в скаду.

  5. #5

    По умолчанию

    Спасибо ! Мы начинающие...
    Соответственно вопрос: когда реальный счетчик перепрыгнет через 999999.99 как синхронизировать переход в "ноль" в программе ?

  6. #6

    По умолчанию

    Что значит "синхронизировать переход в "ноль" в программе"?

  7. #7

    По умолчанию

    проверяйте превышение счетчика над максимально допустимым, при превышении максимума - присваивайте счетчику величину приращения

    if (count >= max_count) then
    count := count - max_count;
    end_if

  8. #8
    Пользователь
    Регистрация
    11.03.2010
    Адрес
    Петрозаводск Карелия
    Сообщений
    242

    По умолчанию

    if (count > max_count) then
    count := 0;
    end_if
    так не проще?

  9. #9

    По умолчанию

    Цитата Сообщение от Александр Приходько Посмотреть сообщение
    Что значит "синхронизировать переход в "ноль" в программе"?
    опробую свои телепатические особенности:
    реальный счетчик считает до числа 999 999.99 а затем продолжает счет с 0. в программе надо сделать так, чтоб после этого перехода через максимум значение в счетчике было = текущее значение + количество "перепрыгов" * 999 999.99

  10. #10
    Пользователь
    Регистрация
    24.03.2011
    Адрес
    Ирпень
    Сообщений
    15

    По умолчанию

    Pointer, если
    count := count - max_count;
    то мы сохраним число, на которое счетчик превысил максимальное значение. Разве нет?

Ваши права

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