Перевести секунды, в часы и минуты

Стартовая страница Форумы Понять, как работает ПО Формулы Перевести секунды, в часы и минуты

Просмотр 15 сообщений - с 31 по 45 (из 83 всего)
  • Автор
    Сообщения
  • #34293
    Alexandr
    Участник

    @Mikhail Спасибо.

    проверил все работает.
    внес изменения в формулу и стал секунды тоже отображает.

    Формула 5 строк, а когда не знаешь эти пять строк чувствуешь себя беспомощным))).

    По переводу в строку, принял буду это иметь ввиду.

    #34294
    manjey73
    Участник

    @Mikhail ваша формула не будет показывать дни, кроме = 1

    Если нужны именно числа периода, то наверное лучше сделать массив каналов в числовом представлении. Мы получим 4 канала — Дни, Часы, Минуты, Секунды.

    Все таки Дата и Интервал это разные вещи.

    #34295
    Alexandr
    Участник

    У меня имеется еще один параметр в секундах, это время до следующего ТО, так как мотор у меня Deutz до ТО 500 часов.
    Отработанное время 4 часа., соответственно до то в часах 495, с копейками.

    Проверяю формулу на канале Time to next engine maintenance со значением 1 785 457, формула отображает в таблице 00:00:00, возможно она не понимает более 24 часов и требуется вводить дни?

    #34296
    manjey73
    Участник

    20.15:57:37 — отображение строки вашего числа 1 785 457

    Соответственно 20 дней, 15 часов, 57 минут, 37 секунд

    Можно модернизировать формулу так, что будет массив всего 2-х каналов

    1-й это дни
    2-й это время

    #34300
    manjey73
    Участник

    @Mikhail а еще ваша формула косячит с временем UTC + временем Веб сервера, в моем случае +3 часа.

    Наступление на те же грабли постоянно, думай и заботься как делать там, как делать тут….

    1. Не хватает СТУКТУР, массивы это хорошо, но не всегда удобно.
    2. Не хватает Формата — Интервал в добавок ко Времени, Дате, Дате и времени
    3. Не хватает для массива указания формата для каждой ячейки

    з.ы. Проверку ввода нового номера канала после массивов так и не сделали.

    #34301
    manjey73
    Участник

    1

    • Ответ изменён 1 год, 10 месяцев назад пользователем manjey73.
    #34303
    Romiros
    Участник

    Видимо время в базе хранится не в UTC. Нужно просто взять за правило хранить его в UTC. У нас одна система хранит все данные в единицах измерения системы СИ. Это морока, то что нужно все к ней преобразовывать, но зато выигрыш на длинной дистанции, когда одним нужно видеть в Па, другим в МПа, третьим в кг/см2. Тогда просто выбирается нужный формат отображения в системе и это не приводит к скачкам на графиках и прочим проблемам.

    #34304
    manjey73
    Участник

    @Romiros нет, это как раз потому, что время в Сервере записывается как UTC, а WEB оператору подсовывает время Сервера + локальное.

    И для распределенных объектов, где операторы окажутся в разных временных зонах будут видеть события и время каждый по своему.

    И теперь еще оказывается, что надо думать над формулами, точнее над ними ни черта не придумаешь, так как они крутятся на Сервере.

    В общем в результате @Mikhail подложил хорошую такую жирную свинью… 🙂

    #34305
    Romiros
    Участник

    По поводу формата для TimeSpan уже обсуждали с Михаилом, кажется отложили не попозже. Для одного проекта я делал отображение в одном канале оставляя только значащие части интервала. Т.е. если в интервале появляются дни, то секунды уже как бы и нафиг не нужны. В основном так и делают в системах насколько я понял, типа стандарт.

    #34306
    manjey73
    Участник

    ИМХО. Время должно настраиваться на Сервере, а WEB должен показывать время Сервера а не отображать одно и то же событие в разное время для оператора в Москве или оператора в Екб или еще где-то там.

    #34307
    Romiros
    Участник

    И для распределенных объектов, где операторы окажутся в разных временных зонах будут видеть события и время каждый по своему.

    А вот здесь зависит от того как нужно. Например у меня один корабль с одним часовым поясом, а сервер в офисе с другим. RapidGate передает данные и события а диспетчер в офисе видит все по своему времени и ему так удобно.

    #34308
    manjey73
    Участник

    Да секунды вообще можно убрать в отображении. Но вот посмотри на скрин.
    Канал TimeSpan_ — это строковая переменная, где часы СООТВЕТСТВУЮТ полученному интервалу — 15 часов.

    И TS_mass[0] — Дни
    И TS_mass[1] — дата (тут формат D для всего массива и scada обламывается показать ВРЕМЯ)
    TS_time расчетный канал на TS_mass[1] с форматом Время +3 часа.

    Откроет эту же таблицу оператор из зоны +5 часов он там увидит время 20:57:37

    И полагаю туже хренотень будут видеть операторы в событиях + каждому по их времени.
    Это не нормально!!!!

    #34309
    manjey73
    Участник

    А вот здесь зависит от того как нужно. Например у меня один корабль с одним часовым поясом, а сервер в офисе с другим. RapidGate передает данные и события а диспетчер в офисе видит все по своему времени и ему так удобно.

    Значит нужна более гибкая настройка — поканальная.
    Выбираем нужную настройку для сервера, и в зависимости от нее имеем настройку по каналом, чтобы учитывала формулы, связанные со временем и интервалами.

    То что сейчас, это ужас. Формулы никак не заставить показывать разным операторам одно время в текущем варианте

    #34310
    Romiros
    Участник

    Так и не надо в текущем. Есть базовая система — UTC. Хочешь видеть на своём сервере в том времени, которое на другом, поставь соответствующую настройку в ScadaWeb, она там есть. У нас так реально два филиала работают. У них +4, но закрываться должны по +3. И они просто ставят себе Московское время везде — на приборах и на серверах. Не знаю как у них не едет крыша, но видимо привыкли. Исторически 🙂

    #34311
    manjey73
    Участник

    Угу, и текущее время, где-нибудь в углу мнемосхемы они так же будут видеть по выставленному в WEB.

    Тут больше проблема с работой формул, связанных со временем, а особенно интервалами.
    Я живу по Московскому времени, почему я должен выставлять себе WEB по UTC ?

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