PDA

Просмотр полной версии : овен плк150ам , мдвв , мву пляски с бубном уже не помогают



av-ignatov
25.03.2010, 14:39
всем добрый день.хотелось бы услышать компетентный совет.создаю не первый проект не на первом плк.раньше все было ок.а вот сейчас в ступоре.проект какое-то время корректно работал , потом начались чудеса.то выходы произвольно включаются , то (выход 4 мдвв , к примеру), включаются как с таймером которого нет.попробовал перепрошиться на 2.10.7.напрасно , плк ушел в себя .с десятой попытки я перепрошился обратно на 2.10.5 ,проблем стало еще больше , стал сам перезагружаться и так далее.не знаю куда уже смотреть.файлы прилагаю.

Филоненко Владислав
25.03.2010, 16:32
1. Пропускная способность шины 485 превышена. Столько параметров она опрашивать так часто не может.
2. Программу лучше разбить на части.
3. 20 мс цикл ПЛК===большие тормоза при работе среды разработки. Больше 5 не ставьте. Надо вызывать реже - создайте задачу.
3. И не забывайте делать Boot Project. Такая "пляска" возможна когда Вы думаете там один проект, а загружен другой.

lara197a
25.03.2010, 18:49
вы в мастере перейдите с протокола овен на мотбас рту, замените флоат на ворд, будет работать гораздо быстрее.

