Объявление

Свернуть
Пока нет объявлений.

Установка времени.

Свернуть
X
 
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения

  • Установка времени.

    1. Через linux консоль не могу установить временную зону Asia/Yekaterinburg. Хотя она вроде бы указан среди доступных.
    В руководстве указано в файле /ect/profile задать переменную.
    А можно подробнее? Что именно делать?
    Просто в конце текста файла указать 'TZ=STD-5 '?

    2. После каждого ребута или пропадания питания значение времени увеличивается на несколько часов вперёд.
    Это связано с тем, что нет батарейки своей.
    И это можно устранить только с покупной ethernet модуля и соответственно с синхронизацией времени через интернет?

  • #2
    Сообщение от Никита Посмотреть сообщение
    1. Через linux консоль не могу установить временную зону Asia/Yekaterinburg. Хотя она вроде бы указан среди доступных.
    В руководстве указано в файле /ect/profile задать переменную.
    А можно подробнее? Что именно делать?
    Просто в конце текста файла указать 'TZ=STD-5 '?

    2. После каждого ребута или пропадания питания значение времени увеличивается на несколько часов вперёд.
    Это связано с тем, что нет батарейки своей.
    И это можно устранить только с покупной ethernet модуля и соответственно с синхронизацией времени через интернет?
    Нужно зайти в системную утилиту, там нужно настроить дату и время.

    как зайти в системную утилиту описано в РЭ на ПЛК раздел 5.2 "Обновление проекта CODESYS c использованием системной утилиты"



    Комментарий


    • #3
      Сообщение от Пушкарев Андрей Посмотреть сообщение

      Нужно зайти в системную утилиту, там нужно настроить дату и время.

      как зайти в системную утилиту описано в РЭ на ПЛК раздел 5.2 "Обновление проекта CODESYS c использованием системной утилиты"


      После каждого ребута или пропадания питания значение времени увеличивается на несколько часов вперёд.
      Это связано с тем, что нет батарейки своей.
      И это можно устранить только с покупной ethernet модуля и соответственно с синхронизацией времени через интернет?

      Комментарий


      • #4
        Сообщите версию корневой ФС в вашем приборе. Дело может быть в неправильной настройке часового пояса.
        Прибор оснащен часами реального времени с батареей.

        Комментарий


        • #5
          Сообщение от Таушканов Посмотреть сообщение
          Сообщите версию корневой ФС в вашем приборе. Дело может быть в неправильной настройке часового пояса.
          Прибор оснащен часами реального времени с батареей.

          Версия корневой ФС: Agava 2020.2 20200207060920.

          Я настраиваю время и часовой пояс в Системной Утилите.
          Но после каждого ребута или пропадания питания время перескакивает на несколько часов вперёд.

          Как исправить это?

          Комментарий


          • #6
            В качестве временной меры попробуйте установить часовой пояс GMT+0.

            Комментарий


            • #7
              Добрый день, как можно программно поменять часовой пояс?

              Комментарий


              • #8
                Доброго дня, так же есть вопрос про установку времени. В демонстрационном примере для чтения времени используются биб-ки SysTimeRtc и AgavaPlc. Изменяется время при помощи ФБ из AgavaPlc.
                Так же в кодесис есть биб-ка SysTime, при помощи которой можно читать и изменять время. Подскажите какую библиотеку лучше использовать на ПЛК-60?
                P.S. После перезагрузки ПЛК не сохраняется время измененное через TRtc.Write()

                Комментарий


                • #9
                  Сообщение от Tempal Посмотреть сообщение
                  Доброго дня, так же есть вопрос про установку времени. В демонстрационном примере для чтения времени используются биб-ки SysTimeRtc и AgavaPlc. Изменяется время при помощи ФБ из AgavaPlc.
                  Так же в кодесис есть биб-ка SysTime, при помощи которой можно читать и изменять время. Подскажите какую библиотеку лучше использовать на ПЛК-60?
                  P.S. После перезагрузки ПЛК не сохраняется время измененное через TRtc.Write()
                  Добрый день, если Вы хотите время настраивать из ПО, с помощью биб-ки AgavaPlc, то перед этим нужно в системной утилите ПЛК, отключить синхронизацию времени.
                  Нажмите на изображение для увеличения. 

