PDA

Просмотр полной версии : Ошибка (0) и прочие разрывы связи.



tantranah
10.03.2015, 21:23
Добрый день уважаемые коллеги. Прошу помощи. Есть следующая конфигурация.
8 шт ПЛК 110-60 разные Л и М, увязанные по TCP MODBus. 5 из них чистые Slave, а 3 выступают и Мастерами для первых 5-ти, само собой каждый мастер управляет своим(и) Слейвом.
Мастера в свою очередь являются еще и слейвами друг для друга(паровозиком). Детальнее схема на картинке (Стрелками показано кто кого опрашивает, а в красном квадрате - наиболее проблемное звено.).
Проблемы возникают следующего рода.
1. Время от времени кто-то отключается от CodeSys с ошибкой (0),
2. Зачастую это вызвано самопроизвольной перезагрузкой какого-либо контроллера.
3. При перепрошивке "упавшего контроллера"(одного из мастеров), Падает еще и его мастер.
4. Бывает, что контроллеры не видят друг-друга, хотя совершенно доступны из CodeSys.

Все контроллеры на своих IP, более того все на разных портах и у каждого уникальный слейв адрес("дую на воду"). Есть несколько не именованных регистров, полагаю это не должно быть проблемой.

17091

Знатоки, а так же представители техподдержки, подскажите что не так. Конфы вышлю если необходимо.
Кто подскажет как железобетонно устойчиво правильно сконфигурировать комбинированный модбас (и.в. выступающий одновременно Slave and Master) ?

Вольд
11.03.2015, 11:26
Ну нагородил. Тут с более простыми конфигурациями сетей люди маются. Сетевой обмен - слабое место ПЛК "ОВЕН", тут без плясок с бубном не обойтись.

capzap
11.03.2015, 11:42
концепцию надо менять, где можно перейти на сетевые переменные, а не пользовать модбас везде и вся

tantranah
11.03.2015, 20:39
Подскажите пожалуйста, что подразумевается под сетевыми переменными?

capzap
12.03.2015, 09:08
скачайте с сайта диск навигатор и прочтите выделенный на картинке документ

Николаев Андрей
12.03.2015, 11:30
А в разделе примеры программ и полезности есть даже пример.

tantranah
12.03.2015, 21:16
Спасибо за советы, но к сожалению в "программах и полезностях" примера с UDP не нашел. Можете прислать какой либо пример с несколькими POU в проекте? А то компилятор ругается, что не добавлена задача опроса и чтения сетевых переменных. А я что-то не понимаю как ее добавить.

petera
13.03.2015, 03:54
Спасибо за советы, но к сожалению в "программах и полезностях" примера с UDP не нашел. Можете прислать какой либо пример с несколькими POU в проекте? А то компилятор ругается, что не добавлена задача опроса и чтения сетевых переменных. А я что-то не понимаю как ее добавить.
http://www.owen.ru/forum/attachment.php?attachmentid=11963&d=1392751579http://www.owen.ru/forum/showthread.php?t=13588
17131
http://kipshop.ru/Primeri/Samples_plc1xx/Communication/03_%20NetVarUDP.zip

tantranah
13.03.2015, 19:38
Спасибо.
С сетевыми переменными разобрался, НО.
Меня терзают смутные сомнения, в плане того, что это поможет.
MODbus подразумевает ответные подтверждения от слейва либо ошибки либо таймауты. UDP не подразумевает никакой обратной связи.
"Кто успел, тот присел". Соответственно если в ПЛК на тракте разбора данных из приемного буфера возникают проблемы (а я очень подозреваю, что проблемы именно там), то UDP, как мне кажется все равно не спасает.
Подскажите пожалуйста, на сколько процентов вероятно исчезновение проблем описанных мною в топике, т.к. проект довольно громоздкий и сетевой обмен там не маленький. Соответственно не хочется убить кучу времени на переписывание проекта и в итоге получить то-же самое, а именно пропадание связи и отпадение от компа.
Дополнительный синдром - при рестарте одного из контроллеров ресетится его мастер.

Прошу прощения, не доглядел галочки "контрольная сумма" и "подтверждение". Каюсь, был не прав.

tantranah
14.03.2015, 22:42
Но возникает следующий вопрос.
Я создал на двух контроллерах по две папки, одна из которых содержит записываемые переменные, а вторая читаемые, на другом контроллере они соответственно читаемые и записываемые.

При попытке подключения компилятор кричит - "Ошибка 4604 - Сетевая переменная UDP: базовый идентификатор был использован более одного раза. "
И при этом ошибка указывает на строку, где прописано - VAR_GLOBAL, в обоих папках.
Подскажите пожалуйста, что компилятор от меня хочет?

Разобрался!.
«List identifier (COB-ID)» в обоих папках был равен 1. сделал их разными все пошло.