PDA

Просмотр полной версии : Тормозит обмен по Modbus



Алексей Дмитриев
29.03.2011, 22:18
Имею следующую конфигурацию:
ПЛК63 - master
МДВВ,
МУ110,
ИП320 - 36 регистров,
СМИ1 - 4 регистра светим, 4 читаем, 1 регистр дискретные входа.
В процессе наладки обнаружилось, что входы/выходы МДВВ и дискретные входы СМИ 1 срабатывают с большей задержкой, чем предполагалось теоретически. Как побороть эту проблему и с чем это может быть связано?
Как правильно организовать обмен по сети с помощью библиотеки modbus.lib?:cool:
PS: В отладчике ничего не видно, так как процессы скоростные.

Алексей Дмитриев
30.03.2011, 08:44
Предполагалось не хуже 160 мс, реально доходит до 1500. Есть, правда одно но... Непонятно где эта задержка - видно по результатам работы механизма. Срабатывает концевик, подключенный к МДВВ, на ее же выход привешен клапан, который должен по концевику отключиться, но то отключается без задержки, то с задержкой до 1 ... 1.5 сек. Как я понимаю это зависит от того где в данный момент крутится и чем занимается программа обмена. :rolleyes:
Замечено, что самый огромный тормоз при обмене с ИП320. Можно, конечно сказать, что там и регистров поболе, но не настолько-же! При вызове функции чтения видно, что панель долго не может выдать данные.

Алексей Дмитриев
30.03.2011, 09:31
Но это-же жутко неудобно, панель придется повесить на диагностический порт контроллера.:confused:

Николаев Андрей
30.03.2011, 09:51
Задержка обусловлена тем, что если панель слэйв - в неё постоянно записывается вся карта ModBus.
Когда панель мастер - она опрашивает только те переменные, которые отражаются на дисплее.

ПЛК63 очень маленький. Стоит ли из него делать сетевой шлюз? Возможно стоило ПЛК150 взять?

Александр Приходько
30.03.2011, 10:19
Но это-же жутко неудобно, панель придется повесить на диагностический порт контроллера.:confused:

И чем это вас смущает? Порт рабочий. Для подключения к данному порту мы даже кабель КС2 продаем. Единственное неудобство, ели вы к ПЛК подключаетесь кабелем КС1, то их необходимо будет переключать.

Александр Приходько
30.03.2011, 10:29
Что касается подключения и скорости обмена. Что такое интерфейс? Это главное устройство -мастер, и множество подчиненных - слейвы.
Мастер не может в силу ограниченности интерфейса общаться одновременно со всеми устройствами. Все переменные которые вы в конфигурации задаете опрашиваются последовательно. Поэтому у вас опросятся все регистры всех модулей и только потом произойдет опрос панельки. В связи с этим может казаться, что панелька тормозит, что данные очень медленно передаются. Конечно можно настроить оптимальную конфигурацию, уменьшив опытным путем таймауты обмена.
Но! все же рекомендуем вам панель подключать на отдельный интерфейс.
Панелька будет адекватнее и скорость опроса модулей выше.

Алексей Дмитриев
30.03.2011, 12:41
То, что вывод на панель тормозит, не есть проблема! Более того для нее можно бы вообще приоритет обмена понизить, но.. интерфейс-то все равно один! То есть когда панель погонит свои данные будут те-же тормоза. Пробовал вызывать подпрограммы обмена с каждым устройством последовательно без временных задержек, искусственно формируемых в программе. Эти задержки и обусловили рассчетные 160 мс. Этого бы вполне хватило. Но без этих задердек библиотечные функции modbus вообще на работают - связи нет ни с одним устройством вообще! Понял так, что библиотечные функции выполняются далеко не за один и даже не два цикла ПЛК.

Алексей Дмитриев
30.03.2011, 13:28
У меня без всяких задержек все пучком. Логику проверяйте.
И для вашего случая мое расчетное время (для 115200,RTU) - 70..100ms

Если передавать/читать одним массивом то так и будет, в данном случае slave устройств 4 и для каждого надо передать и с каждого принять. Пробовал подряд - глючит.


Ну и что ? Там для это флажок - Complete.

только когда он 1 и err=0 при чтении - очень редкая ситуация. А если err не проверять в прочитанных данных - мура. Помехи не при чем - тоже самое происходит на столе в тепличных условиях с короткими кабелями сети.


В правильном направлении идете, товарищ.
ЗЫ
Убейте приоритеты - у нас все равны :)
Может быть. Кстати, можно узреть пример красиво работающего модбаса?
Или это ноу-хау?:D

Александр Ч.
30.03.2011, 13:30
Возможно поможет чтение масок входов/выходов модулей, а также передача только Word в ИП320 , без Real?

Алексей Дмитриев
30.03.2011, 13:51
Это вообще побоку


Значит неправильно пробовали :)


Только в виде б-ки.
Работа с пятком МДВВ и пятком МВА8 подойдет ?

Конечно подойдет! Надо-же понять что я там не так напрограммил.:D

Алексей Дмитриев
31.03.2011, 23:17
Уважаемый Валенок!
Не много-же меня продвинул Ваш пример.
Можно-ли увидеть потроха библиотеки?
Как понимать структуру МДВВ, здесь всего одно слово входов и одно выходов! Где счетчики, где ШИМ - выходы?
Маловато будет...
http://s59.radikal.ru/i163/1103/8c/6be7f56dcac3.png (http://www.radikal.ru)

Алексей Дмитриев
04.04.2011, 16:50
Мне было-бы интересно увидеть именно потроха, так как у меня работает моя процедура обмена, но есть несколько неприятных моментов по поводу тормозов. Например, я использую счетчик, который не только считает длину материала, но еще и вычисляет скорость его протяжки, ориентируясь все на тот-же результат счета, а поскольку он получается с задержкой по сети... далее, думаю объяснять не надо.
Далее большой вопрос по поводу логики работы флага complete библиотечных функций и как его корректно обработать. Если будем обрабатывать как в примерах, при попытке чтения с отключенного устройства не сможем прочитать уже ничего, поэтому интересно поковыряться в чужих кодах, может натолкнет на интересную мысль.:)

Алексей Дмитриев
05.04.2011, 08:51
Именно для панели так и сделал, стало чуть лучше, но не панацея.
Вы пишите, что задержка ответа от слейвов 0. Для МДВВ это можно поставить, а для ИП320 - нет. Че делать?:confused:
Вообще огромное впечатление, что мозги в панели очень медленные и обработать даже небольшой массив она не могет нормально, а выеживать с номером экрана и т. п. дюже неудобно.

mike_if
22.04.2011, 00:54
Звеняйте господа, а чем дело то закончилось???

Еще раз жутко извиняюсь, за наглость но если не влом расскажите в чем проблема была? :rolleyes: или еще не была? Ситуация у меня похожая задержки жуткие просто, 300-400 ms пробовал добиться - легче в космос полететь. Модуль правда МВУ8+МР1, но если б пару советов :rolleyes:

Алексей Дмитриев
23.04.2011, 12:27
Собственно ничем не закончилось - все жутко медленно, но это не сильно напрягает в данном проекте, просто на будущее понял, что использовать эту сеть можно только для вяло протекающих процессов. Просто я первый раз применил модбас, обычно профи или кен, там таких проблем нет!:D