Вход

Просмотр полной версии : ПЛК110 + МВ110-8АС (0x118 > STRING[64]) "зависает"



SCOwenUfa
06.03.2025, 09:08
Здравствуйте!
При чтении из модуля наткнулся на странную особенность:
при обрыве датчика первого канала все остальные данные перестают обновляться. При этом: обмен по шине идёт нормально, если обрыв дополнительно возникает на других каналах - то обновление восстанавливается.
В модуле задействованы только первые пять каналов в режиме 4..20мА.
Проект и конфигурацию прилагаю.
82323
Видео:
https://disk.yandex.ru/i/7VaIlyH9ZKj62w

Полагаю, может быть связано с особенностями обработки переменных типа STRING, обойти это не сильно сложно.
Хочется понять, как и на каком этапе? Чтобы в дальнейшем не столкнуться с подобным поведением в ответственный момент.

kondor3000
06.03.2025, 09:30
Здравствуйте!
При чтении из модуля наткнулся на странную особенность:
при обрыве датчика первого канала все остальные данные перестают обновляться. При этом: обмен по шине идёт нормально, если обрыв дополнительно возникает на других каналах - то обновление восстанавливается.
В модуле задействованы только первые пять каналов в режиме 4..20мА.
Проект и конфигурацию прилагаю.
Полагаю, может быть связано с особенностями обработки переменных типа STRING, обойти это не сильно сложно.
Хочется понять, как и на каком этапе? Чтобы в дальнейшем не столкнуться с подобным поведением в ответственный момент.

Вот пример опроса 7 модулей 8АС через STRING и структуру, получаете готовые переменные REAL и статусов.
Проверьте у меня никаких отвалов из за отключения датчика не наблюдалось https://owen.ru/forum/showthread.php?t=10555&page=987
Количество модулей можно изменить.
Ещё пример https://owen.ru/forum/showthread.php?t=10555&p=415086&viewfull=1#post415086

И кстати ваш проект, при обрыве датчика 1 канала, у меня показывает ошибку и бесконечность в переменной Real, но ничего не зависает 82325
Всё остальное продолжает работать и даже циклическое время в отключённом канале. Проект переделан под мой ПЛК110-60, без М02.

SCOwenUfa
06.03.2025, 12:52
Вот пример опроса 7 модулей 8АС через STRING и структуру, получаете готовые переменные REAL и статусов.
Проверьте у меня никаких отвалов из за отключения датчика не наблюдалось https://owen.ru/forum/showthread.php?t=10555&page=987
Количество модулей можно изменить.
Ещё пример https://owen.ru/forum/showthread.php?t=10555&p=415086&viewfull=1#post415086

Хорошее решение.
Увы, используя такой способ эффект тоже воспроизводится:
82326
https://disk.yandex.ru/i/36PdjK-iGU8_kA

Cs-Cs
06.03.2025, 13:04
Ну, вот моя статья про STRING: https://cs-cs.net/codesys-23-uskoreniye-raboty-modbus-gruppovye-zaprosy
Там прям пример опроса есть в конце.

SCOwenUfa
06.03.2025, 13:12
И кстати ваш проект, при обрыве датчика 1 канала, у меня показывает ошибку и бесконечность в переменной Real, но ничего не зависает 82325
Всё остальное продолжает работать и даже циклическое время в отключённом канале. Проект переделан под мой ПЛК110-60, без М02.

Проверил, такое происходит когда 6, 7, 8 канал отключены. При включении одного из каналов - всё работает.
Если не затруднит, пожалуйста проверьте именно в такой конфигурации модуля.
82327

UPD: На ПЛК150-220.У.L не проявляется. Возможно какой-то баг в серии [М02]? У меня ПЛК110-220.60.Р-М [М02]

kondor3000
06.03.2025, 14:16
Проверил, такое происходит когда 6, 7, 8 канал отключены. При включении одного из каналов - всё работает.
Если не затруднит, пожалуйста проверьте именно в такой конфигурации модуля.

Выключил 6,7 и 8 каналы, они показывают ошибку, Но даже при обрыве 1 канала, остальное работает 82329



UPD: На ПЛК150-220.У.L не проявляется. Возможно какой-то баг в серии [М02]? У меня ПЛК110-220.60.Р-М [М02]
Возможно, ну не отключайте тогда 6,7,8 каналы, пусть включенные остаются.

SCOwenUfa
06.03.2025, 15:47
Покопался ещё:
Обходится легко - в других конфигурациях адреса модуля / состояния входов / длинны запроса - работает нормально.

Имитировал модуль на компьютере - похоже важны только первые 7 регистров.
Ещё проверил на другом контроллере - ПЛК110-220.30.Р-М, проблема также проявляется.

Полагаю, такое начало ответа от модуля создаёт исключительную ситуацию, и данные не попадают по назначению. Ошибок опроса при этом не возникает.
82335

Валенок
06.03.2025, 18:58
Подтверждаю.

Валенок
06.03.2025, 23:12
Подтверждаю.

1exan
07.03.2025, 04:18
Покопался ещё:
Обходится легко - в других конфигурациях адреса модуля / состояния входов / длинны запроса - работает нормально.

Имитировал модуль на компьютере - похоже важны только первые 7 регистров.
Ещё проверил на другом контроллере - ПЛК110-220.30.Р-М, проблема также проявляется.
...

На всякий случай - какой адрес модуля не нужно использовать?

