PDA

Просмотр полной версии : Оптимизация обмена данными по RS 485 для ПЛК 100



JFK
07.12.2012, 09:12
Добрый день форумчане.
Прошу совета по следующему вопросу.
Встала задача освоить ПЛК 100.
Железо собрано следующим образом: к ПЛК 100 (мастер) по RS 485 подключены панель СП 270 (слейв) и модули ввода вывода МВ 110 в количестве 7 штук. Интерфейс настроен на скорость 112000, 8 бит данных, 1 стоповый, без контроля четности. Проблема в следующем модуль дискретного ввода МВ 110 должен передавать дискретные сигналы о пересечении человеком луча, то есть важна именно динамика процесса, но контроллер не успевает иногда получать данные с этого модуля, то есть пересечение было а модуль в это время не опрашивался.
Проблема скорее всего в том что есть панель СП 270 на которую выводятся данные в приличном объеме (ну хочет заказчик видеть все подряд на ней), оптимизировал обмен с пенелью как мог, забираю с нее данные и отправляю по 32 бита а потом уже сам дроблю эти 32 бита как надо.
Вопрос в следующем:
- в "лоб" можно ли еще более "круто" оптимизировать обмен между панелью и контроллером?
- если переключу панель на RS 232, разгрузится ли обмен по 485 или всеравно контроллер будет тратить время на опрос по 232 и тормозить обмен 485?
- у меня ПЛК 100 с индексом 224 ( питание и 220 и 24) имеет встроенные входа, но я могу на них подавать только напряжение опорное с контроллера а датчики могу подключить тока через реле, так вот встроенные входа опрашиваются оперативнее чем входа на модуле?
Ранее работал с более мощным оборудованием и как говориться ваял, что хотел без оптимизаций всяких.
Жду раскрытых ответов, что б тема была интересна всем в будущем.
Спасибо.

YuriBel
07.12.2012, 10:49
Начнем с конца
Безусловно, входы контроллера опрашиваются оперативнее, чем модули.
В настройках элементов, которые добавляются к модулю мастер в конфигурации ПЛК есть параметр, отвечающий за период опроса. по умолчанию там стоит 100 мс. Пробуйте играть с ним. Ну и разнести панель и модули по разным интерфейсам тоже лишним не будет.

Amko
07.12.2012, 11:59
Столкнулись с такой же проблемой.
Имеется проект: ПЛК110-60. 2 модбас сети, в одной 3 инвертора, в другой 9 модулей в/в + панель СП270 в режиме Slave. Сети разведены на разные порты RS485. К ПЛК на быстрые входа подключены 2 энкодера.
С инверторами, вроде как, проблем не возникло, и время отклика от них нас устраивает. Однако реакция ПЛК на сигналы с концевых/датчиков/кнопок неприемлемо большая. Наши механизмы успевают пролетать концевые выключатели, пока контроллер обработает сигнал со входа.
Что делали: уменьшили Polling time до 30мс на модулях входов/выходов. Убрали всю фильтрацию в конфигураторе на этих модулях (МВ110-32ДН, МУ110-16К).
Ставили эксперименты, генерировали игольчатый сигнал на модуле вывода, и заводили его обратно на модуль ввода. При длине импульса менее 70мс ПЛК перестал его в принципе воспринимать, печально.
Модуль статистики добавили, время цикла 17-19мс. Минимальное время цикла в конфигураторе ПЛК выставлено в 23мс, лампочка перегрузки ПЛК в статистике не горит.
Хочу попросить совета, что делать?

Валенок
07.12.2012, 12:15
Одно из решений
http://www.owen.ru/forum/showthread.php?t=13110&page=2

Amko
07.12.2012, 12:28
Ну это же резко увеличит количество опрашиваемой информации с модуля. Так я опрашиваю один регистр (битовая маска) и вычленяю оттуда биты. А со счетчиком потребуется опросить 32*16 бит данных с каждого модуля ввода. Сомневаюсь в целесообразности данного метода.

Валенок
07.12.2012, 12:32
Ну это же резко увеличит количество опрашиваемой информации с модуля.
Заблуждение. Опросите все счетчики модуля за раз.
Вот цикл в 20ms - это жесть

JFK
07.12.2012, 12:44
Наставьте на путь истинный, как за один раз опросить все счетчики модуля?

Валенок
07.12.2012, 13:52
По какой части PCL_Configuration_OWEN.pdf вопрос ?
Какие подмодули можно вставить в мастера ?

PS
Для любителей - есть modbus.lib или просто syslibcom.lib