Название:	Time.png 
Просмотров:	285 
Размер:	68.6 Кб 
ID:	1352

                  Комментарий


                  • #10
                    Добрый день!

                    Как пример реализации (библиотека SysTimeRtc, MB и PLC - списки глобальных переменных)

                    собственно POU: PLC_RTC
                    Код:
                    PROGRAM PLC_RTC
                    VAR
                    vRTCGet : UDINT ;
                    vRTCSet : UDINT ;
                    sRTCGet : SysTimeRtc.RTS_SYSTIMEDATE ;
                    sRTCSet : SysTimeRtc.RTS_SYSTIMEDATE ;
                    dRTCSet : DWORD ;
                    END_VAR
                    PLC_RTC.Get (Выделить POU -> Правая кнопка мыши -> Добавление объекта -> Действие..)
                    Код:
                    SysTimeRtcGet(pResult:= vRTCGet);
                    IF vRTCGet = 0 THEN
                    PLC.plctime := DWORD_TO_UDINT(SysTimeRtcGet(pResult:= vRTCGet)); // время в секундах с 01.01.1970
                    SysTimeRtcConvertUtcToDate(dwTimestampUtc:=SysTime RtcGet(pResult:=vRTCGet), pDate:=sRTCGet);
                    END_IF
                    MB.PLC_Yr := sRTCGet.wYear ;  // текущий год
                    MB.PLC_Mth := sRTCGet.wMonth ;  // текущий месяц
                    MB.PLC_Day := sRTCGet.wDay ;  // текущий день
                    MB.PLC_Hr := sRTCGet.wHour ;  // текущий час
                    MB.PLC_Mnt := sRTCGet.wMinute ;  // текущий минута
                    MB.PLC_Snd := sRTCGet.wSecond ;  // текущий секунда
                    PLC_RTC.Set (Выделить POU -> Правая кнопка мыши -> Добавление объекта -> Действие..)
                    Код:
                    IF (MB.PLC_Yr_S>=1970)AND(MB.PLC_Yr_S<=2106)AND(MB.PL C_Mth_S>=1)AND(MB.PLC_Mth_S<=12)AND(MB.PLC_Day_S>= 1)AND(MB.PLC_Day_S<=31)AND(MB.PLC_Hr_S<=23)AND(MB. PLC_Mnt_S<=59)AND(MB.PLC_Snd_S<=59) THEN
                    sRTCSet.wYear := MB.PLC_Yr_S ;  // требуемое значение год
                    sRTCSet.wMonth := MB.PLC_Mth_S ;  // требуемое значение месяц
                    sRTCSet.wDay := MB.PLC_Day_S ;  // требуемое значение день
                    sRTCSet.wHour := MB.PLC_Hr_S ;  // требуемое значение час
                    sRTCSet.wMinute := MB.PLC_Mnt_S ;  // требуемое значение минута
                    sRTCSet.wSecond := MB.PLC_Snd_S ;  // требуемое значение секунда
                    vRTCSet := SysTimeRtcConvertDateToUtc(pDate:= sRTCSet, pdwTimestampUtc:= dRTCSet);
                    IF vRTCSet=0 THEN
                    SysTimeRtcSet(ulTimestamp:= dRTCSet);
                    END_IF
                    END_IF
                    Для трансляции текущего времени ПЛК, например, в панельку по modbus, в цикл основного кода просто добавить
                    Код:
                    PLC_RTC.Get();
                    Для изменения времени ПЛК - записываются требуемые значения в регистры и вызывается
                    Код:
                    PLC_RTC.Set();
                    Время в секундах с 01.01.1970 (PLC.plctime) удобно использовать для контроля времени наработки или ротации оборудования по времени

                    Описание библиотеки и пример реализации изначально брал из документации на Modicon M241, для корректной работы требуется, чтобы часовой пояс был GMT+0, если часовой пояс критичен, то нужно использовать локальное время, в этой же библиотеке предусмотрена настройка часового пояса

                    Комментарий


                    • #11
                      Добрый день. Спасибо за пример кода. С RTC разобрался, кажется. При старте ПЛК система (Linux?) подхватывает время из частов реального времени и после этого они не взаимодействуют. Т.к. при изменении времени через библиотеку SysTimeRtc после перезагрузки ПЛК время восстанавливалось обратно. При изменении через биб-ку AgavaPlc время меняется нормально.

                      Комментарий

                      Обработка...
                      X