Полная версия этой страницы:
Чудеса старой техники
Столкнулся с интересным случаем.
Имеется котельная. Управлял котельной контроллер ПЛК150. К нему по интерфейсу РС485 подключались 3 модуля МДВВ и 1 модуль МВА. Котельная работала. Сам пробовал щелкать выходными сигналами на МДВВ и замыкал/размыкал дискретные сигналы... температура отображалась, клапаны регулировались...
У меня стоит задача переделать управление этой системой на другой контроллер (не спрашивайте почему - так надо). При этом МДВВ и модуль МВА мы оставляем. Начали подключаться к МДВВ и модулю МВА и были несколько озадачены. У всех 4 модулей стоит один и тот же адрес (4). Как и скорость/четность и все прочее. Как это все работало? Они ведь должны были мастеру отвечать все одновременно (честно говоря лампы активности RS485 у них загорались не поочередно а одновременно). Позвонил в техподдержку Овен, рассказал об этом случае. Они мне подтвердили что это не должно было работать... Тех, кто делал эту котельную уже не найти...
ПЛК150 почувствовал измену и поменял конфигурацию модулей перед тем как его отключили.
вы наверное смотрели модбас рту или аски?
как вариант, овеновские игрушки умеют меж собой играть на овеновском протоколе. смотрите туда.
Цитата(LordN @ 20.6.2019, 4:48)

ПЛК150 почувствовал измену и поменял конфигурацию модулей перед тем как его отключили.
вы наверное смотрели модбас рту или аски?
как вариант, овеновские игрушки умеют меж собой играть на овеновском протоколе. смотрите туда.
Да работало по модбас РТУ. В настрйоках модулей МДВВ стоял протокол Модбас РТУ. Я для прикола перехватил трафик от ПЛК150... он доблится на адрес 1,2,3,4.... и ему с адресов 1,2,3 - не отвечали... Это правда те запросы которые я расшифровал ( запрос регистра состояний ДИ с адреса 033HEX в МДВВ). Остальную кучу запросов и трафика я поленился расшифровывать....
Разговаривал с техподдержкой Овна - они сказал что прибор не может одновременно работать по протоколу Modbus RTU и Овен...
Очень важный момент - при конфигурировании модулей ОВЕН или считывании их конфигурации (те же адреса) важно чтобы модули не были в сети с другимим модулями физически (т.е. конфигурируете модуль - отключите его от сети данных с другими моудлями ОВЕН). По крайней мере у меня так было много раз (МДВВ, МВА) возникали несохранения конфигурации или неверно отображалась конфигурация (адреса), когда несколько приборов одновременно на линии, пуска й и с заведомо различными адресами.
Цитата(Qwerty88 @ 20.6.2019, 2:56)

Сам пробовал щелкать выходными сигналами на МДВВ и замыкал/размыкал дискретные сигналы... температура отображалась, клапаны регулировались...
Откуда "щелкали" ?
чисто теоретически, если адресное поле регистров у всех слейвов разное, то при запросе несуществующего регистра слейв что сделает? ругнется или молчать будет скорей всего, а другой слейв ответит...
Qwerty88
20.6.2019, 18:12
Цитата(Chabol @ 20.6.2019, 13:15)

Откуда "щелкали" ?
Система работала. Мы пришли - на панели отображались показания датчиков температуры. Мы размыкали и замыкали конакты от реле и различных устройств (тима SSM контактов насосов) и на панели нам показывались соответсвующие аварии. Правда с некоторой задержкой но мы думали что это мы сами плохо их замыкаем.
Далее мы тыкались отдельно к каждому модулю (без сети). Они все были с адресом 4.
И во время опроса от ПЛК150 они моргали лампами активности одновременно (а не поочередно как это бывет при работе по РС485).
Расковыривал куски запросов и ответов от ПЛК150. Было примерно такое (по-человечески):
Запрос состояний ДИ с контроллера с адресом 1, запрос состояний ДИ с контроллера с адресом 2, запрос состояний ДИ с контроллера с адресом 3 - ответов НЕ БЫЛО.
Далее были другие запросы - у меня не хватило терпения их "Расковырять" и я принялся "резать" (выкинул ПЛК150, поставил свой контроллер, изменил адреса модулей и т.д.).
Цитата(Qwerty88 @ 20.6.2019, 18:12)

