Страница 4 из 5 ПерваяПервая ... 2345 ПоследняяПоследняя
Показано с 31 по 40 из 44

Тема: СП300 - синхронизация времени

  1. #31

    По умолчанию

    Цитата Сообщение от ShmoninEN Посмотреть сообщение
    А как их потом в ПР103 писать, чтобы именно в системное время запись была?
    А тут и вся загвоздка, в ПР205 есть установка, а ПР103 надо проверять.

  2. #32

    По умолчанию

    В ПР103 есть регистр 61553 доступный для записи, это время в секундах с 2000 года. Осталось придумать как преобразовать текущее время с панели в количество секунд с 2000 года с учётом всех високосных годов, а потом писать его в ПР. Есть ли для этого готовый макрос?

  3. #33
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,105

    По умолчанию

    Цитата Сообщение от ShmoninEN Посмотреть сообщение
    В ПР103 есть регистр 61553 доступный для записи, это время в секундах с 2000 года. Осталось придумать как преобразовать текущее время с панели в количество секунд с 2000 года с учётом всех високосных годов, а потом писать его в ПР. Есть ли для этого готовый макрос?
    https://ftp.owen.ru/SP300/99_ForumFi...ixStamp_v3.txp

  4. #34

    По умолчанию

    Цитата Сообщение от ShmoninEN Посмотреть сообщение
    В ПР103 есть регистр 61553 доступный для записи, это время в секундах с 2000 года. Осталось придумать как преобразовать текущее время с панели в количество секунд с 2000 года с учётом всех високосных годов, а потом писать его в ПР. Есть ли для этого готовый макрос?
    Дата, Время и День недели через DT с 2000г. (и с 1970г.)_ https://owen.ru/forum/showthread.php?t=40116#4

  5. #35

    По умолчанию

    Спасибо ответившим, буду пробовать. По результатам напишу.

  6. #36

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    В общем, попробовал я этот макрос. В целом, получилось сформировать необходимое количество секунд, с 2000 года по текущую дату и время, с доработкой макроса. Проблема теперь в другом. Панель никак не может корректно записать эти секунды в регистр 61553 ПР103. Саму запись организовал по кнопке вот таким способом:

    PSW[310]=LOWORD(UnixTime);
    PSW[311]=HIWORD(UnixTime);

    ArrValue[1]=PSW[300];
    ArrValue[2]=PSW[301];

    Writes(PLC, 1, MODBUS_RTU_REGS_4X, 61553, 2, ArrValue);

    Где UnixTime и есть то необходимое количество секунд с 2000 года (не с 1970, уже вычислено).

    Если записывать как есть, то дата получается какая-то странная, 2044 год, что неправильно. Если поменять местами регистры в массиве таким образом:
    PSW[310]=HIWORD(UnixTime);
    PSW[311]=LOWORD(UnixTime);

    то дата пишется всегда корректно, но время постоянно какое-то разное. Пробую писать нажимая кнопку подряд примерно каждые 3-4 секунды, время в ПР103 увеличивается на минуты и часы. Такое чувство, что нужно как-то сформировать байты, но пока не знаю как.

    Есть ли где-то информация, как именно нужно писать время в регистр 61553? В документации толком ничего про это не написано.

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

    По умолчанию

    Пишите в [310..], перекладываете куда-то за каким то из [301] из этого "куда то" куда то отправляете.
    Чего бы стразу из UnixTime не отправить?

    Порядок байт ПР с панелью одинаковый, смотрите форматы. Обратную операцию сделайте для начала
    Последний раз редактировалось Валенок; 27.02.2025 в 08:25.

  8. #38

    По умолчанию

    Непонятно, сначала PSW310, а потом PSW300.
    2025-02-27_09-20-55.png
    В ПР написано, что 61563 регистр это время в мс
    Нужен вообще 61568, я думаю
    Последний раз редактировалось Sergey361; 27.02.2025 в 08:29.

  9. #39

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Пишите в [310..], перекладываете куда-то за каким то из [301] из этого "куда то" куда то отправляете.
    Чего бы стразу из UnixTime не отправить?

    Порядок байт ПР с панелью одинаковый, смотрите форматы. Обратную операцию сделайте для начала
    Неправильно написал, везде 310, 311. Перекладываю для использования массива, так в справке написано. PSW[310-311] отображаю на экране как беззнаковый DWORD, а массив ArrValue пишу в ПР103, два элемента как два регистра.

    Сразу UnixTime не пробовал отправлять, так как в справке пример с массивом приведён.

  10. #40

    По умолчанию

    Цитата Сообщение от Sergey361 Посмотреть сообщение
    Непонятно, сначала PSW310, а потом PSW300.
    2025-02-27_09-20-55.png
    В ПР написано, что 61563 регистр это время в мс
    Нужен вообще 61568, я думаю
    Написал выше, везде 310-311, ошибся когда переписывал сюда код. Регистры 61563 и 61568 судя по этой таблице не имеют функцию записи, значит доступны только для чтения. По регистру 61553 - я его взял из настроек прибора. Если в Owen Logic перейти в настройки прибора, и выбрать раздел где настраивается время, там есть ссылка на этот регистр. И служба поддержки мне ответила, что писать время надо именно туда, в секундах от 2000 года.

Страница 4 из 5 ПерваяПервая ... 2345 ПоследняяПоследняя

Похожие темы

  1. ПР200 синхронизация времени
    от Alex_Z в разделе Программируемые реле
    Ответов: 1
    Последнее сообщение: 29.08.2017, 16:12
  2. Синхронизация времени
    от VanoKing в разделе ПЛК1хх
    Ответов: 35
    Последнее сообщение: 10.01.2014, 12:20
  3. Синхронизация времени
    от VanoKing в разделе Master SCADA 3
    Ответов: 1
    Последнее сообщение: 07.09.2011, 19:41
  4. синхронизация времени плк и ип320
    от rabitt.exe в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 11.02.2010, 10:59
  5. Ответов: 0
    Последнее сообщение: 22.04.2008, 05:37

Ваши права

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