PDA

Просмотр полной версии : Отработанное время за смену



Cerentiy
10.03.2015, 08:31
Задание. Связь плк с пк организована по локальной сети предприятия. Необходимо получать состояние работы оборудования и выводить его на экран монитора. Агрегатов подключено 16 шт. Рассчитать наработанное время за 12 ч. смену для каждого агрегата отдельно и при пересменке передавать это время в скаду с фиксацией в журнал, для дальнейшего просмотра начальства. Что было сделано мной - Ну с получением состояния и выводом проблем не возникло. А вот время наработки до сих пор не могу победить. Сначала сделал циклический таймер. Который отсчитав 60 с. прибавлял к переменной 1. Далее путем расчета переводил это время в часы и минуты. Но проблема в том что при пересменке в журнале выходило не 12 ч (это если агрегат отработал полную смену) а 11ч 59м. Начальству это режет глаз. Попробовал воспользоваться системным временем. Сравнивая секунды так же добавлял единицу к переменной. При пересменке например в 7:00 или 19:00 эту переменную обнулял. Но данный вариант еще хуже. Время вообще стало плавать. То 11:45 то 11:54 в журнале. Что еще сделано- добавил корректировку времени со скады каждый час. Помогите организовать точный расчет времени если это возможно на данных контроллерах. И еще из за чего может отключаться контроллер. Просто останавливается выполнение программы. Индикатор работа не горит. Происходит это не постоянно, но в самый неподходящий момент.

_Mikhail
10.03.2015, 09:13
И еще из за чего может отключаться контроллер. Просто останавливается выполнение программы. Индикатор работа не горит. Происходит это не постоянно, но в самый неподходящий момент.

Какой топ контроллеров Используете? Если старые модификации ПЛК1**, то в конфигурации добавьте элемент Button, после этого ПЛк останавливаться не будет.

Cerentiy
10.03.2015, 10:10
ПЛК - 160. Где можно прочитать про добавление этого элемента?

_Mikhail
10.03.2015, 10:27
ПЛК - 160. Где можно прочитать про добавление этого элемента?

У меня на 100 серии тоже самое было, пока не добавил Button. Информация где-то тут на форуме, т.к в документации об этом глюке ПЛК нет информации.

Cerentiy
10.03.2015, 10:39
Спасибо всем. Помогите решить проблему с наработкой часов.

Yegor
10.03.2015, 11:44
Считать в секундах:
tick(CLK := TIME_TO_DWORD(TIME()) MOD 1000 > 500); (* R_TRIG один на всех *)
runningTimeSeconds := runningTimeSeconds + BOOL_TO_DINT(tick.Q AND deviceON);Округлять до минут:
minutes := LREAL_TO_DINT(DINT_TO_REAL(seconds) / 60.0);
Время вообще стало плавать. То 11:45 то 11:54 в журнале.У ПЛК160 часы кривее, чем у самого задрипанного сторублёвого будильника. Я просто полагаю, что их нет. Даже не ставлю. Когда впервые столкнулся — долго удивлялся, как у контроллера могут быть настолько паршивые часы. И это при том, что TIME() вроде равномерно идёт.

CleanS
10.03.2015, 17:02
ПЛК - 160. Где можно прочитать про добавление этого элемента?

Здесь немного про стоп ПЛК ... http://www.owen.ru/forum/showthread.php?t=1262&p=7056&viewfull=1#post7056