PDA

Просмотр полной версии : Блок OR держит выходное значение?



Artem
19.09.2012, 22:10
Приветствую. Извиняюсь если тема была, но я ответа не нашел.
Сразу к делу. Имеется проект для ПЛК-100 R.L. Программа написана на SFC. Каждый шаг-переход написан на CFC. На Каждом шаге выполняется действие, а именно подача пара в блок-форму. Условием перехода на следующий шаг является узел где сравнивается давление или температура с уставкой (Рис. CDE_or_1).

Переменная "per3" в начале цикла присваивается нулю. Т.е. при входе на этот шаг "per3" = 0 и программа не сдвинется с этого шага пока "per3" не станет равный единице.

Программа работает. Шаг и условия перехода выполянются. Оборудование работает 8 часов все ок. Оператор выключает пульт, уходит домой. На следующее утро оператор приходит, включает пульт, нажимает старт и программа благополучно пролетает этот шаг не смотря на то, что ни температура ни давление не достигли уставки.

В программе 22 шага где условием перехода служит достижение уставки либо давления либо температуры. И все эти 22 шага проносятся за 3 секунды затворы только хлопать успевают. На каждом шаге своя переменная для перехода "per3", "per4" ..."per22". Все переменные на шаге "init" присваиваются нулю. После первого такого цикла все последующие циклы работают так как надо. Но стоит выключить питание на ночь, а утром включить то первый цикл опять скоростной.

В итоге сделал такую доработку (Рис. CDE_or_2). Тупо ввел задержку на 200 мс. И все нормально заработало по утрам.

Скажите в чем проблема? Сложилось впечатление, что блок OR держит выходное значение? Причем он его держит именно после выключения питания? Кто еще такое встречал подскажите? Спасибо.

Yegor
20.09.2012, 06:15
Попробуйте GE на GT сменить. Если сработает, то меняйте обратно на GE и пересматривайте порядок инициализации переменных AI, davl и temp.

capzap
20.09.2012, 07:20
приблизительно представляете чему равно значние аналогово входа, кода есть неисправность, скорее всего в то время когда включаете, АЦП аналогового входа еще "просыпается" чтоб начать нормальную выдачу сигнала, а программа уже работает в результате второй вход держит условие в единице

ЗЫ все вышесказанное нечитать, непонятно, почему реал с интом сравниваете, инт всегда меньше реала, наверное в этом причина

Artem
20.09.2012, 19:57
приблизительно представляете чему равно значние аналогово входа, кода есть неисправность, скорее всего в то время когда включаете, АЦП аналогового входа еще "просыпается" чтоб начать нормальную выдачу сигнала, а программа уже работает в результате второй вход держит условие в единице

ЗЫ все вышесказанное нечитать, непонятно, почему реал с интом сравниваете, инт всегда меньше реала, наверное в этом причина

Представляю. Значение аналогового входа есть. Они далеки от уставки и выполнения условия. В "реале" (Al_2) у меня датчик давления-разряжения. В инте у меня уставка которая вводится с ИП320 (davl_3). ИП320 отрицательные значения в иенте нормально вроде представляет. На данном шаге (который в примере) отрицательная уставка конечно не вводится (запрещено на ИП320), но на других шагах есть отрицательные уставки.

P.s. сегодняшний запуск прошел без приключений. С первого цикла оборудование отлично отработало. Действительно складывается мнение что кто то не успевает "проснуться".

lara197a
21.09.2012, 08:26
Скопируйте программу в другую ПРГ, а в PLC_PRG организуйте таймер, который запускается после включения и к примеру через 5 сек дает разрешение на запуск основной программы.
Если АЦП тормозит при включении, то это должно помочь.

Artem
21.09.2012, 22:03
Всем спасибо. Буду пробовать. Я так понял что для "овен" данное состояние все-таки приемлемо?


... и пересматривайте порядок инициализации переменных AI, davl и temp.

За порядок инициализации отвечают цифры в правом верхнем углу блоков? Например на Рис. CDE_or_1 у блоков GE это цифры 22 и 23. Т.е. для быстродействия данных блоков мне надо им номера 1,2 и т.д присвоить? Я прав?

capzap
21.09.2012, 22:25
В "реале" (Al_2) у меня датчик давления-разряжения. В инте у меня уставка которая вводится с ИП320 (davl_3).

Я бы все же Ваш реал пропустил через trunc а потом сравнивал с уставкой, всеже надо сравнивать однотипные переменные, чтоб небыло ошибок из-за обрезаний, загрублений и т.п.

lara197a
21.09.2012, 23:01
данное состояние (запаздывания включения АЦП), не является ошибкой овен. Это из характеристики микросхемы АЦП. Время измерения указано в инструкции по эксплуатации. Возможно задержка 200мс Вам маловата будет.
Так же поддержу предложение сравнивать однотипные переменные.

capzap
22.09.2012, 07:58
кстати, в реале при ошибке должно быть жутко отрицательное число и если уставку преобразовать в реал, то неправильных показаний можно избежать без использования задержек