av-ignatov
25.03.2010, 21:06
Насчет BOOt project даже не смешно.:( Грабли старые и здесь все гут.Создавал пустой проект (вход привязан к выходу) , таргет переустановил.Проект загружается 20сек!!!!!При этом через ж....у.При соединении указываю не загружать изменения , после соединения делаю воот , потом reset.И только так.В противном случае не коннектиится ни TCP ни RS232.

Филоненко Владислав
25.03.2010, 23:25
3. 20 мс цикл плк===большие тормоза при работе среды разработки. больше 5 не ставьте. надо вызывать реже - создайте задачу.

av-ignatov
26.03.2010, 00:42
Лара197а спасибо за совет , действительно , ведь размер выходит меньше.Владислав , я с Вами согласен , просто я не знаю как в моем примере создать задачу , кстати , почему же тогда в PLC_Configuration_OWEN не рекомендуют делать маленький цикл , и при помощи модуля статистик предлагают его проверить и увеличить если он маленький.Какую истину я не могу увидить?Я пытался уменьшить время цикла , но при этом загорался в статистик флаг CPU is overloaded и ПЛК уходил в перезагрузку.Кстати , вопрос о произвольных перезагрузках и самопроизвольных включениях неназначенных выводов с простейшим примером (один вход МДВВ один выход МДВВ со значениями по умолч.)остался открыт.Для проверки я перекроил области ввода и вывода под ПЛК154ИМ и залил проект в соответствующий ПЛК(снял на другом объекте), так вот , по крайней мере перестал жить своей жизнью и произвольно перезагружатья.А процесс загрузки по сравнению со 150-м молниеносный.Времени правда всеравно не хватает :( но это я пробую решить через Модбас .Буду признателен если вы Владислав разъясните ситуацию с циклом и покажете как на моем примере создать задачу , потому что предыдущие проекты не требовали высокой скорости , а вот последующие потребуют какие могут быть рекомендации?К примеру есть станок на котором продольное перемешение измеряется оптикой через"расческу" , как в принтере.Скорость перемещения 10см/сек , шаг 1 мм.

lara197a
26.03.2010, 08:31
вы не пишите все в Plc_prg. напишите несколько программ или фб, под своими именами. к примеру програмка для работы с модуле аналоговым, програмка обработки аварий, програмка управления процессом... и т.д.
эти функциональные блоки или программы вставьте в Plc_prg.проверьте время цикла. если время велико, удалите из Plc_prg програмки, которые не нужно обрабатывать в каждом цикле. в менеджере задач вызывайте их по мере необходимости, по событию или циклично, через какие-то промежутки времени.
к примеру время считывания аналогово входа в мва около 0.8сек. если задействованы все 8 входов, то нет смысла опрашивать мва ранее, чем через 6 сек, соответственно и обрабатывать полученные значения тоже.

av-ignatov
26.03.2010, 12:40
спасибо за совет.попробую еще раз.я так тоже уже пытался делать , только эти фб я потом не мог вызвать в Plr_prg , компилятор ругался.для меня было идеально разбить процесс для начала на 3 задачи -наладка , полуавтомат и цикл.придется еще раз серьезно поработать над этим.что касается выходов , то неподключенные выход на мву и так не опрашиваю.
выходит раньше я шел в верном направлении , только не знал что это называется созданием задачи.у меня не выходило , и я пошел по кратчайшему пути.наконец то дошло.почти все мои выходы должны опрашиваться с очень высокой скоростью , но только на определенном участке процесса.осталось только организовать опрос по вызову .
всем спасибо за отзывы , а то я не мог понять , то ли свисток неисправный ,то ли акула глухая.
пысы вот только вопрос с глюками плк при простейшей программе после перепрошивки остался.

lara197a
26.03.2010, 13:31
может кабель не исправен или большие эл помехи в помещении.
у меня были раз проблемы, потом оказалось в кабеле проводок отпаялся.

av-ignatov
26.03.2010, 17:05
кабель Belden-v 3105a , правда терминальные резисторы не ставил , блоки стоят друг возле друга .в принципе стандарт Rs допускает такое , но завтра воткну , т.к. я вспомнил что при включении мощного пускателя была перезагрузка , да и заодно развяжу его по питанию.переделаю программу и завтра попробую кто из них виноват.а заливаю все плк одним и тем же кабелем , тормозит только этот , причем ни перепрошивки ни сбросы не помогают.в общем готовлюсь к завтрашнему дню.но всетаки хотелось бы услышать оф.комментарии , по проблемам с прошивкой помнится даже отдельная ветка есть.

av-ignatov
28.03.2010, 14:22
свершилось.я залил старый проект в другой плк , даже поснижал скорость опроса входов в несколько раз(соответственно уменьшил время цикла) и все заработало.причем без терминальных резисторов , правда я их всеравно поставил.

av-ignatov
26.05.2010, 20:36
следуя совету на досуге переделал проект с вызовом подпрограмм , разница конечно же существенная .хотелось бы услышать мнение специалистов о результате.все как-бы работает , но скорее всего я не совсем корректно вызываю эти подпрограммы , хотел бы получить поправки.но вопрос собственно не в этом.у меня проблемы со счетчиком.наблюдалось что досчитав где-то между11000 и 20000 циклами (имеется ввиду производственный цикл)он вдруг сам сбросил значения до 6000(или около того).утром было 10240 а к вечеру стало 6000.за день набегать больше 5000 не может , так что обнуления небыло.и еще одна большая проблема.выход плк154 ам коммутирует постоянку 24 в.ток при коммутации 0.59а(проверерял клещами Fluke).так вот приодически выход не срабатывает.есть светоиндикация , но цепи нет.такое ощущение будто закисли контакты.препаивать реле неохота.если вдруг придется , кто знает какое реле там стоит (только с но парой, 4-й выход плк)

lara197a
26.05.2010, 21:24
что за плк(какой таргет?)

av-ignatov
26.05.2010, 21:31
Lara197a рад вас видеть(слышать-читать)
ПЛК 154 ИМ таргет 2.10.5

lara197a
26.05.2010, 22:17
так вроде бы нормально. есть конкурентный доступ к переменной в 39 и 40 строках Plc_prg. много неиспользуемых переменных.
что за модуль на овен мастер подключен? где счетчик?

av-ignatov
26.05.2010, 23:03
на овен мастер модули мдвв-р , и мву-8(в нем я исп.3 выхода).касательно строк39-40 это я пытался в ип 320 в один и тот же регистр передавать значения соответствующие процессу.попробую переделать но от совета как лучше отказываться не стану.счетчик в 25 строке.о каких неиспользуемых переменных идет речь?если о тех переменных которые расположены над строками в разделе объявлений , то по всей видимости это остатки от неоднократной переписки программы.это они?если это критично , то я их почищу.за терминологию и вопросы прошу не судить, диплом чисто технический.
P.s.пробовал перевести на модбас и опрашивать маску входов -выходов , с мдвв получилось отлично , да и скорость выросла , а вот с мву к сожалению не смог настроить.

lara197a
26.05.2010, 23:49
На вход PV,если хотите поставить максимально большое число запишите 65535. MUL и преобразование не имеют смысла.
МДВВ переключите на универсал мотбас девайс и обращайтесь по маске.
МВУ- посмотрите примеры в разделе полезности.
Переменные можно проверить: проект-компилировать, проект-контроль -неиспользуемые переменные. В общем-то не мешают.
для обрашения к одной переменной используйте например otv_s:= otv_s1 OR otv_s2
старайтесь поменьше использовать 4-х байтные переменные. существенно влияет на скорость при обмене данными.
Не понятен смысл 16-19, 40 строк. Зачем складывать с нулем?, да еще и в некоторых случаях по условию?
Избегайте преобразований из реал.

av-ignatov
27.05.2010, 00:35
По примеру полезностей я и не смог настроить МВУ, не хватило времени , да и по протоколу Овен все выходит отлично.На досуге всетаки сделаю по Модбас.Что касается обращения к переменной я это реализую в LDпоскольку пока мне понятен только LD язык.О 4-х байтных переменных пожалуйста подробней , это которые? Касательно 16-19 и 40-й строк , то тут все просто , таким образом я пытался присвоить регистру определенное значение в зависимости от процесса, а поскольку оператор сложения требует и второй операнд то вводил ноль(такой вот кривой способ).Если можете сделать пример , то пожалуйста в LD.Как сделать проще я не знаю.За пояснение к счетчику спасибо.Кстати , чтобы его значение было энергонезависимым делать переменную VAR retain или VAR retain persistent?Почему избегать преобразований из реал?Есть ли какие-то соображения по поводу выходного реле?
Зараннее спасибо.

lara197a
27.05.2010, 08:39
Реле попробуйте заменить.
4-х байтные-это типа real и float.
В st есть оператор IF. Почитайте про него. Очень удобно для присваивания в зависимости от процесса.(IF(если)).
Для энергонезависимости счетчика можно использовать CTUD.
На вход LOAD подается сохраненное значение и счетчик считает начиная с этого значения.
Преобразования занимают много ресурсов контроллера. Теряется точность. К примеру на счетчике вы писали 999х999, получится 998001. После преобразования из DW в W получим 14961. Видимо у вас и счетчик обнулился при достижении этого числа.

av-ignatov
27.05.2010, 11:20
спасибо.с реле попробую.с оператором If согласен , осталось сделать это в Ld.со счетчиком Ctud не пробовал, спасибо.где-то около 15000 он действительно и сбросил.со всем остальным тоже понятно.остался один вопрос , вот я хочу чтобы на панели отражался разный тектст в одной и той же строке.к примеру готов , стоп, ожидание.соответственно одному и тому же регистру я буду присваивать 0,1,или2.вот как сделать это присваивание в Ld правильно чтобы небыло такого как я сделал в 16 -19 и 40-х строках.

lara197a
27.05.2010, 11:54
примерно так2399

av-ignatov
27.05.2010, 12:23
огромное спасибо за пример и за помощь!