Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 11

Тема: DATE_AND_TIME и прочие вопросы по времени

  1. #1

    По умолчанию DATE_AND_TIME и прочие вопросы по времени

    1. Скажите, можно ли вычитать друг из друга переменные типа date_and_time?
    2. Как записать в такую переменную текущее системное значение даты и времени?

    Спасибо.

  2. #2
    Пользователь
    Регистрация
    11.01.2009
    Адрес
    Кострома
    Сообщений
    3,144

  3. #3

    По умолчанию

    Мануал толковый, но не нашёл ответов.

  4. #4
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,251

    По умолчанию

    А как определили что толковый ?

    1.Можно, но рез-т - TIME; //что естественно коли читали толковый документ

    2.Способов много:

    2.1. Надыбать формул и вычислить. В толковом документе - есть.
    2.2. Надыбать функцию и применить.
    2.3. Не парить моск и заставить пахать германский трактор через строки
    2.4 ..
    Последний раз редактировалось Валенок; 22.11.2015 в 21:53.

  5. #5

    По умолчанию

    Валенок, спасибо за наводку! Так и сделал, всё работает отлично!

    Код:
    VAR
    cur_datetime_dt:DT; // текущее время в формате DT
    cur_datetime_str:STRING; // текущее время в формате 
    
    TIME_NOW: CurTimeEx;
    YEAR,MONTH,DAY,HOUR,MINUTE,SEC:UINT;
    MONTH_S,DAY_S,HOUR_S,MIN_S,SEC_S:STRING(2);
    YEAR_S:STRING(4);
    SystemTime: SysTime64;
    TimeDate: SystemTimeDate;
    END_VAR
    
    // получаем текущее время и дату в формате DT
    TIME_NOW(SystemTime:=SystemTime , TimeDate:=TimeDate );
    YEAR:=TimeDate.Year;
    MONTH:=TimeDate.Month;
    DAY:=TimeDate.Day;
    HOUR:=TimeDate.Hour;
    MINUTE:=TimeDate.Minute;
    SEC:=TimeDate.Second;
    
    YEAR_S:=UINT_TO_STRING(YEAR);
    MONTH_S:=UINT_TO_STRING(MONTH);
    DAY_S:=UINT_TO_STRING(DAY);
    HOUR_S:=UINT_TO_STRING(HOUR);
    MIN_S:=UINT_TO_STRING(MINUTE);
    SEC_S:=UINT_TO_STRING(SEC);
    
    cur_datetime_str:=concat('dt#',concat(year_s,concat('-',concat(month_s,concat('-',concat(day_s,concat('-',concat(hour_s,concat(':',concat(min_s,concat(':',sec_s)))))))))));
    //  2015-04-19-12:59:01
    
    cur_datetime_dt := STRING_TO_DT(cur_datetime_str);

    Дальше дело техники. Если кому интересно - могу скинуть управление ПРкой для освещения в квартире.

  6. #6
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,248

    По умолчанию

    Цитата Сообщение от vnkorol Посмотреть сообщение
    Валенок, спасибо за наводку! Так и сделал, всё работает отлично!

    Код:
    VAR
    cur_datetime_dt:DT; // текущее время в формате DT
    cur_datetime_str:STRING; // текущее время в формате 
    
    TIME_NOW: CurTimeEx;
    YEAR,MONTH,DAY,HOUR,MINUTE,SEC:UINT;
    MONTH_S,DAY_S,HOUR_S,MIN_S,SEC_S:STRING(2);
    YEAR_S:STRING(4);
    SystemTime: SysTime64;
    TimeDate: SystemTimeDate;
    END_VAR
    
    // получаем текущее время и дату в формате DT
    TIME_NOW(SystemTime:=SystemTime , TimeDate:=TimeDate );
    YEAR:=TimeDate.Year;
    MONTH:=TimeDate.Month;
    DAY:=TimeDate.Day;
    HOUR:=TimeDate.Hour;
    MINUTE:=TimeDate.Minute;
    SEC:=TimeDate.Second;
    
    YEAR_S:=UINT_TO_STRING(YEAR);
    MONTH_S:=UINT_TO_STRING(MONTH);
    DAY_S:=UINT_TO_STRING(DAY);
    HOUR_S:=UINT_TO_STRING(HOUR);
    MIN_S:=UINT_TO_STRING(MINUTE);
    SEC_S:=UINT_TO_STRING(SEC);
    
    cur_datetime_str:=concat('dt#',concat(year_s,concat('-',concat(month_s,concat('-',concat(day_s,concat('-',concat(hour_s,concat(':',concat(min_s,concat(':',sec_s)))))))))));
    //  2015-04-19-12:59:01
    
    cur_datetime_dt := STRING_TO_DT(cur_datetime_str);

    Дальше дело техники. Если кому интересно - могу скинуть управление ПРкой для освещения в квартире.
    вместе с квартирой?
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  7. #7

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    вместе с квартирой?
    в смысле? проект? да, могу с квартирой, только он еще до конца не доведен...

  8. #8

    По умолчанию


    Народ, а еще вопрос - с DT# можно в визуализации выдернуть значения, например “%t[ddd MMM dd.MM.yyyy HH:mm:ss]”.

    А как вытащить данные в нормальном виде HH:mm:ss из T# (TIME)?

    Всё, разобрался, только руками
    Последний раз редактировалось vnkorol; 22.11.2015 в 13:56.

  9. #9

    По умолчанию

    Можно оживить тему?

    Мне нужно отобразить время запуска и время работы программы.
    Делаю это так:
    PHP код:
    PROGRAM PLC_PRG
    VAR
        
    RTCReal_Time_Clock// FB из библиотеки SPK Tools 1.3.0
        
    YearMonthDayHourMinuteSecondUINT;
        
    DT_STRINGSTRING;
        
    STARTBOOL:= FALSE;
        
    StartTimeDATE_AND_TIME;
        
    NOWDATE_AND_TIME;
        
    WorkTimeTIME;
    END_VAR

    IF NOT START THEN // первый запуск
        
    RTC(
            
    Year=> Year
            
    Month=> Month
            
    Day=> Day
            
    Hour=> Hour
            
    Minute=> Minute
            
    Second=> Second
            
    w_str_time=> , 
            
    w_str_dateM=> );
            
        
    DT_STRING:= 'DT#';
        
    DT_STRING:= CONCAT(DT_STRINGUINT_TO_STRING(Year));
        
    DT_STRING:= CONCAT(DT_STRING'-');
        
    DT_STRING:= CONCAT(DT_STRINGUINT_TO_STRING(Month));
        
    DT_STRING:= CONCAT(DT_STRING'-');
        
    DT_STRING:= CONCAT(DT_STRINGUINT_TO_STRING(Day));
        
    DT_STRING:= CONCAT(DT_STRING'-');
        
    DT_STRING:= CONCAT(DT_STRINGUINT_TO_STRING(Hour));
        
    DT_STRING:= CONCAT(DT_STRING':');
        
    DT_STRING:= CONCAT(DT_STRINGUINT_TO_STRING(Minute));
        
    DT_STRING:= CONCAT(DT_STRING':');
        
    DT_STRING:= CONCAT(DT_STRINGUINT_TO_STRING(Second));
        
        
        
    StartTime:= STRING_TO_DT(DT_STRING);
        
    START:= TRUE;
    END_IF;

        
    RTC(
            
    Year=> Year
            
    Month=> Month
            
    Day=> Day
            
    Hour=> Hour
            
    Minute=> Minute
            
    Second=> Second
            
    w_str_time=> , 
            
    w_str_dateM=> );
            
        
    DT_STRING:= 'DT#';
        
    DT_STRING:= CONCAT(DT_STRINGUINT_TO_STRING(Year));
        
    DT_STRING:= CONCAT(DT_STRING'-');
        
    DT_STRING:= CONCAT(DT_STRINGUINT_TO_STRING(Month));
        
    DT_STRING:= CONCAT(DT_STRING'-');
        
    DT_STRING:= CONCAT(DT_STRINGUINT_TO_STRING(Day));
        
    DT_STRING:= CONCAT(DT_STRING'-');
        
    DT_STRING:= CONCAT(DT_STRINGUINT_TO_STRING(Hour));
        
    DT_STRING:= CONCAT(DT_STRING':');
        
    DT_STRING:= CONCAT(DT_STRINGUINT_TO_STRING(Minute));
        
    DT_STRING:= CONCAT(DT_STRING':');
        
    DT_STRING:= CONCAT(DT_STRINGUINT_TO_STRING(Second));

    NOW:= STRING_TO_DT(DT_STRING);
    WorkTime:= NOW StartTime
    В визуализации отображаю переменные StartTime и WorkTime.

    В отладчике вижу то, что надо: StartTime - время запуска (не изменяется), WorkTime - время работы (тикает, как положено).
    На визуализации же вижу и StartTime, WorkTime тикают и показывают текущее реальное время.

    Где я мог ошибиться и сделать что-то не так?
    Последний раз редактировалось Selya; 09.09.2016 в 14:35.

  10. #10

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. Ответов: 18
    Последнее сообщение: 05.10.2015, 09:30
  2. вопросы по КДС3 от меньше чем, новичек и всякий флуд по поводу КДС3
    от Павел Братковский в разделе Трёп (Курилка)
    Ответов: 63
    Последнее сообщение: 28.03.2015, 14:11
  3. Ошибка (0) и прочие разрывы связи.
    от tantranah в разделе ПЛК1хх
    Ответов: 9
    Последнее сообщение: 14.03.2015, 22:42
  4. DS18B20 и прочие датчики 1wire (iButton)
    от ASZ в разделе Разработки
    Ответов: 0
    Последнее сообщение: 06.03.2013, 01:31
  5. ПЛК160: узнать дату и время в DATE_AND_TIME
    от Yegor в разделе ПЛК1хх
    Ответов: 13
    Последнее сообщение: 07.11.2012, 08:35

Ваши права

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