PDA

Просмотр полной версии : Скачек времени в функциональном блоке RTC



Рис
16.08.2020, 21:07
Контроллер ОВЕН ПЛК110-24.60.К-М [М02]
Проверено на прошивках:
1.0.4
1.0.6
1.1.0

В проекте было замечено странное поведение функционального блока RTC, время скачет назад через 7-10 секунд после запуска контроллера...

Для проверки создал простую программу:


VAR_GLOBAL RETAIN
tDT: DT;
END_VAR

PROGRAM PLC_PRG
VAR
tRTC: RTC;
END_VAR

tRTC(EN:=TRUE, PDT:=tDT);
tDT:=tRTC.CDT;

После загрузки в контроллер и создания загрузочного проекта, запускаю...
Все идет хорошо, время идет, как говорится своим чередом (начиная с DT#1970-01-01-01:00:00)...
Ожидаю около минуты с небольшим и выключаю контроллер.
Через секунд 5-10 включаю контроллер снова, подключаюсь к контроллеру из CoDeSys...
По началу все хорошо, время в блоке RTC идет с того времени на котором остановилось в момент выключения...
Но через секунд 7-15 (точно не замерял), время вдруг скачет на 2105 год (к сожалению контроллера нет под рукой на момент написания, поэтому точно не могу написать дату)...
Если контроллер снова выключить и включить, то время сначала идет с времени остановки, а потом снова скачет назад...
Что-то я делаю не так или какая-то проблема с самим контроллером?

Филоненко Владислав
17.08.2020, 14:41
RTC не поддерживается. Только SysLibTime

Рис
17.08.2020, 14:56
RTC входит в состав STANDARD.LIB и в руководстве пользователя, размещенном на официальном сайте ОВЕН ничего по этому поводу не сказано...
Если не поддерживаются стандартные библиотеки, где-то по этому поводу должно быть сказано?

Библиотека SysLibTime предназначена для работы с системным временем контроллера, которое идет не зависимо от того включен контроллер или нет...
А мне нужен RTC для подсчета наработки и дополнительно для отсчета времени длительности технологического цикла производства...

жекон
17.08.2020, 20:54
Увы и ах, бывает))))

жекон
17.08.2020, 20:56
вбейте простой таймер с секундой или милли дальше счетчик ретайн да и все пожалуй

Рис
18.08.2020, 10:47
Увы и ах, бывает))))

