Функциональная схема есть, конфигурация плк настроена.
Вид для печати
Функциональная схема есть, конфигурация плк настроена.
Прикрепляю функциональную схемуВложение 84708
приемлимо, ну ок.
где структура сау? конфиг плк модули вот это всё?
вот из этого надо сделать функциональную схему автоматизацииЦитата:
Прикрепляю функциональную схему
Прошу помощи с программой. Был PLC 110-60 с программой дозирования воды , перенес все на PLC 110-60 m2. Вроде как все работает, но тут выясняется что дозирование вообще не работает, то есть задаем уставку к примеру 100 литров, нажимаем старт, слышно что клапан щелкает , но счетчик дозирования фигачит и фигачит до бесконечности, хотя видно, что программа отрабатывает корректно , на 100 литрах выполнение дозирования останавливается.
Если кому не сложно , посмотрите пожалуйста , выкладываю старую и новую версию программ
Я уже просто голову сломал , что может быть не так.
Вложение 84819
и вот после того как программа выполнила условия , счетчик продолжает крутиться (да и за 5 секунд 5000 литров тоже не может налиться)
Вложение 84821
Причем все это на всех 4 счетчиках дозирования
А самое главное у меня физически закрыты краны, но счетчик считает
atomo2
В ПЛЦ_ПРГ сделан безусловный вызов ПОУ WODA_DOZIROVKA_NR170, там есть строчка, которая безусловно выполняется в каждом цикле. Поэтому и скорость дозировки выше, чем расход топлива ракеты Ангары-5.Цитата:
wimpCount :=wimpCount + COUNTER_NR170_WATER
atomo2
При включенном мониторинге в конфигурации ПЛК посмотреть состояния счетных входов. Если показания меняются при отключенном потоке, то разбираться с внешними датчиками. Я сильно не вникал в ваш алгоритм, но не увидел обнуления счетной переменной. Подсчет импульсов должен учитываться только при работе дозирующего устройства.
У этих ПЛК есть неприятная особенность - отсутствует возможность сбросить Fast Counter ни снаружи, ни из программы, это и создает проблемы, приходится городить огород.
Спасибо, буду проверять датчики, проблема именно у 110-60м2 ?
Вот переделаk код, теперь счетчик останавливается, но опять же протока нет.... что он считает то :DКод: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;