PDA

Просмотр полной версии : Скорость обмена ИП-320



desperadoes
07.04.2013, 10:02
Здравствуйте дорогие друзья! Подскажите как быть? Есть ПЛК 160 в связке с ИП 320, соеденены по RS-232 Скорость 115200, объем данных гоняемых по сети 100 байт. Проблема в следующем. Устанавливаю переход экрана в ПЛК по нажатию кнопки на панели,так вот переход экрана происходти спустя около 1,5-3 секунды. Очень неудобно оператор нажал на кнопку а реакции нет (это он так дуиает). При том что переход на другие экраны делает панель и там все быстро.
Еще одну полезную функцию пришлось убрать (хотелось бы её вернуть). Управление клапанами пока нажата кнопка на панели. Получается так, кнопку нажал клапан открывается только через 1-2 сек, кнопку отпустил а клапан еще открывается 1-2 сек.
Подскажите пожалуйста как с этим бороться?

capzap
08.04.2013, 07:12
снижайте скорость, не надо думать что между 115 и 57 измеряется в км/час, разницу в одну мс Вы не ощутите, зато канал будет более устойчивый. И стоит вцелом оптимизировать обмен данными, чтоб снизить количество опросов

desperadoes
08.04.2013, 19:38
Подскажите пожалуйста как оптимизировать обмен данными?
Мне кажется что такое длительное время отклика связано не со скоростью, а с тем что панель выдерживает паузу перед посылками в сеть. Можно ли это как то проверить?

capzap
08.04.2013, 20:21
без проекта трудно что то рекомендовать, но если у Вас на одном экране присутствуют регистры слейва например первый и последний (а 100 байт это пятьдесят регистров) ьо мастеру либо надо читать весь набор из 50 регистров, либо делать несколько запросов чтоб обновить всю инфу экрана, поэтому если в слейве Вы сделаете группы регистров для конкретного экрана то обмен пойдет быстрее, причем совсем не важно если какое то значение продублируется в слейве больше одного раза

desperadoes
08.04.2013, 21:18
Ув Capzar не могли бы Вы мне помочь с оптимизацией, проект я выкладываю. Потому что я провел эксперемент оставил только один регистр для чтения и завязал его на кнопку панели (момент 1) срабатывает без единой задержки. Это значит что ему очень много данных и поэтому он тормозит. Еслиб Высогласились помочь я был бы признателен.

capzap
08.04.2013, 21:37
у меня нет в наличии на данный момент ни 160-ого(как и др. плк) ни панели, а в эмуляторе помочь не возможно в такой связке

desperadoes
08.04.2013, 21:53
Ну а посмотреть проект и указать мне где можно было б улучшить для быстроты работы можете? Ведь мне кажется что 100 байт это не так уж много

capzap
08.04.2013, 22:11
ну во первых Вы пользуете 110 байт. Зачем два универсальных модуля с одним и тем же адресом, если это ошибка то по прежнему 110 байт, а если это такая задумка то у Вас уже 190 байт гоняется всего по разным экранам

desperadoes
08.04.2013, 22:18
Второй универсальный модуль с теми же адресами только там регистры выходные и он управляется по команде. это для записи в панель парамтров уставок и т.д. при восстановлении питания контроллера. А что значит выравнивание нарушено? А как выравнивание влияет на скорость, разве выравнивание не для коректного отображения?

capzap
08.04.2013, 22:23
я спутал, обычно конфигуратор задействуют для слейва, а там надо учитывать выравнивание, в Вашем случае если плк мастер неплохо бы использовать библиотеку, чтоб давать инфу в соотвествии с экраном и/или по изменению значения переменной, тогда нагрузка на канал упадет

desperadoes
08.04.2013, 22:37
А вот сейчас не понял, что за библиотека такая. и где её взять с описанием? по изменению значения было бы вообще класс. ведь уставки вводятся довольно редко.

capzap
08.04.2013, 22:39
http://www.owen.ru/catalog/67395347
modbus.lib


http://www.owen.ru/forum/showthread.php?t=13584

desperadoes
08.04.2013, 22:59
Спасибо за помощь! Вы очень мне помогли. Я понял необходимо самому организовывать связь по сети, и опрашивать те регистры на экране которых я нахожусь, а не все кучей.
Но тогда по идее можно задействовать не Register Input а Register Input State и по команде их опрашивать в зависимости от экрана. Что думаете, можно так?

S.A.D.
11.04.2013, 13:22
а чем обусловлено использование панели в качестве slave? Просто у вас получается панель slave и work mode стоит by poll time. Соответственно все данные в нее передаются вне зависимости от того надо оно панели или нет. Это все занимает канал. Намного логичнее на мой взгляд делать панель мастером. В таком случае обмен будет происходть только по тем переменным которые нужны для конкретного экрана. это существенно разгрузит канал. Пол поводу скорости абсолютно солидарен с capzap: как показывает лично моя практика скорости 19200 или 38400 в 99% случаев хватает для обеспечения обалденной скорости и при этом стабильности канала. Однако при работе с модбас слейвом через конфигуратор учтите, что там не существует традиционных Input и Holding Registers и незабудьте учесть выравнивание(опять же для оптимизации, чтобы не плодить лишних запросов). Т.е. вам нужно будет размещать переменные для каждого из экрана рядышком, чтобы панель их вытаскивала из ПЛК одним запросом.

desperadoes
11.04.2013, 14:30
Спасибо за ответ. Попробую, а то как то со скоростью совсем печально. Жаль вот только прейдется проэкты переделывать заново с нуля. Потом напишу что вышло.

S.A.D.
11.04.2013, 14:44
зачем же так категорично с нуля? У вас почти все тоже самое будет. Надо будет переделать только конфигурацию ПЛК. На панели объем переделок не скажу))

desperadoes
11.04.2013, 20:40
Уже пол дела сделал, и опробовал. Результат радует намного, скорость практически моментальна. Завтра доделаю остальное и протестирую в комплексе.
Непонятно только как будет происходить запись в переменные retain. Если у меня параметр в панели настраиваемый, то запись в retain будет происходить как я только его поменяю с помощью set? А при переходе на этот экран или после перезагрузки, панель будет сама вычитывать из retain или как? Не будет ли у меня постоянного перезаписи retain переменных? Ответьте пожалуйста!

capzap
11.04.2013, 21:24
Уже пол дела сделал, и опробовал. Результат радует намного, скорость практически моментальна. Завтра доделаю остальное и протестирую в комплексе.
Непонятно только как будет происходить запись в переменные retain. Если у меня параметр в панели настраиваемый, то запись в retain будет происходить как я только его поменяю с помощью set? А при переходе на этот экран или после перезагрузки, панель будет сама вычитывать из retain или как? Не будет ли у меня постоянного перезаписи retain переменных? Ответьте пожалуйста!

:) а это Вам расплата за использование панели мастером

desperadoes
11.04.2013, 21:46
:p Очень вы добрые:p

desperadoes
14.04.2013, 11:19
Спасибо S.A.D за подсказанное направление. Все получилось отлично, Скорость великолепная. Даже организовал свой экран пароля для сервисного режима.переход на экран "сервис" происходит после анализа введенного пароля в ПЛК. Только вот остался один вопрос?
Имеется ли возможность синхранизировать время панели с ПЛК?

Валенок
15.04.2013, 09:39
Имеется ли возможность синхранизировать время панели с ПЛК?
Не поверите - писать нужные регистры в ИП

desperadoes
15.04.2013, 10:52
В инструкции по ИП написамо "если флажок модуль дата время-функция не поддерживается"