PDA

Просмотр полной версии : Проблемы связи ПЛК-100Р с МДВВ



Sancho Panca
16.03.2009, 22:22
У меня случилась такая проблема
Пришли мне на завод контроллер ПЛК-100Р и 5 штук МДВВ
Соединял я их по протоколу Овен
скорость по получилась очень низкая
патом я начал бицца галавой аб стену
установил кабель по лучше (изъял у телефониста экранированный)
и связь стала работать раза в 4 шустрее н к сожалению не так как хотелось бы а именно контролеру требуется секунд 5 штобы обработать сигнал со входа и подать сигнал на соотвестсвующий выход
МДВВ я сконфигурировал следующим обрасом
скорость 115200
адрес от 16 - 48 с шагом 8
длину слова данных, тип контроля чётности, количество стоп- битов, длину сетевого адреса, протокол обмена и максимальный сетевой тайм аут оставил по дефалту как и задержку ответа по сети а именно 2 мс.
Правда я пробовал выставлять разные задержки ответа но это только ухудшало эффективность работы (я ставил от 5 до 25 с шагом 5 и от 2 до 10 с шагом 2).
Программу прилагаю.
помогите чем сможете а то скоро стену галавой сламаю.
Проект приланаю.
К сожалению не могу вложить файлы с конфигурацией модулей т.к. они на работе.

АлексPetr
16.03.2009, 22:49
Ну как минимум шаг адресов должен быть 12

Sancho Panca
16.03.2009, 23:05
Спасибо за коммент
а с чем это связано?

SergeyNG
17.03.2009, 05:45
Для скоростного обмена протокол ModBus RTU, 115200,8,n,1. Адреса МДВВ оставьте те же.
Используйте групповые команды на чтение входов/запись выходов. У вас получится всего 10 рабочих регистров в конфигурации.
Время опроса Polling Time поставить минимальное 10мс
Режим работы с выходами Both=By poll time + By value change.
Можно задержку ответа в самом МДВВ rs.dl поставить 0мс.
В 50мс уложитесь!
Узнать бы еще расстояние от ПЛК до МДВВ?

Sancho Panca
17.03.2009, 07:08
Для скоростного обмена протокол ModBus RTU, 115200,8,n,1. Адреса МДВВ оставьте те же.
Используйте групповые команды на чтение входов/запись выходов. У вас получится всего 10 рабочих регистров в конфигурации.
Время опроса Polling Time поставить минимальное 10мс
Режим работы с выходами Both=By poll time + By value change.
Можно задержку ответа в самом МДВВ rs.dl поставить 0мс.
В 50мс уложитесь!
Узнать бы еще расстояние от ПЛК до МДВВ?

Извините но особого желания переделывать все под моб бас нет но такая идея уже была и впринципе все можно сделать. Возьму на заметку спасибо. Кстати модули и ПЛК установленны в одну линейку и должны стоять в одном шкафу расстояние максимум 1 метр.

SergeyNG
17.03.2009, 07:23
Для работы по ОВЕН со всеми выходами и входами для 5-ти МДВВ вам надо в конфигурации зарегистрировать 8*5+5=45 элементов, которые в цикле будут опрашивать ваши МДВВ, против 10 элементов в ModBus RTU. Плюс к этому посылки самого протокола ОВЕН длиннее ModBus RTU раза в два. Из всех составляющих и получается медленная скорость.
А прошивка на контроллере какая?

АлексPetr
17.03.2009, 22:16
Из инструкции МДВВ

Базовый адрес прибора МДВВ задается в программе «Конфигуратор МДВВ»
(параметр Addr).
По умолчанию МДВВ имеет Базовый адрес =16.
Базовый адрес каждого следующего прибора МДВВ в сети задается по формуле:
[базовый адрес предыдущего прибора +12]. Таким образом, под каждый прибор МДВВ
резервируется 12 сетевых адресов, т.к. прибор имеет 12 счетных входов и рассматривается в
сети ОВЕН как 12 одноканальных счетчиков.

Sancho Panca
19.03.2009, 00:00
вот теперь мне ясно почему надо увеличить шаг адреса в сети
попробую скажу чем все закончиться:)

Sancho Panca
21.03.2009, 18:43
У меня все получилось кагда я установил шаг адреса 16 и задержку ответа 6мсек
Очень жаль что у овена нет своего внутреннего высокоскоросного интерфейса для модулей расширения. У меня 5 модулей расширения стоят в одном шкафу вместе с контроллером и было бы очень удобно соединить их по такому интерфейсу.

Филоненко Владислав
21.03.2009, 22:13
почему нет. Уже есть...

Sniper007
23.03.2009, 18:50
То есть? И где он?

Филоненко Владислав
23.03.2009, 21:17
До продажи еще пройдёт время. А так есть :)

Николаев Андрей
24.03.2009, 09:55
Ведутся работы по созданию такой шины.
Можно сказать что создание шины на 80% закончено, и уже на базе данной шины планируется сделать ряд контроллеров, как щитового, так и динреечного исполнения.
Но говорить о законченной реализации думаю рановато. Так как до появления первого контроллера я думаю пройдет не менее полугода.