Выдержка из "Руководства пользователя" стр.11 (https://owen.ru/uploads/139/rp_plk110_m02__16.pdf)
CODESYS поддерживает все описанные стандартом МЭК 61131 компоненты.
Для их использования достаточно включить в свой проект библиотеку дополнитель-
ных программных компонентов «standard.lib» (подробнее о библиотеках см. разделы
ниже).

Рис
18.08.2020, 11:07
Получается следующее:
Вы купили машину, но она не едет так как написано в руководстве, ее нужно возить на другой машине...

Значит чукча создатель...


Странно, Филоненко Владислав удалил свое предыдущее сообщение, которое гласило Цитирую:-"Чукча не читатель, чукча писатель."

Sergey666
18.08.2020, 13:01
Получается следующее:
Вы купили машину, но она не едет так как написано в руководстве, ее нужно возить на другой машине...

Значит чукча создатель...

Странно, что Lib RTC у вас загрузилась в ПЛК110.

Только вот как в анекдоте:- сидит чукча на дереве и пилит сук, на котором сидит...
И что? Пилу тоже чукча создал?
А задачи, вами описанные, решаются как минимум 3мя разными способами без SysLibRTC...
И CoDeSys не при делах, SysLibRTC поддерживается в ПЛК других производителей, например Fastwell, но у них и адаптация самой CoDeSys к своей продукции более глубокая, чем у Овен.

lara197a
18.08.2020, 13:02
функциональный блок RTC
представлен в стандарте МЭК только в качестве примера. Системы
программирования не обязаны его поддерживать.

https://docviewer.yandex.ru/?lang=ru&tm=1597744897&tld=ru&name=TimeExperience.pdf&text=site%3Awww.codesys.ru+codesys+%D0%BF%D1%80%D0 %BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D1%8 3%D0%B5%D0%BC+%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD %D0%BD%D1%8B%D0%B5&url=http%3A//www.codesys.ru/docs/TimeExperience.pdf&lr=7&mime=pdf&l10n=ru&sign=41c351968282c03e78daf7982150596c&keyno=0

Филоненко погорячился и как культурный человек исправился.
Хотя по сути все верно.
Нужно сначала читать инструкцию до конца.

Рис
18.08.2020, 13:14
Странно, что Lib RTC у вас загрузилась в ПЛК110.

Только вот как в анекдоте:- сидит чукча на дереве и пилит сук, на котором сидит...
И что? Пилу тоже чукча создал?
А задачи, вами описанные, решаются как минимум 3мя разными способами без SysLibRTC...
И CoDeSys не при делах, SysLibRTC поддерживается в ПЛК других производителей, например Fastwell, но у них и адаптация самой CoDeSys к своей продукции более глубокая, чем у Овен.

Извините но Вы читаете не внимательно, речь шла не о SysLibRTC, а о Standard.lid...

Рис
18.08.2020, 13:16
функциональный блок RTC
представлен в стандарте МЭК только в качестве примера. Системы
программирования не обязаны его поддерживать.

https://docviewer.yandex.ru/?lang=ru&tm=1597744897&tld=ru&name=TimeExperience.pdf&text=site%3Awww.codesys.ru+codesys+%D0%BF%D1%80%D0 %BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D1%8 3%D0%B5%D0%BC+%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD %D0%BD%D1%8B%D0%B5&url=http%3A//www.codesys.ru/docs/TimeExperience.pdf&lr=7&mime=pdf&l10n=ru&sign=41c351968282c03e78daf7982150596c&keyno=0

Филоненко погорячился и как культурный человек исправился.
Хотя по сути все верно.
Нужно сначала читать инструкцию до конца.

МЭК 61131 вообще не регламентирует какие должны быть таймеры, он описывает что они должны быть как возможность процессора п.4.2. ... http://docs.cntd.ru/document/1200135007

Речь идет о библиотеке Standard.lib в руководстве, и функциональный блок RTC в ходит в состав библиотеки Standard.lib ...

Инструкция была прочитана до конца, нигде не сказано, что функциональный блок RTC в ходящий в состав стандартно подключаемой библиотеки Standard.lib (о которой говорится в руководстве не на одной странице и рекомендуется ее использовать), не будет работать и использование его не рекомендуется!!!

"Руководство пользователя" стр.49
ПЛК110 поддерживают следующие библиотеки программных компонентов:
− Standart.lib
− Util.lib
− SysLibCallback.lib
− SysLibSockets.lib
− SysLibCom.lib
− SysLibTime.lib
− SysLibProjectInfo.lib
− SysLibMem.lib
− SymLib.lib
− SysLibPorts.lib
− OwenLibFileAsync.lib
− OwenLibUSBSerial.lib
− OwenLibNetControl.lib
− OwenLibFactorySetups.lib
− UNM.lib
− PID_Regulators.lib
− Pid_reg2.lib
− Timer.lib.

Sergey666
18.08.2020, 16:33
Извините но Вы читаете не внимательно, речь шла не о SysLibRTC, а о Standard.lid...

Ага...точно...Ну, извините, что без драки:).
Только не понятно что значит :"время вдруг скачет на 2105 год (к сожалению контроллера нет под рукой на момент написания, поэтому точно не могу написать дату)...
Если контроллер снова выключить и включить, то время сначала идет с времени остановки, а потом снова скачет назад...
Что-то я делаю не так или какая-то проблема с самим контроллером?"

Судя по вашему коду, если далее других вызовов нету с EN:=false, отскок не предусмотрен.
Время выключения контроллера при этом будет то что было на выходе RTC.CDT... т.е какой-то 2105й год (назад в будущее:p).

Рис
18.08.2020, 16:48
Ага...точно...Ну, извините, что без драки:).
Только не понятно что значит :"время вдруг скачет на 2105 год (к сожалению контроллера нет под рукой на момент написания, поэтому точно не могу написать дату)...
Если контроллер снова выключить и включить, то время сначала идет с времени остановки, а потом снова скачет назад...
Что-то я делаю не так или какая-то проблема с самим контроллером?"

