Здравствуйте коллеги помогите пожалуйста решить задачу:
как можно проконтролировать время нахождения реле во включенном состоянии и вывести это время на панель ИП 320 (время на реальном объекте примерно 500мс)
Заранее благодарен Николай
Здравствуйте коллеги помогите пожалуйста решить задачу:
как можно проконтролировать время нахождения реле во включенном состоянии и вывести это время на панель ИП 320 (время на реальном объекте примерно 500мс)
Заранее благодарен Николай
А чем вы реле включаете, чем контролируете?
на реальном объекте стоит цилиндр на нем два датчика один нормально замкнут другой нормально разомкнут при включении цилиндра нормально замкнутый размыкается а нормально разомкнутый замыкается.
Задача знать время между размыканием нормально замкнутого и замыканием нормально разомкнутого. И это время передать на панель ИП 320.
Спасибо за внимание
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 мс, то таким же образом можно считать время срабатывания, с дискретностью времени таймера.
Огород ифов ни к чему. Можно одним таймером все движки считать без ветвлений:Таким блоком я считаю наработку движков в минутах.Код: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:39.
Не уменьшается. В моём варианте чем больше циклов включения-отключения, тем выше точность. То есть погрешность будет стремиться к одной минуте за всё время учёта. А у вас погрешность в одну минуту лишь в пределах текущего цикла включения, и со временем эти лишние минуты будут только накапливаться.Если считать как у вас то цикл рвется, точность измерения уменьшается до двух циклов таймера вместо одного у меня.
Например, если десять раз включить двигатель на 9 минут 30 секунд, то ваш счётчик по-любому насчитает 5 лишних минут. В моём случае для погрешности такого порядка надо умудриться все десять раз попасть в одни и те же показания по таймеру, а это маловероятно. И чем дальше, тем менее вероятно.
Последний раз редактировалось Yegor; 03.04.2013 в 21:02.
Спасибо всем за помощь!