konst2
30.03.2009, 05:52
Такая проблема вышла. :( Получил ПЛК100-220.Р.М
На схеме нарисованы входы как на МДВВ ну тоесть сухой контакт, соединяю 3-4 выводы со входами, а лампочка на ПЛК загоротся не хочет ни на одном входе. Проги пока ни какой не запущено.
Что ему нужно и что там за схема включения. :confused:

Дмитрий Артюховский
30.03.2009, 09:30
нужно запустить программу ... без нее вааще ниченго не будет, даже лампочек )))

konst2
30.03.2009, 11:45
нужно запустить программу ... без нее вааще ниченго не будет, даже лампочек )))

Интересно! :( А какой в этом высший смысл?

Филоненко Владислав
30.03.2009, 12:12
Конечно, зачем ПЛК без программы?

Николаев Андрей
30.03.2009, 12:33
К сожалению при создании ПЛК100\150\154 наши разработчики сделали светодиодную сигнализацию о срабатывании дискретных входов только при наличии программы в контроллере.
Понимаю, что человек первый раз подключивший контроллер замыкает вход, и видит, что ничего не происходит. Возможно впадает в легкий транс.
Однако контроллеры без программы действительно не работают, и после первого же установления связи с ПЛК светодиоды срабатывать будут. То есть на процесс отладки или работы это не влияет.
В данных контроллерах мы это исправлять не планируем (крайне сложно), но все новые будем делать естественно по другому.
У ПЛК110 светодиод будет загораться при подаче сигнала на вход.
К стати продажи опытных образцов ПЛК110-220.60Р можно считать открытыми...

AVit
02.04.2009, 15:08
К стати продажи опытных образцов ПЛК110-220.60Р можно считать открытыми...
а цену точную скажите?, если будет дешевле или примерно равно ПЛК100-200.Р.М + 2 МДВВ, то я буду один из первых на очереди (если сумею убедить шефа....)

Николаев Андрей
06.04.2009, 10:28
ПЛК110 на 60 точек будет стоить соизмеримо с ПЛК100 +2МДВВ.
Интерес есть - пишите на a.nikolaev@owen.ru - обговорим:cool:

Kraft
14.04.2009, 05:55
не буду плодить ветки. поэтому спрошу здесь (аналогичный вопрос).
Имеется: 8 МДДВ (прошивка 1.09, 1 ПЛК 150 У-М (прошивка №2.07.2), все приборы лежат на одном столе, длина шины rs485 не превышает 30 см.

Сначала попробовали на всё поднять на протоколе Овен - результат жуткие тормоза (реакция). При Poling time = 20, WorkMode = Both, Speed = 115200. Причем входа читали не побитово, а двумя байтами на прибор (побитово тормозит наного больше.).

Далее попробовали на ModBus ASCII. В этом случае и выхода устанавливали через маску (Word). Итого получилось 4 байта на прибор (я прав?).
Параметры для "Register input module[VAR]"
RegisterAdress=51,
Command=Command Read(03).

Параметры для "Register output module[VAR]"
RegisterAdress=50,
Command=WriteMultipleRegisters(0x10).

Скорость оставили ту же, PolingTime = 10, WorkMode = Both.
В итоге имеем всё те же тормоза :(.

Решили попробовать последний вариант - с ModBus RTU.
Все настройки остались те же, что и для ModBus ASCII, но имеем следующий казус: если плк находится в режиме STOP программы - связь с МДДВ есть, причем стабильная и без ошибок. Как только запускаем программу - связь исчезает. По всем адресам держится ошибка 81. Далее, оставили всего один МДВВ, запустили - работает! Причем скорость удовлетворительная для наших нужд. Подключили остальные МДВВ - связь падает.
"Игрались" со всеми временными задержками - никакого эффекта :(. Уважаемые разработчики подскажите как решить данную проблему, сроки горят.

Малышев Олег
14.04.2009, 08:20
1) Время цикла надо увеличить. Его не хватает на опрос МДВВ (сканирование входов +запись выходов + выполнение программы)>1 мс.
2) [(7 запрос+3.5 задержка+7 ответ) регистр 50 + (тоже ) регистр 51]*8=350 байт переведем в биты - старт, 8, стоп=10 бит *350=3500 байт /115200 = 0.030 сек - итого мин время Pooling Time=31 мс!!!

Kraft
14.04.2009, 08:50
1) Время цикла надо увеличить. Его не хватает на опрос МДВВ (сканирование входов +запись выходов + выполнение программы)>1 мс.
2) [(7 запрос+3.5 задержка+7 ответ) регистр 50 + (тоже ) регистр 51]*8=350 байт переведем в биты - старт, 8, стоп=10 бит *350=3500 байт /115200 = 0.030 сек - итого мин время Pooling Time=31 мс!!!

Можно подробнее пояснить формулу расчета [(7 запрос+3.5 задержка+7 ответ) регистр 50 + (тоже ) регистр 51]*8=350 байт?


пробовали выставлять и 50 мс (на каждый модуль) - не помогло