Amko
07.12.2012, 14:55
Слышал, что опрос слейвов с помощью библиотеки modbus.lib быстрее, нежели добавлять слейвы в конфигурацию, это так? Думаю, может разделить мне модули, часть через библиотеку опрашивать, часть через конфигурацию.

Валенок
07.12.2012, 16:42
На одном интерфейсе ?

Amko
07.12.2012, 19:07
Думал на одном, если такое возможно.

Валенок
07.12.2012, 19:16
В двери толкаться локтями будут

Amko
08.12.2012, 07:34
Попытаюсь резюмировать.
Использование счетчиков модулей ввода позволит зафиксировать сам факт срабатывания концевого выключателя, что в некоторых случаях и допустимо. Однако моя логика требует, чтобы датчики оставались во включенном состоянии, а тут счетчики не помогут.
Исходя из документации ОВЕН, уменьшение Polling time может привести к негативным последствиям, есть ли у кого опыт занижения времени опроса до минимума? Проверять на рабочем объекте все возможные комбинации/методы/способы, к сожалению, нету ни времени, ни возможности.

Валенок
08.12.2012, 12:42
Опросить каждый МВ - минимум 6..8мс . У Вас их 7 => 40..60мс предел.

При длине импульса менее 70мс ПЛК перестал его в принципе воспринимать,Вполне соответствует - иногда пропускает.

Однако моя логика требует..Кроме Вас её никто незнает. Так же кроме Вас никто не знает предельную частоту и длительность. Может начальные условия таковы - что вообще не на этот форум. Вот у JFK - челы луч пересекают. Можно оценить время => толщину чела/скорость. Худышка быстрым шагом - где-то 150..200мс.
А может два луча работают как SR ? В обоих случаях - задача решаема если только это не для спортсоревнований.

Купите столько и таких ПЛК - чтобы все что нужно быстрее 30..50мс - было родных входах ПЛК, а всё не критичное - на МВ.
Незнаю время цикла ПР - может их использовать как интелектуальный ввод ? Входы на их TOF с необходимым временем выдержки, выходы в маску - а ПЛК будет ее читать? Если товарищ Rovki заглянет - поправит. Может это можно как-то на железках собрать.



Ставили эксперименты, генерировали игольчатый сигнал на модуле вывода, и заводили его обратно на модуль ввода.
Тута нужно было просто отбить время между получениями Ok-квитаций на посылку-вкл и посылку-выкл. Для одного модуля - это 15-20мс. Но вот выходные релюшки-то отработают ? Или выходы К ?

Amko
09.12.2012, 15:34
Тута нужно было просто отбить время между получениями Ok-квитаций на посылку-вкл и посылку-выкл. Для одного модуля - это 15-20мс. Но вот выходные релюшки-то отработают ? Или выходы К ?
Вот тут не очень понял, что такое квитации? Да, все элементы с транзисторными выходами, у реле по определению время включения дольше.


Опросить каждый МВ - минимум 6..8мс

Откуда информация? Подскажите, где почитать.

Валенок
09.12.2012, 20:46
Вот тут не очень понял, что такое квитации? ..Подскажите, где почитать.http://ru.wikipedia.org/wiki/Modbus

Amko
14.12.2012, 19:47
Немного итогов. Получилось несколько улучшить быстродействие и отклик ПЛК на внешние сигналы.
Что делал:
1. Поставил режим опроса модулей вывода в Both с временем опроса в 1с +- 30мс. Т.е. выхода будут обновляться по изменению, ну и на всякий случай еще каждую секунду, если при изменении выхода кадр до модуля не дойдет.
2. Развел модули ввода на 2 времени опроса в 20мс и 30мс. Типо чтобы за раз все сразу не опрашивать, по очереди, в надежде, что при меньшем количество опрашиваемых модулей данные быстрее обработаются.
3. Убрал в СП270 работу кнопок с отдельными битами. У меня ~70 кнопок управления механизмами - итого 5 регистров ввода. Заменил все элементы на кнопки-функции с присвоением регистру числа, по которому я и определяю нажатие нужных кнопок. Т.е. уменьшилось количество данных, считываемых с панели.
4. Разделил панель оператора в конфигурации ПЛК на 2 части. Входные данные опрашиваю через 30мс, лампочки на панель обновляю по изменению + 1с (режим опроса Both)
5. Убрал минимальное время цикла ПЛК.

В целом, отклик системы стал ощутимо быстрее, исчез дискомфорт при работе с панелькой, механизмы стали останавливаться лучше и четче. Может кому помогут данные махинации :)