Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 11

Тема: преоброзования

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

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

    По умолчанию преоброзования

    Необходимо производить арифметические действия с аналоговыми сигналами, полученными в ПЛК 150.

    С аналоговых входов АТ%ID получаем только REAL.
    Константы вводим в UINT

    объявили в конфигураторе ПЛК
    Pi Давление измеренное
    dPi перепад измеренный
    Ti температуру измеренную объявили в конфигураторе


    Объявляем константы, не должны теряться
    VAR_GLOBAL RETAIN
    P_100: UINT:=7650; (*100% расчетный расход*)
    dP_100: UINT:=63; (*100% перепад давления*)
    t_100: UINT:=20; (*расчетная температура*)
    END_VAR



    А вот из REAL в UNIT не получается преобразовать
    ни в обьявленниях
    ни в программе
    смотри вложение
    попытка исправления ошибки 4024 ни к чему не приводят
    Изображения Изображения
    • Тип файла: jpg 2.JPG (118.8 Кб, Просмотров: 29)

  2. #2

    По умолчанию

    у тебя синтаксическая ошибка....
    uNIt вместо uINt.
    и точки с запятой в одном месте не хватает...
    Последний раз редактировалось magirus; 24.06.2009 в 18:54.

  3. #3

    По умолчанию

    где надо делать пробразование
    в объвлениях или в программе?
    Изображения Изображения
    • Тип файла: jpg 3.JPG (126.5 Кб, Просмотров: 12)

  4. #4

    По умолчанию

    во первых, переменнная объявляется типом а не преобразованием:
    VAR
    UPi:UINT;
    UdP:UINT;
    PI: REAL;
    END_VAR
    и во второй строке програмы вместо двоеточия в конце строки - точка с запятой.
    UPi:=REAL_TO_UINT(PI);

  5. #5

    По умолчанию

    Извините за надоедливость и ……………
    Но , я получаю с аналоговых входов в формате REAL (Pi- измеренное давление , dPi – измеренный перепад, Ti- измеренная температура)
    Для выполнения арифметических операций необходимо UINT.
    как я понимаю одним объявлением не обойдешься.
    Для этого необходимо выполнить преобразование из REAL в UINT (есть такое в КДС)
    в UPi . UdPi , UTi преобразованное в формат UINT для арифметических операций

    ВОТ ЧТО ЗАБИТО
    ОБЬЯВЛЕНИЯ
    PROGRAM PLC_PRG

    VAR
    UPi: UINT;
    UdP: UINT;
    UTI: UINT;
    END_VAR

    ПРОГА
    UPi:=REAL_TO_UINT(PI);
    UdP:=REAL_TO_UINT(dP);
    UTi:=REAL_TO_UINT(TI);

    ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ


    VAR_GLOBAL RETAIN
    P_100: UINT:=7650; (*максимальный расчетный расход*)
    dP_100: UINT:=63; (*максимальный перепад давления*)
    t_100: UINT:=20; (*расчетная температура*)
    END_VAR

    на скриншоте виден результат
    Изображения Изображения
    • Тип файла: jpg 4.JPG (129.0 Кб, Просмотров: 15)

  6. #6

    По умолчанию

    онлайн - ран похоже не сделал...у меня все пашет

  7. #7

    По умолчанию

    Спасибо.
    осуществил .
    увидел.
    Потерял дробную часть..
    Жаль, погрешность расчета расхода увеличится.
    теперь еще пока не начал мУчиться .
    как сложно можно набрать формулу расчета
    т.е. при соблюдении правил выполнения арифметики (скобки, +/- и /\*)

  8. #8

    По умолчанию

    я получаю с аналоговых входов в формате REAL (Pi- измеренное давление , dPi – измеренный перепад, Ti- измеренная температура)
    Для выполнения арифметических операций необходимо UINT.
    чушь полнейшая...
    нужно чтоб переменные один тип имели, и те над которыми действия производишь, и результата...

    summa:REAL; - вставить в объявления.
    summa:=PI+TI; - вставить в прогу, запустить и посмотреть.

  9. #9

    По умолчанию

    то есть обявить вводимые константы REAL
    VAR_GLOBAL RETAIN
    P_100: REAL:=7650; (*максимальный расчетный расход*)
    dP_100: REAL:=63; (*максимальный перепад давления*)
    t_100: REAL:=20; (*расчетная температура*)
    END_VAR

    и далее работать в REAL

  10. #10

    По умолчанию

    Получилось
    спасибо

Страница 1 из 2 12 ПоследняяПоследняя

Ваши права

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