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

Тема: Формула

  1. #1

    По умолчанию Формула

    Всем привет. Пытаюсь работать с формулами. Частенько выдаёт "Ошибка синтаксиса". [SIZE="6"]Где можно прочитать о правилах синтаксиса?[/SIZE]Пытаюсь в одном поле формулы ввести : При превышении некоего порогового значения двух сигналов воспринимать это как ИСТИНА (оценка РАБОТАЕТ или СТОИТ агрегат) и тут же ввести, по результату этой формулы ИСТИНА, функцию моточасов. Не получается-проблемы с синтаксисом.

  2. #2

    По умолчанию

    В справочной системе есть описание синтаксиса (всех функций)
    Напишите здесь вашу формулу.
    Спасибо.

  3. #3

    По умолчанию

    В справочной системе есть описание ФБ и функций, а синтаксиса я не нашёл. Как правильно записать ?
    Если Расход >=5 И Давление >=7, то Значение 1 = ИСТИНА
    AbsArchDiscreteCounterTime [Значение1, Начало, Конец ]

    И всё уместить в поле одной формулы.
    Может быть как-то можно обойтись без промежуточного "Значение 1" ?

  4. #4

    По умолчанию

    В одной формуле все сделать не получится. Ведь функция AbsArchDiscreteCounterTime работает с архивом.
    Сделайте событие, в него пропишите формулу:
    Давление >= 5 И Расход >= 7
    Поставьте у события флаг "Архивировать".
    Сделайте расчет в него пропишите:
    AbsArchDiscreteCounterTime( Событие_1,Время_начала,DateTime( ) )
    Событие_1 - архивное событие
    Время_начала - команда времени начала архива
    DateTime() - команда получения текущего времени (конец архива).

    Функция "Если" описана в справке.
    Синтаксис такой:
    Если(Переменная_1=1,10, 20 )
    Если Переменная_1=1, то Результат расчета будет равен 10, иначе 20
    Спасибо.

  5. #5

    По умолчанию

    ОК. Спасибо. Возник следующий вопрос. В "AbsArchDiscreteCounterTime" результат вещественный. В свойствах не меняется. Есть ли какие-нибудь функции преобразования типов из одного в другой. В моём случае из вещественного во временной..Спасибо

  6. #6

    По умолчанию

    И ещё...Почему формула "ЕСЛИ ( Мотоминуты =60, Моточасы=Моточасы +1, Моточасы= Моточасы )" возвращает результат тип логический, а не целый как я установил в свойствах всех переменных? И как правильно реализовать подобный алгоритм?

  7. #7

    По умолчанию

    Цитата Сообщение от Safron Посмотреть сообщение
    Возник следующий вопрос. В "AbsArchDiscreteCounterTime" результат вещественный.
    На выходе - количество секунд. Чтобы преобразователь количество секунд во время можно воспользоваться функцией Sec2Time.
    Тогда команда будет выглядеть так:
    Sec2Time( AbsArchDiscreteCounterTime( Событие_1,Время_начала,DateTime( )) )

    Цитата Сообщение от Safron Посмотреть сообщение
    И как правильно реализовать подобный алгоритм?
    Правильно так:
    ЕСЛИ ( Мотоминуты =60, Моточасы +1, Моточасы )
    Спасибо.

  8. #8

    По умолчанию

    Принято. Уже работает. Спасибо.

Ваши права

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