Страница 1 из 5 123 ... ПоследняяПоследняя
Показано с 1 по 10 из 41

Тема: Как ускорить считывание регистров?

  1. #1

    По умолчанию Как ускорить считывание регистров?

    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, т.е. малина читает состояние регистров из модулей и пишет их в контроллер, контроллер на основе этих регистров выставляет другие регистры, которые читаются малиной из ПЛК и пишутся в модули вывода, получается тоже быстро.
    Последний раз редактировалось Parovoz; 24.03.2021 в 14:48.

  2. #2
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    2,854

    По умолчанию

    Цитата Сообщение от 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, т.е. малина читает состояние регистров из модулей и пишет их в контроллер, контроллер на основе этих регистров выставляет другие регистры, которые читаются малиной из ПЛК и пишутся в модули вывода, получается тоже быстро.
    Это потому, что мастер, который в конфигурации ПЛК, не умеет делать групповые запросы с слейву (модули В/В, регистры в Raspberry PI).
    Т.е. читает в каждом запросе только по одному регистру, а "Считывание в настройках стоит каждые 100мс" и того -100мс х 120регистров = 12 сек.
    Используйте в в КОНФИГУРАЦИИ ПЛК модули String input/output для ускорения обмена по шине ModBus, например
    https://owen.ru/forum/showthread.php...l=1#post333593
    https://owen.ru/forum/showthread.php...l=1#post244022
    Последний раз редактировалось petera; 24.03.2021 в 16:07.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков

  3. #3
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    7,447

    По умолчанию

    Копайте программу, если уж от кнопок с ПЛК у вас тормоза, то явно что-то с кодом.

  4. #4

    По умолчанию

    Про групповые запросы понял, разберусь переделаю. Спасибо за совет.

    Как ускорить работу ПЛК с модулями ввода/вывода? Там считывается и пишется по паре регистров с устройства. Изменение времени опроса в диапазоне от 50мс до 400мс субъективно на быстродействие не влияет.
    Последний раз редактировалось Parovoz; 24.03.2021 в 16:44.

  5. #5

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    Копайте программу, если уж от кнопок с ПЛК у вас тормоза, то явно что-то с кодом.
    Копать программу смыла особого нет, там всё банально и просто:

    dword_1.0:=dword_2.0 - задержка в полсекунды, где соответственно dword_1 - регистр модуля вывода, а dword_2 - регистр модуля ввода. Пинг до модулей 1-2мс.

  6. #6
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    7,447

    По умолчанию

    0,5 секунды это 500мс - это дофига...

  7. #7

    По умолчанию

    Гадание по фотографии плохо работает весной. Выложите проект
    Тролль-наседка, добрый, нежный и ласковый

  8. #8

    По умолчанию

    Блин... я смотрю, тема ускорения опроса прям везде актуальна )
    Хотим проект! Мне играция с рапсберри этой ещё предстоит, но на ПЛК и на CDS v2-то оно должно летать.
    А почему были выбраны модули по LAN, если можно было по RS-485 их взять и на ПЛК110 опрашивать?

  9. #9

    По умолчанию

    Цитата Сообщение от Cs-Cs Посмотреть сообщение
    Блин... я смотрю, тема ускорения опроса прям везде актуальна )
    Хотим проект! Мне играция с рапсберри этой ещё предстоит, но на ПЛК и на CDS v2-то оно должно летать.
    А почему были выбраны модули по LAN, если можно было по RS-485 их взять и на ПЛК110 опрашивать?
    Потому что они новее, лучше, современнее, быстрее, совершеннее (но это неточно). И в конце-концов работают по ethernet в мультимастерном режиме. Поэтому есть возможность управлять напрямую выходами с нескольких мест одновременно с ПЛК и с Homekit минуя плк. Короче нужна была мультимастерность.
    Вложения Вложения

  10. #10

    По умолчанию

    Цитата Сообщение от Филоненко Владислав Посмотреть сообщение
    Гадание по фотографии плохо работает весной. Выложите проект
    У вас есть готовые решения на этих модулях, которые работают со скоростью соизмеримой с пингом до этих модулей? т.е. я правильно понимаю, что эти модули в связке с плк110 вы запускали и они работали с адекватной скоростью, которую позволяет осуществлять обмен данными и время обработки цикла?

    Просто пока мы не запустили Homebridge я особо и не задумывался, что эта вся связка способна работать значительно быстрее, буквально моментально. И только после этого понял, что я что-то делаю не так, что у меня через контроллер это работает дольше. Если есть решения поделитесь, пожалуйста.

Страница 1 из 5 123 ... ПоследняяПоследняя

Похожие темы

  1. Считывание программы из ПЛК
    от MasterZ в разделе ПЛК1хх
    Ответов: 29
    Последнее сообщение: 30.12.2020, 20:24
  2. Считывание времени
    от Василий_S в разделе ПЛК1хх
    Ответов: 24
    Последнее сообщение: 08.06.2020, 12:47
  3. Считывание архива с ПЛК 304
    от Шевцов Игорь в разделе ПЛК3хх
    Ответов: 18
    Последнее сообщение: 15.09.2016, 09:08
  4. Считывание температуры
    от shtorm в разделе Эксплуатация
    Ответов: 7
    Последнее сообщение: 27.05.2012, 20:50
  5. Как ускорить процесс опроса для мастера ModBus
    от AWA1971 в разделе Сетевые технологии
    Ответов: 14
    Последнее сообщение: 15.10.2010, 01:58

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •