
Сообщение от
Sulfur
atomo2
При включенном мониторинге в конфигурации ПЛК посмотреть состояния счетных входов. Если показания меняются при отключенном потоке, то разбираться с внешними датчиками. Я сильно не вникал в ваш алгоритм, но не увидел обнуления счетной переменной. Подсчет импульсов должен учитываться только при работе дозирующего устройства.
У этих ПЛК есть неприятная особенность - отсутствует возможность сбросить Fast Counter ни снаружи, ни из программы, это и создает проблемы, приходится городить огород.
Спасибо, буду проверять датчики, проблема именно у 110-60м2 ?
Код:
wcur := WATER_FACT_NR170;
wtimer(tme := t#120s, CUR := wcur, PREV := wprev, DOZ := WATER_DOZ_NR170, NORM_S := TRUE);
IF wtimer.TIME_OUT THEN
WATER_DOZ_NR170 := FALSE;
END_IF;
IF WATER_START_NR170 AND (NOT WATER_DOZ_NR170) THEN
WATER_START_NR170 := FALSE;
wimpCount := 0;
WATER_DOZ_NR170 := TRUE;
WATER_DONE_NR170 := FALSE;
wtmp_zad := WATER_ZAD_NR170;
wcur := 0;
wprev := 0;
END_IF;
IF WATER_START_NR170 AND WATER_DOZ_NR170 THEN
WATER_START_NR93_1 := FALSE;
END_IF;
IF WATER_DOZ_NR170 THEN
WATER_ZAD_NR170 := wtmp_zad;
counter_copy := COUNTER_NR170_WATER;
IF O_CL_NR170_WATER THEN
WCOUNTER_ACTIVE_NR170 := TRUE;
wimpCount := wimpCount + counter_copy;
END_IF;
WATER_FACT_NR170 := DWORD_TO_WORD(wimpCount / 88);
IF WATER_FACT_NR170 >= WATER_ZAD_NR170 THEN
WATER_DOZ_NR170 := FALSE;
WATER_DONE_NR170 := TRUE;
END_IF;
ELSE
WCOUNTER_ACTIVE_NR170 := FALSE;
END_IF;
IF WATER_STOP_NR170 = TRUE THEN
WATER_DOZ_NR170 := FALSE;
WATER_DONE_NR170 := TRUE;
WATER_STOP_NR170 := FALSE;
END_IF;
wprev := wcur;
Вот переделаk код, теперь счетчик останавливается, но опять же протока нет.... что он считает то