Судя по вашему коду, если далее других вызовов нету с EN:=false, отскок не предусмотрен.
Время выключения контроллера при этом будет то что было на выходе RTC.CDT... т.е какой-то 2105й год (назад в будущее:p).

Завтра буду у контроллера. Сниму видео что бы было нагляднее, после выложу...
Проект для проверки в прикрепленом архиве.

Валенок
18.08.2020, 19:23
Получается следующее:
Вы купили машину, но она не едет так как написано в руководстве, ее нужно возить на другой машине...
Исходя по приведенных слов я уверен, что ТС всегда отказывается от полета в Крым/Турцию/Испанию/.. если спинка кресла не откидывается, т.к. это исключает возможность взлета и посадки.

Всегда завидывал людям живущим в идеальном мире где любое РЭ содержит абсолютно всю информацию и которым зачем-то приходится посещать наш несовершенный мир где в РЭ нет чего-то вдруг. В данной экскурсии Вас ожидает так много нового и необычного что если Вы потратили 3 дня на жалобы про РТС, то не рекомендую вообще связыватся с Овеном для сохранения душевного равновесия.

PS
Кстати, не мог бы ТС сообщить с каким идеальным оборудованием, безусловно имеющем идеальное РЭ, он работал ранее и что сподвигло его на поиск иного если он было идеальным ?

Рис
20.08.2020, 14:11
Исходя по приведенных слов я уверен, что ТС всегда отказывается от полета в Крым/Турцию/Испанию/.. если спинка кресла не откидывается, т.к. это исключает возможность взлета и посадки.

Всегда завидывал людям живущим в идеальном мире где любое РЭ содержит абсолютно всю информацию и которым зачем-то приходится посещать наш несовершенный мир где в РЭ нет чего-то вдруг. В данной экскурсии Вас ожидает так много нового и необычного что если Вы потратили 3 дня на жалобы про РТС, то не рекомендую вообще связыватся с Овеном для сохранения душевного равновесия.

PS
Кстати, не мог бы ТС сообщить с каким идеальным оборудованием, безусловно имеющем идеальное РЭ, он работал ранее и что сподвигло его на поиск иного если он было идеальным ?

Речь не идет о поиске идеала. Речь идет о преднамеренном введении в заблуждение посредством "Руководства по эксплуатации"... Я никого не обманываю и не терплю чтоб обманывали меня...
Я стараюсь добиваться оказания мне услуг или предоставления качества товара в соответствии с заявленными при покупке, если не удается получить желаемое, то на законных основания отказываюсь и в 100% случаев получаю возврат денежных средств и в 50% впоследствии по решению суда или до судебной договоренности получаю компенсацию за моральный вред...
Для разработки чего либо, сначала исследуются руководства и руководящие документы, а только после этого идет выбор оборудования...
Потратив не 3 дня, а всего лишь 1, получил ответ от технической поддержке ОВЕН с признанием своей ошибки и обязательством ее исправить, правда это произошло после написания им до судебной претензии (по рекомендации наших юристов, ими было усмотрено в этих действиях деяние подпадающее под ст.159 УК РФ)...
С душевным равновесием у меня все в порядке, мне интересно мнение других людей по сложившейся ситуации. Продукцией ОВЕН пользуюсь не один год и отказываться от нее, если она мне подходит и может решить поставленную задачу, не собираюсь.
Идеального оборудования не бывает, а вот оборудование соответствующее заявленным характеристикам и возможностям очень много в том числе и у "ОВЕН"...
Я разрабатываю и внедряю системы автоматизации на заводе на котором работаю, только для внутреннего использования, причем основные обязанности с этим не совсем связаны, поэтому разнообразие оборудования очень большое..

Рис
20.08.2020, 14:25
Как и обещал, видео с исполнением проекта на ПЛК:

VID_20200819_142130-Mute.mp4 (27.93 Мб) - Загрузка, запуск и первый перезапуск контроллера.
VID_20200819_142408-Mute.mp4 (16.72 Мб) - Повторный перезапуск контроллера.