AlexCrane
07.03.2025, 07:11
На всякий случай - какой адрес модуля не нужно использовать?

Судя по скрину 30h или 48 в dec

Валенок
07.03.2025, 07:29
На всякий случай - какой адрес модуля не нужно использовать?
Это НЕ связано с адресом/функцией и т.п

SCOwenUfa
07.03.2025, 07:44
Это НЕ связано с адресом
Это НЕ связано с функцией
Это НЕ связано обрывом 1 датчика
Это НЕ связано с отключением 5...8 датчика
Это НЕ связано со стринг

Это либо сознательная диверсия автора прошивки кодировавшего логику модбас мастера конфига либо ТУПЕЙШАЯ СИСТЕМНАЯ ошибка в самом подходе к этому. И которая может проявится в ЛЮБОМ месте. Очень очень редко. Конкретно здесь - бинго.

Если возможно, поделитесь какие условия нужны для возникновения такой ошибки.

Не хотелось бы играть в подобную лотерею в дальнейшем =)

Валенок
07.03.2025, 09:22
Условия? В принципе рандом. Но чтоб вляпатся в это - легко, как внезапно оказалось.

AlexCrane
07.03.2025, 09:44
Условия? В принципе рандом. Вчера писал, если кто прочитал. Да, оно. Но чтоб вляпатся в это - нужна дичь в логике в прошивке.

Вам надо было новогодне-пореченковый билетик покупать, а не ПЛК

Так этот глюк проявляется сразу или может появится в уже отлаженной программе в течение какого-то времени?

Валенок
07.03.2025, 18:45
Так этот глюк проявляется сразу или может появится в уже отлаженной программе в течение какого-то времени?
И так и так может.
Всем удачи))

Валенок
09.03.2025, 16:38
Это со всей конфигурацией проблема.

Cs-Cs
09.03.2025, 19:46
Валенок Так ты в ОВЕН написал про ошибку?
Шо там? Какое-нибудь "верное" CRC при неверном пакете данных, что ли?

Cs-Cs
09.03.2025, 22:28
Так ты в ОВЕН напишешь?

SCOwenUfa
11.03.2025, 09:20
Так ты в ОВЕН напишешь?
Обещали передать разработчикам

Валенок
11.03.2025, 11:53
Обещали передать разработчикам
Надеюсь что писали без привязки к 8AC

SCOwenUfa
11.03.2025, 17:59
И так и так может.
Всем удачи))

Кто-то думал что "да нунафик эти стринги"?
Кому надо получить какашку например с 32ДН с обычным адресом 1?
Адреса можно заказывать)) На любой адрес какашку предложу.



На этой - точно. Что свежее - проверю позднее

Подтверждаю. В предложенных вариантах у меня такое же поведение.
Адрес - значение (старший - вперёд)
2 - 3509813247
Особенно не радует, что важен только старший регистр - комбинация может быть не такой редкой.
82395
82405

Валенок
11.03.2025, 18:37
....................

AlexCrane
12.03.2025, 08:35
Ну уже ж поняли суть?)) Это же мина. Могу легко сгенерить её на любой запрос.

Для сомневающихся выше пример не требующий ничего кроме походу любого ПЛК М02, двух скрепок и 3 минут



Думаете что я просто так говорил ранее про несколько десятков тысяч вариантов дерьма которые может подсунуть вам мастер конфигурации на любой норм ответ? Да, всего лишь 2^16 например на 32бита.



И не "мамойклянусь" если что.

Если Вы так глубоко в теме, все-таки в чем причина? (...)

melky
12.03.2025, 08:55
AlexCrane так откель ему причину знать? человек просто проверил различные комбинации, возможно вычислил как имитировать ошибку. Кто ж его до исходников прошивки то допустит?
Это как со старыми Семёнами, можно увалить документированной командой :)

Валенок
12.03.2025, 08:57
Основное - проверка КС с выходом за каким-то внутри цикла, а не по окончании.

Филоненко Владислав
15.05.2025, 10:57
Ну, вот моя статья про STRING: https://cs-cs.net/codesys-23-uskoreniye-raboty-modbus-gruppovye-zaprosy
Там прям пример опроса есть в конце.

Да, делить на 2 вообще очень сложно.
А ещё есть модули что поддерживают побайтный опрос, и число байтов у них может быть нечётным - потому и байты!

Cs-Cs
15.05.2025, 11:07
Филоненко Владислав Вот теперь только на форуме и видимся ((

Валенок
15.05.2025, 11:24
Да, делить на 2 вообще очень сложно.
А ещё есть модули что поддерживают побайтный опрос, и число байтов у них может быть нечётным - потому и байты!
Это к чему вообще было? Или куда-то не туда ответили?))

Или вы только до поста #4 добрались?)) Тогда в итоге тема про то, что мастер в конфигурации - кривой.


есть модули что поддерживают побайтный опрос
Только причем тут модбас?

Филоненко Владислав
15.05.2025, 13:40
Ох, Валенок, спустя 20 лет нашли ошибку и в пляс!
Да, есть некие проблемы, я буду решать.
Но проявляются они только в режиме "TraceMode"

Валенок
15.05.2025, 16:36
Но! Может я Вас огорчу, но режим "TraceMode/Native" не имеет значения
Просто повторюсь если не читали - адрес, регистр, кол-во их (если > 1) не имеет значения.