Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Пара вопросов по контроллерам Carel
Диалог специалистов АВОК > ОБЩИЙ ФОРУМ > Автоматизация систем
whilephoenix
Возникли два вопроса по программированию контроллеров carel. Чтобы не плодить тем, задам их в одной.
Мне нужно выполнить фильтрацию аналоговых входов. В справке нашел формулу, по которой можно построить фильтр. Не найдется ли готового блока для фильтрации, среди форумчан, которые смогут поделиться со мной?
Я использую среду 1tool 1.26.
Следующий вопрос по фиксации включения питания контроллера. Есть ли системные переменные, в которых можно подсмотреть время, когда был запущен контроллер, и записать это значение в энергонезависимую память?
И более сложная задача, это фиксация времени отключения контроллера. Нет ли решения для этой задачи, кроме как писать в энергонезависимую память, текущее время, на каждом цикле ?
svintus
По первому вопросу - непонятны критерии фильтрации.
По второму - системные переменные CURRENT_MINUTE, CURRENT_HOUR и т.д. Для фиксации времени отключения пишу не каждый цикл, а по изменению CURRENT_MINUTE. Для фиксации времени включения ваще просто - в первом цикле исполнения программы записываем текущие CURRENT куда хочется.
Можно воспользоваться макроблоками Store_WM, Store_WS и писать туда все события в привязке к времени.
svintus
Уточню. Для фиксации времени отключения использую Е-память.
whilephoenix
Цитата(svintus @ 15.12.2014, 10:09) *
По первому вопросу - непонятны критерии фильтрации.
По второму - системные переменные CURRENT_MINUTE, CURRENT_HOUR и т.д. Для фиксации времени отключения пишу не каждый цикл, а по изменению CURRENT_MINUTE. Для фиксации времени включения ваще просто - в первом цикле исполнения программы записываем текущие CURRENT куда хочется.
Можно воспользоваться макроблоками Store_WM, Store_WS и писать туда все события в привязке к времени.


Благодарю за подсказку.
Как то я работал в фирме, где разарбатывали собственные ПЛК. Там закладывался сигнал от источника питания, о наличии напряженя на входе. Если напряжение пропадало, контроллер успевал сгенерировать прерывание, и записать время отключения в энергонезависимую память. И теперь, когда я изучаю ПЛК сторонних производителей, всегда надеюсь, что они так же закладывают такую возможность фиксации отключения питания. Но увы, они этого не делают.

По фильтации, нужно сгладить резкие изменения входного сигнала, на протяжении 1 секунды, например. Я слышал, в старой версии 1tool, был подобный блок.
manjey73
Кто мешает завести на вход сигнал от сети через реле ессно и контролировать самостоятельно, это же программируемый контроллер...
У Carell по умолчанию фильтрация по дискретным входам 320 мс и НЕ ЛЕЧИТСЯ. (в смысле больше можно, меньше нельзя), разве такой фильтрации недостаточно ?
whilephoenix
Цитата(manjey73 @ 16.12.2014, 11:44) *
Кто мешает завести на вход сигнал от сети через реле ессно и контролировать самостоятельно, это же программируемый контроллер...
У Carell по умолчанию фильтрация по дискретным входам 320 мс и НЕ ЛЕЧИТСЯ. (в смысле больше можно, меньше нельзя), разве такой фильтрации недостаточно ?

Ну решить можно по разному. Использовать доп вход не хочется то. И нет гарантии что, при пропадании питания контроллер успеет записать данные, до пропадания питания на выходе ИП. Хорошо что тут есть энергонезависимая память, в которую можно писать на каждом цикле. А в других производителей ПЛК и того нет.

Меня интересует фильтрация аналоговых входов, на которые будут подключаться температурные датчики.
manjey73
У Carell энергонезависимая память не резиновая, если вы начнете писать в каждом цикле, сам контроллер может выдать предупреждение "ай-яй-яй"....
Надо ставить ИБП и контролировать грязное питание. Даже у ОВЕН это есть внутри, и батарейка для ретейн и контроль питания.

учитывая время цикла Carell заморачиваться фильтром ???????
Таймер поставьте по входу и все, и будет вам дополнительный фильтр. А если посмотреть документацию по аналоговому входу в 1tool что он на этот счет пишет ? (просто не помню уже)
whilephoenix
Цитата(manjey73 @ 16.12.2014, 13:59) *
У Carell энергонезависимая память не резиновая, если вы начнете писать в каждом цикле, сам контроллер может выдать предупреждение "ай-яй-яй"....
Надо ставить ИБП и контролировать грязное питание. Даже у ОВЕН это есть внутри, и батарейка для ретейн и контроль питания.

учитывая время цикла Carell заморачиваться фильтром ???????
Таймер поставьте по входу и все, и будет вам дополнительный фильтр. А если посмотреть документацию по аналоговому входу в 1tool что он на этот счет пишет ? (просто не помню уже)


В видеоуроках я слышал, что есть память, которая поддерживатеся батарейкой. Я понял что это обычная ОЗУ, которая является энергонезависимой (пока батарейка не сядет). Может я не так понял это? Можете пояснить?

В справке 1tool есть формула, для построения фильтрации аналоговых входов.
svintus
Е- память это CLOCK_RAM. Пишите, сколько нравится.
Non-volatile RAM memory built-in the 52 byte clock board (26 word).
The "E" memory is not subject to wear (if necessary, it can be written to in each program cycle without damaging it).
По поводу фильтрации - подозреваю, нужно проводить замеры через промежутки времени и усреднять? Решается без макроблоков чистой математикой.
whilephoenix
Цитата(svintus @ 16.12.2014, 14:32) *
Е- память это CLOCK_RAM. Пишите, сколько нравится.
Non-volatile RAM memory built-in the 52 byte clock board (26 word).
The "E" memory is not subject to wear (if necessary, it can be written to in each program cycle without damaging it).
По поводу фильтрации - подозреваю, нужно проводить замеры через промежутки времени и усреднять? Решается без макроблоков чистой математикой.


Именно так. Вот со справки вырезка:

Val_t = Val_t-1 + (R10 - Val_t-1)/AV_Value

Val t
Value corresponding to the analog input. It is calculated every T ms.

This is the value that is assigned to the Val output when the Ain_Conf atom is run.

Val t-1
Value of Val t in the previous period T.

R10
R10 reading in the current period T.

AV_Value
Weight of the average. This is defined indirectly by the AVERAGE_AINn system variable corresponding to the input read.




manjey73
не всегда есть часы, насколько помню....
svintus
Часы на всех поголовно встроены, кроме XS. Там как опциональная плата на разьеме. По поводу фильтрации, предполагал до нескольких секунд, например, между замерами, впрочем Вам там на месте виднее.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.