Сообщение от
Parovoz
1. Имеется ПЛК110 м02, и имеется некоторое устройство Raspberry PI, с которого считываются обычные (16bit) регистры в количестве примерно 120 шт. Я, пользуясь стандартными средствами Codesys, накидал эти регистры в конфигурацию плк. И всё бы ничего, но данные в этих регистрах обновляются примерно раз в 10 с. Считывание в настройках стоит каждые 100мс.
На считываемом устройстве изменяю регистр, а обратную связь на ПЛК вижу секунд через 10. При этом если считывать OPC-сервером, изменения условно моментальны.
Считывание происходит по ModbusTCP.
Короче очень долго считывается такой объём регистров. При этом ошибок связи нет. Как-то можно это ускорить стандартными или нестандартными средствами?
2. Также есть модули МУ210-403 и МВ210-202 в количестве примерно по 6шт. каждого, считывание данных с которых происходит с некоторой задержкой, субъективно примерно 0,5с.
В чём суть. Есть умный дом на Apple Homekit, к которому прикручены выходы модулей ввода в качестве осветительных приборов, розеток и прочих аксессуаров. Также есть ПЛК который также опрашивает эти же модули и пишет в них состояния выходов. Есть простые кнопочные выключатели по дому, нажатия с которых обрабатываются контролером, т.е. контроллер постоянно (50мс) опрашивает модули ввода (МВ210-202) на предмет нажатия клавиши, и если клавиша нажата, то включает/выключает соответствующий выход на модуле вывода (МУ210-403), зажигает свет, напрмиер.
И получается так, что ПЛК это делает значительно медленнее чем Rasberry PI с пробросом информации о состоянии на планшет, т.е. механический выключатель, работающий через контроллер, работает медленнее виртуального выключателя, работающего через Homebridge (Raspberry PI) в связке с Homekit на Ipad.
Визуально это проявляется следующим образом: если я "долблю" по иконке на айпаде, я не могу развить такую частоту нажатий, чтобы не сработал свет, если же я это делаю клавишей, подключенной даже непосредственно на вход ПЛК, то свет не загорается/тухнет не чаще 2 раз в секунду, если я это делаю через клавишу подключенную к модулю ввода, то частота включения/выключения света не поднимается выше 1,5 Гц. т.е. свет может включиться/выключиться не чаще 3 раз в 2 секунды. Поэтому проходя мимо клавиши нельзя ткнуть на неё, как обычно привыкли делать, а надо её нажать с небольшой паузой, примерно 0,5с, что весьма неудобно и неприятно. Естественно ошибок по считыванию также нет, считывание каждые 50мс таймаут 150мс.
Как победить этот недуг? И первый и второй?
p.s. И ещё такой нюанс при полной заливке программы с изменением регистров и всем прочим, когда контроллер полностью останавливается, буквально первые несколько секунд-минуту после заливки реакция очень заторможенная нажатия обрабатываются по несколько секунд, потом всё выравнивается и приходит в вышеописанную ситуацию без ошибок.
Пробовали обмен данными организовывать через Raspberry Pi, т.е. малина читает состояние регистров из модулей и пишет их в контроллер, контроллер на основе этих регистров выставляет другие регистры, которые читаются малиной из ПЛК и пишутся в модули вывода, получается тоже быстро.