............
............
Последний раз редактировалось Валенок; 09.08.2021 в 13:10.
нет такого способа ))) библиотека кривовата и использует нулевые значения для признака того что ты хочешь считать время))) т.е. вызов функции с нулевыми параметрами вернет текущее время....
Долго думал как корректировать часы (убегают сволочи) и единственное решение программа EASY PLC - ставить ее заказчику и инструктировать о команде установки времени... Кстати - зимнее время уже ставить надо!
Величину убегания не анализировал, заметил только сам факт. А HMI мож и стоит использовать, говорят она без лицензии пол-часа работает, вполне достаточно время скорректировать ))))
А с библиотекой ))) наверно разработчики очень КЗОТ уважают, не перерабатывают, и им в голову не пришло что кто-то может отлаживать проекты по ночам )))
Давайте не будем сваливать все на разработчиков. Всегда бывают некоторые оплошности и далеко не всегда возможно сразу учесть все возмозможные варианты проверки. Вы можете себе представить немецкого программиста, задумывающегося о том, как его библиотека работает в 0 часов? Я с трудом)) И КЗОТ здесь ни при чем.
Тема перенесена, т.к. в данном разделе чаще бывают представители codesys, напрямую связанные с авторами данной библиотеки. В их компетенции заниматься исправлениями.
Прикол с нулями - целиком заслуга CoDeSys, вот там КЗОТ любят.
Немецкие программисты отличаются сообразительностью и упертым трудоголизмом. Конечно ошибки они допускают, но в данном случае вы зря их ругаете.
Биб-ка SysLibTime.lib функция CurTimeEx: Данная функция изначально предназначена только для чтения времени! Посмотрите документ SysLibTime_RU.pdf, там нет ни слова про возможность записи. Доработка на запись есть только в контроллерах Овен. Само описание биб-ки изменено. Поэтому я долго не мог понять суть жалобы!
Конечно, решение использовать для изменения направления передачи данных сами данные, мягко говоря, не совсем удачное.
Я предложил бы добавить в эту или лучше в отдельную биб-ку явную функцию, которая будет делать только запись, а CurTimeEx оставить как есть.
(Как вариант: в CoDeSys есть еще одна системная биб-ка SysLibRTC в ней есть явная функция для записи SysRtcSetTime. Эта биб-ка пока не поддержана для контроллеров ОВЕН).
Кстати:
1. Не лучшая идея переводить системные часы ПЛК на летнее время. Можно попасть на серьезные проблемы непрерывности архивации или управления по времени. Лучше вести время в ПЛК по UTC, а часовой пояс и летнее время учитывать только при визуализации. Тогда время в ПЛК будет непрерывным.
Функции для автоматического определения летнего времени в CoDeSys см. в статье Программируем временные сложности.
2. Есть еще в CoDeSys ловкий функциональный блок RTC. Программные часы. Он может иметь экземпляры. Можно сделать кучу часов, например для отсчета времени, для работы по местному солнечному времени и др. и пр. Легко ставится, легко корректируется, тикает по системному таймеру....
При установке времени через браузер Время = HH:MM:00, количество минут становится равным MM+1.? Пробовал несколько раз, результат тотже. Пришлось забивать SS=01. Хотя какая разница, если реально часы за сутки убегают на минуту с лишним. Минотой больше, минутой меньше ...
1. Минуту? Что-то невероятное. Минуту в месяц - ещё туда-сюда.
2. Буквально 3 часа назад ставил время, никакого сдвига нет. Пациента в разрезе в студию...