PDA

Просмотр полной версии : ПЛК100, часы



Boris_K
04.02.2014, 16:15
Часы реального времени в ПЛК100 каждые сутки отстают на целые полторы минуты. Я понимаю, что встроенные часы не претендуют на точность, но такое в порядке вещей?

lara197a
04.02.2014, 16:23
В принципе-да. Хотя конечно многовато.
Не помню у Овна сколько, но обычно дают точность +- 20сек.

Вольд
04.02.2014, 16:24
Часы реального времени в ПЛК100 каждые сутки отстают на целые полторы минуты. Я понимаю, что встроенные часы не претендуют на точность, но такое в порядке вещей?
Прими как есть. При использовании дешевых комплектующих лучшего результата не получишь. Можно засечь на сколько часы спешат/отстают за сутки и делать в программе ПЛК автокоррекцию.

Boris_K
04.02.2014, 16:48
То есть получается что и таймер тоже также ошибается (получается ошибка где-то 0,1%)? Конечно можно замерить и сделать коррекцию в программе, но быть бы уверенным, что величина этого отставания постоянна, а такой уверенности нет.

ЗЫ. И что, вся продукция на "дешёвых комплектующих"? Нет более качественных (и дорогих) моделей? Грустные мысли появляются...

Вольд
04.02.2014, 16:51
А ты хотел чтобы было и дешево и хорошо ? Так не бывает, за все надо платить. Качества захотел ? Бери SIEMENS и будет тебе качество и особенно количество.

Boris_K
04.02.2014, 20:56
В каком месте я хотел качественно и дёшево? Я хотел качественно и дорого.

capzap
04.02.2014, 21:10
http://www.xakep.ru/post/61992/ в самсунг обратитесь, они самое лучшее Вам предложат :)

Валенок
04.02.2014, 21:19
То есть получается что и таймер тоже также ошибается (получается ошибка где-то 0,1%...
О пичалька. Любой мэк-таймер (хоть у овена, хоть у сименса) будет ошибатся. И отклонение запросто получить и 100% и 1000%. Тут больше от рук зависит а не от оборудования.
PS
Развивая тему во флуд. Время - непрерывно, измерение - дискретно.Не создано еще плк который бы не ошибался бы при измерении времени.

Boris_K
05.02.2014, 10:05
Я про то, что набегание полутора минут за сутки - это примерно 0,1% -ная ошибка измерения интервала времени.

Валенок
05.02.2014, 14:17
набегание полутора минут за сутки

Можно засечь на сколько часы спешат/отстают за сутки и делать в программе ПЛК автокоррекцию.

Адрей
05.02.2014, 14:41
С таймером должно быть точнее на порядок, там системное время используется а оно привязано к кварцу процессора, а его частота на порядки выше часового следовательно и точность хода выше, а часы можно тоже корректировать по системному только разницу узнать нужно.

Валенок
05.02.2014, 14:58
С таймером должно быть точнее на порядок
Минц 3мс,выдержка 10мс на TON'е. Через сколько сработает TON ?

PS
Биолог (г.герой) : Дождевые черви стали на целых 17% больше !!
Военный приехавший за биологом : Да, это серьезно. Собирайтесь. Поедете с нами.
(Р. Эммерих, "Годзилла")

Sergey666
05.02.2014, 16:51
Минц 3мс,выдержка 10мс на TON'е. Через сколько сработает TON

Вот где-то в конце начала серидины 4го цикла и сработает , т.е ч-з 10мс. Если принять , что реально длит Ц = 3мс.

Валенок
05.02.2014, 17:15
Ну-ну .. При условии что взвели в начале цикла, а проверяете где-то в середине. Учитывать место взвода и проверки ? Круто.
Про 3мс - тута люди и по 10 ставят. Или МинЦ-то 1, тока FOR внутри с вычислением расстояния между нефритовым зайцем и опортюнити в каждом проходе. Ну или КДС3 - на десерт. Отмеряем например TON'ом 25 мс. Проверяем Time()'ом - ET в топку

PS
О чем речь, если точность самого измерения - 1мс. К 10-ти мс среднее отклонение - 5%

Sergey666
05.02.2014, 21:12
Отклонение или погрешность , даваемая функциональным блоком это одно (да , он дискретно вызывается) , а вот почему часы брешуть . Хотя это всего лишь слова , я вот не обращал особого внимания (да и ничего страшного в этом нет , у всех ПЛК время "утекает") . Опять же вызов RTC целая история.
Вот нет в этом ничего ужасного , хотя время в панелях Дельты и Винтика почему-то тикает более-менее точно.

Кстати я время Мин Ц ставлю 5...6 и длит цикла (в статистике) постоянно меняется , Мин Ц =5мс не значит , что ПЛК все выполнив за 1мс станет и будет курить 4 мс , как можно понять по рассуждениям некоторых товарищей.

capzap
05.02.2014, 21:19
семен же курит, почему овен должен по другому поступать?

Sergey666
05.02.2014, 22:35
семен же курит, почему овен должен по другому поступать?

Семен - немец , а в европе борьба с курением :o , как так курить он может ?
Вы просто переворачиваете мое (и не только) представление о работе ПЛК .:confused:

Валенок
05.02.2014, 23:01
Мин Ц =5мс не значит , что ПЛК все выполнив за 1мс станет и будет курить 4 мс ,
Да. Именно курит )). Вы ж сами приказали - не надо выполнятся чаще чем..
И RTC - фб, а значит такая же дискретка.
Самое главное :

