Вывести текущее время в скаду

Помечено: 

Просмотр 13 сообщений - с 1 по 13 (из 13 всего)
  • Автор
    Сообщения
  • #3242
    Evgen
    Участник

    Здравствуйте!
    Как вывести текущее время в скаду?

    • Эта тема была изменена 7 лет, 5 месяцев назад от Mikhail.
    #3243
    Mikhail
    Модератор

    Добрый день!
    Создать 3 канала типа Дорасчётный ТИ: для часов, минут и секунд. Вывести их в представление.
    Формулы будут:
    DateTime.Now.Hour
    DateTime.Now.Minute
    DateTime.Now.Second

    #8514
    hizkiyau
    Участник

    Добрый день!
    Попытался использовать выше описанный пример вывода текущего времени в представление скады, но сервер пишет ошибку
    «имя DateTime отсутствует в данном контексте»

    Формулы вписывал во входные каналы :
    DateTime.Now.Hour
    DateTime.Now.Minute
    DateTime.Now.Second

    Подскажите как все это сделать правильно

    #8515
    KoliaMor
    Участник
    #8516
    manjey73
    Участник

    У меня данные формулы не вызывают ошибок

    2018-02-18 22:57:16 <ANJEY-NB><СИСТЕМА><ACT> Формулы считаны из базы конфигурации
    2018-02-18 22:57:16 <ANJEY-NB><СИСТЕМА><ACT> Исходный код формул калькулятора откомпилирован

    И даже работает.

    • Этот ответ был изменен 6 лет, 1 месяц назад от manjey73.
    #8520
    hizkiyau
    Участник

    Ну вроде разобрался с часами, то от глюк толи руки кривые, заработало
    Вопрос в том, как представить дату и время в привычном формате
    Как вывести дату и время в таком формате в представление
    20.07.2015 18:30:25
    На C# это делал так
    Console.WriteLine(DateTime.Now);

    #8522
    KoliaMor
    Участник

    EncodeDate(DateTime.Now), Формат: Дата и Время

    #8523
    hizkiyau
    Участник

    Спасибо большое, все работает

    #26980
    ZH.Sergey
    Участник

    Здравствуйте!
    Всех с наступившими праздниками!
    Подскажите пожалуйста, как в v6 вывести день недели?
    В версии 5.8 работала такая формула:
    // double Week(DateTime dt)
    {
    string week = dt.DayOfWeek.ToString();
    double s=0;
    if (week==»Sunday») s=7;
    if (week==»Monday») s=1;
    if (week==»Tuesday») s=2;
    if (week==»Wednesday») s=3;
    if (week==»Thursday») s=4;
    if (week==»Friday») s=5;
    if (week==»Saturday») s=6;
    return s;
    }
    //

    • Этот ответ был изменен 1 год, 2 месяца назад от ZH.Sergey. Причина: опечатка
    #26982
    a80808
    Участник

    Возвратите номер дня недели в канал, добавьте в таблицу размерностей текст перечисления типа
    week ;Monday;Tuesday;Wednesday;Thursday;Friday;Saturday;Sunday

    Выберите формат Текст перечисления и эту размерность для этого канала.
    Само будет отображаться. В пятой версии тоже будет работать. Первая точка с запятой чтобы ничего не отображалось если в канале ноль

    #26983
    ZH.Sergey
    Участник

    [ERR] Ошибка при компиляции исходного кода скриптов и формул:
    (377,50): error CS0122: ‘Scripts.Week(DateTime)’ is inaccessible due to its protection level
    Проверьте исходный код в файле C:\Program Files\SCADA\ScadaServer\Log\CalcEngine.cs

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

    Напишите public double Week…

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

    Более правильный способ написал выше @a80808
    А ещё можно с помощью таблицы Формат задать сразу отображение DateTime в виде дня недели. Нужно в документации C# посмотреть, какая строка форматирования.

    • Этот ответ был изменен 1 год, 2 месяца назад от Mikhail.
Просмотр 13 сообщений - с 1 по 13 (из 13 всего)
  • Вы должны авторизироваться для ответа в этой теме.