1.
Система работала. Мы пришли - на панели отображались показания датчиков температуры. Мы размыкали и замыкали конакты от реле и различных устройств (тима SSM контактов насосов) и на панели нам показывались соответсвующие аварии. Правда с некоторой задержкой но мы думали что это мы сами плохо их замыкаем.
2.
Далее мы тыкались отдельно к каждому модулю (без сети). Они все были с адресом 4.
И во время опроса от ПЛК150 они моргали лампами активности одновременно (а не поочередно как это бывет при работе по РС485).
3.
Расковыривал куски запросов и ответов от ПЛК150. Было примерно такое (по-человечески):
Запрос состояний ДИ с контроллера с адресом 1, запрос состояний ДИ с контроллера с адресом 2, запрос состояний ДИ с контроллера с адресом 3 - ответов НЕ БЫЛО.
Далее были другие запросы - у меня не хватило терпения их "Расковырять" и я принялся "резать" (выкинул ПЛК150, поставил свой контроллер, изменил адреса модулей и т.д.).
1. Раз работала, значит адресация модулей была, иначе бы не работало. Задержка это нормально - для одномастерного протокола запрос-ответ (влияет скорость обмена, кол-во модулей, организация самого опроса мастером сети )
2. Моргать лампочки актиности на порту у модулей могут одновременно опять таки из-за оргаизации опроса (например, мастер сначала опрашивает у всех модулей состояние счетного входа №1, потом переходит к следующим входам - при достаточной скорости опроса-ответа и небольшом кол-ве модулей моргание лампочек активности на порту может происходить одновременно - по крайней мере так может казаться).
3. Всегда перво-наперво человеческий фактор проверяем - могло не хватить у Вас терпения разобраться почему "ответов НЕ БЫЛО". Может из-за коллизии, может не оптимально настроен сетевой опрос мастера и слейвов (таймауты ожидания ответа, например). Потому мастер и отправлят по многу раз запросы, пока не получит ответ. До банального все может быть просто, при программировании матсера (понятно, что не Вами) могли остаться мусорные запросы, которые фигачились в сеть. Или есть такое понятие "групповой запрос", когда считать одной группой подряд идущие регистры быстрее, чем по очереди. Но в самом устройстве регистры идут с пропусками в адресации (не подряд), мастер же дает запрос на диапазон регистров и отбрасывает ненужное при получении ответа. Как на это реагирует слейв - в каждом случае может быть по разному.
у ОВЕНА может быть по своему. Даже от прошивки может зависить тот ли иной момент.
еще вспомнил, овен поддерживает групповые запросы по нулевому адресу
Qwerty88
21.6.2019, 11:28
Цитата(Chabol @ 21.6.2019, 9:28)

1. Раз работала, значит адресация модулей была, иначе бы не работало. Задержка это нормально - для одномастерного протокола запрос-ответ (влияет скорость обмена, кол-во модулей, организация самого опроса мастером сети )
2. Моргать лампочки актиности на порту у модулей могут одновременно опять таки из-за оргаизации опроса (например, мастер сначала опрашивает у всех модулей состояние счетного входа №1, потом переходит к следующим входам - при достаточной скорости опроса-ответа и небольшом кол-ве модулей моргание лампочек активности на порту может происходить одновременно - по крайней мере так может казаться).
3. Всегда перво-наперво человеческий фактор проверяем - могло не хватить у Вас терпения разобраться почему "ответов НЕ БЫЛО". Может из-за коллизии, может не оптимально настроен сетевой опрос мастера и слейвов (таймауты ожидания ответа, например). Потому мастер и отправлят по многу раз запросы, пока не получит ответ. До банального все может быть просто, при программировании матсера (понятно, что не Вами) могли остаться мусорные запросы, которые фигачились в сеть. Или есть такое понятие "групповой запрос", когда считать одной группой подряд идущие регистры быстрее, чем по очереди. Но в самом устройстве регистры идут с пропусками в адресации (не подряд), мастер же дает запрос на диапазон регистров и отбрасывает ненужное при получении ответа. Как на это реагирует слейв - в каждом случае может быть по разному.
у ОВЕНА может быть по своему. Даже от прошивки может зависить тот ли иной момент.
Самое смешное что у ВСЕХ МОДУЛЕЙ БЫЛ ОДИН АДРЕС! ТОЧКА! Как работало - не понимаю.
Сейчас я их опрашиваю другим контроллером на тойже самой сокрости групповыми запросами. Лампы мигаютпо очереди как и должны были. Я настроки моделей не менял - только задал другие адреса.
Цитата(LordN @ 21.6.2019, 9:55)