ничего страшного в этом нет

Sergey666
05.02.2014, 23:09
Каким образом он курит ? Может механизм "курения " разъясните ?
Нифига не курит он , не должен и не умеет он "курить " , выполняет , пока не сделает (по крайней мере код выполнить обязан в каждом цикле), а вот конфигурацию может (если не успевает ) пропустить на след.цикл. (напр. запрос в след. цикле сделать).

И эксперт в этом вопросе Филоненко Владислав , т.к разработчик .

Да RTC ФБ , но работают они с таймом и (по идее) "утекание" не должно быть более тех же 10мс (или период вызова) , я например вызываю раз в 500мс (мне +- 500мс в РТЦ роли не играет).

capzap
05.02.2014, 23:18
Вы же вроде говорили что имеете дело с семеном, освежите свою память по поводу ОВ90 в ситуациях когда он присутствует в проекте и когда его нет, в КДС таких блоков нет, но принцип систем rt везде одинаков

Валенок
06.02.2014, 00:14
Каким образом он курит ? Может механизм "курения " разъясните ?
Нифига не курит он , не должен и не умеет он "курить " , выполняет , пока не сделает (по крайней мере код выполнить обязан в каждом цикле), а вот конфигурацию может (если не успевает ) пропустить на след.цикл. (напр. запрос в след. цикле сделать).
Ну вы даете.


while true do
Система();
ФизВходыПадаютНаОбластьВходов();
Цикл(IN:=TRUE, PT:=МинЦ);
if Цикл.Q then
Цикл(IN:=FALSE);
Цикл(IN:=TRUE);
PLC_PRG();
end_if //else PLC_PRG() курит
ОбластьВыходовПадаетНаФизВыходы();
end_while


Система/конфигурация выполняется всегда. Даже когда PLC_PRG курит. Но ! PLC это автобус. PLC_PRG - это водитель автобуса. Просто он решил работать так : глянул на дорогу, в салон, крутнул баранку, нажал на педальку и вышел (на ходу) из автобуса покурить минут пять и по новой .. Автобус работает как часы - поршни дергаются, колеса крутятся, фары светят, щетки по стеклу шкрябают. Красота. Но водитель - курит.

Boris_K
06.02.2014, 11:05
Да, как справедливо заметили в этой теме, погрешности измерения бывают разные - одни связаны с дискретностью отсчёта времени, и тут чем меньше интервал времени - тем больше может быть относительная погрешность - это понятно, и про такие ошибки я и не говорил. Я говорил про другой вид погрешности - когда сам отсчёт времени "не идёт в ногу" с истинным временем, то есть отстаёт/спешит.

ЗЫ. На эту ночь отключал питание ПЛК, Сейчас включил, глянул время через браузер ПЛК - отставание только 12 секунд, то есть на аварийном питании часы ПЛК наоборот начинают спешить, и накопившееся отставание сокращается.

Евгений_Томск
06.02.2014, 19:25
Да, как справедливо заметили в этой теме, погрешности измерения бывают разные - одни связаны с дискретностью отсчёта времени, и тут чем меньше интервал времени - тем больше может быть относительная погрешность - это понятно, и про такие ошибки я и не говорил. Я говорил про другой вид погрешности - когда сам отсчёт времени "не идёт в ногу" с истинным временем, то есть отстаёт/спешит.

ЗЫ. На эту ночь отключал питание ПЛК, Сейчас включил, глянул время через браузер ПЛК - отставание только 12 секунд, то есть на аварийном питании часы ПЛК наоборот начинают спешить, и накопившееся отставание сокращается. Может кварц не шипко точный,или он гуляет в зависимости от температуры внутри ПЛК.Можно вывести график зависимости дельты времени за сутки от средней температуры за сутки.И всё таки в ПЛК два кварца или один?

Sergey666
06.02.2014, 23:44
Система/конфигурация выполняется всегда. Даже когда PLC_PRG курит. Но ! PLC это автобус. PLC_PRG - это водитель автобуса. Просто он решил работать так : глянул на дорогу, в салон, крутнул баранку, нажал на педальку и вышел (на ходу) из автобуса покурить минут пять и по новой .. Автобус работает как часы - поршни дергаются, колеса крутятся, фары светят, щетки по стеклу шкрябают. Красота. Но водитель - курит.

То-есть конфигурация - первична , код - вторичен ?
Если так , то почему вы утверждаете что коммуникация через биб-ки (т.е через код) более эффективна , чем через конфигурацию.

Или может в конфигурации не все первично , может первичны встроенные модули , а приблуды вторичны ???

Вы конкретно компетентны в таком щепитильном вопросе как очередность приоритетов в работе ПЛК Овен???

Просто этот вопрос фундаментален , а от оф.представителей особой конкретики по этому вопросу не очень ...Видимо сами не в курсе конкрэтно...

И почему в конфигурации ПЛК 100 ставлю два мастера по 485му у первого 9600 , у второго 4800 , и перезагруз по собаке .(Это так в порядке эксперимента)

З.Ы Все таки что-то (100 гр наверное) подсказывает что вы правы и конфигурация первична.

Валенок
08.02.2014, 12:03
Может я и не прав, но так должно быть и все мои наблюдения подтверждают это. А если существо похоже на утку, крякает как утка ...
Что касается зависания, то и прошивки пишут люди, и любой кусок кода вызванный с любым приоритетом может иметь, например очепяточное косячное обращение к памяти или зацикливание. Коммуникация же через б-ки - уменьшает число соавторов программы. Ну и позволяет добавлять то, чего в конфигурации нет

Василий_S
10.02.2014, 23:32
Если кому идейка пригодится.
Всю ветку не читал. Проблема в решаемой задаче тоже актуальна. Часы вообще "уходили" по-чёрному. Вывернулся периодической коррекцией значений текущего времени часов ПЛК через рс485 по текущему времени в ПК, в свою очередь, корректируемому сервером предприятия.

Василий_S
10.02.2014, 23:34
Если кому идейка пригодится.
Всю ветку не читал. Проблема в своей решаемой задаче тоже актуальна. Часы вообще "уходили" по-чёрному. Вывернулся периодической коррекцией значений текущего времени часов ПЛК через рс485 по текущему времени в ПК, в свою очередь, корректируемому сервером предприятия.

