PDA

Просмотр полной версии : Задержка выдачи сигнала



Ivan_P
10.04.2015, 10:03
Всем привет!

Подскажите, пожалуйста как правильно прописать логику в CFC?
Задача такая: одно число типа BYTE изменяется и нужно сравнивать его значение во времени с периодом в 5с. Если увеличивается, то одно действие, а если уменьшается, то другое.
А точнее есть резервуар, который наполняется или осушается жидкостью. Есть 4 электродных датчика уровня (дискретные сигналы): нижний, средний 1, средний 2, верхний. Можно их забить в PACK, побитно начиная с низкого уровня. Далее требуется полученное число сравнивать во времени.
Надеюсь, что понятно объяснил:)

Алексей Александрович
10.04.2015, 11:17
Как то так
17642

_Mikhail
10.04.2015, 11:19
Так вот как пишишь, так и делай.

Yegor
10.04.2015, 11:20
17643
​​​​​​​​​​​​​​

Алексей Александрович
10.04.2015, 11:37
Море вариантов только времени для оптимизации нет.

zendo057
10.04.2015, 21:55
Как то так
17642 Алексей Александрович ,акак можно сравнивать один результат с разных паков и получать больше/меньшею,объясните пожалуйста-не понимаю

Алексей Александрович
11.04.2015, 05:04
По такой же структуре. Но вопрос не совсем понятен.

zendo057
11.04.2015, 11:19
По такой же структуре. Но вопрос не совсем понятен. Ну вот смотрите.В два пака загружается одна и таже информация,соответственно и результаты одинаковые,а потом сравнивается на GT и LE, вот не понимаю.И попутно,для чего BLINK?

lara197a
11.04.2015, 11:29
выход тригера инвертирован и поэтому программа выполняется только раз в 5с.
при выполнении программы сначала сравниваются "паки", а уж потом в пак олд записывается новое значение.
смотрите очередность действий

Ivan_P
29.04.2015, 14:52
Как то так
17642
Спасибо, помогло, только есть один нюанс: когда ничего не происходит, то с наполнения перескакивает на осушение :confused:, а надо так, чтобы режим (наполнение или осушение) держался, пока уровень не изменится в меньшую или в большую.

Алексей Александрович
30.04.2015, 06:48
пока уровень не изменится в меньшую или в большую
Поставте больше и меньше а когда равно оба действия будут=0

Ivan_P
30.04.2015, 07:19
Поставте больше и меньше а когда равно оба действия будут=0
Когда становится равно, то нужно, чтобы один из режимов сохронялся. Когда делаешь больше или меньше, то через время сравнения режимы отключаются.:confused:

Алексей Александрович
30.04.2015, 07:46
Поставте равно выше всех сравнений. И когда равно=1 обходите все остальные сравнения. И действия останутся прежними

Ivan_P
30.04.2015, 07:52
Поставте равно выше всех сравнений. И когда равно=1 обходите все остальные сравнения. И действия останутся прежними
Я тоже об этом думал... а можно поподробнее?;)

Ivan_P
30.04.2015, 08:01
Походу понял как, сейчас попробую...

Алексей Александрович
30.04.2015, 08:06
Равно =1 переход на метку ххх
сравнение больше
сравнение меньше
метка ххх

как то так
или как у Yegor через EN

Ivan_P
20.05.2015, 14:19
Равно =1 переход на метку ххх
сравнение больше
сравнение меньше
метка ххх

как то так
или как у Yegor через EN

Спасибо, получилось как у вас в схеме

Как то так
17642
только
сравнение больше----RS1,
сравнение меньше----RS2.
Тогда импульс сохраняется при равенстве старого и нового уровня.