VanMo писал(а): ↑09 апр 2019, 18:05
Это если нет исключающего правила в диапазонах.
Да, диапазоны должны работать в макросах тоже, правда я не проверял. Настроенный диапазон, по идее, запрещает панели своевольничать и запрашивать биты вне диапазона.
Понятно. Спасибо Вам огромное за ответы.
Подумаю как сделать лучше. Данные-то в итоге все приходят, просто коммуникации почему-то тормозят, в особенности это началось когда начал пользоваться функцией 1x (читаю входы). Всё что можно запрашивается словами (функции 3х и 4х), но вот состояния входов в моих контроллерах в слова не упаковать.
Есть вариант что контроллер просто не отдаёт данные так быстро как его спрашивают. Или наоборот, панель выдерживает большие паузы между запросами.
Чтоб представлять, на скриншоте вся система.
screen_16.png
Одна панель опрашивает 7 контроллеров Данные складываются во внутреннюю память, вся визуализация привязана к ней. Для каждого окна написан свой макрос вычитки данных, данные по функциям 3х в контроллерах сгруппированы так что их получаю одним запросом. Вычислений практически нет, данные в основном надо просто отобразить. Но не всё можно прочитать с помощью 3х/4х. Макрос каждого окна выполняется циклически (задан в настройках окна). Есть ещё две асинхронные задачи:
1. Проверка связи с устройствами, отдельным макросом 1 раз в секунду. Чтение сервисного регистра в каждом контроллере, значение регистра <> 0 когда он исправен и данные достоверны. Если признака связи с устройством нет, то во всех макросах обмен с этим устройством не выполняется.
2. Статусная строка вверху. Тоже 1 раз в секунду отдельным макросом, в нём чтение данных из одного устройства (8 регистров) и их разбор для показа текстовых строк из библиотек строк.
Всё это неплохо работало, пока не понадобилось читать битовые переменные. :( Ищу причину задержек. Связь всегда стабильна, устройства работают исправно. Особенно заметно торможение при рестарте панели. Видимо когда запускается макрос окна плюс два фоновых одновременно.
P.S. По подключениям Ethernet физически всё чуть не так как показано. Часть устройств в одном свиче, часть в другом, просто на сервисном экране не стал вырисовывать подключения с точностью до порта. Всё находится внутри одного шкафа (кроме двигателя конечно).
У вас нет необходимых прав для просмотра вложений в этом сообщении.