PDA

Просмотр полной версии : ПЛК 110 ОВЕН



Mikalay83
03.04.2013, 08:56
Здравствуйте коллеги помогите пожалуйста решить задачу:
как можно проконтролировать время нахождения реле во включенном состоянии и вывести это время на панель ИП 320 (время на реальном объекте примерно 500мс)
Заранее благодарен Николай

SBER
03.04.2013, 09:16
А чем вы реле включаете, чем контролируете?

Mikalay83
03.04.2013, 13:01
на реальном объекте стоит цилиндр на нем два датчика один нормально замкнут другой нормально разомкнут при включении цилиндра нормально замкнутый размыкается а нормально разомкнутый замыкается.
Задача знать время между размыканием нормально замкнутого и замыканием нормально разомкнутого. И это время передать на панель ИП 320.
Спасибо за внимание

SBER
03.04.2013, 13:08
tm1(PT:=T#60s);
IF T1=1 AND tm1.IN=0 THEN tm1.IN:=1;
END_IF;
IF tm1.Q=1 THEN T1_WORK:=T1_WORK+1; tm1.IN:=0;
END_IF;

Таким блоком я считаю наработку движков в минутах. Если накрутить на таймере время поменьше 20-50 мс, то таким же образом можно считать время срабатывания, с дискретностью времени таймера.

Yegor
03.04.2013, 14:50
Таким блоком я считаю наработку движков в минутах.Огород ифов ни к чему. Можно одним таймером все движки считать без ветвлений:
tm1(PT := T#1m, IN := NOT tm1.Q);
t1_uptime := t1_uptime + BOOL_TO_DWORD(tm1.Q AND T1);
t2_uptime := t2_uptime + BOOL_TO_DWORD(tm1.Q AND T2);
t3_uptime := t3_uptime + BOOL_TO_DWORD(tm1.Q AND T3);

SBER
03.04.2013, 15:33
Огород ифов у меня для того чтоб учитывать режим работы. Здесь они ни к чему.
Правда для данного случая необходимо переменную наработки сбрасывать во время нового включения, так что ифы все равно городить.
Если считать как у вас то цикл рвется, точность измерения уменьшается до двух циклов таймера вместо одного у меня.
Хотя экономятся ресурсы плк за счет использования одного общего циклического таймера.

Yegor
03.04.2013, 20:32
Если считать как у вас то цикл рвется, точность измерения уменьшается до двух циклов таймера вместо одного у меня.Не уменьшается. В моём варианте чем больше циклов включения-отключения, тем выше точность (http://ru.wikipedia.org/w/index.php?title=%D0%A6%D0%B5%D0%BD%D1%82%D1%80%D0% B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%BF%D1%80%D0%B 5%D0%B4%D0%B5%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D1%82 %D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0&oldid=53294232). То есть погрешность будет стремиться к одной минуте за всё время учёта. А у вас погрешность в одну минуту лишь в пределах текущего цикла включения, и со временем эти лишние минуты будут только накапливаться.

Например, если десять раз включить двигатель на 9 минут 30 секунд, то ваш счётчик по-любому насчитает 5 лишних минут. В моём случае для погрешности такого порядка надо умудриться все десять раз попасть в одни и те же показания по таймеру, а это маловероятно. И чем дальше, тем менее вероятно.

Mikalay83
08.04.2013, 08:46
Спасибо всем за помощь!:)