PDA

Просмотр полной версии : ПЛК 110.30-M v2 & RS485



lazy
03.11.2017, 14:41
добрый день

ПЛК 110.30-M v2 прошивка и таргеты последние. Стабильно один - два(три) раза в сутки обрывается связь по RS485. Если порт открыть/закрыть иногда помогает и связь восстанавливается иногда нет. Во время работы на скорости 115200 просто огромное количество ошибок по таймауту. В минуту несколько стабильно. Связь организована не через конфигуратор.

232 кста тоже пару раз в сутки отваливается, но переоткрытие порта помогает и делаю это автоматически. с 485м так поступить не могу.

Новые прошивки с улучшениями ожидаются?

Евгений Багаев
03.11.2017, 15:15
Проект в студию. Хотя бы ту часть, что с обменом.
Также интересует конфигурация тестируемого оборудования: количество slave-устройств, длина линии от мастера до последнего, применение согласующих резисторов.
И, конечно, текущую версию прошивки ПЛК.

lazy
03.11.2017, 15:27
Слейв один. расстояние - метр (находится в одном шкафу с ПЛК), резисторов нет. Прошивка v0.3.67.
Проект могу выслать через неделю как вернусь из командировки.

capzap
03.11.2017, 15:33
Слейв один. расстояние - метр (находится в одном шкафу с ПЛК), резисторов нет. Прошивка v0.3.67.
Проект могу выслать через неделю как вернусь из командировки.

фактически Вы признаете что проблема в конкретно взятом проекте и обновления прошивки не помогут?

lazy
03.11.2017, 15:40
(положив руку на Основы теории сигналов) - нет, ваша честь.

p_dima90
03.11.2017, 15:55
фактически Вы признаете что проблема в конкретно взятом проекте и обновления прошивки не помогут?

Из всех M02, что мне попадались, ни у одного не работал стабильно конфигуратор, причем по всем интерфейсам.

Гарчев Евгений
03.11.2017, 16:51
Из всех M02, что мне попадались, ни у одного не работал стабильно конфигуратор, причем по всем интерфейсам.


Но в этой теме речь идет про библиотеки,


добрый день
но переоткрытие порта помогает и делаю это автоматически. с 485м так поступить не могу.


Вот тут не понятно, все таки помогает или нет переоткрытие порта для RS485? И если помогает, то почему Вы не можете сделать закрытие/переоткрыие порта на последнем этапе сессии обмена? Тем более, что

Слейв один
?

lazy
03.11.2017, 17:43
на 485м переоткрытие помогает не всегда. плюс потеря связи критична по времени. там дозируется материал и даже за десятые доли секунды может высыпаться много )

Гарчев Евгений
03.11.2017, 18:25
Ну так функции открытия/закрытия порта много времени не занимают, и на сетевой обмен особого влияния не окажут ...
А на счет того, что не всегда помогает переоткрытие порта для RS485, то действительно, надо смотреть проект, и возможно, стоит уделить внимание времени цикла выполнения программы в момент зависания обмена (ну или хотя бы просто фиксировать максимальное время цикла за все время работы контроллера).

capzap
04.11.2017, 10:35
(положив руку на Основы теории сигналов) - нет, ваша честь.см.рисунок,взято из краткой справки о теории

lazy
14.11.2017, 14:11
Вернулся я. Запилил переоткрытие порта по обрыву (три ошибки таймаута подряд) из четырех контроллеров за трое суток один пришлось выключать-включать ибо не помогло. В сутки каждый гарантированно связь терял более одного раза. Ошибок... на сто пакетов один с ошибкой по таймауту (250мс) как минимум. Седня по быстрому наваял проект обмена (повторяет боевой) выкладываю для проверки. Проект сделан для старого 110 го и сейчас на нем запущен и пашет. Пашет без ошибок. И думаю будет пахать так сутками. Новых контроллеров у меня пока нет. Появятся через неделю и я обязательно запущу его на нем, количество ошибок и обрывов сообщу. Но думаю, вы (овен) это можете сделать быстрее. В проекте 110й по rs485-1 подключен к сотому ПЛК на котором на 485м через конфигуратор настроен слейв. В PLC_PRG прокоментированы переменные для оперативного контроля.

зы: кста, вопрос, может ли новый ПЛК в SysComRead и SysComWrite возвратить -1 ?
зы2: в действии Work вместо IF m_IO.o_bNew THEN правильнее написать IF m_RS485_1.o_bDone THEN

lazy
15.11.2017, 15:10
Диспозиция поменялась )

Сегодня неожиданно получил новый 110й ПЛК, правда 24х вольтовый. Загрузил туда тестовый проект и о чудо - ошибок нет.
На радостях загрузил в него боевой - и... Ошибки прут, ничего не поменялось. Естественно, начал искать ошибки у себя, тупо комментируя куски кода. И вот... ошибки пропали. Но оказалось все вовсе не в коде, а во времени его исполнения. Если время цикла стабильно и где то около одной мс - ошибок нет, как только оно начинает хаотично метаться от одной до полторы миллисекунды - ошибки появляются. Причем это не зависит от числа в переменной MinCycleLenght.

Немного подправил тестовый проект и ошибки повалились и там. Тот же проект на старом 110м так же пашет без ошибок.

Выкладываю для экспериментов )