Малышев Олег
14.04.2009, 10:41
Pooling time - время обновления значения - т.е. через какое время в линию выдастся запрос и будет получен ответ после очередного.
7 байт длина кадр запрос/ответа в modbus rtu. 3.5 символа - в RTU задержка между запросом и ответом. Вы работаете с 2 регистрами - итого 7+7+3.5 + 7+7+3.5=35 байт в битах=350 бит на скорости 115200 бит/в сек ~31 мс только на обмен. Если Вы установили rs.dl<>0 в МДВВ - на каждый запрос плюсуем rs.dl. В случае rs.dl=0 вполне хватит 31-35 мс.

Еще раз обмен падает т.к. ПЛК не хватает времени на выполнение цикла. Он приоритетен по сравненнию с обменом в линии. Больше не трогайте модуль модбас. увеличьте время цикла или определите задачи.

Kraft
14.04.2009, 11:03
увеличьте время цикла или определите задачи.

Определить задачи - принудительно управлять связью с каждым модулем?

Малышев Олег
14.04.2009, 11:44
Resources ->Task Configuration ->Appen Task-Appen Programm Call ->PLC PRG

Task Attrib
cyclic

t#10ms

Kraft
14.04.2009, 13:09
спасибо за помощь

Малышев Олег
14.04.2009, 13:56
Заработало?

Sniper007
14.04.2009, 15:05
У меня в программе был такой косяк. На одном шаге у меня вызывалось много таймеров и программа начинала висеть.
Сейчас сделал как сказал Олег Малышев - все стало нормально. Так что именно этим изменяется - время между вызовами программы? Нужно еще что нибудь задавать (таймер может сторожевой)?

Малышев Олег
14.04.2009, 16:09
Контроллер создавался и работает для задач жесткого реального времени. Т.е. время вызова цикла ПЛК по умолчанию 1 мс, допустимый джиттер 100нс. Это позволяет делать многие забавные вещи ( например, управлять фазами через симисторы как БУСТ2).

Если в прошивках до 2.07 коммуникационным задачам (опрос модулей в PLC configuration) позволялось отгрызать время у цикла - сейчас все просто - в цикле не осталось время на опрос - коммуникации нет.

На приведенном выше примере видно как все порешать.

Для облегчения жизни с версии 2.10.4 дополнен модуль статистика - там просто можно посмотреть нагрузку на CPU.

Kraft
15.04.2009, 06:31
Заработало?

Заработало, но скорость не особо порадовала :( . Плюс ко всему этому наблюдаем периодическую ошибку 81 (при работающей программе). Увеличивали PoolingTime до 100 - не помогает, ошибка всё также лезет, причем всегда. Думаю из-за этого притормаживает. Как избавиться от ошибки? Напоминаю - все приборы лежат на одном столе соеденены экранированной витой парой. Плюс ко всему наблюдается проблема с подключением СМИ1 к этой всей связке.

Настраиваем СМИ1 как slave, задаем протокол ModBus-RTU, далее цепляемся к шине rs485. Результат: при запуске программы в плк - связь опять падает (вернее постоянная ошибка 81), время реакции модулей секунд по 10-20. Время PoolingTime еще увеличивали на 100мс - не помогает.
Дальше больше, рассуждаем о глючности работы ModBus-RTU (и громко матерясь), подключаем СМИ1 через rs232... Результат один и тот же, хоть модбас, хоть овен, результат тот же - падение работы канала плк по rs485. Как быть и что делать? Сроки горят :mad:

Еще вопрос. А как во время работы плк связаны между собой rs232 и rs485? Я всегда был уверен, что они работают независимо...

Kraft
15.04.2009, 06:43
есть предположение, что проблемы из-за прошивки плк, можно попросить на почту новую (для тестирования)?

Малышев Олег
15.04.2009, 08:49
См проблему в RS485.
http://www.owen.ru/forum/showpost.php?p=19452&postcount=27
Пришлите запрос на прошивку oleg сбк owen.ru

Kraft
15.04.2009, 09:01
См проблему в RS485.
http://www.owen.ru/forum/showpost.php?p=19452&postcount=27
Пришлите запрос на прошивку oleg сбк owen.ru

я не использую библиотеку SysLibCom

Малышев Олег
15.04.2009, 09:33
см внимательно :....при работе Modbus master!!!

Kraft
15.04.2009, 09:57
ок, сегодня попоробуем, о результате отпишусь завтра

Kraft
16.04.2009, 05:08
припаяли резистор. Все ошибки связи пропали и скорость теперь отличная. Спасибо!

Евгений Пашигоров
29.07.2010, 10:44
Контроллер создавался и работает для задач жесткого реального времени. Т.е. время вызова цикла ПЛК по умолчанию 1 мс, допустимый джиттер 100нс. Это позволяет делать многие забавные вещи ( например, управлять фазами через симисторы как БУСТ2).

Если в прошивках до 2.07 коммуникационным задачам (опрос модулей в PLC configuration) позволялось отгрызать время у цикла - сейчас все просто - в цикле не осталось время на опрос - коммуникации нет.

Абсолютно необходимо такие моменты освещать в документации на контроллер.
Не понимаю, почему это не делается.
Сами себе репутацию портите.