Формула таймера 1 сек

Просмотр 15 сообщений - с 61 по 75 (из 78 всего)
  • Автор
    Сообщения
  • #38181
    manjey73
    Участник

    Возможно во времени сработки формул. Начало часа и начало минуты всегда совпадают. Может приоритет выполнения какой-то есть. Но это Михаил больше подскажет.

    #38182
    alexandr1803
    Участник

    Спс, будем ждать ответ Михаила. Пока на все выходные оставил EverySec, в понедельник гляну всю таблицу по обнулению. Если что, то так и оставлю, а пересчет в минуты сделаю отдельным каналом для записи значений в таблицу.

    #38183
    manjey73
    Участник

    Есть ещё момент, который надо учитывать всегда в формулах.
    Они исполняются от младшего канала к старшему последовательно.
    Чем то напоминает работу LAD языка. И если у вас после что-то переписывается, то можете затереть данные.

    #38185
    alexandr1803
    Участник

    всего во всей скаде пока 8 каналов, в трех из них используется данная формула и работать перестают все три если прописать в них минуты вместо секунд. Формула расчета процентов (время работы*100/ фактическое время) если стоит последним по счету каналом, что логично, то в таблицу не сохраняет показания вообще (там только текущие высвечиваются), поставил ее самым первым каналом из расчетных, тогда показания сохраняются каждый час.

    #38186
    manjey73
    Участник

    А попробуйте HourStarted() поставить в качестве входной расчетной формулы самой первой. Например с номером канала 1. ( Понятно для чего? )
    А потом в своих формулах использовать
    EveryMin(() => Val(1) > 0 ? и т.д.

    Интересно, что получится ?

    #38187
    alexandr1803
    Участник

    Не совсем понял, т.е типа того HourStarted() ? 0 : EveryMin(()=> и тд…

    #38188
    manjey73
    Участник

    Вместо и так далее продолжение вашей формулы. Я с мобилы пишу 😀
    Вы просто часовую формулу ставите в начале в каком-то канале, один цикл там должна быть 1, и используете значение этого канала.
    Можно ещё для проверки поставить формулу Р триггера и посмотреть будет ли 1 фиксироваться.

    • Ответ изменён 6 месяцев, 3 недели назад пользователем manjey73.
    #38192
    alexandr1803
    Участник

    Формула секундного таймера со сбросом каждый час EverySec(() => HourStarted() ? SetVal(CnlNum, 1) : Val()+1) проработала все выходные практически идеально (с EveryMin не работает сброс).
    Сейчас попробовал так: HourStarted(() ? SetVal(CnlNum, 1) : EverySec() => Val()+1)
    не работает, ошибка компиляции.

    #38193
    manjey73
    Участник

    И не будет работать, потому что вы секунды завернули в час, которые срабатывают один раз в час. Зачем ему еще и секунды читать?

    Вот почему он не сбрасывает при использовании EvreyMin ?
    Я предложил вам решение для проверки. Еще можно зафиксировать дополнительным каналом через R-Trigg и потом сбросить его чуть позже.

    • Ответ изменён 6 месяцев, 2 недели назад пользователем manjey73.
    #38194
    alexandr1803
    Участник

    HourStarted() ? SetVal(CnlNum, 1) так тоже не компилируется.

    #38196
    manjey73
    Участник

    Ну ошибки компиляции то он выдает? надо смотреть в CalcEngine.cs по номеру строки чего ему не нравится и разбираться.

    #38198
    alexandr1803
    Участник

    EveryMin(() => HourStarted() ? 0 : Val() + 1) хоть убейте, но вот эта формула из справочника «Скрипты и формулы» не работает, тупо не сбрасывает таймер. Оставил в секундах и отдельным каналом Val(n)*0.06 (для перевода в минуты) Пусть так тогда будет, зато работает.

    #38202
    Mikhail
    Модератор

    Для проверки работы EveryMin вызывайте свою функцию EveryMin(() => MyFunc())
    в которой сделайте вывод в текстовой файл полезной информации. Было бы полезно понять в какие моменты времени вызывается функция MyFunc и чему при этом равна HourStarted()

    #38203
    Mikhail
    Модератор

    EveryMin(() => HourStarted() ? 0 : Val() + 1) хоть убейте, но вот эта формула из справочника «Скрипты и формулы» не работает, тупо не сбрасывает таймер.

    Проверю.

    #38206
    alexandr1803
    Участник

    А не может эта формула каким-то образом конфликтовать с moddiffcalc?

Просмотр 15 сообщений - с 61 по 75 (из 78 всего)
  • Для ответа в этой теме необходимо авторизоваться.