Здравствуйте!
Счетчик импульсов СИ30 в ПЛК150 отдает значение текущего количества импульсов. Необходимо в ПЛК произвести расчет текущей скорости. Подскажите, каким образом это можно осуществить?
Вид для печати
Здравствуйте!
Счетчик импульсов СИ30 в ПЛК150 отдает значение текущего количества импульсов. Необходимо в ПЛК произвести расчет текущей скорости. Подскажите, каким образом это можно осуществить?
импульсы переводите в расстояние, расстояние и время переводите вскорость.
Скорость предполагается отображать в виде графика, поэтому необходимо регистрировать ,скажем, с интервалом 10 сек. текущую скорость. Импульсы я преобразовал в метры, получил скорость, но все это выглядит коряво...пока не получается избавиться от нуля в показаниях при RESET.
Хотя такой вариант вроде бы получше.
Могу предложить еще вариант
Если значения счетчика долго не меняются, то значит объект остановился, обнуляем скорость (можно использовать таймер TOF).
Допишите после вызова R_TRIG1:
Вообще-то лучше текущее время запоминать после очередного опроса счетчика. Тогда при начале движения объекта погрешность первого показания будет меньше.Цитата:
TOF1(IN:= R_TRIG1.Q, PT:= t#5s);
IF NOT TOF1.Q THEN (*если в течении 5 секунд счетчик не изменился*)
v:=0; (*обнуляем скорость*)
old_time:=TIME(); (*запоминаем текущее время*)
END_IF
Обнуление заработало, спасибо.
К сожалению проявляется проблема с подсчетом скорости: показания не стабильны. Присутствует некий шаг, через который индицируются показания. А при небольшой скорости выводится слишком большое значение. Возможно существуют какие-то ошибки в нижеприведенной программе.