Sergey666
20.08.2020, 15:45
:);):rolleyes:
Может этот ПЛК надо в синагогу отнести на предмет очищения от демонов и приведения к точному времени от рождества христова, а не от падения империи майя...
А вообще, кроме шуток, Овеновские разработчики заслуживают нобелевскую (или шнобелевскую:p) премию, т.к они первые в мире наделили свои девайсы хитростью.

Рис
20.08.2020, 23:33
про мошенничество конечно улыбнуло, даже не представляю как Ваши юристы это будут доказывать и видимо поспешили, потому что как понимаю ответ был только от менеджера а не от юристов овена.
Что же касается об этой надуманной проблеме, то почему такой вариант. Достаточно значения хранящего количество секундных импульсов, а уж его преобразовать во время например UDINT_TO_DT, получится чистое время от момента первого запуска, а не как сейчас какой то 2015 в 2020 году то

Долго ждал, что вы напишите, И честно обескуражен вашей невнимательностью, считал Вас очень педантичным во всех вопросах, т.к. много раз читал различные ветки форума...
По мошенничеству объясню отдельно, во первых ответ от специалиста технической поддержки (не от менеджера) был после написания очередного письма по зарегистрированному номеру обращения в техническую поддержку в котором было указано что его нужно считать до судебной претензией по совету наши юристов.
Цитирую наших юристов:-"Квалификация ст 159 УК РФ Преднамеренное введение в заблуждение или преднамеренный обман с целью получения материальной выгоды. Доказывать дополнительно ничего не нужно, все налицо - есть документация с техническими характеристиками и описанием работы и принципов создания программ в комплекте поставки прибора и продублированная на официальном сайте производителя - Факт - прибор не соответствует заявленных характеристикам и возможностям программирования - Преднамеренное введение в заблуждение или обман. Факт извлечения материальной выгоды на лицо - продажа изделия подтверждаемая бухгалтерскими документами и банковскими выписками." Для истца, как и для суда, принципиально не важно кто конкретно (юрист, менеджер или специалист) отвечал на до судебную претензию, есть факт ответа - этого достаточно.

Проблема с функциональным блоком RTC в библиотеке STANDARD.LIB не надумана, она есть и подтверждена технической поддержкой.

Методов решения подсчета наработки времени много, но функциональный блок RTC из библиотеки STANDARD.LIB самый легкий и простой метод, поэтому при разработке был выбран именно он. Преобразовывать переменную содержащую количество секунд работы агрегата из UDINT в DT нет смысла, т.к. из переменной содержащей секунды проще получить количество часов работы просто разделив значение переменной на 3600 (количество секунд в 1 часе).

По поводу 2015 и 2020 годов, не совсем понял, что это и откуда Вы это взяли?
Если из видео то пересмотрите их еще раз более внимательно время скачет:
первый раз с 1970-01-01-00:00:51 на 2105-12-19-13:26:20
второй раз 2105-12-19-13:27:40 на 2105-10-30-20:24:53

melky
21.08.2020, 10:15
Это вы еще с Siemens не сталкивались, где в РЭ написано одно, а по факту так не работает.... так что плюньте, плюньте на него и все (с) :)

Рис
21.08.2020, 15:53
на дворе 20 год, почему 15 в плк, не уметее пользловаться браузером?

ПЛК-браузером пользоваться умею в соответствии с описанием, установил системное время (которое кстати идет не очень то и точно, в связи с чем в проекте пришлось предусмотреть возможность установки правильного времени пока вручную,а когда появится сеть на станке, то подниму службу TIME на Windiws) и настроил сетевой интерфейс в первый день когда занялся написанием проекта, это было еще в мае месяце этого года...

Системное время в контроллере стоит правильно, т.к. в основном проекте идет контроль смен на производстве в соответствии с графиком работы, почему вы решили что в контроллере 15 год вместо 2020 ???

Рис
21.08.2020, 17:03
здесь имеется ввиду, что ПОУ RTC не привязано к аппаратным часам реального времени, он их заменяет на тех устройствах которые без этой микросхемы, все контроллеры овен на КДС идут с часами. Стандартная библиотека поставляется со средой разработки и это зона ответственности немцев, для интереса можете удалить бибку и взять от какого нибудь ваго, мёлера или на сайте codesys скачать и вставить в свой проект, если есть сомнение что овен там "полазил".
Насчет проще считать наработку это так субъективно, сколько тем на форуме про это дело ни кто из специалистов не давал совет пользоваться ПОУ RTC из standart.lib

