PDA

Просмотр полной версии : СПК207 + МВА8 + МВУ8



Иван2
14.07.2014, 18:15
Добрый день!
СПК (master) постоянно теряет связь по MODBUS со всеми модулями, при этом опрашивается всего 3 канала. Уже несколько дней мучаемся
Связь пропадает примерно через 3-5 минут.
В чем может быть проблема?

версия прошивки СПК v.3.302

Иван2
15.07.2014, 14:30
Подскажите пожалуйста каким образом можно перезапустить программно COM - соединение?
Время уходит, а проект работает нестабильно ...
Спасибо.

capzap
15.07.2014, 14:38
Как себя ведет панель при работе только с одним модулем, если зависания через пять минут,то результата ждать не долго. Пробовали работать по модбас ascii ?
Пробовали работать через библиотеки?

Иван2
15.07.2014, 14:46
С одним модулем тоже связь теряется.
Нет, библиотеки не использовал.

Иван2
15.07.2014, 14:50
Нашел на форуме вот этот код для сброса соединения

IF Mod_Master.xAllSlavesOk=FALSE THEN
BLL(ENABLE:= TRUE, TIMELOW:= T#1S, TIMEHIGH:= T#100MS, OUT=> );
ELSE
BLL(ENABLE:= FALSE, TIMELOW:= T#1S, TIMEHIGH:= T#100MS, OUT=> );
END_IF
(*Если нет связи, то перезапускаем мастер*)
Mod_Master.xResetComPort:=BLL.OUT;

Найти информацию в справке не смогли и на форуме никакого описания ... среда ругается на строки, начиная с BLL.

capzap
15.07.2014, 14:53
Bll это кто то так назвал экземпляр функц.блока blink

Иван2
15.07.2014, 14:56
Спасибо.
А где можно найти описание данного блока?

Стас(Ижевск)
15.07.2014, 15:54
У меня такая-же проблема возникла. Пропадает связь по ModBus в связке СПК207 + МВ110-16ДН + МВ110-8А + МВ110-16Р.
Подцепился к шине посмотрел, что выдает контроллер. Если в сети обнаруживается помеха, то контроль уходит в овсайд.
У него устройства выдают ошибка шины и он прекращает на них делать запрос. Пробовал сделать Mod_Master.xStop,
затем Mod_Master.xResetComPort, затем снял TRUE с Mod_Master.xStop. Порт не перезапускается.
Заметил, что с помощью Mod_Master.xStop порт может только остановиться, а затем снова включиться. Но если прошла
авария то это не работает.

Иван2
15.07.2014, 16:02
У меня к сожалению тоже не сработал вариант с рестартом.
Попробую напрямую работать с портом с использованием библиотек ... судя по всему других вариантов нет

Александр Приходько
16.07.2014, 13:03
Всем добрый день. Очень часто слышу про данную проблему, но нам самим так и не удалось ее ни разу повторить.
Если не сложно опишите более детально, что и как подключено к СПК, как считываете регистры. С каким интервалом.

Как быстро пропадает связь. На какой прошивке?

Стас(Ижевск)
16.07.2014, 14:25
Связь СПК207 + МВ110-16ДН + МВ110-8А + МВ110-16Р. Прошивка СПК207 v.3302. Новую еще не пробовал. Мурат обещал релиз на прошлой неделе, но так его пока не вижу. Хотя срочно нужен, так как нет времени самому таблицу алармов реализовывать, а на этой прошивке виснет контроллер. Объект надо сдавать, времени уже нет, один глюк за другим. Причину поймать не удалось. Но контроллер зависает и перестает опрашивать тот модуль, который ушел у него в аварию по ошибке шины.
Если уходят все модули, то вообще никакого запроса повторно нет. Подключался к шине и просто ее слушал. Как только ответа контроллеру от модуля не было он сразу уводит модуль в аварию и больше опроса его не ведет. Хотя не понятно зачем вообще тогда настройка таймера времени ожидания. Логика видимо такова, что он выжидает это время на ответ от модуля. Но модуль возможно дал ответ, который может быть исказился какой-то помехой и не дошел. А регистры и их интервалы считывания здесь не участвуют (не причем, потому-что эта часть работает).
В принципе получилось сбросить его следующим образом:
1. останов шины Device.Application.IoConfig_Globals.Modbus_Master_ COM_Port.xStop:=True
2. сброс аварии модуля (например МВ110-16ДН) Device.Application.IoConfig_Globals.MV110_16DN_Mod bus_Slave_COM_Port.xReset:=True; после сброса :=False
3. переинициализация шины Device.Application.IoConfig_Globals.Modbus_Master_ COM_Port.xResetComPort:=True затем False;
4. снять останов шины Device.Application.IoConfig_Globals.Modbus_Master_ COM_Port.xStop:=False
И оп ля-ля связь восстановилась.

Стас(Ижевск)
16.07.2014, 15:06
Но что заметил не всегда сбрасывается ошибка модуля при его сбросе. Видимо что-то все же влияет. Тогда только вкл/выкл питания.

Александр Приходько
16.07.2014, 22:49
Связь СПК207 + МВ110-16ДН + МВ110-8А + МВ110-16Р. Прошивка СПК207 v.3302. Новую еще не пробовал. Мурат обещал релиз на прошлой неделе, но так его пока не вижу. Хотя срочно нужен, так как нет времени самому таблицу алармов реализовывать, а на этой прошивке виснет контроллер. Объект надо сдавать, времени уже нет, один глюк за другим. Причину поймать не удалось. Но контроллер зависает и перестает опрашивать тот модуль, который ушел у него в аварию по ошибке шины.
Если уходят все модули, то вообще никакого запроса повторно нет. Подключался к шине и просто ее слушал. Как только ответа контроллеру от модуля не было он сразу уводит модуль в аварию и больше опроса его не ведет. Хотя не понятно зачем вообще тогда настройка таймера времени ожидания. Логика видимо такова, что он выжидает это время на ответ от модуля. Но модуль возможно дал ответ, который может быть исказился какой-то помехой и не дошел. А регистры и их интервалы считывания здесь не участвуют (не причем, потому-что эта часть работает).
В принципе получилось сбросить его следующим образом:
1. останов шины Device.Application.IoConfig_Globals.Modbus_Master_ COM_Port.xStop:=True
2. сброс аварии модуля (например МВ110-16ДН) Device.Application.IoConfig_Globals.MV110_16DN_Mod bus_Slave_COM_Port.xReset:=True; после сброса :=False
3. переинициализация шины Device.Application.IoConfig_Globals.Modbus_Master_ COM_Port.xResetComPort:=True затем False;
4. снять останов шины Device.Application.IoConfig_Globals.Modbus_Master_ COM_Port.xStop:=False
И оп ля-ля связь восстановилась.


Но что заметил не всегда сбрасывается ошибка модуля при его сбросе. Видимо что-то все же влияет. Тогда только вкл/выкл питания.


Стас, Мурат сейчас в отпуске. И его не будет до конца месяца. Завтра попрошу наших бойцов по CODESYS 3 собрать схожую установку и потестировать. Не плохо было бы получить архив Вашего проекта.

Прошивка на СПК2хх уже существует, но мы не можем ее дать, т.к. есть ошибка в Самом CODESYS. 3S обещались нам сделать релиз после 17 числа.

Трофимов Артем
17.07.2014, 09:36
Но что заметил не всегда сбрасывается ошибка модуля при его сбросе. Видимо что-то все же влияет. Тогда только вкл/выкл питания.

Здравствуйте, Станислав. По возможности выложите архив проекта Ваш сюда , или в личку, чтобы была возможность посмотреть конфигурацию. А заодно и проверить.

Стас(Ижевск)
17.07.2014, 16:39
Добрый день!
В браузере отправить не получится, файрвол не позволяет.
Отправил на support так как почту только Мурата знаю

Nts
04.08.2014, 14:27
Связь СПК207 + МВ110-16ДН + МВ110-8А + МВ110-16Р. Прошивка СПК207 v.3302. Новую еще не пробовал. Мурат обещал релиз на прошлой неделе, но так его пока не вижу. Хотя срочно нужен, так как нет времени самому таблицу алармов реализовывать, а на этой прошивке виснет контроллер. Объект надо сдавать, времени уже нет, один глюк за другим. Причину поймать не удалось. Но контроллер зависает и перестает опрашивать тот модуль, который ушел у него в аварию по ошибке шины.
Если уходят все модули, то вообще никакого запроса повторно нет. Подключался к шине и просто ее слушал. Как только ответа контроллеру от модуля не было он сразу уводит модуль в аварию и больше опроса его не ведет. Хотя не понятно зачем вообще тогда настройка таймера времени ожидания. Логика видимо такова, что он выжидает это время на ответ от модуля. Но модуль возможно дал ответ, который может быть исказился какой-то помехой и не дошел. А регистры и их интервалы считывания здесь не участвуют (не причем, потому-что эта часть работает).
В принципе получилось сбросить его следующим образом:
1. останов шины Device.Application.IoConfig_Globals.Modbus_Master_ COM_Port.xStop:=True
2. сброс аварии модуля (например МВ110-16ДН) Device.Application.IoConfig_Globals.MV110_16DN_Mod bus_Slave_COM_Port.xReset:=True; после сброса :=False
3. переинициализация шины Device.Application.IoConfig_Globals.Modbus_Master_ COM_Port.xResetComPort:=True затем False;
4. снять останов шины Device.Application.IoConfig_Globals.Modbus_Master_ COM_Port.xStop:=False
И оп ля-ля связь восстановилась.

Хочу добавить,как делать качественный пересброс ошибок:
1.Опрос каналов модулей через триггеры(а не циклически,практика показывает,что так надежнее)
2.При возникновении хоть одной ошибки лучше сбрасывать все модули
3. третий и четвертый пункт поменяйте местами,но снятие стопа по условию отсутствия ошибок
4. во этого "Device.Application.IoConfig_Globals." не надо . Modbus_Master_ COM_Port и MV110_16DN_Mod bus_Slave_COM_Port это уже глобальные структуры.

в итоге получается такой алгоритм сброса ошибок
1. если есть ошибка,то пункт 2
2. остановить шину
3. сбрасывать все модули пока есть ошибки
4. если нет ошибок,то сбросить останов шины
5. по низкому фронту останова шины,импульсно рестарт шины

касательно физического уровня:
-кабель -экранированная витая пара(особенно если большие дистанции,экран с одной стороны на контакт экрана RS485,в последнем проекте я заземлил со стороны СПК,хотя с другой стороны сегмента у меня частотник Danfoss,и немцы рекомендуют экран кабеля кидать именно у них -на частотнике через конденсатор,хотя судя по их схеме экран через RC цепочку на корпус уходит.Однако во всяком случае пока система работает, хотя по началу такая же была проблема с отваливанием модулей и частотника)
-ни какой звезды,только последовательное соединение,мастер(СПК) первый
-сегмент не более 32 слейвов (сегментировать можно и нужно повторителями-у Овена есть такой повторитель RS485-сам его не пробовал, так что не буду утверждать каков он в деле)
-терминируйте оба конца каждого сегмента резистором на 120 Ом. Если например последний частотник, то можно на нем включить дип переключатель на термин резистор
-у СПК несколько портов,если много слейвов, то рекомендую разделить сети-скорость и надежность опроса повысится
-для повышения надежности можно понизить скорость передачи

дальше собственно несколько советов оптимизации,без претензий на истину,все конечно зависит от конкретной задачи:
-таймаут у каждого слейва не должен быть меньше самого максимального вашего цикла опроса(иначе постоянные ошибки и пересбросы связи будут)
-задержка ответа слейва не менее 5мс.(по моему так по надежнее будет,стандартные 2мс у Овеновских модулей мало-ва-то,могжет быть ошибка-"ответил другой слейв"
-время между фреймами-я ставил и 5мс и 50 мс-вполне работает(уменьшать имеет смысл, если нужно повысить скорость обмена)
-не опрашивайте все подряд каналы модулей-бывает не все каналы в эл.схеме используются-нет смысла забивать трафик бесполезными опросами
-за один цикл опроса можно несколько раз какие-то важные каналы опросить\записать ,например если важна быстрая реакция выходных модулей
-пауза между "соседними" опросами больше задержки ответа предыдущего слейва

Romchik
04.08.2014, 18:50
Всем Здравствуйте!
Создал проект опроса одного аналогового выхода , подключен датчик (температуры). Все подключено верно , задал адрес модуля , в CodeSys такой же поставил. Проект компилируется и загружается в СПК без ошибок , все работает , а вот значение с датчика так нигде и не отображается. Проект прилагаю , кто разобрался в тонкостях , прошу помочь .

Nts
05.08.2014, 13:42
таргет устройства,старый,библиотеки старые(и подозрительно мало).
из пустого проекта что-ли создавали?так конечно можно,но не новичку-нужно точно знать,какие библиотеки потребуются.
я так понимаю переделали под себя пример овеновцев.

поставьте последнюю версию КДСа \библиотек\таргетов\ от сюда
http://www.owen.ru/forum/showthread.php?t=16792
только последние версии таргетов(экспериментальные) не ставьте в проекте,если прошивка не новая на СПК, рекомендую 3.5.3.40
выпустят новые прошивки и для СПК2х,то можно и 3.5.4.20
ну и соответственно прошивка самого СПК должна соответствовать таргету
на счет программы-советую переписать с нуля,переделывать чужую программу под свои нужды- не благодарное дело.
большая вероятность ошибиться.

Romchik
05.08.2014, 17:49
Да , Вы правы , делал по примеру овеновскому.
Версия прошивки у меня 2.531 , соответственно подходит таргет 3.5.0.4 , по другому не работает , разве вышла уже прошивка , под таргет 3.5.3.40 ?
С точки зрения программы все же работает , не ругается , как я понимаю у меня нет знаний , как переменную настроить что бы она корректно все отображала((
Ребят у кого то может есть готовый проект опроса одного выхода МВ110-8А(использую датчик ДТС125-50М) под СПК207 на языке ST желательно.
Есть ли учебник хороший по кодесис 3.5 ? искал , не нахожу...

Nts
05.08.2014, 22:30
http://www.owen.ru/catalog/sreda_programmirovaniya_codesys_v3/32050189
на СПК2х обещают новые прошивки\таргеты
на СПК1х уже есть 3.5.4.20,работает шустрее,чем СПК2х старый
учебник тут где-то был для начинающих,куча примеров обмена и тд и тп,не ленитесь искать...все есть..

Bandikoot
06.08.2014, 13:31
http://www.owen.ru/catalog/sreda_programmirovaniya_codesys_v3/19944443 а это учебник. единственный цельный курс по Codesys 3.5

Romchik
08.08.2014, 18:19
Это уже все прочитано )