Показано с 1 по 8 из 8

Тема: Разбор даты

  1. #1
    Пользователь Аватар для VanoKing
    Регистрация
    27.07.2011
    Адрес
    Уфа
    Сообщений
    47

    По умолчанию Разбор даты

    В ФБ структурированный текст возможно разобрать переменную time на часы и минуты? очень важно использовать только один выход фб. разбираю несколько входов со временем в одну строковую переменную.
    Time_to_int ставлю не получается перетащить связь с команды типа время на вход фб. Time_to_string тоже не получается

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

    По умолчанию

    RTC1(EN:=M_Time , PDT:=DT#1970-01-01-00:00:00, Q=> , CDT=> );

    Time_RUN:=DT_TO_TIME(RTC1.CDT); (*Преобразуем время и дату во время*)

    Time_RUN_M:=TIME_TO_DWORD(Time_RUN)/60000; (*получаем минуты*)

    Time_RUN_M_p:=DWORD_TO_WORD(Time_RUN_M-Time_RUN_H*60); (*передаем в панель минуты*)

    Time_RUN_H:=TIME_TO_DWORD(Time_RUN)/3600000; (*получаем часы*)

    Time_RUN_H_p:=DWORD_TO_WORD(Time_RUN_H); (*передаем в панель часы*)

  3. #3

    По умолчанию

    В приложении рабочий пример.
    Можете на основе сделать функцию и загнать в библиотеку
    Вложения Вложения
    Спасибо.

  4. #4
    Пользователь Аватар для VanoKing
    Регистрация
    27.07.2011
    Адрес
    Уфа
    Сообщений
    47

    По умолчанию

    Цитата Сообщение от lara197a Посмотреть сообщение
    RTC1(EN:=M_Time , PDT:=DT#1970-01-01-00:00:00, Q=> , CDT=> );
    Можно подробнее. Скажите как эту функцию в скаде прописать. Только начинаю знакомиться с программированием на таком уровне.

  5. #5
    Пользователь Аватар для VanoKing
    Регистрация
    27.07.2011
    Адрес
    Уфа
    Сообщений
    47

    По умолчанию

    Цитата Сообщение от SCADAMaster Посмотреть сообщение
    В приложении рабочий пример.
    Можете на основе сделать функцию и загнать в библиотеку
    немного неточное преобразование идет. счас пробую переделать? округляет часы преобразование real_to_int, а там нужно выделить целое число.
    9:59:05 => h=10,min=-1

    Вот немного исправил получилось:
    sec:=mlsek/1000;
    sec:=sec mod 60;
    min:=(mlsek-sec*1000)/60000;
    min:=min mod 60;
    hour:=(mlsek-min*60000-sec*1000)/3600000;
    Последний раз редактировалось VanoKing; 24.08.2011 в 10:30.

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

    По умолчанию

    Использована функция RTC. (см. справку КДС)
    M_Time- команда на пуск(BOOL)
    Можно погонять в эмуляции.

    Кусок вырезан из рабочей программы.
    Последний раз редактировалось lara197a; 24.08.2011 в 10:30.

  7. #7
    Пользователь Аватар для VanoKing
    Регистрация
    27.07.2011
    Адрес
    Уфа
    Сообщений
    47

    По умолчанию

    Можно еще вопрос по теме, а как же обратное преобразование.
    передать переменную время не получилось. Передаю из плк число минут int"ом, какое преобразование нужно сделать чтобы результат видно было в поле значение типа "только время".
    грубо говоря:
    ПЛКвремя(01:23)=>int(83)=> ??? СКАДА(01:23)

  8. #8
    Пользователь Аватар для VanoKing
    Регистрация
    27.07.2011
    Адрес
    Уфа
    Сообщений
    47

    По умолчанию

    вопрос отпал, есть же функция Sec2Time() в блоке расчет

Ваши права

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