PDA

Просмотр полной версии : ПР100 - СПК107 -Таймаут при чтении



keysansa
14.01.2024, 19:43
Добрый день. Не могу понять причину. Есть 2 ПР100 в проекте. С первой все ок, вторая - проблемная. Запись регистров проходит, а вот при последующем чтении - таймаут. Думал, что регистрами ошибся, 10 раз перепроверил - все ок. Даже попытался специально изменить регистры - получаю уже не 255 ошибку, а 253.

Встречался ли кто-то с такой проблемой?
ЗЫ. Набор регистров - разный у каждой ПР. Пробовал менять их местами (перепрошивая) - проблема не зависит от самой ПР.

Валенок
14.01.2024, 20:11
Ну раз проблема не в ПР - значит в СПК (проблемы с регистрами здесь не рассматриваем ессно)
Там код или некая "конфигурация" мастера ?
--
И там можно добавить в конец опрос 3-его (несуществущего) девайса ?
таймаут ему самый маленький

keysansa
14.01.2024, 20:23
Ну раз проблема не в ПР - значит в СПК (проблемы с регистрами здесь не рассматриваем ессно)
Там код или некая "конфигурация" мастера ?
--
И там можно добавить в конец опрос 3-его (несуществущего) девайса ?
таймаут ему самый маленький

Все через код (необходимо в зависимости от конфигурации выключать определенные устройства, через код это удобнее).

Таймаут несуществующего устройства- не желательно. Устройств много на линии, а опрос надо как можно быстрее производить. И так пришлось установить 115200 для нормального обмена.

Оставлял проблемную ПР только одну в опросе - ничего не меняется.

Приложил проект ПР. Попробуйте кто-нить.

ЗЫ. 512-517 для чтения, 540-543 для записи

Валенок
14.01.2024, 21:54
Э-э-э..
Даже от Вас вот:

Пробовал менять их местами (перепрошивая) - проблема не зависит от самой ПР.
Зачем тогда проект ПР?


Про это:

Таймаут несуществующего устройства- не желательно
Я Вам предложил не лечение а проверку. Что будет с теми 2-мя существующими?


А вот это:

Все через код
навевает как бы



--
Вы со всех ПР100 читаете сразу все 64 регистра? (или сколько там в ПР100?)



-----

для нормального обмена.
Возможность за 40мс для получить всё с обоих ПР и иногда тратить по 10..20мс для отправки - ненормально?

keysansa
15.01.2024, 13:21
Э-э-э..

Зачем тогда проект ПР?

Потому что проблемы именно с этим проектом.




Я Вам предложил не лечение а проверку. Что будет с теми 2-мя существующими?


Я пробовал делать цикл программы и 100 и 200мс. Не помогает задержка как проверка.



Вы со всех ПР100 читаете сразу все 64 регистра? (или сколько там в ПР100?)

Да, со всех ПР по очереди. До того момента, как в проект была добавлена "проблеммная" ПР - все отлично работало (да и продолжает работать, только таймауты по чтению данной ПР).





Возможность за 40мс для получить всё с обоих ПР и иногда тратить по 10..20мс для отправки - ненормально?

В проекте 36 ПР-ок. Они работают. Добавляется еще 6. На каждую по 10..20 мс. 0.5с.

Валенок
15.01.2024, 15:47
Потому что проблемы именно с этим проектом..
Начните с простого. Отложите весь проект.
Новый проект, копия всех сетевых, для всех сетевых "i=i+1", подключитесь, читайте/пишите, смотрите результат.



Я пробовал делать цикл программы и 100 и 200мс. Не помогает задержка как проверка. .
Я вам задержку не предлагал

Тем временем, внезапно:

В проекте 36 ПР-ок. Они работают. Добавляется еще 6.
Огласите весь список пожалуйста (С)


В проекте 36 ПР-ок. ... 0.5с.
А надо-то сколько?

keysansa
15.01.2024, 19:12
Начните с простого. Отложите весь проект.
Новый проект, копия всех сетевых, для всех сетевых "i=i+1", подключитесь, читайте/пишите, смотрите результат.

Надо все ваши ответы почитать ))

Отложи проект, напиши заново... Если получится - снова возвращайся в проект и ищи - почему в нем это не работает ))




Огласите весь список пожалуйста (С)

Если внимательно прочитаете, я написал, что в зависимости от конфигурации - оборудование может исключаться. Именно по этому чтение Modbus - через исходный код. Для тестов оставил 2 ПР ки. Потом одну.
На что влияет, что всего их 42? Я написал их количество, только объясняя, почему не хотелось бы добавлять тайминги.

keysansa
15.01.2024, 20:37
Я вам задержку не предлагал

А как же это.



И там можно добавить в конец опрос 3-его (несуществущего) девайса ?
таймаут ему самый маленький

Валенок
15.01.2024, 21:53
.. Если получится - снова возвращайся в проект и ищи ...
Не ищите. Зачем?




Если внимательно прочитаете,.
это?

... Есть 2 ПР100 в проекте. С первой все ок, вторая - проблемная..




А как же это.
Была не задержка а про опрос 3-его (несуществущего) девайса. Ключевое слово - "опрос".
Но уже не надо. Т.к. узнали что - "конфигурации" нет. Исключили.




.. получаю уже не 255 ошибку.

EXC_TO: BYTE := 16#FF; (* TIMEOUT ERROR *)




.. а 253..


EXC_DE: BYTE := 16#FD; (* INPUT DATA ERROR *)
-----------------------
IF Complete = TRUE THEN
..
IF Exception = 0 THEN
IF Buffer[0] = DevAddr AND Buffer[1] = 4 (или 3 соотв) AND ByteCnt = Buffer[2] + 3 THEN
..
ELSE
Exception := EXC_DE;
END_IF



10 раз перепроверил - все ок...
11?

Cs-Cs
16.01.2024, 08:28
что в зависимости от конфигурации - оборудование может исключаться. Именно по этому чтение Modbus - через исходный код DcВсё же спрошу. В Штатном дереве устройств Modbus есть возможность программно включать и выключать опрос устройств при обращении через Имя.Enable.
Если там простая задача - точно ли нужно через код опрашивать?

keysansa
16.01.2024, 10:38
DcВсё же спрошу. В Штатном дереве устройств Modbus есть возможность программно включать и выключать опрос устройств при обращении через Имя.Enable.
Если там простая задача - точно ли нужно через код опрашивать?

Проект начинал не я, принял как было. по началу думал переделать из кода конфигурацию, но как понял, что сотни полторы регистров прописывать, потом столько же в коде менять... Передумал.

keysansa
21.01.2024, 13:18
Завершилась эпопея просто.
Я поменял местами вызовы функций чтения и записи данной ПР100. Все заработало.
Т.е. если сначала записывать, а потом читать - запись работает, чтение - нет. Если сначала читать, потом записывать - все работает.