Прошу помощи в устранении данных ошибок,что написано не правильно.Заранее спасибо.
Вид для печати
Прошу помощи в устранении данных ошибок,что написано не правильно.Заранее спасибо.
Ну ИНТа тута нет - по-русски же
И да, достаточно привести только название ФБ и вам скажут в чем проблема, здесь все матерые экстрасексы
Из явного - в Лоджике отсутствует тип INT
А почему нарисовался ИНТ?
Не потому ли, что кто-то вывалился из индекса массива?
Хотя это могут быть и разные ошибки в общем.
причину двух ошибок нашел,появилась другая ошибка.Я только учусь еще совсем все не понимаю.
Вложение 89220 теперь так.
Здесь закрывающий END_CASE один, а открывающих CASE OF - два.
Вложение 89221
Двоечка выше явно от другого кейса, или тут один кейс в другом...
вот как бы сама программа целиком
Честно хоть убей не могу найти ошибку, почему не могу закончить функциональный блок.Ткните носом пожалуйста.
А у меня вопросы
Как бы, если активен 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
Может быть глюк самой программы изменил данные результат тот жеВложение 89250
Уже сутки как прошли, а ТС ещё до закрывающего case оператора не добрался. Ну как же так(
Между боевыми дежурствами есть немного времени для саморазвития,решил задачу с вашей помощью. Всем спасибо за урокВложение 89254
Просто это не на гражданке где есть время,а здесь на "КТО" кто чем может коротает минуты отдыха.Я решил заняться саморазвитием.Рано или поздно все закончится.