Никогда даже в мысли не приходило, что кто-то из ОВЕН полазил в библиотеке STADARD.LIB и что RTC из ее состава привязана к аппаратным часам, поэтому и претензия к разработчикам контроллера ОВЕН а не разработчикам CoDeSys, т.к. ОВЕН заявил о полной поддержке библиотеки STANDARD.LIB, а в действительности это не реализовал, что уже признал и пообещал исправить (скорее всего будет исправлена документация).

А. т.к. ОВЕН признал свою ошибку, поэтому не вижу дальнейшего смысла рассуждать на эту тему и писать о зоне ответственности...

В нашей жизни практически все субъективно, т.к. каждый индивидуум смотрит на все через свою неповторимую призму (которую формируют знания, жизненный опыт и т.д.), поэтому и говорят:-"Сколько людей - Столько мнений". К сожалению ни одной темы посвященной наработке времени не читал, т.к. реализация этого банально проста, и вопросов у меня не вызывала. А RTC был выбран по следующим причинам: 1) Отсутствие влияния перевода аппаратных часов (т.е. это не нужно отслеживать); 2) Отсутствует возможность влияния состояния батарейки аппаратных часов либо ее отсутствие; 3) Не требуется ничего дополнительно, часы идут только во время работы контроллера; 4) Простота получения наработки в часах, т.е. минимум вычислений (просто делаем перевод DT_TO_UDINT и делим на 3600).

И кстати, реализация у ОВЕН функционального блока RTC из библиотеки STANDARD.LIB хоть и не совсем корректна, но если производить инициализацию RTC с задержкой в 30 секунд от начала исполнения программы, то функциональный блок работает вполне нормально (по крайной мере никаких скачков в течении 3 часов работы не наблюдалось)...

Рис
21.08.2020, 17:10
потому что на видео вижу год ни к чему не привязанный, ни к текущей дате, ни к нулевой, откуда эта дата взялась в плк? Удаленно её как то вносите? Потому что выложенный проект об этом ни чего не говорит, можно предположить что с какой нибудь панели по CoDeSys протоколу и символьную конфигурацию инициализируете свою глобальную переменную помимо ретайнов.
Еще непонятный момент, зачем два раза запускать ФБ?

Начальное значение переменной при инициализации равно нулю, а значит начальное значение даты равно 1970-01-01-00:00, с этого момента и начинается отсчет...
На контроллере запускался именно выложенный проект, не имеющий никаких протоколов связи.
Какой год ни к чему не привязан? И какая "ЭТА" дата?
Если можно опишите подробнее с точными ссылками...

Двойной вызов ФБ, это закралось пока пробовал разные варианты, изначально было так как написано в первом посте... (это не изменяет результата)

Запустите проект в ПЛК и все увидите...

Рис
21.08.2020, 17:35
я загружал только одно видео, второе, и смотрел тоже только один раз, допускаю что может не верно истолковал и там 2105 стояло. Непринципиально это время, скачет и скачет. в оскат библиотеке есть альтернативный вариант, если виноват плк овен ПОУ RTC_MS так же будет выдавать глючные даты. У меня на руках нет сейчас овеновских плк, кроме 210, но он на КДС3

Первичную инициализацию и первый скачек видно именно в первом видео, второе видео для того чтобы показать что время скачет именно назад.

Проблемы с реализацией нет, были испробованы разные варианты и в конечном итоге пришел к тому что лучше написать свой ФБ, который будет работать подобно RTC...

Рис
21.08.2020, 17:57
Странно... На этом форуме так принято сначала писать, высказывая свое мнение, а потом удалять свои сообщения...
Теперь "capzap" удалил все свои сообщения...

Надеюсь, что я никого ничем не огорчил...
Всем спасибо за участие в рассуждениях...

capzap
21.08.2020, 18:13
Странно... На этом форуме так принято сначала писать, высказывая свое мнение, а потом удалять свои сообщения...
Теперь "capzap" удалил все свои сообщения...

Надеюсь, что я никого ничем не огорчил...
Всем спасибо за участие в рассуждениях...
Вы же оставили мои цитаты, что не так, диалог виден