еще вспомнил, овен поддерживает групповые запросы по нулевому адресу
И как они отвечали? Все "хором"?
Цитата
И как они отвечали? Все "хором"?
а вот не знаю. овен писал что такой режим в основном применяется для инициализации...
manjey73
22.6.2019, 10:09
По групповым адресам работают МНОГИЕ устройства, только вы не дочитали доки, как правило это необходимо для передачи одинаковых данных всем, приборы на широковещательный адрес не отвечают, а молча выполняют команды.
з.ы. ВСЕ работало. Сами все сломали и думаете что что-то не так.
Конфигуратор подключается всегда по протоколу ОВЕН, возможно загоняя прибор в режим адреса по умолчанию.
Опять же, читать доки на приборы.
Qwerty88
22.6.2019, 19:04
Цитата(manjey73 @ 22.6.2019, 10:09)

з.ы. ВСЕ работало. Сами все сломали и думаете что что-то не так.
Конфигуратор подключается всегда по протоколу ОВЕН, возможно загоняя прибор в режим адреса по умолчанию.
Опять же, читать доки на приборы.
Теперь уже опять работает, только от моего контроллера. Я думаю о том как это раньше могло работать. Надо для общего развития.
Доки на приборы я читал. Там все описано. Если не ставишь джампер для работы на дефолтных настройках, то подключение происходит на настройках заданных в параметрах сети модулей. И у всех их был адрес 4. Адрес по умолчанию - 16. Когда я пробовал своим мастером стучаться на модули с одинаковыми адресами, естестевнно ничего не вышло. ПРилетала разная "ерунда" вместо данных.. да и то через раз, а так постоянно были неответы.
manjey73
22.6.2019, 22:57
еще раз, адрес 4 это для Modbus, адрес 16 когда в приборе стоит это для Овен протокола. Прочтите как происходит адресация для протокола Овен. Конфигуратор работает на протоколе Овен.
Qwerty88
23.6.2019, 15:25
Цитата(manjey73 @ 22.6.2019, 23:57)

еще раз, адрес 4 это для Modbus, адрес 16 когда в приборе стоит это для Овен протокола. Прочтите как происходит адресация для протокола Овен. Конфигуратор работает на протоколе Овен.
Так конфигуратор не подключался когда я указывал другие адреса.
В настройках приборов стоял адрес 4. Техподдержка Овна сказала что МДВВ не могут одновременно работать по протоколу Овен и модбасРТУ. ЧТо указано в настройках по тому протоколу и будут работать.
manjey73
23.6.2019, 17:47
Ни один прибор не может работать одновременно по двум протоколам, даже если нет меню с выбором протокола и у прибора автоопределение протокола. Речь о другом.
Если выставить адреса для Modbus 1,2,3,4 то не отключая прибор от линии к нему не получится подключиться по протоколу Овен.
Вернее получится, но получите в ответах кашу...
Qwerty88
23.6.2019, 19:01
Цитата(manjey73 @ 23.6.2019, 17:47)

Ни один прибор не может работать одновременно по двум протоколам, даже если нет меню с выбором протокола и у прибора автоопределение протокола. Речь о другом.
Если выставить адреса для Modbus 1,2,3,4 то не отключая прибор от линии к нему не получится подключиться по протоколу Овен.
Вернее получится, но получите в ответах кашу...
Я отключал прибор от сети и стучался к нему конфигуратором. Ответ был только на адресе 4. У всех. А когда тыкался отключив только мастер и не отключив от сети то и по адресу 4 ничего не находило (но это нормально).
manjey73
23.6.2019, 23:17
Вспомните все свои действия по полочкам. Возможно однажды вы сделали что-то не так и всем приборам назначили один адрес...
Ну не может быть такого, чтобы все работало, а потом полезли и перестало и виноваты не вы... Это мистика...
Цитата(manjey73 @ 23.6.2019, 23:17)

Вспомните все свои действия по полочкам. Возможно однажды вы сделали что-то не так и всем приборам назначили один адрес...
Я все делал как надо. Не мог я им переназначить другой адрес. И оно не перестало работать. Я просто выкинул ПЛК150. И поставил свой контроллер. А когда начал искать адреса МДВВ выяснил такую прикольную вещь.
Адресные пространства регистров модулей совпадают? Т.е. вы обращаетесь не только к модулям по одному адресу, но и к их регистрам?
есть подозрение на человека, который CRC вычисляет в онлайн калькуляторе и подставляет в запрос...
з.ы. дальнейшее рассуждение уже как-то не интересно...
Цитата(starmos @ 24.6.2019, 8:38)

