Стартовая страница › Форумы › Понять, как работает ПО › Формулы › Перевести секунды, в часы и минуты
- В этой теме 82 ответа, 6 участников, последнее обновление 1 год, 9 месяцев назад сделано
manjey73.
-
АвторСообщения
-
26.08.2024 в 17:37 #34293
Alexandr
Участник@Mikhail Спасибо.
проверил все работает.
внес изменения в формулу и стал секунды тоже отображает.Формула 5 строк, а когда не знаешь эти пять строк чувствуешь себя беспомощным))).
По переводу в строку, принял буду это иметь ввиду.
26.08.2024 в 17:46 #34294
manjey73Участник@Mikhail ваша формула не будет показывать дни, кроме = 1
Если нужны именно числа периода, то наверное лучше сделать массив каналов в числовом представлении. Мы получим 4 канала — Дни, Часы, Минуты, Секунды.
Все таки Дата и Интервал это разные вещи.
26.08.2024 в 17:48 #34295Alexandr
УчастникУ меня имеется еще один параметр в секундах, это время до следующего ТО, так как мотор у меня Deutz до ТО 500 часов.
Отработанное время 4 часа., соответственно до то в часах 495, с копейками.Проверяю формулу на канале Time to next engine maintenance со значением 1 785 457, формула отображает в таблице 00:00:00, возможно она не понимает более 24 часов и требуется вводить дни?
26.08.2024 в 18:00 #34296
manjey73Участник20.15:57:37 — отображение строки вашего числа 1 785 457
Соответственно 20 дней, 15 часов, 57 минут, 37 секунд
Можно модернизировать формулу так, что будет массив всего 2-х каналов
1-й это дни
2-й это время27.08.2024 в 09:16 #34300
manjey73Участник@Mikhail а еще ваша формула косячит с временем UTC + временем Веб сервера, в моем случае +3 часа.
Наступление на те же грабли постоянно, думай и заботься как делать там, как делать тут….
1. Не хватает СТУКТУР, массивы это хорошо, но не всегда удобно.
2. Не хватает Формата — Интервал в добавок ко Времени, Дате, Дате и времени
3. Не хватает для массива указания формата для каждой ячейкиз.ы. Проверку ввода нового номера канала после массивов так и не сделали.
27.08.2024 в 09:20 #3430127.08.2024 в 10:17 #34303Romiros
УчастникВидимо время в базе хранится не в UTC. Нужно просто взять за правило хранить его в UTC. У нас одна система хранит все данные в единицах измерения системы СИ. Это морока, то что нужно все к ней преобразовывать, но зато выигрыш на длинной дистанции, когда одним нужно видеть в Па, другим в МПа, третьим в кг/см2. Тогда просто выбирается нужный формат отображения в системе и это не приводит к скачкам на графиках и прочим проблемам.
27.08.2024 в 10:23 #34304
manjey73Участник@Romiros нет, это как раз потому, что время в Сервере записывается как UTC, а WEB оператору подсовывает время Сервера + локальное.
И для распределенных объектов, где операторы окажутся в разных временных зонах будут видеть события и время каждый по своему.
И теперь еще оказывается, что надо думать над формулами, точнее над ними ни черта не придумаешь, так как они крутятся на Сервере.
В общем в результате @Mikhail подложил хорошую такую жирную свинью… 🙂
27.08.2024 в 10:24 #34305Romiros
УчастникПо поводу формата для TimeSpan уже обсуждали с Михаилом, кажется отложили не попозже. Для одного проекта я делал отображение в одном канале оставляя только значащие части интервала. Т.е. если в интервале появляются дни, то секунды уже как бы и нафиг не нужны. В основном так и делают в системах насколько я понял, типа стандарт.
27.08.2024 в 10:25 #34306
manjey73УчастникИМХО. Время должно настраиваться на Сервере, а WEB должен показывать время Сервера а не отображать одно и то же событие в разное время для оператора в Москве или оператора в Екб или еще где-то там.
27.08.2024 в 10:28 #34307Romiros
УчастникИ для распределенных объектов, где операторы окажутся в разных временных зонах будут видеть события и время каждый по своему.
А вот здесь зависит от того как нужно. Например у меня один корабль с одним часовым поясом, а сервер в офисе с другим. RapidGate передает данные и события а диспетчер в офисе видит все по своему времени и ему так удобно.
27.08.2024 в 10:30 #34308
manjey73УчастникДа секунды вообще можно убрать в отображении. Но вот посмотри на скрин.
Канал TimeSpan_ — это строковая переменная, где часы СООТВЕТСТВУЮТ полученному интервалу — 15 часов.И TS_mass[0] — Дни
И TS_mass[1] — дата (тут формат D для всего массива и scada обламывается показать ВРЕМЯ)
TS_time расчетный канал на TS_mass[1] с форматом Время +3 часа.Откроет эту же таблицу оператор из зоны +5 часов он там увидит время 20:57:37
И полагаю туже хренотень будут видеть операторы в событиях + каждому по их времени.
Это не нормально!!!!27.08.2024 в 10:33 #34309
manjey73УчастникА вот здесь зависит от того как нужно. Например у меня один корабль с одним часовым поясом, а сервер в офисе с другим. RapidGate передает данные и события а диспетчер в офисе видит все по своему времени и ему так удобно.
Значит нужна более гибкая настройка — поканальная.
Выбираем нужную настройку для сервера, и в зависимости от нее имеем настройку по каналом, чтобы учитывала формулы, связанные со временем и интервалами.То что сейчас, это ужас. Формулы никак не заставить показывать разным операторам одно время в текущем варианте
27.08.2024 в 10:38 #34310Romiros
УчастникТак и не надо в текущем. Есть базовая система — UTC. Хочешь видеть на своём сервере в том времени, которое на другом, поставь соответствующую настройку в ScadaWeb, она там есть. У нас так реально два филиала работают. У них +4, но закрываться должны по +3. И они просто ставят себе Московское время везде — на приборах и на серверах. Не знаю как у них не едет крыша, но видимо привыкли. Исторически 🙂
27.08.2024 в 10:42 #34311
manjey73УчастникУгу, и текущее время, где-нибудь в углу мнемосхемы они так же будут видеть по выставленному в WEB.
Тут больше проблема с работой формул, связанных со временем, а особенно интервалами.
Я живу по Московскому времени, почему я должен выставлять себе WEB по UTC ? -
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.