Василий_S
10.02.2014, 23:35
Если кому идейка пригодится.
Всю ветку не читал. Проблема в своей решаемой задаче тоже актуальна. Часы вообще "уходили" по-чёрному. Вывернулся периодической коррекцией значений текущего времени часов ПЛК через рс485 по текущему времени в ПК, в свою очередь, корректируемому сервером предприятия.

Boris_K
11.02.2014, 10:30
даёшь combo 3X :D

Dimooon
17.10.2014, 13:43
Подскажите, пжс, как на CFC написать какие-нибудь часики попроще, чтобы включать нагрев не по таймеру, например через 12 часов, а в 6 утра, тоже к примеру. И погрешность не важна. С ней потом бороться буду.

melky
17.10.2014, 14:32
Dimooon Если подойдет, ловите. Get_time необходимо поставить один раз в программе.
Добавить в переменные
tmd: SystemTimeDate;
syst: SysTime64;
Время в FB Interval вводится в Real - визуально понятно сколько время выставлено.
Включает и выключает по заданному времени, время берет из переменной tmd

Dimooon
17.10.2014, 14:42
Спасибо большое. Сейчас буду ковырять.

Dimooon
17.10.2014, 14:44
А в ФБ interval какие потроха?

melky
17.10.2014, 14:45
А ну так откройте и посмотрите, я уже и не помню. Там из переменной tmd берется только время суток и все.
Часы плюс минуты, деленные на 100.0 и сравниваются с уставкой на больше нижнего предела и меньше верхнего предела.

Dimooon
17.10.2014, 15:14
Я думал Вы проект на CFC подкинете... А то в тех двух вложениях я чета не разобрался пока...

melky
17.10.2014, 15:15
Dimooon так проект виден на картинке. В начале PLC_PRG должен быть один Get_time
Потом используйте нужное вам количество interval-ов, сколько душе угодно.

Подскажите, пжс, как на CFC написать какие-нибудь часики попроще, чтобы включать нагрев не по таймеру, например через 12 часов, а в 6 утра, тоже к примеру. Как говорится, что попросили :)
У вас на выходе interval булевая переменная, ну и включайте нужный выход ПЛК ей, куда вы там контактор нагревателя подключаете., заодно можете добавить проверку термостата и т.д. и т.п.

Dimooon
17.10.2014, 15:22
Я попробую влепить это все в свой проект. Если что - будут вопросы. Нет желания параллельно впихнуть в мою прогу часы

Dimooon
17.10.2014, 15:23
?????????????????????

Dimooon
17.10.2014, 15:29
Он здесь. надо устанавливать в "1" переменную man1

melky
17.10.2014, 15:44
Ну как-то так, вверху Get_time, Interval поставил справа, включение в 6 утра, выключение в 8 утра. Можно связать сразу с вашей схемой и поставить там где надо.
Время так же можно не явно указывать, а через переменные, хоть Real хоть WORD и потом переводом WORD_TO_REAL, а можно поправить FB и сделать все на WORD как душе угодно.
Interval-ов можно делать много под разные рамки времени.

Только у меня ваш проект выдал две ошибки.

Вход PID - Actual - принимает фактическую температуру (давление и т.д.) для регулировки.
А блок OR делает битовое сравнение числа, Побитное ИЛИ. Операция применима к типам BOOL, BYTE, WORD или DWORD. (help читаем, даже подделжки REAL нет), так что у вас там чехарда получится, а не температура.
Если вам необходимо или то или другое значение, переменные klapan или dt1, то используйте модуль SEL по условию

Dimooon
17.10.2014, 16:17
А, клапан не нужен. Я хотел к твердотельному реле, которое теном управляет, соленоид подключить китайский, который в диапазоне от 0 до 100 % мог открываться. Не посмотрел, что ТТР только переменкой может управлять...

tPorte
03.02.2017, 13:30
Подскажите пожалуйста, как открыть файлы которые Вы скинули в программе?29141
Они же не с разрешением Lib. Через менеджер библиотек их не загрузить.

tPorte
03.02.2017, 15:53
Мой вопрос закрыт! Файлы открываются через импорт проекта сразу в POU!