Просмотр полной версии : ПЛК160. Остановка обмена по RS-485
IIeroniux
28.12.2016, 09:03
Добрый день!
Прошу помочь разобраться в ситуации.
Собрана связка - ПЛК160 (binary version 2.14.0, "need Target version 2.10"), ПЧ Веспер Е3-9100 (2 штуки), 1 модуль ввода 4ТД, 1 модуль ввода 1ТД.
Скорость 9600, 8 бит, нечетность не проверяется, RTU. Пульт управления стоит в лабораторном помещении.
ПЧ и МВ подключены к клеммам rs-485 ПЛК посредством modbus RTU, настройки выполнены через конфигурацию ПЛК (т.е. не через библиотеки).
В каждом ПЧ опрашиваем по 5 параметров, в модулях ввода суммарно опрашиваем 5 параметров (т.е. только физические значения измеряемой величины).
Всего 10 параметров.
В настройке модуля RS-485-1 конфигурации ПЛК "Framing time, ms = 50", в настройках Universal modbus Device "Polling Time, ms = 100". У модулей ввода адреса 1 и 2, у ПЧ 3 и 4.
Для справки, питание на ПЧ подается через контактор, проблемы возникали и при отключенном контакторе, т.е. в обмене участвовали только модули ввода.
Итак, загружаем проект в ПЛК, запускаем на исполнение. Все сетевые переменные опрашиваются отлично, ошибок связи нет (т.е. всегда 1 - 0, 2 - 0, 3 - 0, 4 - 0).
Через некоторое время (от 10 минут до получаса) обмен по RS-485 просто останавливается. Т.е. в конфигурации ПЛК в каждом UMD "застывают" последние значения, в том числе в "Last Adress" и "Last Error", к примеру адрес 1, ошибка 0.
Если через контактор были подключены ПЧ, то обмен с ними также застывает (т.е. включение в опрос ПЧ не влияет на появление данной ошибки).
Перезагрузка ПЛК по питанию решает проблемы, обмен оживает на некоторое время. Далее ситуация повторяется.
Собран и разработан не один десяток пультов с ПЛК110/160, ПЧ и различными модулями ввода-вывода, ранее такого не было. Спец. кабель КИПЭВ для RS-485, оплетка заземлена. Вообщем всё как всегда.
В какую сторону смотреть и искать ошибку? Играть с polling и fraiming time?
Евгений Багаев
28.12.2016, 15:19
Здравствуйте.
Скорее всего проблема в срабатывании кнопки "Старт/Стоп" из-за электромагнитных помех. Для решения проблемы добавьте элемент Button в конфигурации ПЛК.
PLC160 -> Добавить Подэлемент -> Button
Данный элемент отключит физическое срабатывание кнопки.
Владимир Ситников
28.12.2016, 15:24
Здравствуйте.
Скорее всего проблема в срабатывании кнопки "Старт/Стоп" из-за электромагнитных помех. Для решения проблемы добавьте элемент Button в конфигурации ПЛК.
PLC160 -> Добавить Подэлемент -> Button
Данный элемент отключит физическое срабатывание кнопки.
Евгений, у меня тут возник встречный вопрос: а можно поправить поведение прошивки, чтобы по умолчанию она думала, что "элемент button добавлен"? Если же кому-то реально нужна кнопка start-stop, то пусть они добавляют "элемент start-stop", в котором будет русским по белому сказано "возможны зависания ПЛК от наводок".
Я понимаю, что "как бы все уже знают", но, раз постоянно возникает такое, то, значит, не все знают. Может, стоит в прошивке сделать более безопасный режим по умолчанию?
Евгений Багаев
28.12.2016, 15:45
Евгений, у меня тут возник встречный вопрос: а можно поправить поведение прошивки, чтобы по умолчанию она думала, что "элемент button добавлен"? Если же кому-то реально нужна кнопка start-stop, то пусть они добавляют "элемент start-stop", в котором будет русским по белому сказано "возможны зависания ПЛК от наводок".
В таком случае у другой половины пользователей возникнет встречный вопрос о работоспособности кнопки, функционал которой заявлен как старт/стоп выполнения программы. Теоретически возможен альтернативный таргет, содержащий данный элемент, добавленный по умолчанию. Но он не будет являться основным. С другой стороны, имеет ли смысл плодить таргеты, или просто добавить элемент в конфигурации.
Владимир Ситников
28.12.2016, 15:55
В таком случае у другой половины пользователей возникнет встречный вопрос о работоспособности кнопки, функционал которой заявлен как старт/стоп выполнения программы. Теоретически возможен альтернативный таргет, содержащий данный элемент, добавленный по умолчанию. Но он не будет являться основным. С другой стороны, имеет ли смысл плодить таргеты, или просто добавить элемент в конфигурации.
Ну, я сплошь и рядом вижу "если вы берёте ОВЕН ПЛК, то ставьте button, т.к. иначе самизнаетечто".
Понятное дело, что про функционал start-stop уже написано в РЭ (которое распечатано).
С другой стороны, если наводка возникает так часто, то, кто те бесстрашные люди, готовые мириться с остановкой ПЛК в любой момент?
Альтернативный таргет проблему не решит, а лишь усугубит (придётся разбираться какая версия таргета и т.п.). Я говорю именно про "помехоустойчивый" режим по умолчанию.
Внести исправления в РЭ на сайте, по-моему, проблем вообще нет. Сказать "мы изменили поведение для увеличения помехоустойчивости", по-моему, тоже проблем нет.
Тут, скорее, вопрос частоты обоих случаев.
Как вариант -- можно опрос произвести.
Опытным пользователям, понятное дело, без разницы. Они всё знают и на автопилоте шуруют.
А вот новым будет проще, если ПЛК будет помехоустойчивым. Как-никак, новички вряд ли в полный рост используют кнопку stop.
IIeroniux
09.01.2017, 10:14
Здравствуйте.
Скорее всего проблема в срабатывании кнопки "Старт/Стоп" из-за электромагнитных помех. Для решения проблемы добавьте элемент Button в конфигурации ПЛК.
PLC160 -> Добавить Подэлемент -> Button
Данный элемент отключит физическое срабатывание кнопки.
День добрый!
Button, естественно, добавлена - без этого в данных ПЛК никак нельзя.
Суть в том, что программа продолжает выполняться, а обмен данными замирает с последними значениями переменных/адреса устройства/отсутствия ошибки связи.
Евгений Багаев
09.01.2017, 14:36
День добрый!
Button, естественно, добавлена - без этого в данных ПЛК никак нельзя.
Суть в том, что программа продолжает выполняться, а обмен данными замирает с последними значениями переменных/адреса устройства/отсутствия ошибки связи.
1. Установите согласующие резисторы 120 Ом в начале и в конце линии
2. Framing time попробуйте выставить 10-15 мс
3. Max timeout 150 мс
Филоненко Владислав
09.01.2017, 21:00
День добрый!
Button, естественно, добавлена - без этого в данных ПЛК никак нельзя.
Суть в том, что программа продолжает выполняться, а обмен данными замирает с последними значениями переменных/адреса устройства/отсутствия ошибки связи.
линию прослушивали? обмена нет?
Филоненко Владислав
09.01.2017, 21:04
Ну, я сплошь и рядом вижу "если вы берёте ОВЕН ПЛК, то ставьте button, т.к. иначе самизнаетечто".
С другой стороны, если наводка возникает так часто, то, кто те бесстрашные люди, готовые мириться с остановкой ПЛК в любой момент?
Остановка не происходит в "любой момент", а только под воздействием превышающей ГОСТ-вское значение ЭМ-помехи.
На столе не выключается. А в щитах бывает.
При этом ПЛК проходит жесткие испытания на воздействие помех по ГОСТ.
Мы могли бы просто говорить - у Вас помеховая обстановка не соответствует ГОСТу. Но это не правильно, мы рекомендуем людям использовать специально, по отзывам разработанный модуль button
Владимир Ситников
09.01.2017, 22:11
Про бутон
Что за термин "остановка" по отношению к обмену ?
Так Владислав не про обмен, а про вообще остановку ПЛК в случае повышенных помех, если не добавлен бутон.
Тут, да, я тестов не проводил, поэтому говорить "готовые мириться с остановкой ПЛК в любой момент" было всё-таки чересчур с моей стороны, в чём меня Владислав и поправил.
[QUOTE=Валенок;233032]Про бутон
3. Программный косяк в прошивке (небось конфигураторный мастер-то ?)
(других вариантов не вижу)
[QUOTE]
Просвятите новичка. А делать мастером через конфигурацию не желательно?
IIeroniux
11.01.2017, 13:14
Благодарю всех за участие!
1. Установите согласующие резисторы 120 Ом в начале и в конце линии
2. Framing time попробуйте выставить 10-15 мс
3. Max timeout 150 мс
Линия rs-485 короткая, не более 5 метров, поэтому резисторы в этот раз не установили:-(
Опробую все рекомендации и обязательно отпишусь о результатах.
IIeroniux
20.01.2017, 10:31
1. Установите согласующие резисторы 120 Ом в начале и в конце линии
2. Framing time попробуйте выставить 10-15 мс
3. Max timeout 150 мс
Вообщем выполнено следующее.
Установлены согласующие резисторы в начале и конце линии.
Время пробовал ставить и 10/150, как рекомендуете вы, так и 50/200, так и 15/20 - всё тщетно. Какое-то время работает, затем последние значения замирают.
Единственно что, на 50/200 проработал 8 часов без сбоев, но на втором часу второго дня обмен застыл.
Заметил одну особенность, возможно важную.
Во всех случаях, когда обмен замирал, индикаторы RS-485 на модулях 1Т и 4ТД продолжают мигать с достаточно высокой частотой, как будто обмен продолжается. Т.е. индикаторы на модулях мигают, а на индикаторах в конфигураторе ПЛК последние значения.
Куда копать, может попробовать поставить другой 160ый ПЛК и погонять на нём?
Евгений Багаев
20.01.2017, 10:56
Есть возможность выложить проект, либо в личку?
IIeroniux
20.01.2017, 11:02
линию прослушивали? обмена нет?
У меня был опыт - писал (посредством библиотеки) блок обмена данными лазерных датчиков с нестандартным протоколом Modbus (т.е. без RTU). Тогда ставил какую-то программу, и смотрел что посылает ПЛК/отвечает датчик. Но там было просто, запрос - ответ.
А если у меня тут идет непрерывный поток информации с модулей 4ТД, 1ТД и ПЧ боюсь не смогу 'правильно' прослушать линию. Но судя по яростному миганию индикаторов rs-485 на модулях ввода 4ТД/1ТД (писал подробнее выше) обмен продолжается после замирания значений в конфигураторе PLC.
IIeroniux
20.01.2017, 11:13
Есть возможность выложить проект, либо в личку?
Сейчас проконсультируюсь с соответствующими службами предприятия, вы же сотрудник ООО "НПФ ОВЕН-К"?
Сергей Лысов
20.01.2017, 11:23
Тогда ставил какую-то программу, и смотрел что посылает ПЛК/отвечает датчик. Но там было просто, запрос - ответ.
А если у меня тут идет непрерывный поток информации с модулей 4ТД, 1ТД и ПЧ боюсь не смогу 'правильно' прослушать линию.
Поставьте утилиту COM Port Toolkit, там есть режим просмотра запроса/ответа отдельно.
Евгений Багаев
20.01.2017, 11:26
Сейчас проконсультируюсь с соответствующими службами предприятия, вы же сотрудник ООО "НПФ ОВЕН-К"?
Да, я продукт-менеджер направления "Свободно программируемые устройства".
IIeroniux
03.02.2017, 14:05
Да, я продукт-менеджер направления "Свободно программируемые устройства".
День добрый!
К сожалению официальная отправка проекта связана со значительными сложностями, поэтому пока время терпит попробую (с вашей помощью) обойтись без отправки. Скажите, достаточно ли вам будет подробных скриншотов конфигурации ПЛК с настройками?
На данный момент было выполнено следующее, результаты не обнадеживают.
В теме прочитал (http://www.owen.ru/forum/showthread.php?t=25419&highlight=%E7%E0%E2%E8%F1%E0%E5%F2), что у человека зависал обмен (как и у меня) с периферийными модулями. В этой же теме, пост #9, Филоненко Владислав (http://www.owen.ru/forum/member.php?u=17) отписался, что такое возможно в больших проектах с временем цикла более 10 мс. Размер моего проекта 60 кб, практически полностью написан на ST, только PLC_PRG на CFC. Циклы FOR, WHILE, Repeat не используются.
Что сделал с момента последнего письма.
1) Я установил время цикла 5 мс, но спустя какое-то время обмен снова завис.
2) Установил, что если выполнить команду "Сброс" или 'Сброс (холодный)', то связь не отвисает. Если выполнить 'Сброс (заводской)' то обмен начинает работать нормально, естественно нужно загрузить программу вновь.
3) Изменение скорости обмена с 9600 на 19200 также не помогло.
4) Сменил ПЛК на новый, из коробки. У моего текущего ПЛК прошивка 2.14, у нового 2.15.9. Обмен завис через 2 часа. Т.е. дело не в моем конкретном ПЛК, и не в версии прошивки.
5) Осциллограф на клеммах A и B ПЛК показывает - сигнал четкий, без помех, амплитуда дифф. сигнала 3.5 В. Причем проверка происходила, когда обмен снова завис (но напомню, что индикаторы на модулях 1ТД и 4ТД мерцают даже в случае, если в конфигурации ПЛК обмен завис).
Я так понимаю, что дело в программе (проекте), но куда копать не знаю.
В планах провести эксперименты по:
1) Включению контроля четности (сейчас четность не проверяется).
2) Вытащить провода сети RS из кабель-каналов, чтобы они висели в воздухе.
3) Написать обмен через библиотеку (опыта не было, но думаю погуглить форум и примеры и сделаю).
4) Перейти на протокол ASCII, вместо RTU... но ПЧ Веспер поддерживает только RTU.
5) Поставить отдельный ПЛК110 для обмена с модулями ТД, далее ПЛК110 опрашивать ПЛК160 по UDP. Но это не рациональное решение, не хотелось бы к нему прибегнуть.
6) Опрашивать модули ТД посредством панели оператора СП270, затем передавать в ПЛК.
Спасибо.
Филоненко Владислав
03.02.2017, 14:29
Проект, без проект мы воспроизвести не можем.
Попробуйте убрать кусками из программы, например оставив только конфигурацию и посмотреть что будет
Евгений Багаев
03.02.2017, 15:18
Скажите, достаточно ли вам будет подробных скриншотов конфигурации ПЛК с настройками?
Здравствуйте, приложите по максимуму скрины конфигурации. Также последуйте совету Владислава.
В крайнем случае, мы вышлем Вам примеры опроса с помощью библиотеки Modbus.lib.
IIeroniux
08.02.2017, 13:51
Здравствуйте, приложите по максимуму скрины конфигурации. Также последуйте совету Владислава.
В крайнем случае, мы вышлем Вам примеры опроса с помощью библиотеки Modbus.lib.
Удалил полностью текст программы и созданные мною блоки.
Т.е. остался только PLC_PRG, в теле программы A:=B, в описании конфигурации var/end_var PLC_PRG ничего не удалял, там объявленные переменные типа int/dint для обмена с панелью СП270. К примеру, XXX AT %QD9.13.0: DINT; Не думаю, что это как-то влияет.
По сути от проекта остался пустой PLC_PRG и заполненная конфигурация ПЛК (там описание входов/выходов, Master для обмена с модулями и SLAVE для обмена данными с панелью).
Загрузил проект, через 2 часа обмен завис. На скриншоте как раз показано, как это выглядит. Показания, и номер устройства в сети rs-485, не меняются с течением времени. Т.е. и через час всё, как на скриншоте. Индикаторы 'RS-485' при этом на модулях 1ТД/4ТД мерцают, как будто идет опрос.
Завтра попробую удалить из конфигурации модули опроса преобразователей частоты. И запустить снова.
В модуле 4ТД - адреса регистров каналов с первого по четвертый - 70, 72, 74, 76. Команда чтения - 0х03 (это настройки). У модуля 1ТД - регистр 70, команда чтения такая же.
Посмотрите plz скриншоты, может где-то допущена грубая ошибка, а я её не вижу. Спасибо
PS. Заранее извиняюсь за чехарду с паролем, отправил вам в личку.
Евгений Багаев
08.02.2017, 14:50
IIeroniux, здравствуйте.
Попробуйте разнести адреса устройств на линии через 8. Вместо Ваших 1, 2, 3 .. N сделайте 8, 16, 32 .. N.
Также следует увеличить Polling Time у каждого устройства, т.к. на скорости 19200 такое количество параметров опрашивать 10 раз в секунду это слишком.
IIeroniux
09.02.2017, 05:46
Принято! Сейчас, с утра, запустил еще тест без опроса ПЧ. Сразу после этого буду применять ваши рекомендации. О результатах отпишусь.
IIeroniux
27.02.2017, 12:41
IIeroniux, здравствуйте.
Попробуйте разнести адреса устройств на линии через 8. Вместо Ваших 1, 2, 3 .. N сделайте 8, 16, 32 .. N.
Также следует увеличить Polling Time у каждого устройства, т.к. на скорости 19200 такое количество параметров опрашивать 10 раз в секунду это слишком.
День добрый! Хотел поделиться радостным известием - по вашей рекомендации увеличил polling time до 200 мс, и разнес адреса устройств через 8 (8, 16, 24 и 32) - в итоге, два эксперимента по 8 часов и один 6 часов - связь стабильная, без зависаний. Исходя из того, что в #16 после уже пробовал устанавливать 200 мс и результат был отрицателен делаю вывод, что в данном случае к положительному эффекту привело разнесение адресов.
Как вы можете это объяснить?
В любом случае выражаю всем огромную благодарность за участие в решении проблемы, примем на будущее и учтем!
Powered by vBulletin® Version 4.2.3 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot