вот как бы сама программа целиком
Вид для печати
вот как бы сама программа целиком
Честно хоть убей не могу найти ошибку, почему не могу закончить функциональный блок.Ткните носом пожалуйста.
А у меня вопросы
Как бы, если активен LevelSensorLow, то значит справедливо NOT LevelSensorHigh. Так что переход на CurrentMode := 2; под вопросомКод:IF StartBtn AND NOT LevelSensorHigh THEN
CurrentMode := 1;
FlowAccumulator := 0.0;
END_IF;
// Переход в режим SIP-мойки
IF StartBtn AND LevelSensorLow THEN
CurrentMode := 2;
WashPhase := 1;
END_IF;
А это имеет смысл если TargetVolume больше сработки LevelSensorHigh. В противном случае фаза постоянно будет активироваться, пока не сработает LevelSensorHighКод:IF FlowAccumulator >= TargetVolume OR LevelSensorHigh THEN
CurrentMode := 0;
END_IF;
Не, норм. 2 Di -> 3 уровня : Lo, Med, Hi (ошибки не рассматриваю)
1-ое сравнение: по сути Lo или Med
2-ое независимое сравнение, приоритетное над 1-ым т.к. после - чотко Lo
на пальцах
Hi - ничего
Med - аккум := 0, CurrentMode := 1
Lo - аккум := 0 (не совсем явный), CurrentMode := 2, WashPhase :=1;
тут бы понять, датчики логические НО или НЗ
Если оба НО (замкнуты при уровне выше), то Med и Lo местами меняются
1-ое сравнение: по сути Lo или Med
2-ое независимое сравнение, приоритетное над 1-ым Med или Hi
Hi - CurrentMode := 2 //и тут
Med - аккум := 0 (не совсем явный), CurrentMode := 2, WashPhase :=1;
Lo - аккум := 0, CurrentMode := 1
датчик уровня ОВЕН ПДУ-1.1 смотрел такие
Ну если Di не теребите инверсией (это только вы знаете) то оба НО. Вариант 2 как бы если это ожидаете.
Возможно что таймеры нужно сбрасывать перед переходом в шаг где они работают. Вроде по их отработке сброс, но есть где выход из шага с таймером до того как таймер сработает но при этом остается активным - ломать свою голову не хочу (у вас своя есть) но подозреваю в некоторых случаях сработку таймера сразу по входу в этот шаг.
Опять же неясно что там по кнопе старт - это залетает сама кнопа или ее фронт.
Вы сами алгоритм проюзали бы в эмуляции.
Мусор бы убрали (Timer2,SystemReady и еще пару)
Вот скрин без ошибок, все IN и PT, заменены на I и T Вложение 89238 Это имена входов у SYS.TON и других таймеров в ОЛ,
достаточно открыть скобку и ОЛ выдаёт подсказку с названием входов и выходов, скрин Вложение 89239