Адресные пространства регистров модулей совпадают? Т.е. вы обращаетесь не только к модулям по одному адресу, но и к их регистрам?
3 одинаковых модуля МДВВ... у них естественно адреса переменных одни и те же.
И не я а кто-то другой запрограммировал ПЛК150 так что это все работало на одном адресе.. И по сути в регистрах с одними и теми же адресами... как работало - не понимаю.
Я сейчас им задал адреса 1,2,3 и сответвенно в своем контроллере сделал как надо и у меня сейчас работает без проблем.
Цитата(Qwerty88 @ 24.6.2019, 10:54)

3 одинаковых модуля МДВВ... у них естественно адреса переменных одни и те же.
И не я а кто-то другой запрограммировал ПЛК150 так что это все работало на одном адресе.. И по сути в регистрах с одними и теми же адресами... как работало - не понимаю.
Я сейчас им задал адреса 1,2,3 и сответвенно в своем контроллере сделал как надо и у меня сейчас работает без проблем.
Возможно старый контроллер как-то инициализировал их каждый раз, после включения питания? Или вообще при выполнении обмена? В том, что работать по одинаковым адресам оно не могло - это аксиома же.
Qwerty88
24.6.2019, 11:48
Цитата(starmos @ 24.6.2019, 10:49)

Возможно старый контроллер как-то инициализировал их каждый раз, после включения питания? Или вообще при выполнении обмена? В том, что работать по одинаковым адресам оно не могло - это аксиома же.
Ну и я о чем. Вот я и спрашиваю тех кто работает с овеновскими ПЛК - как такое вообще могло быть?
"кто работает с овеновскими ПЛК - как такое вообще могло быть? "
..в качестве бреда, одинаковый адрес устройств в сети в ModBus RTU не нонсенс, проблема возникает только в процессе ответа модуля, теоритически, если разнести ответы каждого модуля во времени(например параметром задержка перед ответом), коллизий не должно быть, и возможно будет работать..
manjey73
24.6.2019, 13:54
ktulu - не будет работать, на одной шине, включены все устройства, отвечать начнут все. Не на разных же интерфейсах с одинаковыми адресами устройства.
как-то проводил эксперимент, при достаточно длинной паузе два мастера успевают опросить один и тот же слейв по одной и той же шине.
manjey73
24.6.2019, 15:12
LordN я делал такое испытание, поднимал TCP сервер для COM порта, к которому был подключен ПР200 Овен, результат печальный. Вы хоть кол об голову тешите, но рано или поздно происходит наложение времени опроса от одного мастера, с другим.
Это прокатит если сделать опрос одним мастером каждую нечетную минуту, вторым мастером каждую четную. Вы много видели ПО, где это возможно настроить ?
з.ы. если написать скрипт то в принципе я мог бы такое провернуть, но как-то стало не интересно, хотя возможно вполне.
" на одной шине, включены все устройства, отвечать начнут все"
..да, но каждый через время задержки в его насторйках, мремя среднего x04 или x03 пакета на 115200 это мсек-ды, выставив у каждого модуля свою задержку можно добицца разделения ответов по времени..
"Вы много видели ПО, где это возможно настроить ?"
..да легко, я на ICP CON делал подобную приблуду, там как тока не извращались в свое время..
Цитата(manjey73 @ 24.6.2019, 19:12)

LordN я делал такое испытание, поднимал TCP сервер для COM порта, к которому был подключен ПР200 Овен, результат печальный. Вы хоть кол об голову тешите, но рано или поздно происходит наложение времени опроса от одного мастера, с другим.
ну наложится. повисит и отлепится. я же не говорю что так нужно делать, я говорю что так в принципе будет как-то работать..
Цитата
Это прокатит если сделать опрос одним мастером каждую нечетную минуту, вторым мастером каждую четную. Вы много видели ПО, где это возможно настроить ?
з.ы. если написать скрипт то в принципе я мог бы такое провернуть, но как-то стало не интересно, хотя возможно вполне.
тот же лоджик позволяет так сделать, например. да и наверное любой софт где можно организовать опрос по внешнему стробу
manjey73
24.6.2019, 22:44
Но только не с ПЛК, часы у большинства врут безбожно. Не только у самих ПЛК, но и просто у приборов.
В общем геморрой тот еще. Тут только синхронизация опросов между мастерами должна работать как часики. Один опросил, передал другому и так по кругу.. это самый лучший вариант.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.